Unicycler github
简介
Unicycler是组装细菌基因组的软件套装。它既可以使用SPAdes组装纯Illumina短读长的二代数据,也可以使用miniasm+Racon管道组装三代长读长数据(PacBio或Nanopore)。进一步,可以同时给它二代和三代数据,它将进行短读长优先的混合组装,以获得最好的组装结果。
软件原理:
Wick RR, Judd LM, Gorrie CL, Holt KE. Unicycler: resolving bacterial genome assemblies from short and long sequencing reads. PLoS Comput Biol 2017.
2022 更新版本特点
Unicycler最初是在2016年诞生的,当时长读段是稀疏的,而且非常错误率较高。例如,早期的牛津纳米孔测序可能对一个细菌只产生15倍的测序深度,而且大部分的读段有很多错误。因此,Unicycler被设计为优先使用短读段组装出主体,再使用低深度和低精度的长读段来构建短读段组装图,以完成组装,这种方法我称之为短读段优先的混合组装。假设短读组装图处于良好的状态,Unicycler就能很好地做到这一点。
然而,在过去的六年里,情况发生了变化。纳米孔测序的产量现在要高得多,使得>100倍的深度很容易获得,即使是在多个run的项目。读段精度也得到了改善,并且每年都在不断提高。高深度和高精度的长读使得长读段优先混合组装(长读段组装后再进行短读段抛光)成为一种可行的方法,通常比Unicycler更可取。我已经开发了Trycycler和Polypolish,以追求理想的长读段优先组装。
Unicycler并没有完全过时,因为它仍然是细菌基因组短读段优先混合组装的最佳工具。但是我认为它只应该在长读段优先不可行的情况下–即长读深度较低的情况下用于混合组装。我还认为Unicycler适合于短读的细菌基因组,因为它比SPAdes单独产生更干净的组装图。因此,虽然Unicycler最近没有得到我大量的时间和关注,但我还不认为它是废弃软件。
关于一些最新的细菌基因组组装技巧,请查看Trycycler的维基中的这些部分。
我应该用Unicycler还是Trycycler来组装我的细菌基因组?
细菌基因组组装指南
使用简介
作为输入,Unicycler需要以下文件之一:
- 来自分离细菌的Illumina读段(最好是成对的,但不成对的也可以)。
- 一组来自细菌的长读段(PacBio或Nanopore)。
- 来自同一细菌的Illumina读段和长读段(最佳情况)。
使用Unicycler的原因:
- 它能使复制子(replicons )成环,而不需要像Circlator那样的单独工具。
- 它能处理富含质粒的基因组。
- 它可以在杂交组装中使用任何深度和质量的长读段。完成一个基因组可能需要20倍或更多,但Unicycler可以用少得多的长读段做出几乎完整的基因组。
- 除了生成可在Bandage中查看的contigs FASTA文件外,它还产生一个组装图。
- 它能过滤掉低深度的contigs,即使读段集有低水平的污染,也能得到干净的组装。
- 它的错误组装率很低。
- 它可以处理高度重复的基因组,如志贺氏菌(Shigella)。
- 它很容易使用:只需一个命令就可以运行,通常不需要修改参数。
不使用Unicycler的原因:
- 你正在组装真核生物基因组或元基因组(Unicycler是专门为分离培养的细菌设计的)。
- 你的Illumina读段和长读段来自不同的菌株(Unicycler在处理样品的异质性时很困难)。
- 你没有耐心(Unicycler组装结果好,但不是特别快)。
安装
$ mamba create -n unicycler -c bioconda unicycler
快速使用
- Illumina-only assembly:
unicycler -1 short_reads_1.fastq.gz -2 short_reads_2.fastq.gz -o output_dir
- Long-read-only assembly:
unicycler -l long_reads.fastq.gz -o output_dir
- Hybrid assembly:
unicycler -1 short_reads_1.fastq.gz -2 short_reads_2.fastq.gz -l long_reads.fastq.gz -o output_dir
sample_data 目录有示例文件可以用于测试
测试数据集
宋氏志贺菌(Shigella sonnei)plasmids (synthetic reads)
这些是来自宋氏志贺菌53G基因组组装的质粒A、B和E的合成读段。
figshare页面下载reads
志贺菌53G基因组5.22M,GC50.73%,有A、B、C、E共4个质粒
与细菌基因组相比,这些质粒很小,但插入序列会产生许多重复。
- 最小的质粒可以单独用短读段组装出来
- 低深度长读段的混合组装能够完成中等大小的质粒组装
- 而高深度长读段混合组装才能完成所有三个质粒的组装。
# 日志默认标准输出,同时也会在输出结果中产生一个日志
(unicycler)$ time unicycler -t 50 -1 short_reads_1.fastq.gz -2 short_reads_2.fastq.gz -o only_short_asm &
# real 3m30.019s
(unicycler)$ time unicycler -t 50 -1 short_reads_1.fastq.gz -2 short_reads_2.fastq.gz -l long_reads_low_depth.fastq.gz -o short_long_low_asm &
# real 6m42.131s
(unicycler)$ time unicycler -t 50 -1 short_reads_1.fastq.gz -2 short_reads_2.fastq.gz -l long_reads_high_depth.fastq.gz -o short_long_high_asm
# real 8m5.647s
幽门螺旋杆菌(Helicobacter pylori)
这些是来自幽门螺杆菌样FDAARGOS_300的Illumina和PacBio真实读段。
幽门螺旋杆菌的基因组小而简单。它只有两个RNA操作子的拷贝,没有其他大的重复序列,因此与大多数细菌基因组相比,它非常容易组装。
- 用高深度的长读段进行杂交组装应该能产生一个完整的染色体
- 用低深度长读段进行的杂交组装非常接近于完成,只剩下几个稍微模糊的点
$ time unicycler -t 100 -l long_reads_high_depth.fastq.gz -o long_asm
# real 1m53.626s
化脓性链球菌(Streptococcus pyogenes)
这些是来自化脓性链球菌样品FDAARGOS_190的真实Illumina和PacBio读段。
化脓性链球菌的基因组特别小而且简单,用Illumina读段组装起来相对容易。然而,它有一些重复的元件,包括5个RNA操作子拷贝和六个IS1548的拷贝。
- 用高深度的长读段进行杂交组装应能产生一个完整的染色体。
- 使用低深度长读段的混合组装将不太完整,在一些RNA操作子周围留下了一些模糊不清的地方
淋病奈瑟菌(Neisseria gonorrhoeae)
这些是真实的Illumina和PacBio读段,来自淋病奈瑟菌样品FDAARGOS_204。
虽然淋病奈瑟菌的基因组很小,但它是一个很难组装的基因组,有许多IS1016、ISNgo2和其他重复的拷贝。
- 用高深度的长读段进行杂交组装应该能产生一个完整的染色体
- 用低深度长读段进行的混合组装,虽然仍比只用Illumina组装有很大的改进,但在一些区域却无法解决
- 这表明,更复杂的基因组需要更高的长读段深度来实现完整的组装
Unicycler不同组装模式
bold模式有最长的contigs,因此错误比对率也最高,最后得到大于500bp以上的数量最少,conservative模式有最低的错误组装率,因此得到的contig长度最小,数量最多; normal模式在contig长度和组装错误率上有比较好的平衡。
# normal model: moderate contig size and misassembly rate
(unicycler) [yutao@myosin Bacillus_anthracis]$ nohup time unicycler -1 R9-5_1.unpaired.fq.gz -2 R9-5_2.unpaired.fq.gz -t 50 --min_fasta_length 500 -o R9-5_unicycler_assembly &>R9-5_unicycler_assembly.log&
# bold model:longest contig, more misassambly
(unicycler) [yutao@myosin Bacillus_anthracis]$ nohup time unicycler -1 R9-5_1.unpaired.fq.gz -2 R9-5_2.unpaired.fq.gz --mode bold -t 50 --min_fasta_length 500 -o R9-5_unicycler_bold_model_assembly &>R9-5_unicycler_bold_model_assembly.log&
# conservative:smaller contigs, lowest misassembly rate
(unicycler) [yutao@myosin Bacillus_anthracis]$ nohup time unicycler -1 R9-5_1.unpaired.fq.gz -2 R9-5_2.unpaired.fq.gz --mode conservative -t 50 --min_fasta_length 500 -o R9-5_unicycler_conservative_model_assembly &>R9-5_unicycler_conservative_model_assembly.log&
# --min_fasta_length MIN_FASTA_LENGTH
Exclude contigs from the FASTA file which are shorter than this
length (default: 100)
# --mode {conservative,normal,bold}
Bridging mode (default: normal)
conservative = smaller contigs, lowest misassembly rate
normal = moderate contig size and misassembly rate
bold &#