二代数据鉴定ncRNA常用软件
目前,对于二代数据分析lncRNA的流程大致为:
图片来自(http://www.bio-info-trainee.com/5852.html)
目前有很多软件可以鉴定样本中的ncRNA,但是每一个软件的都会有一定的假阳性,所以最好是多个软件的预测的结果取交集,然后再和各大protein coding的数据库做比对,筛选没有比对上的,这样一波操作把握性就大一些。
而这次,我们就重点介绍一下CPC2,CPAT和CNCI这三款软件的原理和具体用法
CPAT
简而言之,CPAT这款软件的工作是Coding-potential prediction。那么如果把转录本区分为ncRNA和protein coding RNA,那么这将是一个二分类问题。
首先,软件会根据先验信息,即已经研究过的物种,根据其序列特征进行,哪些序列是ncRNA,哪一些又是protein coding RNA,根据先验的分类进行模型的训练(二分类问题)。
换做我们要研究的物种,软件就会提取序列信息,根据训练好的模型参数,进行分类判断,预测是否为ncRNA或者protein coding RNA。
那么CPAT的预测模型为logistic regression作为二分类模型
关于特征值选取:
作者一共收集了10 000 coding and 10 000 noncoding transcripts,并且文章采用了四种特征值提取方式:
分别是:(1)ORF size,根据开放阅读框的大小判断;(2)ORF coverage,根据开放阅读框的覆盖度判断,即开放阅读框占转录本总长度的比例;(3)Fickett score;(4)Hexamer score
从结果来说,除了ORF coverage作为特征选择来说,其他指标都能到达到区分的效果。
其中:
Fickett score
对于其中一个转录本,软件从该转录本的第一个位置开始,每隔3个碱基取一次(1,4,7,.....),第二个位置也一样(2,5,8,.....),第三个位置也一样(3,6,9,......)。
分别统计A,C,G,T四个碱基的情况,按照上诉公式分别计算Apos,Cpos,Gpos,Tpos。再就是统计每一个碱基的在转录本中的百分比(百分比的数值)。最后将这八个值转换成概率值,再乘他们的权重,最终得到Fickett score
Hexamer score
而 Hexamer score 是根据先验的物种信息,即已知该物种 protein coding 序列和 ncRNA核苷酸六聚体序列的偏好性(Hexamer usage)来预测编码能力的,其中F(hi)代表 hi 序列偏好于 protein coding 序列的值, F′(hi)表示 hi 序列偏好于 ncRNA 序列的值。F( ) 代表根据已知该物种的 protein coding 序列而训练好的函数;F′( ) 代表根据已知该物种的 ncRNA核苷酸六聚体序列而训练好的函数。如果输入具有protein coding 序列特征的序列,则F( ) 值较大;如果输入具有 ncRNA 序列特征的序列,则F′( )值较大。
那么我们分别输入待研究的转录本序列,比较F( )和F′( )大小即可。
因此,依据上式,Hexamer score大时,表示该转录本序列为 protein coding 序列;Hexamer score小时,表示该转录本序列为 ncRNA 序列。
使用方法
该软件分本地版和网页版,本地版需要下载该软件,运行:
#fa输入
cpat.py -g transcript.fa \
-d dat/Human_logitModel.RData \
-x dat/Human_Hexamer.tsv \
-o output.txt
#bed输入
cpat.py -r /database/hg19.fa \
-g mRNA_hg19.bed \
-d dat/Human_logitModel.RData \
-x dat/Human_Hexamer.tsv \
-o output.txt
##-r 指定参考基因组
##-g 输入的转录本序列。如果是BED格式,必须-r指定参考基因组;如果是FASTA格式,不需要指定参考基因组,即使使用-r参数也会被忽略。
##-d 预制好的模型(Prebuilt training model)(CPAT自带人、鼠、果蝇、斑马鱼的模型)
##-x 预制好的六聚体频率表(Prebuilt hexamer frequency table)(CPAT自带人、鼠、果蝇、斑马鱼的六聚体频率表)
##-o 输出
如果不是模式生物,那么需要自己预测模型,根据官网上的指示:
需要你自备训练集来提取特征值并且训练数据。
另外一个问题是如何选择一个合适的cutoff来区分 protein coding和 ncRNA:
当然,如果是非模式生物,你可以自备训练集(即protein coding和 ncRNA 的转录本序列)来训练模型,得到cutoff。
具体可以依据链接中的R codes来寻找cutoff:here
R codes的input是特征提取的数据,用0和1区分protein coding和 ncRNA :
其中ID这一列代表转录本编号,编号中有个"T"代表转录本
容易观察到,R的input文件有四个特征值,那么以这四个特征值来构建逻辑回归模型,计算coding probability并判断转录本序列的编码能力
以人为例,那么运行完R codes根据下图结果,我们就可以找到合适的cutoff:
由右下角这幅图红蓝曲线的交点对应的横坐标即为待求的cutoff值 ,以此来作为判断protein coding和lncRNA的标准。
CPC2
CPC2也是将ncRNA和protein coding二分类的一个工具,只不过CPC2运用的是SVM作为分类模型。
其特征值提取类似于CPAT,包括对ORF的特征提取等。
并且CPC不支持跨物种的预测
使用方法
我们可以在这个网址在线进行分析:http://cpc2.cbi.pku.edu.cn.
或者:
#Download and install
wget http://cpc2.cbi.pku.edu.cn/data/CPC2-beta.tar.gz
tar xzvf CPC2-beta.tar.gz
cd CPC2-beta/
export CPC_HOME="$PWD"
cd libs/libsvm
tar xzvf libsvm-3.18.tar.gz
cd libsvm-3.18
make clean && make
#using
python CPC2.py -i transcript.fasta -o output.txt
##-i参数指定输出的fasta格式的转录本序列
##-o参数指定输出结果的名称
CNCI
CNCI也是将ncRNA和protein coding二分类的一个工具,和CPC2一样,CNCI运用的也是SVM作为分类模型。
这里的特征值提取是对转录本上密码子的偏好性,序列长度等进行特征提取。从而训练模型进行二分类。
使用方法
#Download and install
git clone git@github.com:www-bioinfo-org/CNCI.git
cd CNCI
unzip libsvm-3.0.zip
cd libsvm-3.0
make
#using
python CNCI.py \
-f transcript.fasta \
-o test \
-m ve \
-p 8 \
这里的参数表示为:
-f:指定转录本序列文件,可以是fasta格式,也可以是gtf格式,如果是gtf格式,需要同时指定-g和-d参数
-p:指定并行的CPU个数
-m:指定使用的模型,ve代表脊椎动物,p代表植物
-o:指定输出结果的目录
参考文献:
CPC:转录本蛋白编码潜能预测工具
CPAT官网:http://rna-cpat.sourceforge.net/
https://www.doc88.com/p-6304566363639.html
https://blog.csdn.net/mengjiaoduan/article/details/77066042
《CPAT: Coding-Potential Assessment Tool using an alignment-free logistic regression model》https://academic.oup.com/nar/article/41/6/e74/2902455
《CPC: assess the protein-coding potential of transcripts using sequence features and support vector machine》https://www.docin.com/p-1399877949.html
《CPC2: a fast and accurate coding potential calculator based on sequence intrinsic features 》
《Utilizing sequence intrinsic composition to classify protein-coding and long non-coding transcripts 》