【5.1.1】tombo

  • 软件官网:https://github.com/nanoporetech/tombo
  • 软件文档:https://nanoporetech.github.io/tombo/tutorials.html

一、利用Tombo检测甲基化

甲基化属于表观遗传学范畴,包括DNA,RNA,蛋白质等的甲基化。DNA甲基化(DNA methylation)为DNA化学修饰的一种形式,能够在不改变DNA序列的前提下,改变遗传表现。所谓DNA甲基化是指在DNA甲基化转移酶的作用下,在基因组CpG二核苷酸的胞嘧啶5’碳位共价键结合一个甲基基团。大量研究表明,DNA甲基化能引起染色质结构、DNA构象、DNA稳定性及DNA与蛋白质相互作用方式的改变,从而控制基因表达。DNA甲基化(5mC)和RNA甲基化(m6A)是两种重要的核酸修饰,在基因表达调控中发挥重要作用并参与诸多生物学过程。 由于nanopore测序技术能够直接测序原始DNA和RNA。不需要通过DNA拷贝、进行链合成或使用亚硝酸盐进行转化, 能够直接捕获到碱基修饰的信息(例如5mC,pseudouridine,m6A),在测序过程中,这些信息会被完整的保留,包含在测序运行产生的原始信号信息中,随时进行分析。只有原始的fast5文件中才保存了这些信息,而fastq格式文件中无法保存这些信息,因此,利用nanopore数据进行甲基化检测输入数据都是原始的fast5格式文件。

Tombo是nanopore官方提供的碱基修饰检测软件。能够从纳米孔测序数据中直接识别碱基修饰,此外,tombo还提供了分析和可视化原始纳米孔信号的工具,tombo质粒与使用纳米孔测序数据原始电信号提供最准确的de novo或者有参的非标准碱基识别与修饰。tombo提供三种碱基修饰的检测方法,如下表所示,三种方法各有优缺点。

二、安装

conda create -n tombo2 python=3.6
conda activate tombo2
yum install libtermcap-devel ncurses-devel libevent-devel readline-devel
pip install --timeout 8000 numpy
pip install --timeout 8000 ont-tombo[full]

三、使用案例

注意:

  1. 如果有多个FAST5文件,需要将他们合并。

分析的第一步,就是将raw nanopore的reads比对到参考序列上。这一步将产生indexc,并存储原始的信号比对值。

tombo resquiggle genome.fasta --processes 4 --num-most-common-errors 5

1、将原始测序数据比对到基因组上

tombo detect_modifications alternative_model --fast5-basedirs path/to/fast5s/ \
    --statistics-file-basename native.e_coli_sample \
    --alternate-bases dam dcm --processes 4

2、绘制信号图

tombo plot most_significant --fast5-basedirs path/to/fast5s/ \
    --statistics-filename native.e_coli_sample.dcm.tombo.stats \
    --plot-standard-model --plot-alternate-model dcm \
    --pdf-filename sample.most_significant_dcm_sites.pdf

3、使用基于已有参考信息的模式检测甲基化位点

tombo text_output browser_files --statistics-filename native.e_coli_sample.dam.tombo.stats \
    --file-types dampened_fraction --browser-file-basename native.e_coli_sample.dam

# also produce successfully processed reads coverage file for reference
tombo text_output browser_files --fast5-basedirs path/to/fast5s/ \
    --file-types coverage --browser-file-basename native.e_coli_sample

更多案例

同时,官网也提供了基于denovo以及替换模型的检测方法。详细内容可以看官方文档。

1、denovo方法

tombo detect_modifications de_novo --fast5-basedirs path/to/fast5s/ \
    --statistics-file-basename sample.de_novo_detect --processes 4

tombo text_output browser_files --statistics-filename sample.de_novo_detect.tombo.stats \
    --browser-file-basename sample.de_novo_detect --file-types dampened_fraction

2、level_sample_compare方法

tombo detect_modifications level_sample_compare --fast5-basedirs path/to/fast5s/ \
    --control-fast5-basedirs path/to/control/fast5s/ --minimum-test-reads 50 \
    --processes 4 --statistics-file-basename sample.level_samp_comp_detect

tombo text_output browser_files --statistics-filename sample.level_samp_comp_detect.tombo.stats \
    --browser-file-basename sample.level_samp_comp_detect --file-types statistic

四、报错

4.1安装报错:

最开始是因为NameError: name ‘_R_DF’ is not defined

然后, a downgrade to rpy2<=2.9 should suffice.

conda remove rpy2
conda install rpy2==2.9

会提示python版本冲突 Specifications:

  • rpy2==2.9 -> python[version='>=3.5,<3.6.0a0|>=3.6,<3.7.0a0']

Your python: python=3.9

所以tombo的安装环境应该是python3.6,重新构建环境

conda create -n tombo2 python=3.6
conda activate tombo2

pip install rpy2==2.9

接着报错

readline/readline.h:没有那个文件或目录解决方法
error: command '/usr/local/gcc-10.2/bin/gcc' failed with exit statu

解决办法:

yum install libtermcap-devel ncurses-devel libevent-devel readline-devel
pip install rpy2==2.9

五、我的案例

对比分析

有两种模式:

1.model_sample_compare。 基于control-fast5-basedirs来构建信号模型,跟这个信号不一样的,就是甲基化位点。

2.level_sample_compare 。 与alternate-fast5-basedirs每个位置的信号比对,不一样的就标记出来。

tombo detect_modifications model_sample_compare --fast5-basedirs <fast5s-base-directory> \
    --control-fast5-basedirs <control-fast5s-base-directory> \
    --statistics-file-basename sample.model_compare_sample

tombo detect_modifications level_sample_compare --fast5-basedirs <fast5s-base-directory> \
    --alternate-fast5-basedirs <alternate-fast5s-base-directory> \
    --statistics-file-basename sample.level_compare_sample

建库

tombo build_model estimate_reference  针对与经典bases
tombo build_model estimate_motif_alt_reference  提供可能被修饰的位置
tombo build_model estimate_alt_reference  修饰的比例需要在15% -35%

參考資料

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn