import re
#读取fasta序列
with open("../examples/ros_bio21_REVP.txt") as f:
file = f.readlines()
dna = ''
for line in file:
line = re.sub("\n", "", line)
m = re.match(r'^>.*', line)
if m:
continue
else:
dna += line
table = {'A': 'T', 'G': 'C', 'C': 'G', 'T': 'A'}
i = 0
all_pal = []
index = []
while i < len(dna)-4: #最短长度为4
n = 0
while n < 8: #最长长度为12,即4+n<12
if i + 4 + n > len(dna):
break
sequence = dna[i:i+4+n]
r_sequence = ''.join([table[i] for i in sequence[::-1]])
if sequence == r_sequence:
all_pal.append(sequence)
index.append(i)
n += 1
i += 1
#循环遍历输出
x = 0
for i in range(len(index)):
print(index[i]+1, len(all_pal[i]))
Rosalind第21题——ros_bio21_REVP
最新推荐文章于 2021-08-17 22:40:00 发布