A mai nap egy újabb hiányos dokumentációjú, rendkívül bonyolult programmal, vagy inkább program családdal fogunk megismerkedni. A Broad Institute GATK2 programjával, annak is a genetikai variációk felderítésére szolgáló folyamatával.
Az új generációs szekvenálási eljárások következtében ugyanis rá kellett jönnünk, hogy a genetikai változékonyság korábban nem sejtett módokon is felbukkanhat. Ezek feltérképezése nem egyszerű feladat, mert akár ki akármit is mond, ezek a szekvenálási eljárások sok hibát ejtenek. Elég csak arra gondolni, hogy a megkapott szekvenciák fele nem téképeződik a referencia genomra. Tehát van egy csomó, hibáktól hemzsegő adatsorunk, amit hozzá kell illeszteni egy szabványnak kikiáltott szekvenciához és ráadásul meg is kell mondanunk, hogy mi a hiba, és mi az, ami csak az egyéni különbségekből adódó eltérés.
Erre számtalan program van, abból most nézzük meg a GATK2-t. A program telepítése meglehetősen egyszerű. A mi esetünkben két Javas JAR fájlra lesz szükség: AnalyzeCovariates.jar és GenomeAnalysisTK.jar. Ezen felül a jól ismert SamTools programcsomag is kell, vagy annak Javasított változata a Picard. Ezek telepítésére nem térek ki, elég egyszerűek, probléma nincs velük. Szükséges továbbá egy térképező program, ami a short read-eket a referencia genomon elhelyezi. Fontos, hogy a program BAM outputot generáljon (ezt a SAM kimenetből egy paranccsal könnyen átalakíthatjuk BAM-á), mert a GATK2 csak ezt hajlandó megenni. (Mint látni fogjuk, elég kényes a gyomra.)
A folyamat elrettentésül itt látható. Ezt, és a dokumentációt követve a következő kiegészítéseket teszem:
- A referencia faj szekvenciája .fasta kiterjesztésű legyen. Természetesen a formátuma is, de az .fna kiterjesztés esetén a program megáll.
- A létező variációkat tartalmazó fájl .rod-ra végződjön.
- A dupikációk kezelése előtt rendezzük a BAM állományt koordináták szerint növekvő módon.
- Minden egyes lépés kéri, hogy a BAM állomány tartalmazzon egy úgynevezett read groupot. A GenomeAnalysisTK.jar tartalmaz opciót, amivel megadhatunk neki alapértelmezett nevet (--default_read_group), de a későbbi programoknál ez hiányzik. Jobb mindjárt az elején a fejlécben elhelyezni ezt, és minden egyes sorban szintén kell a read group tag.
- A szekvenáló platform nevét is meg kell adni. Itt is van opció rá, ugyan csak a lépés elején használt programnál (--default_platform). Később nincs.
- A TableRecalibration lépésnél nincs -outputBam. Helyett --out opciót kell használni.
- Használjuk nyugodtan a -U ALLOW_UNINDEXED_BAM opciót. Sok kényelmetlenségtől kíméljük meg magunkat. (Vagy indexeljük BAM állományunkat)
Sok mappelő program nem készít korrekt SAM állományt. Ezt mindig ellenőrizzük, mert a program nagyon nem szereti a nem szabványos, illetve hiányos állományt. A leggyakoribb hiány a ReadGroup (@RG) mind a fejlécben, mint az egyes sorok végén.
Munkám során eddig egy érdekes jelenséget tapasztaltam, mégpedig azt, hogy az összes variáció guanin vagy citozin. Még nem tudom megmagyarázni, hogy mi a hiba oka, de ha megtaláltam, majd beszámolok róla itt.
A programcsomag Windows alatt furcsa jelenséget produkál. Minden alkalommal, amikor olvas a referencia fájlból, létrehoz egy fai kiterjesztésű állományt, ha még nem létezne. Windows alatt viszont valószínű egy Java szál fogva tartja ezt a fájlt és amint egy másik folyamat írni akar bele, azonnal elszáll.