宏基因组宿主去污染
在上一篇文章中,详细的介绍了宏基因组如何下载以及如何使用fastp进行质控,本篇文章主要聚焦于如何对宿主污染进行去除。如何判断存在宿主污染的方法在上一篇文章中有提到,即GC含量严重偏离正态分布时我们就认为原始数据存在宿主污染,这里介绍的去除宿主污染的工具是bowtie2,同样的也有很多其他软件可以做到去污染,如bwa,kneaddata等软件。
事实上,去除宿主污染的基本原理就是通过将原始的fastq序列跟人类的参考基因组进行比对,去除比对上的read或者高度匹配的read实现去除宿主污染。显然,这种去除污染的方式只有在你明确知道宿主是什么的时候是有效的,如肠道微生物组,口腔微生物组,他们的宿主是显而易见的,只要知道取样的实验体是什么就能知道宿主。
bowtie2的安装
# 通过下载conda通过conda进行安装
conda install bowtie2
若不想通过conda安装,也可以使用源码安装 (源码地址), 源码安装比较复杂且易出错,如果实在没有服务器管理员权限还是推荐用conda下载。
然后下载人类基因组索引
wget -c https://genome-idx.s3.amazonaws.com/bt/GRCh38_noalt_as.zip
unzip -d ./ GRCh38_noalt_as.zip
这里是bowtie2人类基因组索引的下载地址 。最后 GRCh38_noalt_as
文件夹内包含了人类基因的索引,一共是6个文件
当然你也可以通过基因组构造,通过基因组自己构造会更加灵活,也可以用于比对除了人类宿主以外的其他宿主污染,通过自己构造索引,首先你需要有一个被构造对象的基因组序列,这个基因组序列可以在NCBI中找到 网址在这里,输入你所需的物种,下载其基因序列即可。假设下载的基因组名为 [gene_species]
bowtie2-build [gene_species] [out/file/]
最后会将索引文件输出到 [out/file/]
文件夹下,也是六个文件,分别以 .1.bt2
,.2.bt2
,.3.bt2
,.4.bt2
,.rev.1.bt2
,.rev.2.bt2
结尾
bowtie2的使用
# 双端测序
bowtie2 -q -1 [*_1.fastq.gz] -2 [*_2.fastq.gz] -x [out/file/] --un-conc-gz [outfile]
# 单端测序
bowtie2 -q [*.fastq.gz] -x [out/file/] --un-conc-gz [outfile]
下面是参数详解
参数:
- -x 参考基因组通过bowtie2-build构建的索引文件名称,即bt2_index_base
- -1 双末端测序中的fastq文件之一
- -2 双末端测序中的fastq文件之二,从多个文库来的fastq文件,可用逗号分割,写在-1 和-2 之后。
- -U 非双末端测序的fastq文件,如有多个文件,需用逗号分割。
- –interleaved 交叉读取的fastq文件。-1/-2,-U,–interleaved为逻辑或关系,即三选一。
- -S 输出的SAM文件
- -q 输入的reads文件为fastq格式 (默认)
- -f 输入的reads文件为fasta格式
- -5 切掉5‘端指定长度的碱基,然后比对 (默认为0)
- -3 切掉3‘端指定长度的碱基,然后比对 (默认为0)
- -p 计算线程数
- –very-fast: 该参数可以以比对精度为代价提升比对速度
关键输出参数:
- –un 将unpaired-end reads输出到文件
- –un-gz 将unpaired-end reads输出到gz压缩文件
- –al 将至少能比对上1次的unpaired-end reads输出到文件
- –al-gz 将至少能比对上1次的unpaired-end reads输出gz压缩文件
- –un-conc 将不能合理比对的paired-end reads输出到文件
- –un-conc-gz 将不能合理比对的paired-end reads输出到gz压缩文件
- –al-conc 将至少能合理比对上1次的paired reads输出到文件
- –al-conc-gz 将至少能合理比对上1次的paired reads输出gz压缩文件