我一直在写一个Python DNA脚本,它执行以下操作
-
读取输入DNA并打印出氨基酸序列
-
读取名为
DNA.txt
的文件并将'a'替换为'A'并写入文件CallednormalDNA.txt
-
读取名为
DNA.txt
的文件并将'a'替换为'T'并写入文件CalledmutatedDNA.txt
-
调用'Reads input DNA and prints out amino acid sequence'并将mutatedDNA和normalDNA txt文件翻译成氨基酸
问题是我无法使这些工作:/他们在第一个函数之后不给任何运行时他们不想写入名为 normalDNA.txt
和 MutatedDNA.txt
的文件
Reads a file called DNA.txt and replaces 'a' with 'A'and writes to file Called normalDNA.txt Reads a file called DNA.txt and replaces 'a' with 'T' and writes to file Called mutatedDNA.txt Calls on 'Reads input DNA and prints out amino acid sequence' and translates the mutatedDNA and normalDNA txt files to amino acids
DNA.txt 文件:
AAAABBABABSFSFGAGDHLKAaBBAFGaGAUUYYa
代码到目前为止
import re
prot_match = {'TGA': '*', 'GCG': 'A', 'CGA': 'R', 'ATA': 'I', 'AGA':
'R', 'TAA': '*', 'TTT': 'F', 'GAG': 'E', 'CTT': 'L', 'CGT': 'R', 'CTC':
'L', 'CTG': 'L', 'TGT': 'C', 'CCA': 'P', 'AAT': 'N', 'GTC': 'V', 'GAC':
'D', 'GAT': 'D', 'TAT': 'Y', 'AAA': 'K', 'GTA': 'V', 'TAG': '*', 'CGC':
'R', 'GCA': 'A', 'TCG': 'S', 'GCT': 'A', 'GCC': 'A', 'TGG': 'W', 'TTC':
'F', 'CCC': 'P', 'TTG': 'L', 'CGG': 'R', 'GGC': 'G', 'AGG': 'R', 'TCC':
'S', 'CCT': 'P', 'GGT': 'G', 'GGG': 'G', 'TCA': 'S', 'AGC': 'S', 'CAG':
'Q', 'CAC': 'H', 'ATC': 'I', 'GAA': 'E', 'GTG': 'V', 'CCG': 'P', 'CAT':
'H', 'AAG': 'K', 'ATG': 'M', 'AAC': 'N', 'TAC': 'Y', 'TGC': 'C', 'CTA':
'L', 'TCT': 'S', 'ATT': 'I', 'ACG': 'T', 'AGT': 'S', 'GTT': 'V', 'TTA':
'L', 'CAA': 'Q', 'GGA': 'G', 'ACC': 'T', 'ACA': 'T', 'ACT': 'T'}
def translate (arr, size = 1, frame = 1):
return [arr[i: i+size] for i in range(frame - 1, len(arr), size)]
dna = input('Enter DNA: ').upper()
frames = 1
for frame in range(frames):
chunked_dna = translate(dna, 3, frame + 1)
prot_seq = map(lambda seq: prot_match.get(seq, '0'), chunked_dna )
prot_seq = ''.join(prot_seq)
print('Protein sequence' ':', prot_seq)
def mutate():
f = open("DNA.txt", "r")
onef = open("normalDNA.txt","w+")
twof = open("mutatedDNA.txt","w+")
if f.mode == 'r':
for line in f.readlines():
line_DNA = []
for i in line:
if 'min' in line:
onef.write(line.replace('a', 'A'))
elif 'max' in line:
twof.write(line.replace('a', 'T'))
def txtTranslate(translate):
onef = open("normalDNA.txt","r")
twof = open("mutatedDNA.txt","r")
onef.close()
twof.close()
f.close()
任何帮助/建议将不胜感激 .
提前致谢 .
1 回答
反馈......我让def mutate(): 工作了,但是我努力让第3节 txtTranslate(): 工作 . 基本上我需要调用第1部分并将称为正常和突变DNA的txt文件送入 translate (arr, size = 1, frame = 1): ,这样它就可以将突变的文件和正常DNA的DNA序列翻译成蛋白质序列 .
任何建议,将不胜感激 .
到目前为止这是我的代码 .