2016-11-25 64 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長度 –

相關問題