# RNA_Prediction **Repository Path**: nameLacker/RNA_Prediction ## Basic Information - **Project Name**: RNA_Prediction - **Description**: 螺旋浆RNA结构预测,针对输入的RNA序列和二级结构,输出其的不成对概率 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 1 - **Created**: 2021-03-01 - **Last Updated**: 2025-03-13 ## Categories & Tags **Categories**: mathlibs **Tags**: None ## README # 螺旋桨RNA结构预测竞赛第七名项目:Unpaired Probability Prediction *** 成员有: 舒涛,姚智超,朱满琴,邱凯,叶永志 and so on... 内容有待开发,前路一片光明。 革命尚未成功,同志仍需努力。 加油,奥利给!!! ## 项目目录树 *** . ├── config.py // 配置文件 ├── data │ ├── data_explanation.txt // 数据说明文件 │ ├── dev.txt // 验证数据集文件 │ ├── README.md // 数据说明.md │ ├── test_nolabel.txt // A榜测试数据 │ └── train.txt // 训练数据集文件 ├── demo.py // 演示脚本 ├── inference_model │ │ ├── ... │ │ ├── ... │ │ ├── ... │ └── ├── ... // 训练模型参数 ├── logs │ └── train_1612239291.log // 日志文件 ├── max_models // 最优模型存放目录 │ │ ├── ... │ │ ├── ... │ │ ├── ... │ └── 4.635 // 最优模型 ├── net │ ├── network.py // 网络模型代码 │ └── bilm.py // Elmo结构 ├── README.md // 项目说明 ├── requestments.txt // 配置库 ├── result │ ├── prediction // 预测结果存放路径 │ │ ├── 1.predict.txt // 预测结果1 │ │ ├── 2.predict.txt // 预测结果2 │ │ ├── ... │ │ ├── ... │ │ ├── ... │ │ ├── n.predict.txt // 预测结果n │ ├── __model__.svg // 模型结构图 │ ├── predict.file.zip // 待提交压缩文件 └── utils ├── process.py // 创建词汇表 ├── reader.py // 数据读入程序 ├── utils.py // 数据预处理 └── vocabulary.py // 数据格式化类 ├── test.py // 验证程序 ├── train.py // 训练程序 ## 项目依赖下载,模型训练、测试 *** * 运行`pip install -r requestments -i https://pypi.douban.com/simple`下载安装所需依赖 * 运行`python train.py`开始训练,训练参数会保存在`./inference_model`目录下 * 运行`visualdl --logdir ./log post 8040`,再在浏览器打开`http://localhost:8040/`可以查看训练进度 * 运行`python test.py`产生测试结果(可设置读取模型的目录参数`--param_path=参数目录`,各个模型参数全在`./max_models`目录下,也可以读取`./inference`下的模型参数,如不设置此参数,则默认值为`./max_models/3.739B`),测试结果保存在`./result/prediction`目录下,同时在`./result`目录下生成`predict.files.zip`作为提交文件 ## 模型 *** 主要结构采用bidirectional-LSTM(双向LSTM网络结构),and so on...... 可以尝试从以下几方面来进行调优:(此处调用官方提示说明) * 输入数据预处理,提取更多feature * 基线模型使用LinearFold预测的RNA二级结构作为辅助feature。选手可以尝试增加更多的辅助feature,如:使用其他二级结构预测软件(如Vienna RNAfold, RNAstructure, CONTRAfold等)生成新的二级结构feature。 * 更复杂的Embedding形式 * 可以尝试在Embedding层使用Elmo, Bert等预训练模型 * 优化网络结构和参数 * 隐层大小选择 - 宽度和层数 * 尝试复杂网络构建 * 尝试正则化、dropout等方式避免过拟合 * 选择学习率等超参数 * 选择合适的损失函数 * ~~尝试不同的优化器~~ ## 不同参数下的验证结果 *** * A榜:
序号 | Embedding数据维度 | Lstm 层数 | Loss | Step | Score | rmsd_avg | rmsd_std | 时间 | 备注 |
---|---|---|---|---|---|---|---|---|---|
1 | 128 | 8 | 0.068 | None | 4.296 | 0.233 | 0.041 | 2021-02-19 09:01 | None |
2 | 128 | 6 | 0.075 | 4270 | 4.534 | 0.221 | 0.046 | 2021-02-19 09:42 | None |
3 | 128 | 6 | 0.076 | 4750 | 4.562 | 0.219 | 0.048 | 2021-02-19 10:06 | None |
4 | 256 | 6 | 0.074 | 8550 | 4.635 | 0.216 | 0.05 | 2021-02-20 09:05 | None |
5 | 256 | 6 | 0.071 | 4270 | 4.595 | 0.218 | 0.049 | 2021-02-22 09:45 | 续4的模型参数继续训练 |
6 | 256 | 6 | 0.077 | 1420 | 4.587 | 0.218 | 0.054 | 2021-03-01 10:15 | 续4的模型参数继续训练 |
7 | 256 | 6 | 0.072 | 475 | 4.632 | 0.216 | 0.05 | 2021-03-04 10:56:23 | 续4的模型参数继续训练,使用了增广数据 |