1. SPAdes 简介
SPAdes 主要用于进行单细胞测序的细菌基因组组装,当然也能用于非单细胞测序数据。输入数据可以是 Illumina、IonTorrent reads,或 PacBio、Sanger reads,也可以把一些 contigs 序列作为 long reads 进行输入。该软件可以同时接受多组 paired-end、mate-pairs 和 unpaired reads 数据的输入。同时该软件有一个独立的模块用于进行杂合基因组的组装。
文献:Bankevich A, Nurk S, Antipov D, et al. SPAdes: a new genome assembly algorithm and its applications to single-cell sequencing[J]. Journal of Computational Biology, 2012, 19(5): 455-477.
软件说明文档:http://spades.bioinf.spbau.ru/release3.0.0/manual.html#sec2.1
SPAdes 包含多个独立模块:
BayesHammer: 用于 Illumina reads 的修正 IonHammer: 用于 IonTorrent 数据的修正 SPAdes: 用于基因组组装;K 值是软件自动选择的。 MismatchCorrector: 对组装结果 contigs 或 scaffolds 的 mismatch 和 sort indels 进行修正;此模块需要使用 BWA;默认下此模块是关闭的,但是推荐开启它。 dipSPAdes: 用于组装双倍型高杂合基因组;更多说明:dipSPAdes manual
2. SPAdes 下载和安装
从网页http://bioinf.spbau.ru/spades下载需要填写一些个人资料。
$ wget http://spades.bioinf.spbau.ru/release3.1.0/SPAdes-3.1.0-Linux.tar.gz $ tar -xzf SPAdes-3.1.0-Linux.tar.gz -C /opt/biosoft/ $ /opt/biosoft/SPAdes-3.1.0-Linux/bin/spades.py --test 测试运行
3. SPAdes 的使用
3.1 输入数据
SPAdes 3.0.0 的运行至少需要有以下一种数据:
Illumina paired-end/unpaired reads IonTorrent paired-end/unpaired reads PacBio CCS reads
并且,值得注意的是:Illumina 数据和 Ionorrent 数据不能同时用于组装; 仅有 mate-paired,PacBio CLR reads, Sanger reads 或 additional contigs 数据时,不应该使用 SPAdes 进行组装。
SPAdes 支持的 Paired-end 和 Mate-Paired 的数据,其数据需要为 fastq 格式,软件需要对其进行 reads 的 error correction 。同时, SPAdes 也支持使用 Sanger 或 PacBio CCS 的 reads 数据,但软件不能对此数据进行 error correction。
3.1.1 Read-pair 数据
Read-pair 数据输入到程序中有 3 种方式:
1. left 和 right 的 reads 分别在两个 fastq 文件中。
2. left 和 right 的 reads 交叉融合在一个 fastq 文件中。
3. 将所有的输入数据信息整合在一个 YAML 格式的文本文件中。
使用非 YAML 方式输入数据,这种方式最多能使用 5 组 paired-end 数据 和 5 组 mate-paired 数据。
仅有一个 library 数据时:
--12 file_name 12 表示后面接的文件是交叉融合的 paired 数据,下同。 -1 file_name 1 表示 left 数据 -2 file_name 2 表示 right 数据 -s file_name s 表示 single 数据, 也用于输入 PacBio CCS reads。
有多个 paired-end library 数据时:
--pe{int}-12 编号为 int 的 library 的交叉融合后的 paired 数据。int 取值只能是 1,2,3,4,5 。下同。 --pe{int}-1 编号为 int 的 library 的 left 数据 --pe{int}-2 编号为 int 的 library 的 right 数据 --pe{int}-s 编号为 int 的 library 的 single 数据 --pe{int}-{fr|rf|ff} 编号为 int 的 library 的数据的方向,默认为 --pe{int}-fr 。
有多个 mate-paired library 数据时:
--mp{int}-12 编号为 int 的 library 的交叉融合后的 paired 数据 --mp{int}-1 编号为 int 的 library 的 left 数据 --mp{int}-2 编号为 int 的 library 的 right 数据 --mp{int}-s 编号为 int 的 library 的 single 数据 --mp{int}-{fr|rf|ff} 编号为 int 的 library 的数据的方向,默认为 --mp{int}-rf 。
3.1.2 PacBio 数据
PacBio 数据有两种: CCS (circular consensus sequence) 和 CLR (continuous long read)。PacBio CLR 数据有利于杂合基因组的组装。
数据输入参数:
--pacbio 输入 PacBio CLR reads --sanger 输入 sanger reads
3.1.3 Additional contigs
--trusted-contigs 输入可信度高的 contigs,用于 graph construction, gap closure 和 repeat resolution。 --untrusted-contigs 输入可信度较低的 contigs, 用于gap closure 和 repeat resolution。
这两个参数不能输入其它邻近物种的基因组序列。仅用于输入同一个物种的基因组的 contigs 。
3.1.4 YAML 方式输入数据
--dataset YAML 格式的文件
[ { orientation: "fr", type: "paired-end", right reads: [ "/FULL_PATH_TO_DATASET/lib_pe1_right_1.fastq", "/FULL_PATH_TO_DATASET/lib_pe1_right_2.fastq" ], left reads: [ "/FULL_PATH_TO_DATASET/lib_pe1_left_1.fastq", "/FULL_PATH_TO_DATASET/lib_pe1_left_2.fastq" ] }, { orientation: "rf", type: "mate-pairs", right reads: [ "/FULL_PATH_TO_DATASET/lib_mp1_right.fastq" ], left reads: [ "/FULL_PATH_TO_DATASET/lib_mp1_left.fastq" ] }, { type: "single", single reads: [ "/FULL_PATH_TO_DATASET/pacbio_ccs.fastq" ] }, { type: "pacbio", single reads: [ "/FULL_PATH_TO_DATASET/pacbio_clr.fastq" ] } ]
3.2 参数
使用 spades.py 运行 SPAdes 程序:
$ /opt/biosoft/SPAdes-3.0.0-Linux/bin/spades.py [options] -o output_dir
参数:
-o output_dir 指定输出的文件夹 --sc 此 flag 用于 MDA (single-cell) 数据 --iontorrent 此 flag 用于 IonTorrent 数据的组装 --test 使用 test 数据运行 SPAdes,用于检测软件是否正确安装 -h | --help 打印帮助信息 --only-error-correction 仅仅执行 reads error correction 步骤 --only-assembler 仅仅运行组装模块 --careful 通过运行 MismatchCorrector 模块进行基因组上 mismatches 和 short indels 的修正。推荐使用此参数。 --continue 从上一次终止处继续运行程序。 --restart-from 从指定的位置重新开始运行程序。和上一个参数相比,此参数可以用于改变一些组装参数。可选的值有: ec 从 error correction 处开始 as 从 assembly module 处开始 k{int} 从指定的 k 值处开始 mc 从 mismatch correction 处开始 --disable-gzip-output 使用此参数来设定不对 corrected reads 进行压缩。默认下 corrected reads 是 .fastq.gz 格式的 -t int 使用的线程数,默认为16 -m int 设定内存的限制,单位为 Gb。如果程序使用的内存达到此值,则程序会终止运行。默认值是 250 。 --tmp-dir dir_name 设置 reads error correction 的临时文件存放路径。默认为 output_dir/corrected/tmp 。 -k int,int,... 由逗号分隔的 k-mer sizes。这些数值必须为奇数,要小于 128,且按升序排列。如果使用了 --sc 参数,则默认值为 21,33,55 。 若没有 --sc 参数,则程序会根据 reads 长度自动选择 k-mer 参数。 --phred-offset 碱基质量格式, 33 或 64
3.3 常用例子
单个 illumina paired-end 文库:
$ spades.py -o output_dir -1 reads1.fastq -2 reads2.fastq
多个 illumina paired-end 和 mate-paired 文库,以及 Pcabio sanger contigs 数据:
$ spades.py -o output_dir\ --pe1-1 pe1_1.fq --pe1-2 pe1_2.fq --pe2-1 pe2_1.fq --pe2-2 pe2_2.fq\ --mp1-1 mp1_1.fq --mp1-2 mp1_2.fq --mp2-1 mp2_1.fq --mp2-2 mp2_2.fq\ -s pacibo_ccs.fastq --pacbio pacbio_clr.fastq\ --sanger sanger.fa\ --trusted-contigs trusted_contig.fa\ --untrusted-contigs untrusted_contig.fa\ --careful -t 16 --phred-offset 33 -m 250 -k 21,33,55 [--sc]