【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]
三、使用案例
注意:
- 如果有多个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%
參考資料
- https://github.com/nanoporetech/tombo
- https://mp.weixin.qq.com/s?__biz=MzI2MjA1MDQxMg==&mid=2649710160&idx=1&sn=8307f6ada2380fd22bccae3d6c424341&chksm=f24af953c53d7045e202e987fdf5dc0bc820a8ed5cdc76ff9f74bbf5aa0ff68a0fa3d0129c54&scene=21#wechat_redirect
- https://nanoporetech.github.io/tombo/tutorials.html
- https://stackoverflow.com/questions/57825428/rstudio-server-error-bin-sh-x86-64-conda-cos6-linux-gnu-cc-command-not-found
- https://nanoporetech.github.io/tombo/modified_base_detection.html
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn