使用新版Falcon进行三代测序基因组组装

简介: 这里的新版指的是PacBio公司在2018年9月发布pb-assembly, 而这篇文章是在2018年9月30日发的。今年早些时候在参加三代培训时,听说PacBio会在今年对Falcon进行一些改变。

这里的新版指的是PacBio公司在2018年9月发布pb-assembly, 而这篇文章是在2018年9月30日发的。

今年早些时候在参加三代培训时,听说PacBio会在今年对Falcon进行一些改变。前几天我在读 readthedocs上的Falcon文档时,发现了文档页面上方出现了这样两栏提醒

Attention

其中pb_assembly就是新的FALCON组装套装在GitHub上的使用文档,经过了几天的探索,我对它有了一点了解,写一篇教程作为官方文档的一些补充吧。

新版亮点

  1. 整合了串联重复序列和遍在重复序列的屏蔽(之前没有这一步)
  2. 以GFA格式存放graph文件,后续可以用Bandage进行可视化
  3. 通过算法和性能优化,提高了Associate Contigs的准确性
  4. 分析流程的性能优化

软件安装和数据准备

Falcon终于拥抱了bioconda, 这也就意味着我们再也不需要用到他们原本笨拙的安装脚本,浪费时间在安装软件上。

conda create -n pb-assembly  pb-assembly
source activate pb-assembly
# 或者
conda create -p ~/opt/biosoft/pb-assembly pb-assembly
source activate ~/opt/biosoft/pb-assembly 

这里使用https://pb-falcon.readthedocs.io/en/latest/tutorial.html上的所用的E. coli数据集

wget https://downloads.pacbcloud.com/public/data/git-sym/ecoli.m140913_050931_42139_c100713652400000001823152404301535_s1_p0.subreads.tar.gz
tar -xvzf ecoli.m140913_050931_42139_c100713652400000001823152404301535_s1_p0.subreads.tar.gz

解压缩后的文件夹里有三个300M的Fasta文件, 将他们的实际路径记录到input.fofn

ecoli.1.fasta
ecoli.2.fasta
ecoli.3.fasta

准备配置文件

为了进行组装,需要准备一个配置文件。我的配置文件为fc_run.cfg,内容如下。你们可以先预览一下,后面看我的解释说明。

#### Input
[General]
input_fofn=input.fofn
input_type=raw
pa_DBdust_option=
pa_fasta_filter_option=pass
target=assembly
skip_checks=False
LA4Falcon_preload=false

#### Data Partitioning
pa_DBsplit_option=-x500 -s50
ovlp_DBsplit_option=-x500 -s50

#### Repeat Masking
pa_HPCTANmask_option=
pa_REPmask_code=1,100;2,80;3,60

####Pre-assembly
genome_size=0
seed_coverage=20
length_cutoff=3000    
pa_HPCdaligner_option=-v -B128 -M24
pa_daligner_option=-e.7 -l1000 -k18 -h80 -w8 -s100
falcon_sense_option=--output-multi --min-idt 0.70 --min-cov 2 --max-n-read 800
falcon_sense_greedy=False

####Pread overlapping
ovlp_daligner_option=-e.96 -l2000 -k24 -h1024 -w6 -s100
ovlp_HPCdaligner_option=-v -B128 -M24

####Final Assembly
overlap_filtering_setting=--max-diff 100 --max-cov 300 --min-cov 2
fc_ovlp_to_graph_option=
length_cutoff_pr=2000

[job.defaults]
job_type=local
pwatcher_type=blocking
JOB_QUEUE=default
MB=32768
NPROC=6
njobs=32
submit = /bin/bash -c "${JOB_SCRIPT}" > "${JOB_STDOUT}" 2> "${JOB_STDERR}"

[job.step.da]
NPROC=4
MB=32768
njobs=32
[job.step.la]
NPROC=4
MB=32768
njobs=32
[job.step.cns]
NPROC=8
MB=65536
njobs=5
[job.step.pla]
NPROC=4
MB=32768
njobs=4
[job.step.asm]
NPROC=24
MB=196608
njobs=1

根据注释信息,文件分为"input", "Data partitioning", "Repeat Masking", "Pre-assembly", "Pread overlapping", "Final Assembly", 以及最后的任务调度部分,让我们分别看下这里面的内容

输入(Input)

#### Input
[General]
input_fofn=input.fofn
input_type=raw
pa_DBdust_option=
pa_fasta_filter_option=pass
target=assembly
skip_checks=False
LA4Falcon_preload=false

输入这里参数比较简单,基本不需要做任何改动,除了 pa_fasta_filter_options,用于处理一个ZMW(测序翻译孔)有多条subread时,到底选择哪一条的问题。

  • "pass": 不做过滤,全部要。
  • "streamed-median": 表示选择大于中位数的subread
  • "streamed-internal-median": 当一个ZMW里的subread低于3条时选择最长,多于单条则选择大于中位数的subread

0.01版本pb-assembly的pa_DBdust_option有一个bug,也就是里面的参数不会传递给DBdust, DBdust是对read进行soft-masking,一般都用默认参数,因此这个bug问题不大。

数据分配(Data Partitioning)

pa_DBsplit_option=-x500 -s50
ovlp_DBsplit_option=-x500 -s50

这部分的设置会将参数传递给DBsplit,将数据进行拆分多个block,后续的并行计算都基于block。-s 50表示每个block大小为50M。 这适用于基因组比较小的物种,如果是大基因组则应该设置为-s 200或者-s 400

重复屏蔽(Repeat Masking)

#### Repeat Masking
pa_HPCTANmask_option=
pa_REPmask_code=1,100;2,80;3,60

屏蔽重复序列可以在不损失组装准确性的同时,提高后续组装的overlap/daligner步骤10~20倍速度,见Detecting and Masking Repeats.

pa_HPCTANmask_option的参数会传给串联重复步骤的HPCTANmask, 而pa_REPmask_code很复杂,它分为三次迭代,因此这里1:100;2,80;3,60 就表示第一次迭代检测每个block中出现超过100次的序列,第二次迭代将2个block合并一起检测超过80次的序列,第三次将3个block进行合并检测超过60次的序列。

https://github.com/PacificBiosciences/pbbioconda/issues/20

预组装(纠错)pre-assembly

####Pre-assembly
genome_size=0
seed_coverage=20
length_cutoff=3000    
pa_HPCdaligner_option=-v -B128 -M24
pa_daligner_option=-e.7 -l1000 -k18 -h80 -w8 -s100
falcon_sense_option=--output-multi --min-idt 0.70 --min-cov 2 --max-n-read 800
falcon_sense_greedy=False

length_cutoff=-1时,设置genome_sizeseed_coverage会自动计算要过滤的序列。否则是过滤低于一定长度的read。

pa_HPCdalinger_option参数不需要调整,-M表示每个进程的内存为24G,一般200M的block对应16G。

pa_daligner_option的参数比较重要:

  • -e:错误率,低质量序列设置为0.70,高质量设置为0.80。 值越高避免单倍型的坍缩
  • -l: 最低overlap的长度,文库比较短时为1000, 文库比较长为5000.
  • -k: 低质量数据为14,高质量数据为18
  • -h: 表示完全match的k-mer所覆盖的碱基数。和-l, -e有关,越大越严格。预组装时最大也不要超过最低overlap长度的1/4. 最低就设置为80

纠错后相互比对

####Pread overlapping
ovlp_daligner_option=-e.96 -l2000 -k24 -h1024 -w6 -s100
ovlp_HPCdaligner_option=-v -B128 -M24

和上面的参数类似,但是-e的范围调整为0.93-0.96,-l范围调整为1800-6000, -k调整为 18-24

最后组装

overlap_filtering_setting=--max-diff 100 --max-cov 300 --min-cov 2
fc_ovlp_to_graph_option=
length_cutoff_pr=2000

这里的参数就可以随便调整了,因为这一步速度很快。 例如length_cutoff_pr就可以从2000,提高到15000.

最后还有一部分是任务投递系统,如果是单节点运行,需要注意设置 njobs,这是同时投递的任务数。假如你将[job.step.cns]按照如下的方式设置,那么同时会出现 8 \times 50 = 400 个任务,如果你的内存只有128G,运行一段时间后你的所有内存就会被耗尽,那么基本上你就只能重启服务器了。

[job.step.cns]
NPROC=8
MB=65536
njobs=50

运行结果

用上述的配置文件,以fc_run fc_run.cfg运行后,最后的2-asm-falcon/p_ctg.fa的序列数有4条,最长为4,685,024, 之后我将length_cutoff_pr调整为15k,2-asm-falcon/p_ctg.fa序列只有一条,长度为4,638,411

下载asm.gfa到本地,用Bandage可视化,可以发现组装效果不错。

Bandage
相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
目录
相关文章
|
监控 数据库
open-falcon 安装以及配置
环境准备 请参考环境准备 同时,请再次检查当前的工作目录设置: export HOME=/home/work export WORKSPACE=$HOME/open-falcon mkdir -p $WORKSPACE 安装Transfer transfer默认监听在:8433端口上,agent会通过jsonrpc的方式来push数据上来。
2504 0
|
存储 监控 关系型数据库
|
XML SQL JavaScript
SpringBoot+vue实现导入导出excel,使用hutool工具
在实际应用场景中,我们常常需要迁移应用到另一个环境中。「应用的导入导出」功能可以便捷实现应用的迁移与重塑,甚至可以选择不同菜单,数据模型,与审批流程,业务事件,选择性导入,更高效便捷完成应用的迁移。其次,在导入的应用中,选择所需导入的部分,可以全选,也可以选择部分导入。「部分导入」实现了模块迁移的效果,对于企业级应用迁移来说,不仅利用率高,适用性也极为普遍。有了「应用导入导出」功能,就可以轻松迁移各类应用。同时,在使用应用市场中的应用,与更新应用方面,都非常灵活易用。 下面来介绍,这个功能性是如何实现的。
2388 0
SpringBoot+vue实现导入导出excel,使用hutool工具
|
3月前
|
机器学习/深度学习 人工智能 搜索推荐
Thinking Machines Lab最新研究结果如何复现?On-Policy Distillation让训练成本直降10倍
Thinking Machines Lab提出On-Policy Distillation技术,让小模型高效继承大模型能力。相比传统强化学习,训练成本降低90%,效率提升十倍,支持本地部署、降低成本与延迟。结合vLLM加速与独立DeepSpeed配置,MS-SWIFT框架实现开箱即用的高效蒸馏训练,助力轻量模型具备“会思考、能纠错、可进化”的智能。
564 10
|
2月前
|
存储 自然语言处理 安全
有没有免费的Agent工具推荐?2025年全攻略:从入门到精通,这篇就够了
面对重复工作、效率低下与预算不足,AI Agent工具成了解决职场痛点的新选择。本文实测推荐10款真正免费、安全好用的Agent工具,覆盖企业自动化、开发编程、内容创作等全场景,帮你打破“免费=鸡肋”偏见,轻松提升效率,零成本开启智能办公新时代。
|
5月前
|
物联网
直播预告 | Qwen-lmage 技术分享+实战攻略直播
通义千问团队最新开源的图像生成模型 Qwen-Image,凭借其出色的中文理解与文本渲染能力,自发布以来获得了广泛关注与好评。
260 0
|
6月前
|
人工智能 供应链 算法
RFID室内资产定位将颠覆传统方式
RFID室内资产定位技术凭借非接触识别、实时追踪及批量读取等优势,正颠覆传统人工盘点模式。其高效率、强适应性与智能化数据处理能力,广泛应用于医疗、制造、仓储等领域,助力企业实现精细化资产管理。

热门文章

最新文章