このコードは、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 塩基) の 3 つのシーケンスを取得したい例:
CGTAACAAG
AATCCGGAG
CCGCCTCGG
最初のシーケンスを 3 塩基の 3 つのサブシーケンスに分割します。したがって、1 つのシーケンスから 3 つのサブシーケンスを取得し、他の 2 つのシーケンスについても同じことを行います。
このような:
CGT AAC AAG
AAT CCG GAG
CCG CCT CGG
例:
identical_segment('CGT')
この関数を 3 つのシーケンスの各サブシーケンスに適用し、すべての fasta ファイルに同じことを適用したいと考えています。したがって、目的は行列を取得することです。たとえば、最初のサブシーケンス 'CGT' を取得し、関数identical_segment() を適用すると、28 が返されます。残りの 8 つのサブシーケンスについても同じです。したがって、行列(3,3)を取得します。
28 2 3
4 23 35
23 4 27
私に何ができる?