

基因组注释(四):非编码RNA的注释-用Infernal软件对Rfam 12进行RNA注释
source link: https://yanzhongsino.github.io/2022/04/22/omics_genome.annotation_ncRNA/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

1. ncRNA
非编码RNA(Non-coding RNA, ncRNA) 包括rRNA,tRNA,snRNA,snoRNA 和microRNA 等不编码蛋白质的RNA,它们转录后直接在RNA 水平上就能行使各自的生物学功能,并不需要翻译成蛋白质。
2. 注释软件
- 非编码RNA种类繁多,且结构特征各不相同,所以开发出了许多注释特定某一类RNA的软件,比如tRNAScan-SE预测tRNA,rnammer预测rRNA,snoScan 搜索带C/D盒的snoRNAs,SnoGps 搜索带H/ACA盒的snoRNAs,mirScan搜索microRNA等。
- Sanger实验室开发了Infernal软件,建立了1600多个RNA家族,并对每个家族建立了一致性二级结构和协方差模型,形成了Rfam数据库。采用Rfam数据库中的每个RNA的协方差模型,结合Infernal软件可以预测出已有RNA家族的新成员,只是特异性比较差。
如果不是专门研究ncRNA,可以用Infernal注释所有ncRNA。如果需要更精细的注释,则可以选择特定软件注释特定RNA。
这篇博客是介绍用Infernal程序与Rfam数据库一起用来注释与数据库中已知ncRNA同源的序列(这里用来注释完整的基因组)。注释结果包括tRNA,rRNA,snRNA,snoRNA和miRNA等。
3. Infernal
Infernal全称是”INFERence of RNA ALignment”,是一个用来检索DNA序列数据库中RNA序列和结构相似性的软件,通过协方差模型covariance models (CMs)来实现。
3.1. 安装Infernal
conda install -c bioconda infernal
现在安装的是v1.1.4
安装后可使用的命令包括:
- cmpress:对cm文件进行压缩并建立索引。
- cmscan:用提交的序列在cm数据库中进行检索。
- cmalign:将RNA序列同协方差模型进行比对,并输出为stockholm格式。
- cmbuild:通过多序列比对结果建立一个协方差模型,并保存在新文件中。
- cmcalibrate:对协方差模型(CM)进行校准,在使用cmsearch和cmscan前CM模型需要先经过这个程序的处理。
- cmconvert:用于格式转换,是将infernal 1.0以后的CM转化为当前版本需要的CM。但对1.0之前的版本无效。
- cmemit:一个采样程序,从CM中进行采样并输出。
- cmfetch:从一个大的CM文件中获取一个或多个CM。
- cmsearch:用提交的CM模型在序列数据库中进行检索。
- cmstat:对CM文件中的CM模型进行统计汇总。
4. Rfam
Rfam是RNA family数据库,包括ncRNA序列和ncRNA的二级结构,每个family用多序列比对和协方差模型covariance model (CM)来表示。
- 下载Rfam数据库
wget http://ftp.ebi.ac.uk/pub/databases/Rfam/CURRENT/Rfam.cm.gz
在Rfam网站下载Rfam最新版本的CM数据库(目前是Rfam 14.7)gunzip Rfam.cm.gz
解压数据库
- 下载clanin
wget http://ftp.ebi.ac.uk/pub/databases/Rfam/CURRENT/Rfam.clanin
在Rfam网站下载Rfam数据库配套的clanin文件。
5. 注释ncRNA
5.1. 建库
cmpress Rfam.cm
使用cmpress压缩并建立索引,生成Rfam.cm.i1f, Rfam.cm.i1i, Rfam.cm.i1m, Rfam.cm.i1p。
5.2. 注释
- 序列索引
推荐的参数:
nohup cmscan -Z 512 --cut_ga --rfam --nohmmonly --fmt 2 --tblout sample.tblout -o sample.result --clanin Rfam.clanin Rfam.cm genome.fa &
- -Z:根据基因组大小来定,基因组大小的2倍,Mb单位,选一个整数。比如256Mb的基因组,-Z 512。
--cut_ga --rfam --nohmmonly --fmt 2
:推荐使用- –tblout sample.tblout:指定table格式输出文件
- -o sample.result:指定比对结果输出文件
- –clanin Rfam.clanin:指定clanin文件
- Rfam.cm genome.fa:指定数据库Rfam.cm和基因组genome.fa
note:-o sample.result要放在Rfam.cm genome.fa前面,否则报错。
此步骤耗时参考:250Mb基因组,默认线程,耗时2.5h。
- sample.result:比对结果
- sample.tblout:table格式结果
5.3. 整理结果
5.3.1. 将注释结果整理成gff3文件
gff3文件可用于提交注释到数据库。
用perl脚本infernal-tblout2gff.pl实现,脚本来自https://www.cnblogs.com/jessepeng/p/15392809.html。
perl infernal-tblout2gff.pl --cmscan --fmt2 sample.tblout >sample.infernal.ncRNA.gff3
5.3.2. 统计各类ncRNA总数
整理注释结果文件sample.tblout
提取必需的列,非重叠区域或重叠区域得分高的区域awk 'BEGIN{OFS="\t";}{if(FNR==1) print "target_name\taccession\tquery_name\tquery_start\tquery_end\tstrand\tscore\tEvalue"; if(FNR>2 && $20!="=" && $0!~/^#/) print $2,$3,$4,$10,$11,$12,$17,$18; }' sample.tblout >sample.tblout.xls
下载rfam注释
- 在rfam官网,选择【SEARCH】-【Entry type】
- 然后选中所有的Entry types(包括Gene,Intron,Cis-regulatory element),点击【Submit】,会列出所有RNA family的注释信息。
- 手动选择所有注释信息,复制,粘贴到新建的空白文本文件rfam.txt并保存。
- 把rfam.txt传输到服务器,最好用
dos2unix rfam.txt
转换文件格式为unix版本。 - 拆分第三列
cat rfam.txt | awk 'BEGIN {FS=OFS="\t"}{split($3,x,";");class=x[2];print $1,$2,$3,$4,class}' > rfam_anno.txt
rfam注释文件rfam_anno.txt包含了所有rfam的类型type和功能描述description信息。
- 统计ncRNA注释结果
awk 'BEGIN{OFS=FS="\t"}ARGIND==1{a[$2]=$5;}ARGIND==2{type=a[$1]; if(type=="") type="Others"; count[type]+=1;}END{for(type in count) print type, count[type];}' rfam_anno.txt sample.tblout.xls >sample.ncRNA.statistic
sample.ncRNA.statistic输出示例:
riboswitch 1
ribozyme 1
tRNA 699
Others 41
miRNA 188
antisense 4
rRNA 233
snRNA 698
- 统计细分分类
- 也可以根据细分分类分别统计,细分分类参考rfam官网,【SEARCH】-【Entry type】。
- 可参考的统计值包括每个细分ncRNA的数量(copy),平均长度(average length),总长(total length),总长占基因组的比例(Percent of the genome)等
- 统计后整理成发表文章用的表格。
比如:snRNA包括snoRNA和splicing,snoRNA包括CD-box,HACA-box和scaRNA。下面用统计CD-box这个细分分类的ncRNA举例。
- 提取CD-box的Accession(RF00000格式):
grep "CD-box" rfam_anno.txt |cut -f1 >cdbox.tem
- 提取注释到的CD-box信息:
grep -f cdbox.tem mc.tblout.xls >cdbox.txt
- cdbox.txt的行数就是CD-box的数量;利用第四五列的位置信息,即可统计平均长度(average length),总长(total length),注意正反链。
6. references
Recommend
-
18
1. K-mer分析软件概况K-mer分析分为K-mer频数统计和基因组特征评估两步。 jellyfishjellyfish可以实现第一步K-mer频数统计。特点是使用Hash表存储数据,能多线程运行;速度...
-
8
1. 基因组调查(genome survey)1.1. 基因组调查基因组调查(genome survey)指基因组特征评估,一般指通过K-mer分析二代测序数据,获得基因组大小(genome size),杂合度(heterozygosity),重复...
-
9
用k-mer分析进行基因组调查(genome survey) —— 用GenomeScope评估基因组特征+用Smudgeplot估计倍性 ...
-
11
【推荐】用Smudgeplot评估物种倍性后,用组合jellyfish+GenomeScope1.0做二倍体物种的基因组调查,用组合KMC+GenomeScope2.0做多倍体物种的基因组调查。 1. k-mer进行基因组调查的软件概况k-...
-
4
【推荐】用Smudgeplot评估物种倍性后,用组合jellyfish+GenomeScope1.0做二倍体物种的基因组调查,用组合KMC+GenomeScope2.0做多倍体物种的基因组调查。 1. k-mer进行基因组调查的软件k-mer进行...
-
10
用k-mer分析进行基因组调查:(六)用KmerGenie一步实现 2022-06-19...
-
8
准备上传的文件 基因组fasta文件 注释tbl格式文件 tbl格式文件推荐用GB2sequin来准备。 参考博客-转换GenBank文件为tbl格式:
-
7
对代码和注释进行分离 - V2EX V2EX = way to explore V2EX 是一个关于分享和探索的地方 这是一个专门讨论 idea 的地方。每个人的时间,资源是有限的,有的时候你或许能够想到很多 i...
-
5
Infernal Throne by AriNeonShark ## The Story ## Your seat...
-
40
用k-mer分析进行基因组调查:(二)用Smudgeplot估计倍性 2022-12-31...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK