Kérdés:
Mit jelent az, hogy "a régiónkénti letöltés nem érhető el a SAM fájloknál"?
Kamil S Jaron
2019-04-10 20:51:29 UTC
view on stackexchange narkive permalink

Megszoktam a gzip / biopython megoldásokat az adatok szekvenálásakor, de most elegánsabb pysam -ra szeretnék váltani. Megnéztem tehát a kézikönyvet, de az első pár sorban egészen furcsa problémákba ütköztem a bam fájlom használatával.

  import pysamsamfile = pysam.AlignmentFile ("3_Tms_1_mapped. bam "," rb ") a samfile.fetch ('3_Tms_b3v08_scaf000159') olvasáshoz: print (read) samfile.close ()  

visszatér ValueError: a régió szerinti lehívás nem elérhető SAM fájlokhoz . Nos, a fájl bam . Megpróbáltam google-ben keresni a hibát, de az egyetlen találatot találtam: a pysam forráskódjában található sorok, amelyek ellenőrzik, hogy a fájl bam / cram vagy sam, tehát valahogy pysam azt hiszi, hogy a bam egy szam. Hogyan tudom meggyőzni az ellenkezőjéről? Azt is észrevettem, hogy a kézikönyv a python 2.7-hez készült, talán innen ered a probléma ...

Kettő válaszokat:
terdon
2019-04-10 21:10:46 UTC
view on stackexchange narkive permalink

Ez valójában nem bam fájl , amire John Marshall kitalálta. A válaszom maradékát megtartom, mivel másnak hasznos lehet, de itt az volt a kérdés, hogy egy tömörített (bgzipelt) sam fájl van, és nem egy tényleges bam fájl, ezért kapta ezt a hibát. Amikor az indexelés előkészítése során rendeztem a fájlt, átalakítottam bam-ba, ezért működött a válaszom többi része.


Nincs meg az indexfájl a bam fájlhoz újra használja. Ezt a szkriptet használtam azon a fájlon, amelyhez linkeltél (megváltoztattam a nevet úgy, hogy megfeleljen a fájl megfelelő fájljának és folytatásának):

  #! / Usr / bin / env python3import pysamsamfile = pysam.AlignmentFile ("3_Tce_1_mapped.bam", "rb") a samfile.fetch ('3_Tce_b3v08_scaf005149') olvasásához: print (read) samfile.close ()  

Az I könyvtár befuttatta:

  $ ls 3 * 3_Tce_1_mapped.bam  

És megkaptam az Ön által leírt hibát:

  $ foo.pyTraceback (a legutóbbi hívás utoljára): A "/home/terdon/scripts/foo.py" fájl 5. sora az <module> fájlban a samfile.fetch ('3_Tce_b3v08_scaf005149' fájlban): "pysam / libcalignmentfile" fájl ", 1107. sor, a pysam.libcalignmentfile.AlignmentFile.fetchValueError: a régió szerinti letöltés nem érhető el a SAM fájloknál  

A bam fájl indexelése azonban megjavította:

   $ samtools sort 3_Tce_1_mapped.bam > 3_Tce_1_m apped.sorted.bam $  mv 3_Tce_1_mapped.sorted.bam 3_Tce_1_mapped.bam  $ samtools index 3_Tce_1_mapped.bam $  ls 3 * 3_Tce_1_mapped.bam 3_Tce_1_mapped.bam. bai $ foo.py | wc227 2724 16725  

Tehát egyszerűen rendezze és indexelje a fájlokat, mielőtt megkísérelné őket megkeresni. Ennek van értelme, mivel az index feladata elsősorban a keresés lehetővé tétele.

John Marshall
2019-04-11 01:43:56 UTC
view on stackexchange narkive permalink

A 3_Tms_1_mapped.bam fájlod, a fájlnévkiterjesztés ellenére, valójában egy bgzipelt SAM fájl. Ezt a htsfile segítségével ellenőrizheti, amely egy kis segédprogram, amely HTSlib-hez van csomagolva:

  $ htsfile 3_Tms_1_mapped.bam 3_Tms_1_mapped.bam: SAM 1.3-as verzió BGZF-tömörített szekvenciaadatok  

(Azoknál a fájloknál, amelyek valóban BAM formátumban vannak, BAM 1. verzió tömörített szekvenciaadatok .)

Tehát a hibaüzenet pontos ebben az esetben.

Hmm, ez azt jelenti, hogy ez a link hibás? http://biopython.org/DIST/docs/api/Bio.bgzf-module.html Úgy gondoltam, hogy ugyanaz a dolog ...
Nem. (Volt-e egy bizonyos része, amelyről úgy gondolja, hogy téves lehet?) De van különbség a sima szöveg formátum BGZF-tömörítése és a BAM fájl között (amelynek kibontott alapfolyama egy egyedi bináris formátum, amely eltér a sima SAM szöveg).
Azt hiszem, most értem. Összezavarodtam ennek a modulnak a céljairól, és azt írják, hogy "Amellett, hogy a BAM fájlokhoz véletlenszerû hozzáféréshez és íráshoz szükségesek", ezért olyan benyomásom támadt, hogy egyszerűen ezt a modult használhatom BAM fájlok írására. Ez valóban hasznos válasz volt, köszönöm!
-1


Ezt a kérdést és választ automatikusan lefordították angol nyelvről.Az eredeti tartalom elérhető a stackexchange oldalon, amelyet köszönünk az cc by-sa 4.0 licencért, amely alatt terjesztik.
Loading...