鉴定长非编码RNA

写在前面

长非编码RNA(Long non-coding RNA, lncRNA)是长度大于 200 个核苷酸的非编码 RNA。200个核苷酸的限制可以区分当时已知的功能非编码RNA(如miRNA、miRNA前体)和结构非编码RNA(如tRNA、rRNA)。可想而知,lncRNA是个大杂烩,种类繁多,功能复杂。

随着转录组测序的大规模应用,大量的lncRNA被发现。如果你做了一个转录组研究,可能也会有鉴定新lncRNA的需求。转录组构建之后,去掉已知的编码蛋白基因和lncRNA,留下的就是新发现的转录本。从新发现的转录本鉴定lncRNA,简单来讲,就是去掉转录噪音和去掉编码蛋白基因。

转录组测序可以分析出几万到几十万转录本,其中很大一部分是转录噪音。我们通常来讲,会去掉单外显子和低表达转录本。有人认为,RNA聚合酶II可能随机结合在DNA上,瞬时转录出一些RNA,因为不是正常的基因转录,所以会马上关闭。这些转录噪音的特征就是单外显子和低表达。

通常根据lncRNA在基因组上与蛋白质编码基因的相对位置将其分为4类:基因间长链非编码RNA(intergenic lncRNA,由基因组上编码基因之间的间隔序列转录产生,也即long intergenic ncRNA, lincRNA)、内含子长链非编码RNA(intronic lncRNA,完全由蛋白质编码基因内的内含子转录而来)、正义链非编码RNA(sense lncRNA,转录方向与蛋白质编码基因转录方向相同,并且与蛋白质编码基因外显子有部分或者全部重叠)、反义长链非编码RNA(antisense lncRNA,转录方向与蛋白质编码基因转录方向相反)。其中lincRNA争议很小,sense lncRNA和intronic lncRNA可能是基因转录错误或者转录加工得到中间产物。如果是链非特异性的库,转录本的方向是软件推断出来的,antisense lncRNA可能就是sense lncRNA,也可能是转录噪音。有些严格的一点的研究,可能只要intergenic的新转录本。

接下来是去掉编码蛋白基因,因为lncRNA特征不明显,鉴定lncRNA就变成鉴定编码蛋白基因,然后取反。有人自己编写程序去掉编码蛋白基因,比如BLAST比对已知蛋白库(不能比对上或者限制比对上的长度),再加上开放阅读框长度不能大于30(或者某个其他值)。鉴定lncRNA的工具其实很多,大家常用的套路也是综合多个工具的结果。本文推荐CPC2和CPC这两个软件。

使用CPC2鉴定lncRNA

CPC2只使用序列本身的特征,速度非常快。我现在的做法是先跑CPC2,去掉coding gene,剩下的再去跑CPC。CPC2的官方地址:http://cpc2.cbi.pku.edu.cn/download.php

a. CPC2的安装

CPC2依赖Biopython,所以我们先安装它。

1
pip install biopython

然后安装CPC2。

1
2
3
4
5
6
7
tar zxvf CPC2-beta.tar.gz
cd CPC2-beta
export CPC_HOME="$PWD"
cd libs/libsvm
tar zxvf libsvm-3.18.tar.gz
cd libsvm-3.18/
make clean && make

注意CPC2目前只支持Python2,如果你装了Anaconda,可以开一个Python2的虚拟环境。export CPC_HOME="$PWD"这句是将CPC_HOME这个环境变量设置为CPC2的主目录路径,重启终端后,这个设置就无效了。如果要永久设置可以修改~/.bashrc文件,添加export CPC_HOME="/home/chenwen/bin/CPC2-beta",注意你的实际路径可能和我的不同。

b. 运行CPC2

1
2
cd $CPC_HOME
python ./bin/CPC2.py -i input.fa -o output.txt

使用CPC鉴定lncRNA

CPC是鉴定lncRNA经典软件,它先把未知转录本和已知蛋白库BLAST对比,BLAST的结果作为libsvm(一个机器学习分类库,CPC2也用了它)的分类特征。因为有了BLAST,可靠性更高,同时也非常慢。

CPC是个很老的软件了,它调用的是blastall,也就是老版本的BLAST,而不是新版本的BLAST+。CPC和老版本BLAST的下载地址,有些朋友可能找不到,我把它们直接放在我的网站上了。

CPC下载地址:https://static.biochen.com/software/cpc-0.9-r2.tar.gz
老版本的BLAST下载地址:https://static.biochen.com/software/blast-2.2.26-x64-linux.tar.gz

a. CPC的安装

1
2
3
4
5
6
7
8
9
tar -zxvf cpc-0.9-r2.tar.gz
cd cpc-0.9-r2/libs/libsvm
tar -zxvf libsvm-2.81.tar.gz
cd libsvm-2.81
make clean && make
cd ../..
tar -zxvf estate.tar.gz
cd estate
make clean && make

b. 建立BLAST库

需要使用蛋白质库,UniRef90或者NCBI的nr都可以,用formatdb命令建库时,必须命名为”prot_db”, 且放在CPC安装目录下的data目录下面。

1
2
cd cpc-0.9-r2/data
formatdb -i (your_fasta_file) -p T -n prot_db

c. 运行CPC

1
2
cd cpc-0.9-r2/
bin/run_predict.sh (input_seq) (result_in_table) (working_dir) (result_evidence)

括弧里面的内容需要改成你实际的文件名或者路径。run_predict.sh会调用远程blast,建议运行run_predict_local.sh,并把这个文件中blast_opts=”$blast_opts -a 2″; # 2CPUs, boost the performance这句话中的2,改成你实际电脑使用的CPU核数。