private boolean isFirstInPairBitOnForRecord(int record) { return (getFlagsForRecord(record) & CramFlags.FIRST_SEGMENT_FLAG) != 0; }
if (recordHasMoreMates(record)) { int id1 = record; int id2 = record; int refid = getRefIDForRecord(record); do { id1 = id2; id2 = nextRecord(id1); int flags1 = getFlagsForRecord(id1); int flags2 = getFlagsForRecord(id2); if (refid != getRefIDForRecord(id2)) refid = SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX; setFlagsForRecord(id1, flags1); setFlagsForRecord(id2, flags2); setMateRefIDForRecord(id1, getRefIDForRecord(id2)); setMateAlignmentStartForRecord(id1, 1 + getAlignmentStartForRecord(id2)); fixes++; } while (recordHasMoreMates(id2)); int flags1 = getFlagsForRecord(id1); int flags2 = getFlagsForRecord(id2); if (refid != getRefIDForRecord(id1)) refid = SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX; setFlagsForRecord(id1, flags1);
private int calculateTemplateSize(int record) { int aleft = getAlignmentStartForRecord(record); int aright = getAlignmentEndForRecord(record); int ref = getRefIDForRecord(id1); while (recordHasMoreMates(id2)) { id2 = nextRecord(id2); if (aleft > getAlignmentStartForRecord(id2)) aleft = getAlignmentStartForRecord(id2); if (aright < getAlignmentEndForRecord(id2)) aright = getAlignmentEndForRecord(id2); if (ref != getRefIDForRecord(id2)) ref = -1; tlen = 0; id1 = id2 = record; setInsertSizeForRecord(id1, tlen); while (recordHasMoreMates(id1)) { id1 = nextRecord(id1); setInsertSizeForRecord(id1, tlen); if (getAlignmentStartForRecord(id2) == aleft) { if (getAlignmentEndForRecord(id2) != aright) setInsertSizeForRecord(id2, tlen); else if (isFirstInPairBitOnForRecord(id2))