Hi Mat, the matePairId associates two reads to a mate-pair. Thus there are at most 2 reads with the same matePairId. The alignedReadStore stores matches of reads. Every read can have multiple matches. Each match has a unique id. Two matches of reads of the same mate-pair can form a mate-pair match. If so they have the same pairMatchId which is unique for these 2 matches. Example: X1 X2 Y1 Y2 Y3 2 reads A and B have matches at positions Xi and Yj. Theoretically 2*3 pairs of matches are possible. If only X1-Y1 and X2-Y3 form a mate pair match (due to their insert size) the alignedReadStore could look as follows: read, position, pairMatchId A, X1, 23 A, X2, 42 B, Y1, 23 B, Y3, 42 The pairMatchIds can be chosen arbitrarily (non-sequential) as long as there are exactly two matches with the same pairMatchId. There is a function compactPairMatchIds that renumerates the pairMatchIds sequentially from 0 and returns the number of pair matches so that you can store additional information in an extra array using the pairMatchId. If you need two matches of all pair matches you can call: sortAlignedReads(me.alignedReadStore, SortPairMatchId()); to resort the alignedReadStore after the pairMatchId so that matches of a pair match are adjacent. Cheers, David PS: Does the error still occur? If yes, please create a ticket with SAM and source files. David Weese weese@inf.fu-berlin.de Freie Universität Berlin http://www.inf.fu-berlin.de/ Institut für Informatik Phone: +49 30 838 75246 Takustraße 9 Algorithmic Bioinformatics 14195 Berlin Room 021
Am 04.01.2011 um 16:47 schrieb Mat:
|