Vraag:
De CIGAR-string uit een BAM halen via Python?
ShanZhengYang
2018-03-10 00:09:08 UTC
view on stackexchange narkive permalink

Is er een standaardmethode in Python om een ​​CIGAR-string uit de BAM te extraheren?

Er zijn geweldige bibliotheken die de CIGAR ontleden, bijv. https://pypi.python.org/pypi/cigar/0.1

  >>> c = Cigar ('10M20S10M') >>> c.mask_left (10). '10S20S10M'>>> c.mask_left (9) .cigar'9S1M20S10M'>>> Cigar (10S). mask_left (10) .cigar'10S'>>> Cigar (10H). mask_left (10) .cigar'10H'>>> Cigar ('10H'). Mask_left (11) .cigar'10H'>>> Cigar ('10H'). Mask_left (9) .cigar'10H ' 

Het lijkt erop dat pysam al parseert de sigaarstreng, als ik me niet vergis:

  import pysambam = 'myfile.bam'bamfile = pysam.AlignmentFile (bam,' rb ') voor inlezen in bamfile: indien niet gelezen. is_unmapped: cigar = read.cigar print (cigar)  

Dit geeft lijsten met tuples van de ontleedoutput weer:

  [(5, 61), ( 0, 30), (5, 198)] [(4, 11), (0, 30), (4, 248)] [(4, 11), (0, 30), (4, 248)]. ...  

Hoe kan ik gewoon de CIGAR uitvoeren vanuit read ? Ik zou liever een kolom maken in een panda's DataFrame

Een antwoord:
Devon Ryan
2018-03-10 01:20:21 UTC
view on stackexchange narkive permalink

Als je echt alleen het sigarenkoord wilt, dan is het read.cigarstring . Ik weet echter niet zeker wat u probeert te winnen met het sigarenpakket van Brent. Tenzij je de string met de maskering veranderd wilt hebben, is het tupel dat je krijgt van pysam hetzelfde als wat je krijgt van cigar (met uitzondering van de numerieke bewerkingen in plaats van de karakterbewerkingen).

Oh, de API op de website bracht me in de war met 'sigarenkoord'. Misschien zou ik de ontlede sigaar van `pysam` kunnen gebruiken, maar ik ben in de war: hoe ontleed ik de lijst met tupels om het totale aantal invoegingen, verwijderingen, overeenkomsten (en mogelijke andere informatie) hiervan te tellen? Het spijt me als dit gedocumenteerd is, maar de pysam-handleiding is verwarrend.
Moet ik het bovenstaande lezen, b.v. de eerste regel "[(5, 61), (0, 30), (5, 198)]` als 61 harde knipsels, 30 overeenkomsten en 198 harde knipsels?
Ja, dat is de juiste interpretatie van die lijst met tuples, die is gedocumenteerd [in de API] (http://pysam.readthedocs.io/en/latest/api.html#pysam.AlignedSegment.cigartuples)
Ik snap het; deze vraag is grotendeels mijn misverstand over de pysam-website. Ik verwijder deze vraag graag, tenzij deze nuttig is voor de community.


Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 3.0-licentie waaronder het wordt gedistribueerd.
Loading...