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