三代组装软件Flye安装及使用

三代组装软件Flye安装及使用

Flye是用于单分子组装数据的denovo基因组装的软件。这个软件可以用于各种数据集,从小的细菌到大的哺乳动物。

输入是原始的PacBio或者ONT的序列文件,输出是polished的contig。Flye同时也有针对微生物组装的模式。

一、安装

1.conda安装

conda install flye

2.编译安装

#官网下载
wget https://github.com/fenderglass/Flye/archive/refs/heads/flye.zip
#解压文件
unzip flye.zip
#安装软件
cd Flye-flye
make
#将软件添加到环境变量(根据自己的安装路径进行添加)
vim ~/.bashrc
PATH=/opt/biosoft/GENOME/Flye-flye/bin/:$PATH
source ~/.bashrc

二、使用

Flye常用选项参数:

--pacbio-raw:设置 pacbio 原始数据所在路径
--pacbio-corr:设置纠错后 pacbio 数据所在路径
--nano-raw:设置 nanopore 原始数据所在路径
--nano-corr:设置纠错后的 nanopore 数据所在路径genome-size:预估基因组大小,评估覆盖深度
--out-dir:输出结果文件路径
--threads:线程数
--min-overlap:最小 overlap 连接大小

使用的话,输入文件是FASTA或者FASTQ格式的,可以是gz压缩或者普通文本。对于raw的话,期望的错误率低于30%,校正之后序列的错误率低于3%,HiFi序列的低于1%。不过要记住,Flye最开始是基于raw reads开发的。

已经不需要提供基因组的大小,但是如果使用 --asm-coverage 则需要提供。

为了减少内存的消耗,可以使用最长的reads来进行初始化的disjointig的组装,使用--asm-coverage和--genome-size就可以了。一般而言,40x的深度已经足够了。

可以单独使用--polish-target进行结果打磨。

常用命令

#针对pacbio数据
flye --pacbio-raw E.coli_PacBio_40x.fasta --out-dir out_pacbio --threads 4
#针对ont数据
flye --nano-raw Loman_E.coli_MAP006-1_2D_50x.fasta --out-dir out_nano --threads 4

三、输入数据的类型

  1. Oxford Nanopore:使用--nano-raw,ONT的数据错误率在5%-15%之间,尤其是在同聚物区域,错误率更高。
  2. PacBio HiFi:使用--pacbio-hifi的参数来选择这个模式。期望错误率低于1%,我们也可以用--hifi-error这个参数来指定错误率,这样可以获得更完整的组装。
  3. PacBio CLR:使用--pacbio-raw的参数,错误率在15%左右。注意的是,使用这个模式需要去除接头和分开多个passes。不过需要注意别拆分出了错误的序列。
  4. error-corrected reads:可以使用--pacbio-corr 或者 --nono-corr这个参数,来支持校正后的序列,这个序列错误率应该小于3%。如果组装的结果比较碎,可能序列中的错误率比较高,这个时候可以考虑用raw reads。
  5. 多个contig的一致性序列:使用--subassemblies来输入一系列的组装好的contig序列,这个可以用其他组装程序获得,期望的错误率小于1%。这样的话,用--iterations 0 可以来跳过polishing stage。
  6. 由于Flye可以直接使用raw reads,因此不需要前期的纠错。Flye会检测嵌合序列和低质量的序列,因此这个也不需要去除。然后,需要去除的是污染的序列。

四、参数描述

最小overlap长度

这个参数默认是reads N90,一般不需要设置。如果要设置,可以设置到3-5k。建议设置的越高越好,这样repeat graph就更少会纠缠,但是这样会产生更多的gap。

Metagenome mode

这个模式用于高度不均匀覆盖度的序列, 对于低至2x的覆盖度的区域也可以进行组装。在一些简单的metagenome中,使用普通的模式,会获得更多的长的序列,而用meta模式,序列会更加的片段化一些。对于复杂的metagenome,建议使用--meta模式。

Haplotype模式

默认的,Flye会合并graph中各种结构(bubbles、superbubbles、roundabout)等,来产生更长的一致性contig。使用--keep-haplotypes来保留更多的path,产生更细节的组装结果。

Trestle

Trestle是一个额外的模块,用于解析没有被read桥接的重复度是2的简单重复。根据数据集,它可能解析一些额外的重复,这对小的(细菌基因组)是有帮助的。使用--trestle选项来启用该模块。在大型基因组上,改善通常是最小的,但计算可能会花费大量时间。

覆盖度的降低

对于大基因组,当深度过高的时候,需要较高的RAM。因此可以使用--asm-coverage来选择特定的深度,一般而言使用30x比较合适。

打磨的迭代次数

程序的最后会进行polish。默认的只进行一次polish,进行多次polish会矫正更多的错误,如果设置为0,那么就不会进行polish。

五、结果输出

00-assembly              #构建基因组草图
10-consensus #基于基因组草图对数据进行纠错
20-repeat #对重复序列进行处理
30-contigger #构建contig
40-polishing #对结果进行校准
assembly.fasta #最终组装结果文件,用于下游分析
assembly_graph.gfa #最终的repeat graph,不过edge序列会和contig的序列不一样,因为contig可能会包含额外的多个边。
assembly_info.txt #contig的额外的信息 

每个contig就是图里一个唯一的边,同时这个唯一的contig也会进行两边延伸,来解决repeat区域。

因此,具有相同id的contig,会比相应的edge要长。这个同OLC算法的软件相似。

有时候,也会将contig基于repeat graph结构拼接成scaffolds。这些结果会输出成以scaffold_为前缀的文件。
尽管很难估计可靠的gap大小,一般默认是100个Ns。并且assembly_info.txt文件也会输出这些scaffold是怎么构建的信息。

assembly_info.txt示例如下:

attachments-2023-06-ljTvu1p6649e3ff87f0d3.png

每列信息如下:

contig/scaffold id长度

覆盖度

是否是圈

是否是重复

重复度

Alternative group图的路径

用??来代表scaffold的gaps,用*代表一个终止node。




参考:https://www.jianshu.com/p/efbd1998db69

https://github.com/fenderglass/Flye/blob/flye/docs/USAGE.md

Kolmogorov, M., Yuan, J., Lin, Y. et al. Assembly of long, error-prone reads using repeat graphs. Nat Biotechnol 37, 540–546 (2019). https://doi.org/10.1038/s41587-019-0072-8


  • 发表于 2023-06-30 10:41
  • 阅读 ( 2525 )
  • 分类:软件工具

0 条评论

请先 登录 后评论
星莓
星莓

生物信息工程师

58 篇文章

作家榜 »

  1. omicsgene 698 文章
  2. 安生水 347 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. xun 82 文章
  6. 红橙子 78 文章
  7. rzx 74 文章
  8. CORNERSTONE 72 文章