2016-11-25 33 views
0

我正在做一个生物学学位,感觉我已经在Python的深处抛出了,因为我从来没有编码过,而'教学'几乎不存在。无论如何,他们已经给了基因序列的这个文件,它几乎看起来像:如何使用Python上的字典更改文件中的值

En123, ATGCCGAATA 

En124, ATGCCAGTAT 

但更多的方式基因更长的时间。他们希望它转换成蛋白质序列。 到目前为止,我有...

with open('DNA_sequences.csv', 'r') as f: 

for line in f: 
    columns = line.rstrip("\n").split(",") #remove end of line charcters and split at commas to produce a list 
    ensemblID = columns[0] #ensemblID is first element in our list 
    gene_sequence = columns [1] #gene_name is second element in list 

不知道,如果我需要的列或不。

我也制作了蛋白质序列的字典,其中含有氨基酸和相应的密码子。

protein_sequence= {'TTT': 'F', 'CTT': 'L', 'GAT':'D'} etc. 

所以我不知道如何我在文件到密码子分裂的基因序列,然后使其通过字典,所以我得到的氨基酸名称序列。

i.e. gene_sequence= TTTCTTTGAT to protein_sequence= FLD 

(对不起,这么无能!)

+0

是否总是3个字符的氨基酸? – RichSmith

+0

你会用什么阅读框?转发1? –

+0

您是否需要将起始密码子作为TAC,对应于甲硫氨酸? –

回答

0

所以加载CSV我会使用csv模块,像这样:

import csv 

with open(filepath) as csvFile: 
    reader = csv.reader(csvFile) 
    data = [row for row in reader] 

然后到基因序列转换:

geneSeq = "TTTCTTTGAT" 

acids = [geneSeq[i:i+3] for i in range(0, len(geneSeq), 3)] 

proteinSequenceString = "" 
for a in acids: 
    proteinSequenceString += protein_sequence[a] 
0

您可以遍历gene_sequence 3个块和您的字典中的查找密码子:

>>> gene_sequence = 'TTTCTTGAT' 
>>> protein_sequence = {'TTT': 'F', 'CTT': 'L', 'GAT': 'D'} 
>>> ''.join(protein_sequence[gene_sequence[i:i+3]] for i in range(0, len(gene_sequence), 3)) 
'FLD' 
+0

感谢你们,上面我应该提到带有基因名称和序列的文件是一个csv文件(不知道这是否有所作为,甚至是什么意思,但以防万一),所以即使我运行程序它返回'_io.TextIOWrapper'没有len()。我认为这意味着它无法读取gene_sequence长度 –

相关问题