python 生物信息学_生物信息学算法之Python实现

本文介绍了如何使用Python计算在特定GC概率下,与给定DNA序列GC含量相同的序列的概率。通过示例数据和代码演示了如何处理DNA序列,计算碱基出现概率,并利用对数简化计算过程。
摘要由CSDN通过智能技术生成

众所周知 基因组的核酸链不可能是随机形成的。有时候许多物种基因组之间 存在一些保守序列 motif 这意味着它们可能具有重要功能。但是 我们如何确定这些序列不是随机形成的 DNA 片段呢一个常识是 越短的序列越容易随机形成 越长的序列

众所周知,基因组的核酸链不可能是随机形成的。有时候许多物种基因组之间,存在一些保守序列(motif),这意味着它们可能具有重要功能。但是,我们如何确定这些序列不是随机形成的 DNA 片段呢?

一个常识是:越短的序列越容易随机形成,越长的序列越难随机形成。如何对随机形成序列的概率进行量化,以及如何确定容易和不容易随机形成的序列的长度的阈值呢?这篇文章将对这个问题进行探索。

给定: 一段 DNA 序列,以及一系列假定的 GC 出现的概率。

需得: 在特定 GC 出现的概率的情况下,得到一条与给定 DNA 序列 GC 含量相同的序列的概率,并且将概率值取对数输出。

示例数据

ACGATACAA

0.129 0.287 0.423 0.476 0.641 0.742 0.783

示例结果

-5.737 -5.217 -5.263 -5.360 -5.958 -6.628 -7.009

Python 实现

本题思路参考自下述博客:

Rosalind – Introduction to Random Strings[1]

因为 DNA 有 4 种碱基,每一个位置都有 4 种可能。如果每一种碱基出现的概率都是 25%,那么一个 9bp 的序列,共有 4·4·4·4·4·4·4·4·4 = 49=262144 种可能性。但现在我们假定 GC 出现的概率是 0.129 而不是 0.5

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值