Behandle data fra store filer
Oppgaver vi jobber med sammen på gruppetimen i uke 5.
Python kan brukes til å analysere og lese datafiler som er så store at vi ikke kan åpne dem eller analysere dem manuelt.
Et eksempel på slike datasett er genom-data. Denne filen inneholder DNA-sekvensen til kromosome 1, 2 og 3 til et menneske. Filen er så stor at det ikke vil fungere å åpne den og se på den manuelt, men med Python kan vi ganske raskt og enkelt lese og gå gjennom filen.
Oppgave 1
Last ned filen, og skriv Python kode som printer de først 10 linjene.
Oppgave 2
Du vil se at den første linjen er >1
og deretter kommer det 10 linjer med DNA. I dette tilfellet er sekvensen bare N, som betyr at den er ukjent. Prøv i stedet å printe de første 10000 linjene, så vil du se "kjent" DNA.
Den første linjen >1
forteller at alt som kommer etter dette er sekvensen til kromosom 1. Etter ganske mange linjer vil det komme en linje >2
. Hver linje består av 80 baser (A, C, T G, eller N).
Oppgave
Forskning har vist at personer som har en C på posisjon 135851076
på kromosom 2 har stor sannsynlighet for å være laktoseintolerante. Du jobber på et sykehus, og filen du lastet ned er DNA-et til en person. Avgjør om denne personen er genetisk disponert for å være laktoseintolerant.
NB: Posisjon 135851076 vil si base nr. 135851076 der den første basen på kromosome 2 regnes som nr. 1 (ikke 0).
Lag en plan for hvordan du vil gå frem for å løse denne oppgaven før du begynner på den.
Oppgave 3
Eksempelet med laktoseintoleranse er bare ett eksempel der én enkelt base kan føre til en egenskap.
Denne filen inneholder flere andre egenskaper som vi ønsker å sjekke automatisk. Hver linje i filen er på formatet [Kromosom],[Posisjon],[Base som fører til egenskapen],[Beskrivelse av egenskapen]
.
Skriv et program som går gjennom filen og sjekker alle egenskapene. Det kan være lurt å skrive funksjoner for å gjøre de ulike tingene koden din må ta seg av.