高通量测序的数据处理与分析(二)-宏基因组3

宏基因组宿主去污染

在上一篇文章中,详细的介绍了宏基因组如何下载以及如何使用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压缩文件

参考链接

[1] 宏基因组数据分析——用Bowtie2去宿主序列

[2] bowtie2手册