Hi,

I've run into something...troublesome when using the samtools library.
I've written a function, left_links, that takes an IdxHandle, reads all
matches in the region (0,350), and filters out just the ones that point
"left".  Or so I thought.

Now, I get:

>>> mapM (left_links hx) [0,1]
[[],[HWI-ST132_0396:8:68:20833:155929#CAGATC    81      contig00002     101     
37      100M    contig05719     12866   0       
ACATAATCTATTATGGAGTGTCAATGAATACTGAAATAATCGTTCTTATATACAGTTTTGTCTCATCATAGGCATTTAGTGTACTCCGTAATTTATTTAT
    
T`^``acdee``]``dbddcddTddbbddbfffcfcddcefeffeffddffdeffdffffeeaeecfdefeeeeeddddcddbdcfffefd`ffefffff
    XT:A:U  NM:i:0  SM:i:37 AM:i:37 X0:i:1  X1:i:0  XM:i:0  XO:i:0  XG:i:0  
MD:Z:100,HWI-ST132_0396:8:65:17262:142718#CAGATC        145     contig00002     
203     37      100M    contig05719     12943   0       
AATATTGATGTGGAGATCCTAAATCCTCACGATCGAGTCATATATAAATATGATGACAAGTGATTTAAAAATTCAGAAAATGACTCCCCACCTACTGACT
    
ZZYY[MWWPYU]][\TYb``bbaYbedfdfecYdefcedffffffdfffffffffffffffffffcffff`ffffffeffcc`c[bdddbdddedfffff
    XT:A:U  NM:i:0  SM:i:37 AM:i:37 X0:i:1  X1:i:0  XM:i:0  XO:i:0  XG:i:0  
MD:Z:100,HWI-ST132_0396:8:44:11689:16164#CAGATC 145     contig00002     237     
37      100M    contig05719     12975   0       
GAGTCATATATAAATATGATGACAAGTGATTTAAAAATTCAGAAAATGACTCCCCACCTACTGACTCTTGAAGTGTATTAAACTAAATTCATATTTTCCA
    f\ffdeccfcffffeffeffeffffffffffffffffeeffffefeeeeebdeeeceeeedddbdeceee
 fffffffefffffcffffffffffffffff XT:A:U  NM:i:0  SM:i:37 AM:i:37 X0:i:1  X1:i:0  
XM:i:0  XO:i:0  XG:i:0  MD:Z:100]]
*ContigEnds Bio.SamTools.Bam> mapM (left_links hx) [1]
[[HWI-ST132_0396:8:68:20833:155929#CAGATC       81      contig00002     101     
37      100M    contig05719     12866   0       
ACATAATCTATTATGGAGTGTCAATGAATACTGAAATAATCGTTCTTATATACAGTTTTGTCTCATCATAGGCATTTAGTGTACTCCGTAATTTATTTAT
    
T`^``acdee``]``dbddcddTddbbddbfffcfcddcefeffeffddffdeffdffffeeaeecfdefeeeeeddddcddbdcfffefd`ffefffff
    XT:A:U  NM:i:0  SM:i:37 AM:i:37 X0:i:1  X1:i:0  XM:i:0  XO:i:0  XG:i:0  
MD:Z:100,HWI-ST132_0396:8:65:17262:142718#CAGATC        145     contig00002     
203     37      100M    contig05719     12943   0       
AATATTGATGTGGAGATCCTAAATCCTCACGATCGAGTCATATATAAATATGATGACAAGTGATTTAAAAATTCAGAAAATGACTCCCCACCTACTGACT
    
ZZYY[MWWPYU]][\TYb``bbaYbedfdfecYdefcedffffffdfffffffffffffffffffcffff`ffffffeffcc`c[bdddbdddedfffff
    XT:A:U  NM:i:0  SM:i:37 AM:i:37 X0:i:1  X1:i:0  XM:i:0  XO:i:0  XG:i:0  
MD:Z:100,HWI-ST132_0396:8:44:11689:16164#CAGATC 145     contig00002     237     
37      100M    contig05719     12975   0       
GAGTCATATATAAATATGATGACAAGTGATTTAAAAATTCAGAAAATGACTCCCCACCTACTGACTCTTGAAGTGTATTAAACTAAATTCATATTTTCCA
    f\ffdeccfcffffeffeffeffffffffffffffffeeffffefeeeeebdeeeceeeedddbdeceeefff
 ffffefffffcffffffffffffffff    XT:A:U  NM:i:0  SM:i:37 AM:i:37 X0:i:1  X1:i:0  
XM:i:0  XO:i:0  XG:i:0  MD:Z:100]]

Notice that the first element here is empty.
But if we just ask for this one element:

>>> mapM (left_links hx) [0]
[[HWI-ST132_0396:8:6:15481:161371#CAGATC        113     contig00001     29      
37      100M    contig159704    127     0       
AAAATTCCTTTCCCCCTTACTATTTCCAAAGCATCCACTATTAGCTACAAACGCACAAATATATGGACTCTGAAAGTAACTTATCTGTTGACATTGTAAT
    
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBddddedfffffffffdfffffefdfeffefffffffffffffffffffffffcffffffffffffffff
    XT:A:U  NM:i:4  SM:i:37 AM:i:37 X0:i:1  X1:i:0  XM:i:4  XO:i:0  XG:i:0  
MD:Z:1G4A4A2A85,HWI-ST132_0396:8:45:20259:148018#CAGATC 177     contig00001     
106     37      100M    contig159704    74      0       
AACTTATCTGTTGACATTGTAATTAATAAACTTTGTTGTACTCTCAGTACTTCATTTGGTATAGGTATTTGAATGTGGGAATGCTTTTCAAAATTTTCCG
    
addadebeeefffffc^fffcffffddddbddddddddddbdeddffffffffffffffffffffeffffffffffffffffcffffeffffffffffff
    XT:A:U  NM:i:0  SM:i:37 AM:i:37 X0:i:1  X1:i:0  XM:i:0  XO:i:0  XG:i:0  
MD:Z:100,HWI-ST132_0396:8:63:15481:133728#CAGATC        113     contig00001     
106     37      100M    contig159704    74      0       
AACTTATCTGTTGACATTGTAATTAATAAACTTTGTTGTACTCTCAGTACTTCATTTGGTATAGGTATTTGAATGTGGGAATGCTTTTCAAAATTTTCCG
    \dfcfecece`ddd`cfcfeceadee^eecdcddcccddae\eeeffedffdfffddfffefffeffffff
 fffffffeffeffffffffffefffffff  XT:A:U  NM:i:0  SM:i:37 AM:i:37 X0:i:1  X1:i:0  
XM:i:0  XO:i:0  XG:i:0  MD:Z:100,HWI-ST132_0396:8:67:13938:2808#CAGATC  177     
contig00001     106     37      100M    contig159704    74      0       
AACTTATCTGTTGACATTGTAATTAATAAACTTTGTTGTACTCTCAGTACTTCATTTGGTATAGGTATTTGAATGTGGGAATGCTTTTCAAAATTTTCCG
    
b\bYddcccbddddd`effceffffee`ecdddcdeeeededeedfffffeffffffffffffffeffffffdfffffffffafffffffffffdfffef
    XT:A:U  NM:i:0  SM:i:37 AM:i:37 X0:i:1  X1:i:0  XM:i:0  XO:i:0  XG:i:0  
MD:Z:100,HWI-ST132_0396:8:25:7170:169272#CAGATC 177     contig00001     121     
37      100M    contig159704    65      0       
ATTGTAATTAATAAACTTTGTTGTACTCTCAGTACTTCATTTGGTATAGGTATTTGAATGTGGGAATGCTTTTCAAAATTTTCCGATCGACCAACTTGCA
    
efdffdddTcdeeebedeeefcffdffffffffcfefffffffffffffffffffffffffffcfffffffffcfffffffffffffeffffffffffff
    XT:A:U  NM:i:0  SM:i:37 AM:i:37 X0:i:1  X1:i:0  XM:i:0  XO:i:0  XG:i:0  
MD:Z:100,HWI-ST132_0396:8:23:1869:63709#CAGATC  177     contig00001     130     
37      100M    contig159704    31      0       
AATAAACTTTGTTGTACTCTCAGTACTTCATTTGGTATAGGTATTTGAATGTGGGAATGCTTTTCAAAATTTTCCGATCG
 ACCAACTTGCATATATTCAA   
bbba``d]ddcTdeeceeeceeffefcfefdfcfffe`effffefffeffffdfdcefeefffeaffffffefffdddddded^deffffffffffdfff
    XT:A:U  NM:i:0  SM:i:37 AM:i:37 X0:i:1  X1:i:0  XM:i:0  XO:i:0  XG:i:0  
MD:Z:100,HWI-ST132_0396:8:28:12486:20138#CAGATC 113     contig00001     162     
37      100M    contig159704    36      0       
TGGTATAGGTATTTGAATGTGGGAATGCTTTTCAAAATTTTCCGATCGACCAACTTGCATATATTCAAATGTTATGTTACCTCACCTTCCCCTACTGTTC
    
eeee`afefffdffefcfffeeecefffeffeffefeefffcffffefdffedfffffffffdffffffffffffeeeceeee\dffeeffffffeffff
    XT:A:U  NM:i:0  SM:i:37 AM:i:37 X0:i:1  X1:i:0  XM:i:0  XO:i:0  XG:i:0  
MD:Z:100,HWI-ST132_0396:8:64:2843:15899#CAGATC  177     contig00001     174     
37      100M    contig159704    1       0       
TTGAATGTGGGAATGCTTTTCAAAATTTTCCGATCGACCAACTTGCATATATTCAAATGTTATGTTACCTCACCTTCCCCTACTGTTCGTGCATGCCGAA
    
ed\edddY`dbd\ba\e`ceaeeeecdc\eeffefedeeecdeffeecdeeeeeeeec^eddd\ecYcb^fdfffffeffceefffffffffffffffef
    XT:A:U  NM:i:0  SM:i:37 AM:i:37 X0:i:1  X1:i:0  XM:i:0  XO:i:0  XG:i:0  
MD:Z:100]]

By applying this to only one parameter, we actually get a result.  Is
there some state hidden in the IdxHandle?  How can I use it safely?

-k
-- 
If I haven't seen further, it is by standing in the footprints of giants
_______________________________________________
Biohaskell mailing list
Biohaskell@biohaskell.org
http://malde.org/cgi-bin/mailman/listinfo/biohaskell

Reply via email to