在我们处理转录组或宏转录组数据时,去除rRNA数据是比较重要的环节之一,为什么呢?
因为rRNA(核糖体 RNA)是基因组中高度丰富和保守的成分,不能为转录组学研究提供有用的信息。而从转录组和宏转录组数据中去除 rRNA 可以更准确地表示真实的转录组,并可以改进低表达或稀有转录本的检测,并减少计算要求。此外,rRNA 去除还可以研究非核糖体的非编码 RNA,并且可以在各种生物过程中发挥重要作用。
去除rRNA的方法可以大体分为两大类,一个是湿实验,另外一个是利用生物信息软件。在有湿实验的条件且自身需求下可以使用核糖体rRNA去除试剂盒或rRNA特异性探针去除rRNA,但如果是已经有现成的数据,想要检查去除rRNA以减少噪音,可以使用生信软件。
常用的去除rRNA的软件有Soremerna、RiboTaper、rRNAFilter等,而Soremerna是被运用最多的(参考资料也是最多的)。虽然soremerna很好用,但是呢它一般都是用来对双端测序(paired-end)数据进行处理,我拿来进行复现学习的数据是SRR1374921.fastq.gz、SRR1374922.fastq.gz、SRR1374923.fastq.gz、SRR1374924.fastq.gz,这些数据都是单端测序(single-read)数据。
那怎么看是双端测序还是单端测序呢?很简单,在NCBI的官网中的SRA数据库中检索SRR编号,如SRR1374921
点击进入
这里的layout就是测序类型,single是单端测序,paired是双端测序
以下为详细笔者的犯错过程的详细记录
git clone https://github.com/biocore/sortmerna.git #从GitHub上下载整个软件项目,里面有我们需要的用来构建索引的rRNA数据库
mwget https://github.com/biocore/sortmerna/releases/download/v4.3.6/sortmerna-4.3.6-Linux.sh#下载soremerna,这里用到的mwget是linux上的多线程下载工具
bash sortmerna-4.3.6-Linux.sh --skip-license #bash执行软件
ls -lrt /home/ergou/Desktop/rna-seq/tools/sortmerna/bin # 检查已经安装的二进制文件
vim ~/.bashrc #用vim工具启动bashrc文件,目的是将soremerna加入到环境变量中
export PATH="/home/ergou/Desktop/rna-seq/tools/sortmerna/bin:$PATH"#在最后一行添加
source ~/.bashrc#刷新一下环境变量
#这时候输入soremerna --version 检查一下软件是否安装z正确
发现能够跳出soremerna的版本号后说明软件可以正常使用,于是开始用下载来的rRNA数据库构建索引
--ref ~/sortmerna4.3/rRNA_databases/silva-bac-16s-id90.fasta \
--ref ~/sortmerna4.3/rRNA_databases/silva-bac-23s-id98.fasta \
--ref ~/sortmerna4.3/rRNA_databases/silva-arc-16s-id95.fasta \
--ref ~/sortmerna4.3/rRNA_databases/silva-arc-23s-id98.fasta \
--ref ~/sortmerna4.3/rRNA_databases/silva-euk-18s-id95.fasta \
--ref ~/sortmerna4.3/rRNA_databases/silva-euk-28s-id98.fasta \
--ref ~/sortmerna4.3/rRNA_databases/rfam-5s-database-id98.fasta \
--ref ~/sortmerna4.3/rRNA_databases/rfam-5.8s-database-id98.fasta \
--workdir /home/ergou/Desktop/rna-seq/tools/sortmerna/sortmerna_run
#这里的索引文件是git clone https://github.com/biocore/sortmerna.git这一步下载到的文件里面包含的数据库
#--index是构建索引的指令
#--threads 是线程数目,笔者的虚拟机只能跑8,再多ICU就炸了
#--ref后带rRNA数据库文件的位置信息
#--workdir后面是soremerna的工作目录,可以自己创建,不带此命令的话也会默认创建
这时候可以看到soremerna创建的工作目录
idx为索引构建所储存的位置,soremerna这个软件每次运行都得带--workdir 来指明软件的工作目录
接着开始比对过滤rRNA
--ref databases_rna/rfam-5.8s-database-id98.fasta /
--ref databases_rna/silva-arc-16s-id95.fasta /
--ref databases_rna/silva-arc-23s-id98.fasta /
--ref databases_rna/silva-bac-16s-id90.fasta /
--ref databases_rna/silva-bac-23s-id98.fasta /
--ref databases_rna/silva-euk-18s-id95.fasta /
--ref databases_rna/silva-euk-28s-id98.fasta /
--reads trimmed_mus_rna/SRR1374921_trimmed.fq.gz /
--reads trimmed_mus_rna/SRR1374922_trimmed.fq.gz /
--reads trimmed_mus_rna/SRR1374923_trimmed.fq.gz /
--reads trimmed_mus_rna/SRR1374924_trimmed.fq.gz /
--workdir /home/ergou/Desktop/rna-seq/tools/sortmerna/sortmerna_run/ /
--fastx --log --aligned aligned_rRNA/ --other clean_rna/
#--aligned为输出比对上rRNA数据库的reads
#--other为比对不上rRNA数据库的reads
这个软件有一说一比对过滤过程是真的耗费时间。比对和过滤完毕后在写报告的过程中直接就报错了(相当于白浪费我计算机的算力和时间了)。
报错信息:rule '1both 1-file and 2-files specified'
找了半天之后没有发现解决的方法,最后兜兜转转还是去chatGPT(一个大型语言训练模型)看看有没有合适的建议和方法于是回去检查了软件说明书提供的例子和我参考的这些教程和推文用的几乎都是双端测序文件。
于是直接转头奔去下载rRNAfilter
mwget https://hulab.ucf.edu/research/projects/rRNAFilter/software/rRNAFilter.zip #下载软件压缩包
unzip rRNAFilter.zip #解压
java -jar rRNAFilter_commandline.jar -i /home/ergou/Desktop/rna-seq/output/Quality_control/trim_galore/SRR1374923_trimmed.fq.gz -r 0
#-i 后带要过滤rRNA文件的位置信息
#-r 表示软件执行模式-有0和1两组模式,0是默认模式,去除rRNA更为彻底
#在计算机上必须配置java环境
等了一会后,终于完成rRNA过滤
虽然短短一千多字,描述一个小问题,但是也花费了快4天,希望对遇到类似情况的读者有帮助
生信小白,如有错误,还望多多指教