2014-10-03 70 views
-3
import string 
import os,sys 

file=open("C:\Python27\\New Text Document.txt",'r')\ 
seq =file.readlines() basecomplement = {'A': 'T', 'C': 'G', 'G': 'C', 'T': 'A'} 

def translate(seq): 
    aaseq = [] 
    for str in seq: 
     aaseq.append(basecomplement[str]) 
    return aaseq 

for frame in range(1): 
    rseqn= (''.join(item.split('|')[0] for item in translate(seq[frame:]))) 

rseqn = rseqn[::-1]  
print(rseqn) 
print(seq) 

ERROR这里是文件关键错误补充

"C:\Users\ram\Desktop\pythonhw\dnacomp.py", line 13, in <module> 
rseqn= (''.join(item.split('|')[0] for item in 
translate(seq[frame:]))) File 

"C:\Users\ram\Desktop\pythonhw\dnacomp.py", line 10, in translate 
aaseq.append(basecomplement[str]) KeyError: 
'AGTCTGGCATACCAGTACAGACTATCA' 

如果我使用简单的字符串,我也越来越序列,但我试图读取该文件作为输入,它显示了以下错误

+1

请清洗码! – 2014-10-03 22:20:19

回答

2

如果我理解你正在试图获得在

def translate(seq): 
    basecomplement = {'A': 'T', 'C': 'G', 'G': 'C', 'T': 'A'} 
    return ''.join(basecomplement[letter] for letter in seq) 

测试

s = 'ATCGGCATAATAC' 
>>> translate(s) 
'TAGCCGTATTATG' 

要翻译的文件时,你会做这样的事情

with open('file.txt', 'r') as f: 
    for line in f: 
     print(translate(line)) 
+0

我明白我可以使用此功能的文件作为输入网络 – 2014-10-03 22:55:26

+0

你可以展示你的文件的样子的例子吗? – CoryKramer 2014-10-03 22:56:33

+0

dna file FASTA formate – 2014-10-03 23:02:12