#exec("{} = B".format(A))——将变量B的值赋值给A的值,如
'''
A = "var"
B = "hello world"
exec("{} = B".format(A))
print(var)
var = hello world
'''
#读取fasta文件
import re
with open("../examples/ros_bio14_LCSM.txt") as f:
file = f.readlines()
fasta = {}
for line in file:
line = re.sub("\n", "", line)
m = re.match(r'^>.*', line)
if m:
name = m.group()
fasta[name] = ''
else:
fasta[name] += line
name = list(fasta.keys())
sequence = list(fasta.values())
#最外层while循环遍历第一个fasta字符串,第二个循环遍历所有fasta字符串
A = sequence[0]
i = 1
j = 0
index = ['']
temp = A[0]
common = []
while j < len(A):
if i == len(sequence):
common.append(temp)
j += 1
if j < len(A):
temp += A[j]
else:
break
i = 1
else:
if sequence[i].find(temp) == -1:
if len(temp) > 1:
j = j - len(temp) + 2 # 重置j应当重新匹配下一个字符的索引
temp = A[j]
else:
j += 1
temp = A[j]
i = 1
else:
i += 1
#按照字符串长短对结果排序
common = sorted(common, key=len)
print(common[-1])
Rosalind第14题——ros_bio14_LCSM
最新推荐文章于 2021-08-17 22:40:00 发布