Published at 2021-05-11 14:50
Author:maorf
View:2195
Trycycler是一种三代测序结果拼接工具,它可以将多个不同Nanopore/PacBio三代测序拼接软件产生的组装结果进行整合,进而产生一个最佳组装效果的一致基因组序列。
Trycycler在Linux和macOS上运行需要python3.6版本或者更高,其还需要python包如(Edlib, NumPy and SciPy),此外还需要外部工具包如Minisam、Minimap2、Mash、Muscle以及你想使用的基因组组装工具,在运行前因检查是否安装。
Trycycler的安装可通过conda、git、pip安装,具体安装过程点击此处。
测序仪器产出原始fast5文件经过basecalling (Nanopore Guppy等),输出fastq文件。在进行组装之前,我们利用fitlong软件来进行质控。
(genomics) user@server:~ # filtlong --min_length 1000 --keep_percent 95 input_reads.fastq.gz > reads.fastq #此处推荐用质量进行质控,保留95%数据
Basecalling一般由测序公司完成
为了给不同的第三方拼接软件,准备拼接用的数据,Trycycler从原clean reads集 (上一步质控输出的reads.fastq
文件)中进行随机抽样产生多组子数据集。
(genomics) user@server:~ # trycycler subsample --count 12 --min_read_depth 25 --reads reads.fastq --out_dir read_subsets #生成的结果在read_subsets/sample_*.fastq默认有12个
参数说明:
利用不同的基因组组装软件如Canu、flye、raven (便于命令行展示) 对12个子数据集进行组装。
(genomics) user@server:~ # flye --nano-raw read_subsets/sample_01.fastq --threads 64 --plasmids --out-dir assembly_01
(genomics) user@server:~ # canu -p assembly_02 -d assembly_02 genomeSize=<number>[g|m|k] -nanopore-raw read_subsets/sample_02.fastq
(genomics) user@server:~ # raven --threads 64 read_subsets/sample_03.fastq > assemblies/assembly_03.fasta
最终将拼接结果集中存放至assemblies
文件夹,并分别命名为assembly_00.fasta
~assembly_11.fasta
等12个组装好的基因组文件。
12组子数据集,3个拼接软件可分别分配4个数据集。
第三方拼接软件推荐:Canu,flye,necat
针对所有子数据集合的拼接结果 (基于不同的软件),即产生的contigs,进行基于contigs间Mash距离的聚类分析 (complete-linkage clustering)。
(genomics) user@server:~ # trycycler cluster --assemblies assemblies/*.fasta --reads reads.fastq --out_dir trycycler
参数说明:
在输出的trycycler
目录将产生以下文件/文件夹:
聚类分析的目的是得到利用不同拼接软件的结果中一致的contigs,同时发现潜在的错误拼接的contigs,这些错误拼接的contigs多为某单个软件的产物,在聚类树上往往形成单独的分枝。
可通过查看的contigs.newick
树文件来手动选择好的集群,删除或从1_contigs
中移除那些不好的不能聚类的contigs。
在下图所示的例子中,所有的contigs都能较好的聚类。且从contig长度可以看出cluster_1
可能为染色体,cluster_2
和cluster_3
分别为质粒。但cluster_3
中的contigs长度差异较大,需要在下一步中进行优化。
而在下图所示的例子中,cluster_1
和cluster_3
聚类效果较好,cluster_2
(可能为质粒) 看起来也还可以,但cluster_4
和cluster_6
和其紧密相关,但分别只有一个contigs,估计为错误组装的cluster_2
,或为cluster_2
的片段,可排除。cluster_5
与其它聚类簇都相距较远,且深度较低 (17.8倍),也可排除。
该步是Trycycler软件操作中唯一需要人工判断的。也是拼接结果质量的关键。关于此部分的更多例子可点击此处。
对各个聚类簇中的contigs进行调整。首先进行initial check,以保证所有contigs都足够相似 (相对长度足够均匀,Mash距离足够小);然后保证所有contigs的链方向一致;再者如果该复制子为环状,排除所有影响成环的问题,并将所有的contigs的起始位置保持一致;最后再进行final alignment check,让所有标准化/成环化的contigs尽可能的相似,以便进行下一步的多序列比对。
如果顺利的话,程序可以自己完成,否则需要手动修改某些参数。
(genomics) user@server:~ # trycycler reconcile --reads reads.fastq --cluster_dir trycycler/cluster_001
(genomics) user@server:~ # trycycler reconcile --reads reads.fastq --cluster_dir trycycler/cluster_002
(genomics) user@server:~ # trycycler reconcile --reads reads.fastq --cluster_dir trycycler/cluster_003
参数说明:
每个cluster需要分别进行contigs调和。
此步为多序列比对,通过以下命令运行
(genomics) user@server:~ # trycycler msa --cluster_dir trycycler/cluster_001
(genomics) user@server:~ # trycycler msa --cluster_dir trycycler/cluster_002
(genomics) user@server:~ # trycycler msa --cluster_dir trycycler/cluster_003
参数说明:
关于序列分割的参数不需要调整,默认即可。
根据每个contigs聚类簇,将clean reads分配到各个聚类簇。
(genomics) user@server:~ # trycycler partition --reads reads.fastq --cluster_dirs trycycler/cluster_*
参数说明:
*
通配符)根据每个聚类簇中的contigs比对结果,生成一个一致序列。
(genomics) user@server:~ # trycycler consensus --cluster_dir trycycler/cluster_001
(genomics) user@server:~ # trycycler consensus --cluster_dir trycycler/cluster_002
(genomics) user@server:~ # trycycler consensus --cluster_dir trycycler/cluster_003
参数说明:
生成的结果在 trycycler/cluster_*/7_final_consensus.fasta
上一步产生的一致性序列即是最后的拼接结果,为了进一步的提高拼接结果的准确度,对于Nanopore的测序数据还可以用Medaka来“打磨”一致性序列。
Medaka需要指定针对不同测序设备的特定模型。
如果除了三代数据,还有Illumina二代数据的话,可以使用Pilon 来“打磨”一致性序列。
Trycycler does not ensure a perfect assembly of the underlying genome, because systematic basecalling errors can create small-scale sequence errors. Incorrect homopolymer lengths are a common example of this problem, e.g. AAAAAAAA becoming AAAAAAA (read more here).
But if all goes well when running Trycycler, small-scale errors will be the only type of error in its consensus long-read assembly. You can then polish your Trycycler assembly to repair these small-scale errors, e.g. long-read polishing with Medaka then short-read polishing with Pilon. A TrycyclerMedakaPilon approach to assembly can therefore yield the best possible bacterial genome: Trycycler fixes the medium-to-large-scale errors while Medaka and Pilon fix the small-scale errors.
图片摘自:Trycycler