onsdag 29 december 2010

Gruset i maskineriet

Vad är det som är svårt med det jag gör?

Jo, att sortera filer som har runt 50 miljoner rader eller mer, och att hålla koll på annoteringarna. Hur vetenskapligt intressant låter inte det? En BED fil har positioner som är 0-baserade, GTF filer är 1-baserade. Ensembl och NCBI har olika gener, RefSeq bara ett fåtal gener, och allt man laddar ner från UCSC saknar gennamn.

Sedan några veckor har jag roat mig med att ta fram en ny annoteringsfil för mina analyser, jag litade inte längre på den jag har använt. Så hur gör jag detta? Jag vill ha ensembls gener, kända lincRNAs som bl.a. personer här på Broad har tagit fram, samt de "nya" gener som jag mha bl.a. programmet Scripture har definierat bland mina celler. Ungefär detta gör jag därmed:

1. Ladda ner en ensembl GTF file från UCSC table browser
2. Ladda ner en Transcript ID - Gene ID fil från bioMart
3. Föra in respektive gennamn i ensembl.gtf filen
4. Kollar vilka lincRNAs som överlappar med mina ensembl gener, dessa vill jag inte lägga till (dubletter = death)
5. Lägga till de "nya" lincRNAs
6. Kollar vilka av generna definierade av Scripture som överlappar med min ensembl_lincRNA.gtf fil.
7. Lägger till de nya generna till min GTF.

Så då har jag då nu en annoteringsfil som är MER komplett, men inte helt komplett. Jag utelämnade ju alla nya isoformer av kända och okända gener. Så vid sidan om gör jag även en annoteringsfil som innehåller alla isoformer. Och det är här vi kommer till filerna som har 50 miljoner rader. Och nya isoformer av en känd gen måste vi även annotera som tillhörande just den genen. Vilket innebär smärtsamma processer där jag kollar hur rader i olika filer överlappar, skapar filer för dessa överlapp och sedan slutgiltligen för in de nya/egentliga gennamnen i ursprungsfilen. Låter det idiotiskt? Det är det. Vet du ett bättre sätt - please tell me.

Och alla dessa verktyg (som jag älskar), men som är så nya (eftersom fältet är nytt) och helt okompatibla med varann. Alltså spenderar man tiden med att sortera om filer, modifiera headers, hitta buggar. Och önskar att jag var en programmerare istället, och därmed kunde skriva bättre program än den oändliga radda av python program som nu bor på min hårddisk.

Och sen var det de vetenskapliga frågorna också.

Inga kommentarer:

Skicka en kommentar