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.