目录
- 关于 Falcon
- 部件介绍
- 组装流程
- Connection within HGAP4 vs falcon vs falcon-unzip
- 安装及测试数据下载
- 试运行
- 最后
很多公众号都有介绍关于 Falcon 各参数的设置经验, 而安装指南却没有一份系统的资料供借鉴. 前两年安装只能通过官网下载安装包, 一步步的配置其运行环境, 步骤繁琐, 如果是非管理员用户, 搞定运行环境就更难了. 好在前段时间, PacBio 发布了 Anaconda 版本, 使非管理员用户可以比较轻松的解决 Falcon 的安装问题
Anaconda 中的最新版本为0.0.3, 可能做得不够"傻瓜", 运行过程中会遇到几个普遍的错误. 这篇文章是我对 Falcon 原理背景、安装问题解决和试运行的学习笔记
关于 Falcon
Falcon是由PacBio 开发用于SMRT测序长reads的基因组从头组装工具, 其包含的主要部件为:
falcon
falcon-unzip
falcon-phase
部件介绍
-
falcon
继承了HGAP的功能, 将运行方式从图形用户界面(Graphical User Interface, GUI)更改为命令行界面, 并且优化对大基因组的组装能力. 它的特点是能够将杂合等位基因同时组装出来, 软件将这部分 contigs 分为primary and associated contigs. 基于这个功能falcon
也称为可以感知二倍体的组装工具 -
falcon-unzip
真正的二倍体组装工具, 它利用falcon
产出的 primary&associated contigs, 通过鉴别SNP位点进行初步组装, 最终获得二倍体的两个同源区段(haplotigs) -
falcon-phase
利用Hi-C数据映射到falcon-unzip
组装本中, 利用haplotigs和共有序列, 将两个单倍体完全组装出来
演示视频(上传失败,只能放链接了)
组装流程
Step1-预组装/错误矫正
由HGAP
&falcon
完成. 筛选种子序列或者说是最长序列(通过length_cutoff
控制), 将短序列映射到当序列中, 目的是获得高准确率的一致性序列, 该步骤完成后获得的序列准确率大于99%
Step2-组装
由HGAP
&falcon
完成. 将预组装的序列(preassembled reads, preads)相互映射, 得到原始的基因组 contigs
Step3-抛光
组装完成后要进行第一轮抛光, 需要将所有的subreads映射到原始基因组中, 这一步骤能大幅度的提高碱基的准确率
Step4-Haplotigs组装
由falcon-unzip
完成. 对于复杂基因组, 由于SV等结构变异以上步骤会组装出"气泡"结构, 也就是差异同源区域, unzip 会根据"气泡"结构和周围的SNP位点切断差异区段, 将haplotigs 组装出来, 继而将原始基因组 contigs 精细的组装为精度更高的 contigs(primary contigs) 和haplotigs
Step5-Hi-C data mapping
上一步虽然细分出了primary contigs 和haplotigs, 但却无法在整个基因组范围内区分每个气泡结构究竟是属于哪个单体, 简单点说, 如果整个基因组只有一个"气泡"结构, 那么不需要Hi-C 数据就可以区分出两个单体, 而≥2个"气泡"结构时, 单凭已有数据是无法排列的. 以下是Hi-C辅助组装示意图:
Connection within HGAP4 vs falcon vs falcon-unzip
-
HGAP4
拥有基于Web 开发的图形化处理界面, 在基因组复杂度低于人类基因组(3Gb)的情况下, 官方推荐使用HGAP4
进行组装, 但实际性能根据计算资源的差异会有不同,falcon
是命令行界面的HGAP
, 这在上面也提到了 -
HGAP4
和falcon
在计算资源的分配及结果产出的目录结构上两者存在细微差别, 在运行过程中的差别分为以下几点:- 任何大小和复杂度的基因组都可以通过
falcon
组装 -
HGAP4
中的抛光环节通过resequencing
流程调用,falcon
在组装过程中没有自动进行抛光, 如需抛光可以通过pbsmrtpipe中的resequencing
流程操作, 如果粗略一些的话,falcon-unzip
组装中有抛光流程 -
HGAP4
输入为PacBio 提供的BAM格式文件, 输出结果中primary and associated contigs在同一个文件中;falcon
输入为FASTA格式文件, 同源差异区段分为两个文件
- 任何大小和复杂度的基因组都可以通过
- 当前版本的
HGAP(4)
输出结果不支持falcon-unzip
-
falcon-unzip
可以对多倍体进行组装
安装及测试数据下载
#安装
$conda search pb-assembly
$conda install pb-assembly=0.0.3 #或者其他版本
#下载200Kb test case
$git clone https://github.com/cdunn2001/git-sym.git
$git clone https://github.com/pb-cdunn/FALCON-examples.git
$cd FALCON-examples
$../git-sym/git-sym update run/greg200k-sv2
报错解决
通过Anaconda安装相比之前, 节约了90%以上的时间, 运行环境基本已经配置完全, 只有个别几个软件需要更新一下版本, 遇到的问题在log 日志文件里都有记录.
报错是在试运行阶段遇到的, 但为了学习更流畅, 就把这部分提到前面介绍了
[ERROR1]
- 错误提示
software/prefix/python2.7/bin/python2.7: No module named pypeflow
- 解决方法
出现这个问题的原因可能有两个, 比较明显的是没有使用Anaconda配置的 python, 另外一个原因可能是 python 版本太低
$source ~/.bashrc
$conda search python
$conda install python=2.7.13 #或者更高版本
[ERROR2]
- 错误提示
AttributeError: 'IntervalTree' object has no attribute 'search'
- 解决办法
出现这个问题的原因也是有两个, 最可能的是IntervalTree没有安装, 另一个比较脑残, 版本太高了不行, 太恶心了..
$conda list
$conda search python-IntervalTree #会发现有两三个版本
$conda install python-intervaltree=2.1.0 #只有2.1.0含有 search 属性, 真坑
[ERROR3]
- 错误提示
ERROR: CLI::Interface - unknown option name: sorttouch quiver_done.exit
#Google 这个问题都没有记录, 也是奇了怪
- 解决办法
这个问题困扰了好久, 没人提出过这个问题, 最后还是在开发人员的帮助下解决的, 所以说这个 error3的解决办法是相当宝贵的..
解决的思路是这样的, mp15 对四款相关软件的版本提出了疑问, 我之前在全部更新时, 也发现某些软件不能更新到最新版本, 可能是因为当前环境不支持最新版本的运行, 我尝试手动将四款软件更新到了最新版本, 最终 unzip 完美运行
$conda update --all
$conda update -c bioconda --all
$conda install pbmm2=0.12.0
$conda install pbcore=1.6.5
$conda install pbalign=0.3.2
试运行
$cd run/greg200k-sv2
$fc_run fc_run.cfg
$fc_unzip.py fc_unzip.cfg
运行完成后, 基因组.fasta 文件存放在4-polish/cns-output
目录中
最后
- 过段时间打算把Falcon 的使用情况做个整理吧
- 天天当哑巴, 吃黄连, 心累的很
- 隐忍ing...