此代码用于从 fasta 文件中提取和拆分序列
outfile=open('outf','w')
for line in open('input'):
if line[0]==">":
outfile.write('\n')
else:
outfile.write(line.strip())
outfile.close()
all_codons=[]
for line in open('outf', 'r'):
seq=line.strip()
codons = [seq[i:i+3] for i in xrange(0, len(seq), 3) if len(seq[i:i+3])==3]
all_codons.append(codons)
然后,从分割的序列中,我想取三个序列,它的长度是 9(9 个碱基)例如:
CGTAACAAG
AATCCGGAG
CCGCCTCGG
我将第一个序列分成三个碱基的 3 个子序列,因此,从一个序列中我获得 3 个子序列,我对另外两个序列做同样的事情。
像这样:
CGT AAC AAG
AAT CCG GAG
CCG CCT CGG
例子:
identical_segment('CGT')
我想将此函数应用于三个序列的每个子序列,然后在所有 fasta 文件上应用相同的东西。所以,目的是获取矩阵,例如我取第一个子序列'CGT'并应用函数 same_segment() ,它返回 28,其余 8 个子序列相同。所以我得到一个矩阵(3,3):
28 2 3
4 23 35
23 4 27
我能做些什么?