使用机器学习和Python揭开DNA测序神秘面纱(一)

简介: 使用机器学习和Python揭开DNA测序神秘面纱(一)

简介

基因组是生物体中DNA的完整集合。所有生物物种都有一个基因组,但是它们的差异很大。例如,人类基因组被排列成23条染色体,这有点像百科全书被编辑成23卷。如果算上所有字符(单个DNA“碱基对”),每个人类基因组中将有超过60亿个字符。所以这是一个巨大的工程。

人类基因组大约有60亿个字符。如果您认为基因组(完整的DNA序列)就像一本书,那就是一本由大约60亿个“ A”,“ C”,“ G”和“ T”字母组成的书。每个人都有独特的基因组。尽管如此,科学家发现人类基因组的大部分彼此相似。

作为数据驱动的科学,基因组学广泛地利用机器学习来捕获数据中的关系并推断出新的生物学假设。但是,要想拥有从不断增长的基因组学数据中提取新发现的能力,就需要更强大的机器学习模型。通过有效利用大型数据集,深度学习已给了计算机视觉和自然语言处理等领域带来了很大进步。它已成为许多基因组建模任务的首选方法,包括预测遗传变异对基因调控机制(如DNA接受性和DNA剪接)的影响。

在本文中,我们将了解如何解释DNA结构以及如何使用机器学习算法来建立DNA序列数据的预测模型。

DNA序列如何表示?

该图显示了DNA双螺旋结构的一小部分。

image.png

DNA的双螺旋结构

双螺旋是DNA的化学表示。但是DNA很特别。它是由四种类型的碱基组成的核苷酸:腺嘌呤(A),胸腺嘧啶(T),鸟嘌呤(G)和胞嘧啶(C)。我们总是称它们为ACGT

这四种化学物质通过氢键以任何可能的顺序连接在一起,形成一条链,这形成了DNA双螺旋的一条线。双螺旋的第二条线平衡了第一根。因此,如果第一条线上有A,则第二条线上对应位置必须为T。此外,C和G始终保持平衡。因此,一旦您确定了螺旋的一个螺纹,就可以随时拼写另一个螺纹。

image.png


单个DNA线(螺旋)的序列

这些碱基的顺序决定了DNA链中包含哪些生物学指令。例如,序列ATCGTT可能指示蓝眼睛,而ATCGCT可能指示棕色眼睛。

使用Python处理DNA序列数据

image.png


熟悉诸如Biopythonsquiggle之类的Python包将在处理Python中的生物序列数据时为您提供帮助。

Biopython是python模块的集合,这些模块提供处理DNA,RNA和蛋白质序列操作的功能,例如DNA字符串的反向互补,寻找蛋白质序列中的基序列等。它提供了很多解析器,可以读取所有主要的遗传数据库,例如 GenBank,SwissPort,FASTA等,

image.png


安装Biopython


pip install biopython

**Squiggle:**这是一个工具,可以自动生成交互式网页下的原始DNA序列的二维图形表示。考虑到易用性,Squiggle实现了几种序列可视化算法,并引入了“为方便人类使用而做”的新颖可视化方法。

安装Squiggle


pip install Squiggle

DNA序列数据通常以“ fasta”格式的文件格式储存。Fasta格式通过包含注释的大于号和包含序列的另一行作为组成自己的单行数据:

“AAGGTGAGTGAAATCTCAACACGAGTATGGTTCTGAGAGTAGCTCTGTAACTCTGAGG”*

文件可以包含一个或多个DNA序列。还有许多其他格式,但是fasta是最常见的格式。

这是使用Biopython处理Fasta格式的DNA序列的简要示例。序列对象将包含诸如序列ID和sequence等属性以及可以直接使用的序列长度。

我们将使用Biopython的Bio.SeqIO来解析DNA序列数据(fasta)。它提供了一个简单的统一界面来输入和输出各种文件格式。


from Bio import SeqIOfor for sequence in SeqIO.parse('./drive/My Drive/example.fa', "fasta"):    print(sequence.id)    print(sequence.seq)    print(len(sequence))

这样就产生了序列ID,序列本身和序列长度。


ENST00000435737.5ATGTTTCGCATCACCAACATTGAGTTTCTTCCCGAATACCGACAAAAGGAGTCCAGGGAATTTCTTTCAGTGTCACGGACTGTGCAGCAAGTGATAAACCTGGTTTATACAACATCTGCCTTCTCCAAATTTTATGAGCAGTCTGTTGTTGCAGATGTCAGCAACAACAAAGGCGGCCTCCTTGTCCACTTTTGGATTGTTTTTGTCATGCCACGTGCCAAAGGCCACATCTTCTGTGAAGACTGTGTTGCCGCCATCTTGAAGGACTCCATCCAGACAAGCATCATAAACCGGACCTCTGTGGGGAGCTTGCAGGGACTGGCTGTGGACATGGACTCTGTGGTACTAAATGAAGTCCTGGGGCTGACTCTCATTGTCTGGATTGACTGA390

我们可以可视化这些DNA序列吗?

是的,我们可以使用Squiggle python库将这些DNA序列可视化,进行操作并运行:


Squiggle example.fa --method=gates

image.png


DNA序列被转换为2D图像,其中T,A,C和G分别在上,下,左和右方位。这给每个序列一个“形状”。

现在,我们来可视化另一个包含6个DNA序列的fasta数据。


Squiggle example.fasta

image.png

在此,首先使用2位编码方案将DNA序列转换为二进制序列,该方案将T映射为00,C映射为01,A映射为10,G映射为11。

现在我们可以轻松加载和操作生物序列数据,那么怎么将数据用于机器学习或深度学习

由于机器学习或深度学习模型要求输入必须是特征矩阵或数字值,但目前我们仍然以字符或字符串格式存储数据。因此,下一步是将这些字符编码为矩阵。

编码序列数据有3种通用方法:

  1. 顺序编码DNA序列
  2. 独热(one-hot)编码DNA序列
  3. DNA序列作为独立“语言”,称为k-mer计数

让我们分别进行实现,看看哪一个为我们提供了完美的输入。

目录
相关文章
|
1月前
|
机器学习/深度学习 数据采集 数据可视化
Python数据科学实战:从Pandas到机器学习
Python数据科学实战:从Pandas到机器学习
|
1月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
83 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
29天前
|
机器学习/深度学习 数据可视化 数据处理
掌握Python数据科学基础——从数据处理到机器学习
掌握Python数据科学基础——从数据处理到机器学习
41 0
|
29天前
|
机器学习/深度学习 数据采集 人工智能
机器学习入门:Python与scikit-learn实战
机器学习入门:Python与scikit-learn实战
38 0
|
1月前
|
机器学习/深度学习 数据采集 数据挖掘
Python在数据科学中的应用:从数据处理到模型训练
Python在数据科学中的应用:从数据处理到模型训练
|
24天前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
76 4
|
3天前
|
算法
PAI下面的gbdt、xgboost、ps-smart 算法如何优化?
设置gbdt 、xgboost等算法的样本和特征的采样率
18 2
|
21天前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
39 1
|
1月前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
阿里云人工智能平台 PAI 团队发表的图像编辑算法论文在 MM2024 上正式亮相发表。ACM MM(ACM国际多媒体会议)是国际多媒体领域的顶级会议,旨在为研究人员、工程师和行业专家提供一个交流平台,以展示在多媒体领域的最新研究成果、技术进展和应用案例。其主题涵盖了图像处理、视频分析、音频处理、社交媒体和多媒体系统等广泛领域。此次入选标志着阿里云人工智能平台 PAI 在图像编辑算法方面的研究获得了学术界的充分认可。
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
下一篇
DataWorks