![]() |
Een programmeur die mij kan helpen?
Hoi, ik ben nu al een week (ja, het is triest) bezig aan een programma en ik sta op het punt om het op te geven.
Het is de bedoeling dat het programma een file inleest die vol staat met een reeks aan elkaar gesloten letters (met alleen de letters A, C, G, en T -voor de kenners: een DNA sequentie dus, is verder niet belangrijk als je dat niet weet, hoor-). Vervolgens geeft de gebruiker een motief (een stukje reeks letters, dus aaac ofzo, ook alleen met A, C, G en T), en dan moet het programma gaan kijken of dit motief in de letterreeks van de file voorkomt. Zo niet, dan moet het programma de letterreeks in de file omdraaien en dan kijken of het motief erin voorkomt. Komt het dan nog niet voor, dan moet het programma alle A's in de file vervangen door T's, de T's vervangen , de C's vervangen door G's en de G's vervangen door C's. Dus als je een file hebt met de reeks ACCCAA dan zou het programma er TGGGTT van moeten maken. Dit heb ik geprobeert met een dictionary: dicti={"A" : "t", "T" : "a", "C" : "g", "G" : "c", "a" : "t", "t" : "a", "c" : "g", "g" : "c"} for letter in document: if letter == 'A' or 'a' or 'T' or 't' or 'C' or 'c' or 'G' or 'g': a=(dicti[letter]) print(a) comp = comp + a Hij geeft echter een KeyError bij a=(dicti[letter]), om vervolgens te zeggen dat AGAGGCGCGAT (de reeks uit de file) niet in de dictionary staat. Dit is logisch, want in mijn dicitionary staan alleen losse letters. Maar bij een normale string (Een woord/letterreeks, deze wordt behandeld als een list) kan het wel. Dus, hoe moet het dan? Kan iemand mij helpen? Alvast bedankt. :] |
Post de gehele code eens, want ik heb géén idee wat 'a' is. :p
Mijn eerste gok ik dat 'ie over zijn muil gaat door het inconsistente gebruik van single quotes en double quotes, maar dat zou niet mogen in Python omdat beide dezelfde strings zijn... |
Voor de eenvoud kan je volgens mij best gewoon de tekst viermaal doorzoeken;
Ik weet niet of het hier gaat om een opdracht voor jezelf of als oefening op programmeren, maar in Python zijn er vrij krachtige uitbreidingen voor bioinformatica. Toegegeven: voor jouw doel is dat vrij hard overkill, maar die zullen vast wel iets in die aard hebben staan als wat jij wilt. http://biopython.org/wiki/Main_Page Op die site kan je de meeste dingen wel vinden, lijkt me. Je zal een Seq-objectje nodig hebben, daarvan staan de methods hier overzichtelijk. Als je nog vast zou lopen, post dan misschien je code eens in code-tags, zo kunnen we beter helpen. |
Stel je hebt een file "sequentie.txt"
Code:
ACTGGTAGTAGTGCTGCATCGATGACTAGTAGATGAGATGTAGAGTC Code:
def complement(sequence): Code:
# Openen van de file "sequentie.txt" Code:
motive = input('Vul een motief in: \n').strip().upper() # Maak ook hoofdletters van motief |
Alle tijden zijn GMT +1. Het is nu 02:18. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.