1.SPAdes的使用目的
当前版本的SPAdes与Illumina或IonTorrent读取一起使用,并且能够使用PacBio,Oxford Nanopore和Sanger读取提供混合组件。您还可以提供将用作长读数的其他重叠群。
版本3.13.0的SPAdes支持配对末端读取,配对和非配对读取。SPAdes可以同时作为几个配对端和配对库的输入。请注意,SPAdes最初是为小型基因组设计的。它在细菌(单细胞MDA和标准分离株),真菌和其他小基因组上进行了测试。SPAdes不适用于较大的基因组(例如哺乳动物大小的基因组)。出于此目的,您可以自担风险使用它。
2.安装
SPAdes需要64位Linux系统或Mac OS和Python(支持的版本是Python2:2.4-2.7,以及Python3:3.2和更高版本)预先安装在其上。要获得SPAdes,您可以下载二进制文件或下载源代码并自行编译。
如果安装成功,以下文件将放在bin
目录中:
-
spades.py
(主要可执行脚本) -
metaspades.py
(metaSPAdes的主要可执行脚本) -
plasmidspades.py
(plasmidSPAdes的主要可执行脚本) -
rnaspades.py
(rnaSPAdes的主要可执行脚本) -
truspades.py
(truSPAdes的主要可执行脚本) -
spades-core
(装配模块) -
spades-gbuilder
(独立图形构建器应用程序) -
spades-gmapper
(独立长读图对齐器) -
spades-kmercount
(独立的k-mer计数应用程序) -
spades-hammer
(读取Illumina读数的纠错模块) -
spades-ionhammer
(读取IonTorrent读取错误纠正模块) -
spades-bwa
(错配校正所需的BWA对准模块) -
spades-corrector-core
(不匹配校正模块) -
spades-truseq-scfcorrection
(truSPAdes管道中使用的可执行文件)
2.1下载SPAdes Linux二进制文件
要下载SPAdes Linux二进制文件并将其解压缩,请转到您希望安装和运行SPAdes的目录:
wget http://cab.spbu.ru/files/release3.13.0/SPAdes-3.13.0-Linux.tar.gz
tar -xzf SPAdes-3.13.0-Linux.tar.gz
cd SPAdes-3.13.0-Linux/bin/
SPAdes随时可用,无需进一步的安装步骤。我们还建议将SPAdes安装目录添加到PATH
变量中。
2.2下载适用于Mac的SPAdes二进制文件
要获取Mac的SPAdes二进制文件,请转到您希望安装和运行SPAdes的目录:
curl http://cab.spbu.ru/files/release3.13.0/SPAdes-3.13.0-Darwin.tar.gz -o SPAdes-3.13.0-Darwin.tar.gz
tar -zxf SPAdes-3.13.0-Darwin.tar.gz
cd SPAdes-3.13.0-Darwin/bin/
与在Linux中一样,SPAdes已准备就绪,无需进一步的安装步骤。我们还建议将SPAdes安装目录添加到PATH
变量中。
出于测试目的,SPAdes附带一个玩具数据集(读数与大肠杆菌的前1000bp对齐)。要在此数据集上尝试SPAdes,请运行:
<spades installation dir>/spades.py --test
如果您将SPAdes安装目录添加到PATH
变量,则可以运行:
spades.py --test
为简单起见,我们进一步假设将SPAdes安装目录添加到PATH
变量中。
如果安装成功,您将在日志末尾找到以下信息:
===== Assembling finished. Used k-mer sizes: 21, 33, 55
* Corrected reads are in spades_test/corrected/
* Assembled contigs are in spades_test/contigs.fasta
* Assembled scaffolds are in spades_test/scaffolds.fasta
* Assembly graph is in spades_test/assembly_graph.fastg
* Assembly graph in GFA format is in spades_test/assembly_graph.gfa
* Paths in the assembly graph corresponding to the contigs are in spades_test/contigs.paths
* Paths in the assembly graph corresponding to the scaffolds are in spades_test/scaffolds.paths
======= SPAdes pipeline finished.
========= TEST PASSED CORRECTLY.
SPAdes log can be found here: spades_test/spades.log
Thank you for using SPAdes!
3.运行SPAdes
3.1 SPAdes输入
SPAdes在FASTA和FASTQ中用作输入配对末端读数,配对对和单(未配对)读数。对于IonTorrent数据,SPAdes还支持未映射BAM格式的非配对读取(如Torrent服务器生成的那种)。但是,为了运行读取错误纠正,读取应采用FASTQ或BAM格式。由于SPAdes不对这些类型的数据进行纠错,因此可以以两种格式提供Sanger,Oxford Nanopore和PacBio CLR读取。
要运行SPAdes 3.13.0,您至少需要一个以下类型的库:
- Illumina配对末端/高质量配对/非配对读数
- IonTorrent配对端/高质量配对/非配对读取
- PacBio CCS读取
Illumina和IonTorrent库不应组装在一起。所有其他类型的输入数据都是兼容的。如果只有PacBio CLR,Oxford Nanopore,Sanger读数或其他重叠群可用,则不应使用SPAdes。
SPAdes支持仅配对配对。但是,我们建议在这种情况下仅使用高质量的配对库(例如,没有配对端部件)。我们使用Illumina Nextera配对测试了仅配对配管。在这里查看更多。
当前版本的SPA还支持LucigenNxSeq®LongMate Pair库,它们始终具有正向反向。如果您希望使用LucigenNxSeq®LongMate Pair读取,则需要在您的计算机上预安装Python 正则表达式库。您可以使用Python pip-installer安装它:
pip install regex
或使用Easy Install Python模块:
easy_install regex
笔记:
- 强烈建议根据其插入大小(从最小到最长)提供多个配对末端和配对对库。
- 不建议在低覆盖率(小于5)的PacBio读取上运行SPAdes。
- 我们建议不要对大型基因组的PacBio读数运行SPAdes。
- SPAdes接受gzip压缩文件。
读对库
通过使用命令行界面,您可以指定最多九个不同的配对库,最多九个配对库以及最多九个高质量的配对库。如果您想使用更多,可以使用YAML数据集文件。我们进一步将配对末端和配对对库称为读取对库。
默认情况下,SPAdes假定配对端和高质量配对读取具有正向反向(fr)方向,而通常的配对具有反向(rf)方向。但是,可以使用SPAdes选项为任何库设置不同的方向。
为了区分成对的读数,我们将它们称为左读和右读。对于正向反向,正向读数对应于左侧读数,反向读取对应于右侧。类似地,在反向前向中,左和右读取分别对应于反向和正向读取等。
每个读取对库可以存储在多个文件或几对文件中。配对读取可以以两种不同的方式组织:
- 在文件对中。在这种情况下,左右读取放在不同的文件中,并在相应的文件中以相同的顺序。
- 在交错文件中。在这种情况下,读取是隔行扫描的,因此每次正确的读取都在相应的成对左读取之后进行。
例如,Illumina在两个文件中生成配对末端读取:R1.fastq
和R2.fastq
。如果选择存储文件对中的读取,请确保从R1.fastq
相应的配对读取中读取的每个读取R2.fastq
都放在相同行号的相应配对文件中。如果您选择使用交错文件,则每次读取R1.fastq
都应该跟随相应的配对读取R2.fastq
。
如果在组装之前使用了适配器和/或质量修整软件,则可以将具有孤立读取的文件作为相应读取对库的“单个读取文件”提供。
如果您已合并了配对端(非配对或高质量配对)库中的某些读取(使用工具sa BBMerge或STORM),则应将该结果读取的文件作为“合并读取文件”提供“为相应的图书馆。
请注意,必须为同一个库提供具有剩余未合并的左/右读取(单独或隔行扫描)的非空文件(对于SPAdes,以正确检测原始读取长度)。
在不太可能的情况下,您的配对(或高质量配对)库中的某些读取被“合并”,您应该将结果读取作为SEPARATE单读取库提供。
不成对(单读)库
通过使用命令行界面,您可以指定最多九个不同的单读取库。要输入更多库,可以使用YAML数据集文件。
假设单一的图书馆具有高质量和合理的覆盖范围。例如,您可以将PacBio CCS读取作为单读取库提供。
请注意,您不应将PacBio CLR,Sanger读取或其他contigs指定为单读取库,每个都有一个单独的选项。
PacBio和Oxford Nanopore读到
SPAdes可以作为输入无限数量的PacBio和Oxford Nanopore库。
PacBio CLR和Oxford Nanopore读数用于混合组装(例如Illumina或IonTorrent)。无需预先更正此类数据。SPAdes将使用PacBio CLR和Oxford Nanopore读取间隙闭合和重复分辨率。
对于PacBio,您只需要以FASTQ / FASTA格式过滤子网。使用--pacbio
选项提供这些过滤的子读取。Oxford Nanopore读数提供--nanopore
选项。
PacBio CCS /读取插入读取或预校正(使用第三方软件)PacBio CLR / Oxford Nanopore读取可以简单地作为单个读取提供给SPAdes。
额外的重叠群
如果您有其他汇编程序生成的相同基因组的重叠群,并且您希望将它们合并到SPAdes程序集中,则可以使用--trusted-contigs
或指定其他重叠群--untrusted-contigs
。当高质量的重叠群可用时,使用第一个选项。这些重叠群将用于图形构建,间隙闭合和重复分辨率。第二种选择用于可能具有更多错误或质量未知的重叠群的不太可靠的重叠群。这些重叠群仅用于间隙闭合和重复分辨。额外的重叠群数量是无限的。
请注意,SPAdes不使用密切相关物种的基因组进行装配。只应指定相同基因组的重叠群。
3.2 SPAdes命令行选项
要从命令行运行SPAdes,请键入
spades.py [options] -o <output_dir>
请注意,我们假设将SPAdes安装目录添加到PATH
变量中(否则提供SPAdes可执行文件的完整路径:) <spades installation dir>/spades.py
。
基本选项
-o <output_dir>
指定输出目录。必填选项。
--sc
MDA(单个单元)数据需要此标志。
--meta
(相同metaspades.py
)
在汇编宏基因组数据集时,建议使用此标志(运行metaSPAdes,有关详细信息,请参阅纸张)。目前metaSPAdes仅支持单必须加以短读库配对末端(我们希望能尽快取消这种限制)。此外,您可以提供长读取(例如使用--pacbio
或--nanopore
选项),但宏基因组的混合组装仍然是一个实验性管道,并不能保证最佳性能。它不支持仔细模式(不匹配校正不可用)。此外,您无法指定metaSPAdes的覆盖率截止值。请注意,metaSPAdes可能对数据中剩余的技术序列的存在非常敏感(最明显的是适配器读取),请运行质量控制并相应地预处理数据。
--plasmid
(相同plasmidspades.py
)
当仅汇编来自WGS数据集的质粒时需要此标记(运行plasmidSPAdes,参见论文了解算法详情)。注意,plasmidSPAdes与metaSPAdes和单细胞模式不兼容。此外,我们不建议在多个库上运行plasmidSPAdes。有关plasmidSPAdes输出详细信息,请参见第3.6节。
--rna
(相同rnaspades.py
)
组装RNA-Seq数据集时应使用此标志(运行rnaSPAdes)。要了解更多信息,请参阅rnaSPAdes手册。
--iontorrent
组装IonTorrent数据时需要此标志。允许BAM文件作为输入。使用此选项之前,请仔细阅读第3.3节。
--test
在玩具数据集上运行SPAdes; 见2.4节。
-h
(或--help
)
打印帮助。
-v
(或--version
)
打印SPAdes版本。
管道选项
--only-error-correction
仅执行读取错误纠正。
--only-assembler
仅运行装配模块。
--careful
试图减少不匹配和短期插入的数量。还运行MismatchCorrector - 一个后处理工具,它使用BWA工具(随SPAdes一起提供)。建议仅将此选项用于小基因组的装配。我们强烈建议不要将它用于大中型真核基因组。请注意,metaSPAdes和rnaSPAdes不支持此选项。
--continue
从最后一个可用检查点开始,从指定的输出文件夹继续运行SPAdes。检查点是在以下情况下完成的:
- 纠错模块完成
- 完成装配模块的每个指定K值的迭代
- 对重叠群或支架完成错配校正
例如,如果指定的K值为21,33和55且SPAdes在装配阶段停止或崩溃且K = 55,则可以使用--continue
指定相同输出目录的选项运行SPAdes 。SPAdes将从装配阶段开始继续运行,K = 55.错误校正模块和K等于21和33的迭代将不再运行。如果--continue
设置,则唯一允许的选项是-o <output_dir>
。
--restart-from <check_point>
从指定的检查点开始,从指定的输出文件夹重新启动SPAdes。检查点是:
-
ec
- 从错误纠正开始 -
as
- 从第一次迭代重启装配模块 -
k<int>
- 从具有指定k值的迭代重新启动,例如k55(在RNA-Seq模式下不可用) -
mc
- 重新启动不匹配校正 -
last
- 从最后一个可用的检查点重启(类似于--continue
)
与该--continue
选项相反,您可以在使用时更改某些选项--restart-from
。您可以更改任何选项,除了:所有基本选项,用于指定输入数据(包括--dataset
)的所有选项,--only-error-correction
选项和--only-assembler
选项。例如,如果运行的k值为21,33,55且没有不匹配校正的汇编程序,则可以添加一次k = 77的迭代,并通过运行带有以下选项的SPAdes运行不匹配校正步骤:
--restart-from k55 -k 21,33,55,77 --mismatch-correction -o <previous_output_dir>
。
由于所有文件都将被覆盖,因此如果需要,请不要忘记从上一次运行中复制程序集。
--disable-gzip-output
强制读错误纠正模块不压缩纠正的读数。如果未设置此选项,则更正的读取将采用*.fastq.gz
格式。
输入数据
*** 指定单个库(配对端或单读)***
--12 <file_name>
具有隔行正向和反向双端读取的文件。
-1 <file_name>
带正向读取的文件。
-2 <file_name>
带反向读取的文件。
--merged <file_name>
包含合并配对读取的文件。
如果库的属性允许,则可以使用特殊软件合并重叠的双端读取。
必须为同一个库提供具有(剩余)未合并左/右读取(单独或隔行扫描)的非空文件,以便正确检测原始读取长度。
-s <file_name>
带有不成对读取的文件。
*** 指定多个库***
- ** 单读库**
--s**<#>** <file_name>
单读库编号的文件**<#>**
(**<#>**
= 1,2,..,9)。例如,对于第一个配对端库,选项为: --s1 <file_name>
不要-s
对单读取库使用选项,因为它为第一个配对端库指定了未配对的读取。
- ** 配对端库**
--pe**<#>**-12 <file_name>
带有隔行读取的文件,用于配对端库号**<#>**
(**<#>**
= 1,2,..,9)。例如,对于第一个单读库,选项是: --pe1-12 <file_name>
--pe**<#>**-1 <file_name>
左侧的文件读取配对末级库号**<#>**
(**<#>**
= 1,2,..,9)。
--pe**<#>**-2 <file_name>
具有正确读取的配对末端库号**<#>**
(**<#>**
= 1,2,..,9)的文件。
--pe**<#>**-m <file_name>
具有合并结束库编号**<#>**
(**<#>**
= 1,2,..,9)的合并读取的文件
如果库的属性允许,则可以使用特殊软件合并成对读取。必须为同一个库提供具有(剩余)未合并左/右读取(单独或隔行扫描)的非空文件,以便正确检测原始读取长度。
--pe**<#>**-s <file_name>
来自配对端库编号**<#>**
(**<#>**
= 1,2,..,9)的
未配对读取的文件例如,在错误更正过程中,配对读取可能会变为不配对。
--pe**<#>**-**<or>**
配对末端库号的读取对的相对方向**<#>**
(**<#>**
= 1,2,...,9; **<or>**
=“fr”,“rf”,“ff”)。
配对端库的默认方向是forward-reverse(--> <--
)。例如,要为第二个配对末端库指定反向前向,您应该使用标志: --pe2-rf
不应与RNA-Seq数据的FR和RF链特异性混淆(参见rnaSPAdes手册)。
- ** 配对库**
--mp**<#>**-12 <file_name>
具有隔行读取的文件,用于配对库编号**<#>**
(**<#>**
= 1,2,..,9)。
--mp**<#>**-1 <file_name>
左边的文件读取配对库编号**<#>**
(**<#>**
= 1,2,..,9)。
--mp**<#>**-2 <file_name>
具有正确读取的配对库编号**<#>**
(**<#>**
= 1,2,..,9)。
--mp**<#>**-**<or>**
配对库编号**<#>**
(**<#>**
= 1,2,..,9; **<or>**
=“fr”,“rf”,“ff”)的读取方向。
配对库的默认方向是reverse-forward(<-- -->
)。例如,要为第一个配对库指定前向 - 前向,您应该使用该标志: --mp1-ff
- ** 高质量的配对库**(可用于配对仅装配)
--hqmp**<#>**-12 <file_name>
具有隔行读取的文件,用于高质量的配对库编号**<#>**
(**<#>**
= 1,2,..,9)。
--hqmp**<#>**-1 <file_name>
左侧的文件读取高质量的配对库编号**<#>**
(**<#>**
= 1,2,..,9)。
--hqmp**<#>**-2 <file_name>
具有正确读取的文件用于高质量的配对库编号**<#>**
(**<#>**
= 1,2,..,9)。
--hqmp**<#>**-s <file_name>
具有未配对读取的文件,来自高质量的配对库编号**<#>**
(**<#>**
= 1,2,..,9)
--hqmp**<#>**-**<or>**
高质量配偶库编号**<#>**
(**<#>**
= 1,2,...,9; **<or>**
=“fr”,“rf”,“ff”)的读取方向。
高质量配对库的默认方向是forward-reverse(--> <--
)。例如,要为第一个高质量配对库指定反向前向,您应该使用以下标志: --hqmp1-rf
- ** LucigenNxSeq®长配对库**(详见3.1节)
--nxmate**<#>**-1 <file_name>
左边的文件读取LucigenNxSeq®LongMate Pair库编号**<#>**
(**<#>**
= 1,2,..,9)。
--nxmate**<#>**-2 <file_name>
文件右侧读取LucigenNxSeq®LongMate Pair库编号**<#>**
(**<#>**
= 1,2,..,9)。
*** 指定混合装配的数据***
--pacbio <file_name>
使用PacBio CLR读取文件。对于PacBio CCS读取使用-s
选项。有关PacBio读取的更多信息,请参见第3.1节。
--nanopore <file_name>
使用Oxford Nanopore的文件读取。
--sanger <file_name>
Sanger的文件读取
--trusted-contigs <file_name>
相同基因组的可靠重叠群,可能没有错误组装和其他错误率很低(例如错配和插入错误)。此选项不适用于相关物种的重叠群。
--untrusted-contigs <file_name>
相同基因组的重叠群,其质量是平均的或未知的。可以使用质量差的重叠群但可能在装配中引入错误。该选项也不适用于相关物种的重叠群。
*** 使用YAML数据集文件指定输入数据(高级)***
为SPAdes指定输入数据集的另一种方法是创建YAML数据集文件。通过使用YAML文件,您可以提供无限数量的配对端,配对和非配对库。基本上,YAML数据集文件是一个文本文件,其中输入库以方括号中的逗号分隔列表形式提供。每个库都以大括号的形式提供,以逗号分隔的属性列表。可以使用以下属性:
- 方向(“fr”,“rf”,“ff”)
- type(“paired-end”,“mate-pairs”,“hq-mate-pairs”,“single”,“pacbio”,“nanopore”,“sanger”,“trusted-contigs”,“untrusted-contigs”)
- 隔行读取(以隔行扫描读取的逗号分隔文件列表)
- left read(以逗号分隔的左侧读取文件列表)
- right read(以逗号分隔的正确读取文件列表)
- 单个读取(以逗号分隔的文件列表,包含单个读取或配对库中的未配对读取)
- 合并读取(以逗号分隔的文件列表,包含合并读取)
要正确指定库,您应该提供其类型和至少一个带有读取的文件。对于ONT,PacBio,Sanger和重叠群库,您只能提供单次读取。Orientation是一个可选属性。对于配对端库,其默认值为“fr”(正向反向),对于配对库,其默认值为“rf”(反向前向)。
每个属性的值在冒号后给出。逗号分隔的文件列表应在方括号中给出。对于每个文件,您应该使用双引号提供其完整路径。确保具有正确读取的文件的顺序与左读取的相应文件的顺序相同。
例如,如果您将一个配对端库拆分为两对文件:
lib_pe1_left_1.fastq
lib_pe1_right_1.fastq
lib_pe1_left_2.fastq
lib_pe1_right_2.fastq
一个配偶库:
lib_mp1_left.fastq
lib_mp1_right.fastq
和PacBio CCS和CLR读取:
pacbio_ccs.fastq
pacbio_clr.fastq
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"
]
}
]
创建YAML文件后,使用.yaml
扩展名保存(例如as my_data_set.yaml
)并使用以下--dataset
选项运行SPAdes :
--dataset <your YAML file>
注意:
- 该
--dataset
选项不能与指定输入数据的任何其他选项一起使用。 - 我们建议在单个库块中嵌套具有相同数据类型的长读取的所有文件。
高级选项
-t <int>
(或--threads <int>
)
线程数。默认值为16。
-m <int>
(或--memory <int>
)
以Gb为单位设置内存限制。SPAdes如果达到此限制则终止。默认值为250 Gb。实际消耗的RAM量将低于此限制。确保给定机器的该值正确。SPAdes使用限制值自动确定各种缓冲区的大小等。
--tmp-dir <dir_name>
从读取错误纠正中设置临时文件的目录。默认值为<output_dir>/corrected/tmp
-k <int,int,...>
要使用的以逗号分隔的k-mer大小列表(所有值必须为奇数,小于128并按升序列出)。如果--sc
设置,则默认值为21,33,55。对于多细胞数据集,使用最大读取长度自动选择K值(有关详细信息,请参阅组装长Illumina配对读数的注释)。要正确选择IonTorrent数据的K值,请阅读3.3节。
--cov-cutoff <float>
读取覆盖率截止值。必须是正浮点值,或“自动”或“关闭”。默认值为“关闭”。设置为“auto”时,SPAdes会使用保守策略自动计算覆盖率阈值。请注意,metaSPAdes不支持此选项。
--phred-offset <33 or 64>
输入读数的PHRED质量偏移可以是33或64.如果未指定,将自动检测。
例子
要测试玩具数据集,您还可以从SPAdes bin
目录运行以下命令:
spades.py --pe1-1 ../share/spades/test_dataset/ecoli_1K_1.fq.gz \
--pe1-2 ../share/spades/test_dataset/ecoli_1K_2.fq.gz -o spades_test
如果您将库分成几对文件,例如:
lib1_forward_1.fastq
lib1_reverse_1.fastq
lib1_forward_2.fastq
lib1_reverse_2.fastq
确保以相同的顺序给出相应的文件:
spades.py --pe1-1 lib1_forward_1.fastq --pe1-2 lib1_reverse_1.fastq \
--pe1-1 lib1_forward_2.fastq --pe1-2 lib1_reverse_2.fastq \
-o spades_output
具有隔行扫描配对结束读取的文件或具有未配对读取的文件可以按任何顺序指定,每个选项只有一个文件,例如:
spades.py --pe1-12 lib1_1.fastq --pe1-12 lib1_2.fastq \
--pe1-s lib1_unpaired_1.fastq --pe1-s lib1_unpaired_2.fastq \
-o spades_output
如果您有多个配对和配对读取,例如:
-
配对库1
lib_pe1_left.fastq lib_pe1_right.fastq
- 配对库1
lib_mp1_left.fastq lib_mp1_right.fastq ``` * 配对图书馆2
lib_mp2_left.fastq lib_mp2_right.fastq
确保将每个库对应的文件组合在一起:
spades.py --pe1-1 lib_pe1_left.fastq --pe1-2 lib_pe1_right.fastq \ --mp1-1 lib_mp1_left.fastq --mp1-2 lib_mp1_right.fastq \ --mp2-1 lib_mp2_left.fastq --mp2-2 lib_mp2_right.fastq \ -o spades_output
如果您有IonTorrent未配对读数,PacBio CLR和其他可靠的重叠群:
it_reads.fastq pacbio_clr.fastq contigs.fasta
使用以下命令运行SPAdes:
spades.py --iontorrent -s it_reads.fastq \ --pacbio pacbio_clr.fastq --trusted-contigs contigs.fastq \ -o spades_output
如果将单读取库拆分为多个文件:
unpaired1_1.fastq unpaired1_2.fastq unpaired1_3.fasta
将它们指定为一个库:
spades.py --s1 unpaired1_1.fastq \ --s1 unpaired1_2.fastq --s1 unpaired1_3.fastq \ -o spades_output
如果需要,可以混合用于指定输入数据的所有选项,但请确保将每个库的文件分组,并且具有左右配对读取的文件按相同顺序列出。 ### 3.3组装IonTorrent读数 仅支持FASTQ或BAM文件作为输入。 对于IonTorrent来说,选择k-mer长度并非易事。如果数据集或多或少是常规的(良好的覆盖率,不是高GC等),那么使用我们的[推荐进行长读取](http://cab.spbu.ru/files/release3.13.0/manual.html#sec3.4)(例如使用k-mer长度组装21,33,55,77,99,127)。然而,由于错误率增加,可能需要k-mer长度的一些变化(例如,选择较短的k-mer长度)。例如,如果您使用k-mer长度21,33,55,77运行SPAdes,然后决定使用更多迭代和更大的K值组合相同的数据集,则可以再次运行SPAdes指定相同的输出文件夹和以下选项:`--restart-from k77 -k 21,33,55,77,99,127 --mismatch-correction -o <previous_output_dir>`。不要忘记复制前一次运行中的重叠群和支架。我们计划在下一版本中解决为IonTorrent读取选择k-mer长度的问题。 您可能根本不需要对Hi-Q酶进行错误纠正。但是,我们建议您尝试使用和不使用错误更正来组合数据,并选择最佳变体。 对于非平凡数据集(例如,具有高GC,低或不均匀覆盖),我们建议启用单细胞模式(设置`--sc`选项)并使用k-mer长度21,33,55。 ### 3.4组装长Illumina配对读数(2x150和2x250) DNA测序技术的最新进展导致阅读长度的快速增加。如今,通常情况下具有由Illumina MiSeq或HiSeq2500产生的2x150或2x250双末端读数组成的数据集。但是,单独使用较长的读数不会自动提高装配质量。需要一个能够正确利用它们的汇编程序。 SPAdes使用迭代k-mer长度可以从长配对末端读数的全部潜力中获益。目前,必须手动设置汇编程序选项,但我们计划尽快合并必要选项的自动计算。 请注意,除读取长度外,插入长度也很重要。不建议用一对250bp的读数对300bp片段进行测序。我们建议使用350-500 bp片段,2x150读数和550-700 bp片段,2x250读数。 #### 读取长度为2x150的多单元数据集 不要关闭SPAdes错误更正(BayesHammer模块),它包含在SPAdes默认管道中。 如果你有足够的覆盖率(50x +),那么你可能想尝试设置21,33,55,77的k-mer长度(默认选择长度为150bp的读取)。 确保运行汇编程序,并`--careful`选择最小化最终重叠群中不匹配的数量。 我们建议您在每次迭代结束时检查SPAdes日志文件,以控制重叠群的平均覆盖率。 对于在运行汇编程序之前更正的读取:
spades.py -k 21,33,55,77 --careful --only-assembler <your reads> -o spades_output
要更正和组装读数:
spades.py -k 21,33,55,77 --careful <your reads> -o spades_output
#### 读取长度为2 x 250的多单元数据集 不要关闭SPAdes错误更正(BayesHammer模块),它包含在SPAdes默认管道中。 默认情况下,我们建议以22的增量增加k-mer长度,直到k-mer长度达到127\. k-mer的确切长度取决于覆盖范围:k-mer长度127对应于50x k-mer覆盖率和更高。对于读取长度250bp,SPAdes自动选择等于21,33,55,77,99,127的K值。 确保使用`--careful`选项运行汇编程序,以最大限度地减少最终重叠群中的不匹配数。 我们建议您在每次迭代结束时检查SPAdes日志文件,以控制重叠群的平均覆盖率。 对于在运行汇编程序之前更正的读取:
spades.py -k 21,33,55,77,99,127 --careful --only-assembler <your reads> -o spades_output
要更正和组装读数:
spades.py -k 21,33,55,77,99,127 --careful <your reads> -o spades_output
#### 读取长度为2 x 150或2 x 250的单节数据集 建议使用默认的k-mer长度。对于单细胞数据集,SPAdes选择k-mer大小21,33和55。 但是,充分利用长读取的优势可能会很棘手。考虑联系我们获取更多信息并讨论装配策略。 ### 3.5 SPAdes输出 SPAdes存储所有输出文件`<output_dir> `,由用户设置。 * `<output_dir>/corrected/`目录包含由BayesHammer在`*.fastq.gz`文件中更正的读数; 如果禁用压缩,则读取将存储在未压缩的 `*.fastq`文件中* `<output_dir>/scaffolds.fasta` 包含产生的支架(建议用作结果序列)* `<output_dir>/contigs.fasta` 包含产生的重叠群 * `<output_dir>/assembly_graph.gfa`包含[GFA 1.0格式的](https://github.com/GFA-spec/GFA-spec/blob/master/GFA1.md)SPAdes装配图和支架路径[](https://github.com/GFA-spec/GFA-spec/blob/master/GFA1.md) * `<output_dir>/assembly_graph.fastg`包含[FASTG格式的](http://fastg.sourceforge.net/FASTG_Spec_v1.00.pdf) SPAdes汇编图[](http://fastg.sourceforge.net/FASTG_Spec_v1.00.pdf) * `<output_dir>/contigs.paths` 包含与contigs.fasta对应的程序集图中的路径(请参阅下面的详细信息) * `<output_dir>/scaffolds.paths` 包含与scaffolds.fasta对应的程序集图中的路径(请参阅下面的详细信息) SPAdes输出FASTA文件中的重叠群/支架名称具有以下格式: `>NODE_3_length_237403_cov_243.207` 这`3`是重叠群/支架的数量,`237403`是核苷酸中的序列长度,并且`243.207`是使用的最后(最大)k值的k聚体覆盖。请注意,k-mer覆盖率始终低于读取(每个碱基)覆盖率。 通常,SPAdes使用两种技术将重叠群连接到支架上。第一个依赖于读取对并尝试估计分离重叠群的间隙的大小。第二个依赖于装配图:例如,如果两个重叠群由复杂的串联重复分开,无法精确解析,则将重叠群连接到具有100bp的固定间隙大小的支架中。SPAdes生产的重叠群不含N个符号。 要查看FASTG和GFA文件,我们建议使用[Bandage可视化工具](http://rrwick.github.io/Bandage/)。注意,存储的序列`assembly_graph.fastg`在重复分辨之前对应于重叠群(组装图的边缘)。与重复分辨后的重叠群相对应的路径(脚手架)以Bandage接受的格式存储在`contigs.paths`(`scaffolds.paths`)中(有关详细信息,请参阅[Bandage wiki](https://github.com/rrwick/Bandage/wiki/Graph-paths))。下面给出了这个例子。 让具有名称的重叠群`NODE_5_length_100000_cov_215.651`由装配图的以下边组成: <pre style="user-select: text !important;"> `>EDGE_**2**_length_33280_cov_199.702 >EDGE_**5**_length_84_cov_321.414**'** >EDGE_**3**_length_111_cov_175.304 >EDGE_**5**_length_84_cov_321.414**'** >EDGE_**4**_length_66661_cov_223.548` </pre> 然后,`contigs.paths`将包含以下记录: <pre style="user-select: text !important;"> `NODE_5_length_100000_cov_215.651 2+,5-,3+,5-,4+` </pre> 由于Bandage的当前版本不接受具有间隙的路径,因此在组装图中跳过间隙的相应的contigs / scaffolds的路径在间隙位置处由分号分开。例如,以下记录 <pre style="user-select: text !important;"> `NODE_3_length_237403_cov_243.207 21-,17-,15+,17-,16+; 31+,23-,22+,23-,4-` </pre> 状态`NODE_3_length_237403_cov_243.207`对应于具有10条边的路径,但跳过边`EDGE_16_length_21503_cov_482.709`和间隙之间的间隙`EDGE_31_length_140767_cov_220.239`。 完整的`<output_dir>`内容列表如下: <pre style="user-select: text !important;"> `scaffolds.fasta`- *得到的支架(推荐用作得到的序列)* `contigs.fasta` - *得到的毗连群* `assembly_graph.fastg` - *装配图表* `contigs.paths` - *重叠群在装配图上的路径* `scaffolds.paths` - *支架路径在装配图表* `before_rr.fasta` - *重叠群重复分辨率之前* `corrected/`- *文件从读纠错* `configs/` - *配置文件读取纠错* `corrected.yaml` - *内部配置文件* 输出具有更正读数的文件 `params.txt`- *有关此次运行中SPAdes参数的信息* `spades.log` - *SPAdes日志* `dataset.info` - *内部配置文件* `input_dataset.yaml` - *内部YAML数据集文件* `K<##>/` - *包含运行中K = <##>的中间文件的目录。这些文件不应用作汇编结果; 在上述文件中使用产生的重叠群/支架。* </pre> 如果这些文件和目录存在于指定的文件和目录中,它们将覆盖它们`<output_dir>`。 ### 3.6 plasmidSPAdes输出 plasmidSPAdes仅输出来自推定质粒的DNA序列。输出文件名和格式与SPAdes中的相同(参见[上一](http://cab.spbu.ru/files/release3.13.0/manual.html#sec3.5)节),但有以下区别。对于所有的重叠群的名字`contigs.fasta`,`scaffolds.fasta` 和 `assembly_graph.fastg` 我们追加后缀`_component_X`,这里`X`是假定的质粒,该重叠群所属的ID。注意,质粒SPAdes可能无法分离相似的质粒,因此它们的重叠群可能具有相同的id。 ### 3.7装配评估 [QUAST](http://cab.spbu.ru/software/quast/)可用于生成单个组装的汇总统计数据(N50,最大重叠群长度,GC%,参考列表中的#个基因或内置基因发现工具等)。它还可以用于比较同一数据集的多个程序集的统计数据(例如,使用不同参数运行的SPAdes,或几个不同的汇编程序)。 ## 4.在SPAdes包中发布的独立二进制文件 ### 4.1 k-mer计数 要向SPAdes k-mer计数工具提供输入数据,`spades-kmercounter`您可以只指定[SPAdes支持的格式的](http://cab.spbu.ru/files/release3.13.0/manual.html#sec3.1)文件,不带任何标记(在所有选项之后)或提供[YAML格式的](http://cab.spbu.ru/files/release3.13.0/manual.html#yaml)数据集描述文件。 概要: `spades-kmercount [OPTION...] <input files>` 选项是: `-d, --dataset file <file name>` 数据集描述(采用YAML格式),忽略输入文件 `-k, --kmer <int>` k-mer长度(默认值:21) `-t, --threads <int>` 要使用的线程数(默认值:120) `-w, --workdir <dir name>` 要使用的工作目录(默认:当前目录) `-b, --bufsize <int>` 按线程排序缓冲区大小(以字节为单位)(默认值536870912) `-h, --help` 打印帮助信息 ### 4.2图形构造 图形构造工具`spades-gbuilder`有两个必需选项:[YAML格式的](http://cab.spbu.ru/files/release3.13.0/manual.html#yaml)数据集描述文件和输出文件名。 概要: `spades-gbuilder <dataset description (in YAML)> <output filename> [-k <value>] [-t <value>] [-tmpdir <dir>] [-b <value>] [-unitigs|-fastg|-gfa|-spades]` 其他选项包括: `-k <int>` 用于施工的k-mer长度(必须是奇数) `-t <int>` 线程数 `-tmpdir <dir_name> ` 要使用的临时目录 `-b <int>` 排序缓冲区大小(每个线程,以字节为单位) `-unitigs` 用于施工的k-mer长度(必须是奇数) `-fastg` FASTG格式的输出图 `-gfa` GFA1格式的输出图 `-spades` SPAdes内部格式的输出图 ### 4.3长读取图形对准器 用于将长读取与图形对齐的工具`spades-gmapper`有三个必需选项:[YAML格式的](http://cab.spbu.ru/files/release3.13.0/manual.html#yaml)数据集描述文件,GFA格式的图形文件和输出文件名。 概要: `spades-gmapper <dataset description (in YAML)> <graph (in GFA)> <output filename> [-k <value>] [-t <value>] [-tmpdir <dir>]` 其他选项包括: `-k <int>` 用于图形构造的k-mer长度 `-t <int>` 线程数 `-tmpdir <dir_name> ` 要使用的临时目录