@Override public int compare(SpliceJunction j1, SpliceJunction j2) { int idx1 = header.getSequenceIndex(j1.chrom); int idx2 = header.getSequenceIndex(j2.chrom); if (idx1 != idx2) { return idx1-idx2; } if (j1.start != j2.start) { return j1.start - j2.start; } return j1.stop - j2.stop; }
@Override public int compare(Contig o1, Contig o2) { int compRefs = new Integer(header.getSequenceIndex(o1.referenceName)).compareTo( header.getSequenceIndex(o2.referenceName)); if (compRefs != 0) { return compRefs; } return (int)(o1.start - o2.start); } });
@Override public int compare(Contig o1, Contig o2) { int compRefs = new Integer(header.getSequenceIndex(o1.referenceName)).compareTo( header.getSequenceIndex(o2.referenceName)); if (compRefs != 0) { return compRefs; } return (int)(o1.start - o2.start); } });
/** * @return index of the reference sequence for this read in the sequence dictionary, or -1 * if read has no reference sequence set, or if a String reference name is not found in the sequence index.. */ public Integer getReferenceIndex() { if (mReferenceIndex == null) { if (mReferenceName == null) { mReferenceIndex = NO_ALIGNMENT_REFERENCE_INDEX; } else if (NO_ALIGNMENT_REFERENCE_NAME.equals(mReferenceName)) { mReferenceIndex = NO_ALIGNMENT_REFERENCE_INDEX; } else { mReferenceIndex = mHeader.getSequenceIndex(mReferenceName); } } return mReferenceIndex; }
/** * @return index of the reference sequence for this read's mate in the sequence dictionary, or -1 * if mate has no reference sequence set. */ public Integer getMateReferenceIndex() { if (mMateReferenceIndex == null) { if (mMateReferenceName == null) { mMateReferenceIndex = NO_ALIGNMENT_REFERENCE_INDEX; } else if (NO_ALIGNMENT_REFERENCE_NAME.equals(mMateReferenceName)){ mMateReferenceIndex = NO_ALIGNMENT_REFERENCE_INDEX; } else { mMateReferenceIndex = mHeader.getSequenceIndex(mMateReferenceName); } } return mMateReferenceIndex; }
private void advanceInterval() { if (intervals.hasNext()) { currentInterval = intervals.next(); currentSequenceIndex = samHeader.getSequenceIndex(currentInterval.getContig()); } else { currentInterval = null; } }
private void advanceInterval() { if (intervals.hasNext()) { currentInterval = intervals.next(); currentSequenceIndex = samHeader.getSequenceIndex(currentInterval.getContig()); } else { currentInterval = null; } }
private void advanceInterval() { if (intervals.hasNext()) { currentInterval = intervals.next(); currentSequenceIndex = samHeader.getSequenceIndex(currentInterval.getSequence()); } else { currentInterval = null; } }
public BAMQueryFilteringIterator(final CloseableIterator<SAMRecord> iterator, final String sequence, final int start, final int end, final QueryType queryType, SAMFileHeader fileHeader) { this.wrappedIterator = iterator; mReferenceIndex = fileHeader.getSequenceIndex(sequence); mRegionStart = start; if (queryType == QueryType.STARTING_AT) { mRegionEnd = mRegionStart; } else { mRegionEnd = (end <= 0) ? Integer.MAX_VALUE : end; } mQueryType = queryType; mNextRecord = advance(); }
@Override public CloseableIterator<SAMRecord> queryAlignmentStart(String sequence, int start) { int sequenceIndex = virtualHeader.getSequenceIndex(sequence); if (sequenceIndex == -1) { throw new IllegalArgumentException("Unknown sequence '" + sequence + "' was passed to SRAFileReader"); } return getIterator(getSpanContained(sequenceIndex, start, -1)); }
@Override public CloseableIterator<SAMRecord> queryAlignmentStart(String sequence, int start) { int sequenceIndex = virtualHeader.getSequenceIndex(sequence); if (sequenceIndex == -1) { throw new IllegalArgumentException("Unknown sequence '" + sequence + "' was passed to SRAFileReader"); } return getIterator(getSpanContained(sequenceIndex, start, -1)); }
@Override public SAMRecordIterator query(final String sequence, final int start, final int end, final boolean contained) { return query(new QueryInterval[]{new QueryInterval(getFileHeader().getSequenceIndex(sequence), start, end)}, contained); }
@Override public SAMRecordIterator query(final String sequence, final int start, final int end, final boolean contained) { return query(new QueryInterval[]{new QueryInterval(getFileHeader().getSequenceIndex(sequence), start, end)}, contained); }
@Override public SAMRecordIterator query(final String sequence, final int start, final int end, final boolean contained) { return query(new QueryInterval[]{new QueryInterval(getFileHeader().getSequenceIndex(sequence), start, end)}, contained); }
private int compareAlignmentCoordinates(final SAMRecord left, final SAMRecord right) { final String leftReferenceName = left.getReferenceName(); final String rightReferenceName = right.getReferenceName(); if (leftReferenceName == null && rightReferenceName == null) { return 0; } else if (leftReferenceName == null) { return 1; } else if (rightReferenceName == null) { return -1; } final int leftReferenceIndex = samReaders[0].getFileHeader().getSequenceIndex(leftReferenceName); final int rightReferenceIndex = samReaders[0].getFileHeader().getSequenceIndex(rightReferenceName); if (leftReferenceIndex != rightReferenceIndex) { return leftReferenceIndex - rightReferenceIndex; } return left.getAlignmentStart() - right.getAlignmentStart(); }
@Override public CloseableIterator<SAMRecord> queryAlignmentStart(final String sequence, final int start) { final SAMFileHeader fileHeader = getFileHeader(); final int referenceIndex = fileHeader.getSequenceIndex(sequence); return new CRAMIntervalIterator(new QueryInterval[]{new QueryInterval(referenceIndex, start, -1)}, true); }
public IntervalListReferenceSequenceMask(final IntervalList intervalList) { this.header = intervalList.getHeader(); if (intervalList.getHeader().getSortOrder() != SAMFileHeader.SortOrder.coordinate) { intervalList.sort(); } final List<Interval> uniqueIntervals = intervalList.getUniqueIntervals(); if (uniqueIntervals.isEmpty()) { lastSequenceIndex = -1; lastPosition = 0; } else { final Interval lastInterval = uniqueIntervals.get(uniqueIntervals.size() - 1); lastSequenceIndex = header.getSequenceIndex((lastInterval.getSequence())); lastPosition = lastInterval.getEnd(); } intervalIterator = new PeekableIterator<Interval>(uniqueIntervals.iterator()); }
@Override public CloseableIterator<SAMRecord> queryAlignmentStart(final String sequence, final int start) { final SAMFileHeader fileHeader = getFileHeader(); final int referenceIndex = fileHeader.getSequenceIndex(sequence); return new CRAMIntervalIterator(new QueryInterval[]{new QueryInterval(referenceIndex, start, -1)}, true); }
@Test public void testResolveIndexResolvable() { final SAMRecord sam = createTestRecordHelper(); final SAMFileHeader samHeader = sam.getHeader(); final String contigName = sam.getContig(); Assert.assertEquals(SAMRecord.resolveIndexFromName(contigName, samHeader, true), new Integer(samHeader.getSequenceIndex(contigName))); }
@Test public void testResolveNameResolvable() { final SAMRecord sam = createTestRecordHelper(); final SAMFileHeader samHeader = sam.getHeader(); final String contigName = sam.getContig(); final Integer contigIndex = samHeader.getSequenceIndex(contigName); Assert.assertEquals(SAMRecord.resolveNameFromIndex(contigIndex, samHeader), contigName); }