0
我用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(9 baseses),然后我分裂每个序列子 - 三个碱基的序列,所以我必须知道每个序列的长度。
例如
CGTAACAAG
AATCCGGAG
CCGCCTCGG
然后,我申请在此子序列中的一些操作,并且我做对序列的整个长度相同的步骤。
能有人帮我做到这一点,并纠正我的代码
好的,谢谢。从拆分的序列中知道我想要取三个序列的长度为9,我将第一个序列拆分为3个碱基的3个子序列,因此,从一个序列中我得到3个子序列我使用了这个函数:def identical_segment(input_string): \t code = {“a”:0,“c”:1,“g”:2, “T”:3} \t p = [代码[I对于i在input_string]] \t N = LEN(input_string) \t C = 0 \t对于i,n的枚举(范围(N,0,-1 )): \t \t c + = p [i] *(4 **(n-1)) \t \t return c + 1 – m28
我想将这个函数应用于这三个序列的每个子序列,然后将相同的东西应用于所有fasta文件 – m28
因此,目的是获取矩阵,例如我采用第一个子序列'cct'并应用函数identical_segment(),它返回24,其余8个子序列的结果相同。所以我得到一个矩阵(3,3): – m28