首页 文章

Python DNA脚本

提问于
浏览
-1

我一直在写一个Python DNA脚本,它执行以下操作

  • 读取输入DNA并打印出氨基酸序列

  • 读取名为 DNA.txt 的文件并将'a'替换为'A'并写入文件Called normalDNA.txt

  • 读取名为 DNA.txt 的文件并将'a'替换为'T'并写入文件Called mutatedDNA.txt

  • 调用'Reads input DNA and prints out amino acid sequence'并将mutatedDNA和normalDNA txt文件翻译成氨基酸

问题是我无法使这些工作:/他们在第一个函数之后不给任何运行时他们不想写入名为 normalDNA.txtMutatedDNA.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 回答

  • 0

    反馈......我让def mutate(): 工作了,但是我努力让第3节 txtTranslate(): 工作 . 基本上我需要调用第1部分并将称为正常和突变DNA的txt文件送入 translate (arr, size = 1, frame = 1): ,这样它就可以将突变的文件和正常DNA的DNA序列翻译成蛋白质序列 .

    任何建议,将不胜感激 .

    到目前为止这是我的代码 .

    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():
                if 'a' in line:
                    onef.write(line.replace('a', 'A'))
                    twof.write(line.replace('a', 'T'))
                else:
                    onef.write(line)
                    twof.write(line)
    
        f.close()
    
    
    def txtTranslate():
        pass
        onef = open("normalDNA.txt","r")
        twof = open("mutatedDNA.txt","r")
        for f in [onef, twof]:
            if f.mode == 'r':
                dna_string = [onef, twof]
        translate(dna_string)
    
    
    mutate()
    txtTranslate()
    

相关问题