生物信息学?
这是USDC线上公开课程的同步笔记。
第一讲 基因中的隐藏信息
1.1 复制起始位置?
如何找出 DNA 中隐藏的信息?联想到我们概率论中学到的用概率破解密码的方法,我们可以考虑从找到重复次数最多的子串入手。
先考虑这样一个问题:
给定一个字符串 S,找出其中出现次数最多的且长度为 k 的子串
显然有 \(\mathcal O(|S|^2 k)\)暴力做法,也不难想到可以通过哈希乃至后缀自动机等优化方法。(我忘了后缀自动机怎么搞的了所以这里是口胡的)
DNA 聚合酶在启动时需要一种叫做 dnaA 的蛋白质,dnaA与复制起源的一个短区域(约9 bp,称为 dnaA box)。为了效率 dnaA box 应该比较多,所以统计是有意义的。
1.2
当我们找出所有 k-mers 的结果时,如何确定谁是可能的 dnaA box? 事实上,我们很有可能发现有些 k-mers 是互补的,而它们就是可能的 dnaA box。
课程中提到了可以用 Ori-Finder 这个软件来直接帮助确定。
现在新问题来了:我们实际上是在约 500bp 的起始复制区域里找的 k-mers,如果起始复制区域未知,我们又要如何在长度可能上百万的基因序列中确定哪段是起始区呢?
那我们只好滑动窗口,寻找 DNA 序列中哪一段有频繁出现很多次单词的区间。
我们给出一个形式化的定义:
一个 k-mer 组成一个 (l, t)-簇(clump),若存在一个长度为 l 的子串,这个 k-mer 在其中至少出现过 t 次
于是我们可以提出另一个问题:
给出序列和 k,l,t,请找出所有 组成 (l,t) 簇的 k-mers
得出的结果非常多。怎么办?我们来求助于生物知识。
1.3
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。