2017-06-21 3 views
-1

je vais avoir du mal à créer un code qui lit un fichier et calcule la masse d'ADN de ce fichier en utilisant ces spécificités: A = 313,2 C = 289,2 G = 329,2 T = 304,2Python: lecture de fichiers et calculer la masse d'ADN

Donc, il sort comme ceci: ACCGAA = 1847.2

également le code doit enregistrer les résultats dans un nouveau fichier.

Le fichier est juste un fichier .txt avec une chaîne de adn en elle comme: ACCGTACGT

+3

qu'avez-vous déjà essayé? Quel est le format de votre fichier? à quoi ressemblent les données dans le fichier? – mtkilic

+0

c'est juste un txt avec l'adn dedans, rien de spécial, je ne sais vraiment pas comment créer le nouveau fichier et enregistrer les résultats –

+0

'file = open (" testfile.txt "," w ")' cela va créer testfile.txt pour vous 'file.write (" Hello World ")' 'fichier.close()' – mtkilic

Répondre

0

Je pense que cela va vous aider à démarrer. Ce qu'il fait est, lit le fichier dna.txt et enregistrez le texte dans le fichier txt à dna

Ensuite, pour chaque chat à vérifier si égal ombles spécifique, si elle ne, ajoutez la valeur au total. Est-ce que cela pour tout char dans le fichier.

with open('dna.txt', 'r') as f: 
    dna = f.read() 

total = 0 
for each in dna: 
    if each == "A": 
     total = total + 313.2 
    elif each == "C": 
     total = total + 289.2 
    elif each == "G": 
     total = total + 329.2 
    elif each == "T": 
     total = total + 304.2 

file = open('output.txt', 'w') 
file.write(str(total)) 
file.close() 
+0

cela aide déjà beaucoup, merci beaucoup! –

+0

laissez-moi savoir si vous avez des questions – mtkilic

0

Si vous êtes intéressé par un moyen plus pythonique de @mtkilic, vous pouvez essayer ceci:

dna = open('dna.txt', 'r').read() 
d = {'A':313.2, 'C':289.2, 'G':329.2, 'T':304.2} 
total = sum([d.get(each, 0.0) for each in dna]) 
file = open('output.txt', 'w') 
file.write(str(total)) 
file.close() 

Nous utilisons un dict pour stocker la masse d'ADN de chaque component.Then, nous évaluons la somme avec une compréhension de liste. Nous accédons à la valeur de la clé avec la méthode get. Il permet de renvoyer 0.0 masse si le caractère n'est pas reconnu par les clés du dictionnaire.