碱基互补配对原则是:A与T配对,G与C配对。
求DNA的反向互补序列分两步:第一是反向,第二是互补。比如序列“ATGC”,反向就是“CGTA”,再互补就是“GCAT”。
**给定:**长度不超过1000bp的DNA序列。
**需得:**其反向互补序列。
示例数据
示例结果
Python实现
Complementing_a_Strand_of_DNA.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import sys
def reverse_complement(dna):
revc = ""
basepair = {'A':'T', 'T':'A', 'G':'C', 'C':'G'}
for c in dna:
revc = basepair[c] + revc
return revc
def test():
dna = 'AAAACCCGGT'
return reverse_complement(dna) == 'ACCGGGTTTT'
if __name__ == '__main__':
if not test():
print("reverse_complement: Failed")
sys.exit(1)
with open('rosalind_revc.txt') as fh:
dna = fh.read()
revc = reverse_complement(dna.strip().upper())
print(revc)
|
- 在Python中,是没有switch语句的,可以用if…elif…elif..else来模拟switch语句;而更pythonic的做法是用字典来代替。在本题中,你可以尝试用if…elif…else来实现反向互补。
- Python中的序列反向可以通过切片实现,如dna_forward[::-1],就得到了其反向序列,再求其互补序列,也可以实现反向互补的需求。
学生信欢迎关注我的知乎,请“点赞”为爱发电,只“收藏”不点赞都是耍流氓。
文章作者
公众号:简说基因, 知乎:简佐义
上次更新
2020-12-05
许可协议
本站文章皆为原创,转载需注明作者及文章链接,谢谢!