Pitanje:
Zašto BAM datoteke stvorene različitim alatima imaju različite veličine datoteka?
medbe
2017-06-03 04:38:14 UTC
view on stackexchange narkive permalink

Imam BAM koji je stvorio Picard. Želim filtrirati poravnanja po zastavicama s prikazom samtools . Međutim, primijetio sam da se čak i ako ne primijenim filtre, izlazni BAM razlikuje od mog ulaznog BAM-a. Jesu li BAM-ovi proizvedeni različitim alatima također različite veličine? Kako mogu provjeriti jesu li dva BAM-a ista?

Pozdrav medbe, hvala što ste postavili pitanje, koje dobro pristaje ovom web mjestu za bioinformatiku. Da biste poboljšali odgovore koje ćete dobiti, može biti korisno urediti svoje pitanje i oko njega stvoriti malo priče. Što vas je navelo da želite poravnati poravnanja po zastavicama? Zašto je važno što BAM datoteke imaju drugačiji format?
Možete li objasniti kako se točno razlikuje izlaz samtools / picard? Je li to samo veličina datoteke ili vam nedostaju podaci iz neobaveznih polja odjeljka za poravnanje?
Dva odgovori:
#1
+7
Matt Bashton
2017-06-03 17:14:12 UTC
view on stackexchange narkive permalink

Vrijedno je imati na umu da prilikom izlaženja komprimiranog BAM-a, kao što većina alata radi po defaultu, možda koriste različite razine kompresije i / ili različite knjižnice ili verzije navedenih biblioteka za izvođenje (de) kompresije koje će rezultirati različitim veličinama datoteka. Pored toga, koordinirano sortirani BAM komprimirat će više nego nesortirani BAM. Trenutna verzija Picarda koristi HTSJDK koji zauzvrat koristi java.util.zip.Deflater / Inflater, trenutne verzije samtoolova trebaju koristiti HTSlib biblioteku koja zauzvrat ovisi o standardnu ​​knjižnicu zlib. Možete vidjeti učinak različitih implementacija zlib-a na veličinu datoteke i vrijeme izvršenja u benchmarkingu koji je izveo tim samtools.

Međutim, u vašem slučaju najbolji način da vidite jeste li postoji bilo kakva razlika između BAM datoteka je isključiti učinak različitih razina kompresije ili knjižnica koje se koriste za kompresiju i spremiti obje BAM datoteke kao nekomprimirane. I samtools i Picard imaju mogućnosti za onemogućavanje ili promjenu razina kompresije, budući da je BAM standard kompresije implementiran povrh gzip formata i naslijedio je sposobnost, baš kao i kod gzipa, da mijenja razinu kompresije s 0 na 9.

samtools view -bu omogućit će vam da stvorite nekomprimirani BAM izlaz (što je također zgodno za uvođenje u druge programe jer štedi vrijeme izgubljeno na komprimiranje dekompresije onoga što je u biti tok). Također imajte na umu da samtools sort ima postavku -l INT gdje se INT može postaviti između 0 (kompresija isključena, kao kod -u ) 1 ( za najbržu kompresiju, ali povećanu veličinu datoteke) ili -9 (za maksimalnu kompresiju, s povećanim vremenom rada). Neki učinci povećanog vremena izvođenja za veće postavke kompresije mogu se poboljšati pomoću argumenta - @ koji vam omogućuje postavljanje broja dodatnih niti koje se koriste za BAM kompresiju, a zadani zadaci samtools neće koristiti nijednu.

Picard alati imaju opću postavku COMPRESSION_LEVEL koja je primjenjiva na većinu njegovih alata postavljanjem ove na 0, COMPRESSION_LEVEL = 0 treba onemogućiti kompresiju.

Dakle, ponovno pokretanje bilo kojeg Picard alata koji ste u početku koristili s COMPRESSION_LEVEL = 0 , omogućit će vam da provjerite nije li datoteka dalje promijenjena u prikazu samtools -bu . Ovdje se pretpostavlja da ako obje datoteke imaju potpuno isti sadržaj, trebaju biti iste veličine nekomprimirane, naravno ako imaju trivijalne razlike u pogledu oblikovanja praznog prostora, stvari se mogu i dalje razlikovati.

#2
+4
gringer
2017-06-03 05:20:02 UTC
view on stackexchange narkive permalink

Malo je vjerojatno da će dva različita alata za mapiranje dati potpuno isto poravnanje, ocjene i podudarne nizove za isti slijed mapiran na istu referencu. Za neka poravnanja slijeda / reference nemoguće je utvrditi koje je "najbolje" poravnanje, a male razlike u kodu mogu imati velike učinke na odabrano poravnanje.

Međutim, čak i ako se stvarno mjesto mapiranja i podudaraju string su potpuno jednaki (na primjer kada koristite alat poput Picard za filtriranje BAM / SAM datoteka), različiti alati će uključiti različite metapodatke sa svakim mapiranjem. To je dopušteno u specifikaciji formata SAM datoteke dodavanjem neobaveznih polja izvan 11. stupca. Postoji nekoliko standardnih neobaveznih oznaka koje se mogu koristiti u tim poljima, a mogu se koristiti i dodatne prilagođene nestandardne oznake. Vrlo je vjerojatno da Picard dodaje dodatne metapodatke poravnanjima u datoteci BAM / SAM.

Postoji dodatna komplikacija u tome što bi osnovno poravnanje SAM (i metapodaci) moglo biti identična, ali datoteka BAM i dalje može imati različite veličine datoteka. Jedan od razloga za to je što se metode kompresije BAM datoteka mogu mijenjati. Na primjer, alati za poravnanje mogu odabrati metodu brze kompresije, dok alati za filtriranje mogu odabrati metodu koja rezultira boljom kompresijom.

Provjera sličnosti poravnanja teža je od puke usporedbe datoteka na binarnoj razini i vašeg određena aplikacija (ili kontekst ili priča) promijenit će najbolju metodu usporedbe. Bilo bi korisno znati zašto želite usporediti BAM datoteke kako biste pružili bolji odgovor na svoje pitanje.



Ova pitanja su automatski prevedena s engleskog jezika.Izvorni sadržaj dostupan je na stackexchange-u, što zahvaljujemo na cc by-sa 3.0 licenci pod kojom se distribuira.
Loading...