||
Bioinformatics Stronghold - HAMM: Counting Point Mutations
Evolution as a Sequence of Mistakes
突变(mutation)是核酸链进行合成或者复制产生的错误。由于核酸对于细胞的功能是至关重要的,所以突变往往会引起细胞内的连锁反应,最终影响整个细胞。尽管突变是错误的,但一些罕见的突变对于细胞来说可能是有益的。实际上,进化的宏观效应正是由几代微效有益突变的积累所产生的。
最简单的也是最为常见的核酸突变就是点突变(point mutation),所谓点突变就是DNA单链上一个碱基被另外一个碱基替换。而延伸到双链上,就是一对碱基对被替换,比如C-G碱基对被替换成了A-T碱基对。
A point mutation in DNA changing a C-G pair to an A-T pair.
来自于同一近期祖先的两个生物或物种的DNA是同源的(homologous),因此统计同源链上差异的碱基数量会帮助我们理解这两个物种在进化过程中发生的点突变事件。
对于两条同源序列,我们最感兴趣的还是计算能够区分这两条序列差异最小的突变数,因为生物简约性原则要求解释进化历史要越简单越好。
Problem
Given two strings s and t of equal length, the Hamming distance (汉明距) between s and t, denoted dH(s, t), is the number of corresponding symbols that differ in s and t.
Return: The Hamming distance dH(s, t).
Sample Dataset
Sample Output
7
Solution
另外,看到网友Ben Usman的代码更加简洁:
其中,zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。利用*号操作符,可以将list unzip(解压),比如:
参考
【脚本之家】Python中zip()函数用法实例教程
Over
Rosalind is a platform for learning bioinformatics and programming through problem solving. Take a tour to get the hang of how Rosalind works.
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-24 01:18
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社