我使用fasta文件格式,我想在没有 ids 的情况下从中提取序列,并拆分序列,我写这段代码
outfile=open('output.txt','r')
for line in open('sequences.fasta')
if line[0]==">":
continue
outfile.write(line)
此步骤创建一个包含序列的文本文件,它给出:
AATCCGGAGGACCGGTGTACTCAGCTCACCGGGGGCATTGCTCCCGTGGTGACCCTGATTTGTTGTTGGG
CCGCCTCGGGAGCGTCCATGGCGGGTTTGAACCTCTAGCCCGGCGCAGTTTGGGCGCCAAGCCATATGAA
AGCATCACCGGCGAATGGCATTGTCTTCCCCAAAACCCGGAGCGGCGGCGTGCTGTCGCGTGCCCAATGA
CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGTTGAGACAACAGAATATATGATCGAGTG
AATCTGGAGGACCTGTGGTAACTCAGCTCGTCGTGGCACTGCTTTTGTCGTGACCCTGCTTTGTTGTTGG
GCCTCCTCAAGAGCTTTCATGGCAGGTTTGAACTTTAGTACGGTGCAGTTTGCGCCAAGTCATATAAAGC
CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGTTGAGACAGCAGAACATACGATCGAGTG
AATCCGGAGGACCCGTGGTTACACGGCTCACCGTGGCTTTGCTCTCGTGGTGAACCCGGTTTGCGACCGG
GCCGCCTCGGGAACTTTCATGGCGGGTTTGAACGTCTAGCGCGGCGCAGTTTGCGCCAAGTCATATGGAG
....
然后,我想拆分每个序列,以获得包含三个基序的子序列,如“CGT”,我把这段代码:
for line in open('f:/output.txt', 'r'):
seq=line.strip()
[seq[i:i+3] for i in range(0, len(seq), 3)]
这样:
['CGT', 'AAC', 'AAG', 'GTT', 'TCC', 'GTA', 'GGT', 'GAA', 'CCT', 'GCG', 'GAA', 'GGA', 'TCA', 'TTG', 'ATG', 'AGA', 'CCG', 'TGG', 'AAT', 'AAA', 'CGA', 'TCG', 'AGT', 'G']
['AAT', 'CCG', 'GAG', 'GAC', 'CGG', 'TGT', 'ACT', 'CAG', 'CTC', 'ACC', 'GGG','GGC', 'ATT', 'GCT', 'CCC', 'GTG', 'GTG', 'ACC', 'CTG', 'ATT', 'TGT', 'TGT', 'TGG', 'G']
['CCG', 'CCT', 'CGG', 'GAG', 'CGT', 'CCA', 'TGG', 'CGG', 'GTT', 'TGA', 'ACC', 'TCT', 'AGC', 'CCG', 'GCG', 'CAG', 'TTT', 'GGG', 'CGC', 'CAA', 'GCC', 'ATA', 'TGA', 'A']
对我来说,我想分组分组,每组包含三个序列,长度为9(九个碱基),然后我将每个序列分成三个碱基的子序列,所以我必须知道它的长度每个序列。
例如
CGTAACAAG
AATCCGGAG
CCGCCTCGG
然后,我对这个子序列应用了一些操作,并且我在序列的所有长度上执行相同的步骤。
可以帮助我做一些,并纠正我的代码
答案 0 :(得分:0)
BioPython对此有好处,如果您有更多生物信息学问题,我建议您查看BioStars.
你的意思是做这样的事情吗?
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)
all_tripeptides = []
for seq_line in all_codons:
tripeptides = [''.join(seq_line[i:i+3]) for i in xrange(len(seq_line)) if len(seq_line[i:i+3])==3]
all_tripeptides.append(tripeptides)