上期为大家剖析了基因组组装的基本原理,本期将从实战操作的角度带大家逐步实践宏基因组组装的具体步骤。宏基因组组装一般首先逐个对样本进行组装,再将所有样本中未参与组装的reads混合起来进行组装。
1. 配置config文件
根据质控后的fastq文件(sample1.fq1,sample1.fq2,sample2.fq1.sample2.fq2,sample3.fq1,sample3.fq2)配置每个样本的组装输入文件sample1.config,sample2.config,sample3.config;
Config文件内容如下:
max_rd_len 表示read的最大长度;
[LIB] 表示文库信息标签;
avg_ins 文库中插入片段平均长度
reverse_seq 序列是否需要被反转,0(不反转),1(反转),一般插入片段大于等于2k文库,在建库是会将插入片段进行环化,此时须设置该参数为1;
asm_flags 表示reads用于组装哪个部分,可设为1,2,3, 1表示reads仅用于contig组装,2表示reads仅用于scaffold组装,3表示reads同时用于contig和scaffold组装;
rank 构建scaffold时,不同文库中reads的使用顺序,文库中reads序列越短,级别越高;
q1,q2 用于组装的双端fq文件。
2. 软件
安装SOAPdenovo,下载地址 http://sourceforge.net/projects/soapdenovo2/files/SOAPdenovo2/ ;
安装SOAPaligner,下载地址为http://soap.genomics.org.cn/soapaligner.html
1. 对每个样本单独组装
组装命令:
SOAPdenovo-63mer all –s sample1.config –K 57 –o sample1 -d 1 -M 3 -u –F -p 10
SOAPdenovo-63mer all –s sample2.config –K 57 –o sample2 -d 1 -M 3 -u –F -p 10
SOAPdenovo-63mer all –s sample3.config –K 57 –o sample3 -d 1 -M 3 -u –F -p 10
参数说明:
-s config配置文件;
-K k-mer的长度;
-o 输出文件前缀;
-d [INT], kmerFreqCutoff, 去除频数小于等于该值的kmers,默认为0;
-M [INT], mergeLevel连接contigs时, 合并相似序列的等级,默认为1,最小值为0,最大值为3,
-u 构建scaffold前屏蔽过高或过低覆盖度contigs,默认屏蔽;
-F 利用reads对scaffolds的gap进行填补,默认不执行;
-p 需要使用的cpu数目,默认8;
输出结果文件:
Sample1.scafSeq:scaffold的fasta序列文件;
Sample1.scafStatistics: scaffold和conitg的统计文件,分布统计了scaffold和contig的数目,序列的一些统计信息,GC含量,N50及N90值等;
2. 通过re-mapping获取每个样本未参与组装的reads
比对命令:
2bwt-builder sample1.scafSeq #对scafSeq构建索引;
Soap -p 6 -r 2 -m 200 -x 400 -a ./cleandata/sample1.clean.fq1.gz -b ./sample1/sample1.clean.fq2.gz -D sample1.scafSeq.index -o sample1_PE.soap -2 sample1_SE.soap -u sample1_UN.fasta
参数说明:
-p 处理器数目,默认为1;
-r 比对到多个位置的序列如何输出,1表示不输出,2表示任意输出一次,3表示全部输出,默认为1;
-m 最小插入片段长度,默认400,single-end不需要设置该参数;
-x 最大插入片段长度,默认600,single-end不需要设置该参数;
-a 输入文件,pair-end时,输入其中一端文件;
-b single-end不需要设置,pair-end输入另一端文件;
-D 参考序列索引文件;
-o 输出文件;
-2 输出比对上但是不是成对reads比对上的序列的文件。Single-end不需要设置,因为其输出文件都是不成对的序列文件。
-u 没有比对上的reads;
输出结果文件:
sample1_PE.soap:能比对上组装后的参考序列且reads成对存在的比对文件;
sample1_SE.soap: 能比对上组装后的参考序列但reads不成对存在的比对文件;
sample1_UN.fasta:不能比对上组装后的参考序列,通常为fasta格式;
3. 将所有样本中不参与组装的reads混合组装
首先可以编写个小脚本将不能比对上参考序列中成对存在的reads提取出来,假设样本sample1的unmapping 的成对reads命名为sample1.unmapped.fq1.gz,sample2.unmapped.fq2.gz
配置混合组装的mix.config文件,文件内容如下:
混合组装命令:
SOAPdenovo-63mer all –s mix.config –K 57 –o mix -d 1 -M 3 -u –F -p 10
参数和输出结果文件见单个样本组装部分。
宏基因组组装的实战操作部分就介绍到这里,大家可以动起手来一一实践了,下两期小编将为大家带来宏基因组注释模块,包括物种注释和基因注释两部分,敬请期待!
供稿:协云基因微生物事业部 韩娜
生信圈