Deep6mA探索不同物种DNA N6甲基化嘌呤位点相似模式的深度学习框架
参考文章:Elucidation of DNA methylation on N6-adenine with deep learning,实践文章中从不同物种中迁移学习,预测6mA位点。
背景介绍
对真核生物在N6DNA甲基化的研究在最近得到了很大的关注。最近的研究已经产出了大量的6mA基因组数据,但是真核生物中DNA 6mA仍然有待探索。我们提出了在真核生物中6mA DNA是稀少的,这客观上限制了现有的生物学技术对6mA位点的检测,同时,6mA复杂的调节机制也对DNA 6mA的研究造成巨大挑战。为了探索现存的6mA基因组数据以及应对这一挑战,,这里我们提出了一种基于深度学习的算法用于在单碱基(single nucleotide resolution)中预测DNA 6mA位点。并且,我们还将算法应用于三个具有代表性的模型物种中:Arabidopsis thaliana(拟南芥),Drosophila(黑腹果蝇)和Escherichia coli(大肠杆菌)。大量的实验证明我们算法的性能优于传统基于k-mer的方法。进一步的,我们的基于显著图的上下文分析显示,围绕6mA位点的感兴趣的cis-调节位点模式在传统分析中被遗漏了。我们希望我们的分析工具可以帮助我们解释6mA的调节机制,深度探索其中的功能效应。最终,我们提供了一个基于硅的全基因组预测的具有潜力的6mA位点完整的条目。
神经网络结构
如下图所示,神经网络输入经由one-hot变换的的矩阵;后经过五层卷积层,每个卷积层有80个滤波器;全连接层具有100个单元,最后利用sigmoid函数激活分类层。
文章结果
下图展示在三个具有代表性的物种中十次独立实验的ROC曲线和平均AUC值
对比DeepM6A,MLP,k-mer-based logist regeresion(LR)在不同序列长度上的性能
数据下载
1.测试数据从GitHub - tanfei2007/DeepM6A下载
2.软件包从Links for DEM6A下载DEM6A -0.3
请注意,DEM6A -0.3中,sklean包已改名,将导致无法安装,解决方法见配置流程
软件安装
安装环境:Anaconda3下conda-V4.12.0 虚拟环境
Python版本:3.6.13
配置流程
step1:创建并激活虚拟环境
1 | conda create -n DEM6A python=3.6 |
step2:修改软件包
方案1(推荐):手动解压后,修改setup.py中install_requires中软件包名(如图红色圈出 )
方案2(不推荐):手动安装解压后文件夹中的DEM6A.egg-info/requires.txt中的所有包,后在python或jupyter中使用sys引入。
step3:安装所需包环境
1 | pip install Downloads/DEM6A-0.3 -i https://mirrors.aliyun.com/pypi/simple/ |
step4:确认安装完成
数据准备
如下图划分序列,得到训练集,测试集和验证集数据:(8:1:1划分)
这里,需要使用提供的测试数据,以大肠杆菌(E.coli)为例,首先利用下图脚本,从提供的m6A_ecoli.bed以及GCF_000005845.2_ASM584v2_genomic.fna获取m6A_ecoli_pos.csv,m6A_ecoli_neg.csv文件。
后利用下图脚本,输入GCF_000005845.2_ASM584v2_genomic.fna和m6A_ecoli_neg.csv,得到训练使用的train/test/valid.hdf5文件
注意1这里R脚本内容存在一定的问题(至少0_process_bed.R有问题),所以后续使用了github仓库提供的m6A_ecoli_pos.csv,m6A_ecoli_neg.csv文件。
注意2python脚本fa_csv_to_h5.py需要根据文件名自行更改部分代码。DNA_IO.py文件第28行需要将变量seq_trim强制转换为int型(int(seq_trim))。
模型训练
训练数据
预测