LinearRNA:线性时间 RNA 结构分析算法 #12
shenweiyan
started this conversation in
开放讨论
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
中文版本 English Version
背景介绍
百度免费开放LinearFold算法,可将RNA二级结构预测的时间大大降低,LinearFold论文已经在计算生物学顶级会议ISMB及生物信息学权威杂志Bioinformatics 上发表。论文链接请见:LinearFold: linear-time approximate RNA folding by 5'-to-3' dynamic programming and beam search。
传统上,RNA二级结构预测采用自底向上的动态规划(DP),是一种三次方时间复杂度的算法,也就是说,如果序列长度翻一倍的话,就要付出 8 倍的计算时间,这对于 RNA 病毒基因组这样的超长序列(例如艾滋病毒有约1万个碱基,埃博拉病毒有约2万个碱基)需要很长的等待时间。LinearFold创造性的将传统算法中自底向上的动态规划改为从左到右的方式,并利用”beam pruning“的思想,只保留分数较高的中间状态,从而大大减小了搜索空间。
LinearFold能够在线性时间内预测RNA二级结构,在长序列RNA上的预测速度远远大于传统算法。其中,LinearFold能够将新冠病毒全基因组序列(约30,000 nt)二级结构预测时间从55分钟降低到27秒,速度提升120倍。同时LinearFold在预测精度上相比传统算法也有提升。尤其对于长序列RNA二级结构(如16S和23S rRNA二级结构)和长碱基对(相距500+ nt)预测上,LinearFold预测精度有显著地提升。
2020年,百度再次发表世界最快RNA配分方程和碱基对概率预测算法LinearPartition。该算法功能更加强大,可以模拟RNA序列在平衡态时成千上万种不同结构的分布,并预测碱基对概率矩阵。LinearPartition算法同样被ISMB顶会接收并在Bioinformatics杂志上发表,论文链接请见:LinearPartition: linear-time approximation of RNA folding partition function and base-pairing probabilities。
LinearFold调用
机器学习模型
linear_fold_c(rna_sequence, beam_size = 100, use_constraints = False, constraint = "", no_sharp_turn = True)热力学模型
linear_fold_v(rna_sequence, beam_size = 100, use_constraints = False, constraint = "", no_sharp_turn = True)参数说明
返回值
运行示例
二级结构预测(无约束条件)
二级结构预测(有约束条件)
数据
LinearFold论文中我们使用了两个公开数据集:ArchivieII数据集和RNAcentral数据集。
ArchiveII数据集
ArchiveII数据集包含了3,857 RNA序列及其二级结构(实验得到),涵盖了9个不同的RNA家族,最长序列长度为2,968 nt。LinearFold论文中ArchiveII数据集被用来验证算法效率和预测准确度。具体细节请参考LinearFold论文。
RNAcentral数据集
RNAcentral数据集包含了海量的人类已知的 RNA序列(没有二级结构)。数据集中最长序列长度为244,296 nt。LinearFold论文中RNAcentral数据集被用来验证算法效率和内存使用情况。具体细节请参考LinearFold论文。
baselines系统
LinearFold与当前两个主流的RNA二级结构预测算法(系统)进行了对比,分别是Vienna RNAfold和CONTRAfold。
RNAfold
Vienna RNAfold是目前用户量最大的RNA结构分析平台,由奥地利维也纳大学开发。它使用热力学模型作为RNA结构预测模型,并采用自底向上的动态规划算法作为二级结构预测算法。该算法复杂度随着序列长度的增加成三次方比例增加,也就是说,输入序列长度增加1倍,运行时间变为原来的8倍。
CONTRAfold
CONTRAfold是第一个较为成功的基于机器学习的RNA二级结构预测系统。它采用CRF的方法,学习模型参数的权重,从而得到一个data-driven的RNA结构预测模型。从算法角度,CONTRAfold也仍然采用了三次方的动态规划算法。
相关论文
ViennaRNA Package 2.0
CONTRAfold
LinearPartition调用
机器学习模型
热力学模型
参数说明
返回值
运行示例
数据
LinearPartition论文中我们同样使用了两个公开数据集:ArchivieII数据集和RNAcentral数据集,详细说明请见上文LinearFold数据部分。
baselines系统
LinearPartition同样与当前两个主流的RNA二级结构预测算法(系统)Vienna RNAfold和CONTRAfold进行了对比,详细说明请见上文LinearFold baselines系统部分。
Beta Was this translation helpful? Give feedback.
All reactions