/** * an alias of {@link #getAlignmentEnd()} * @return 1-based inclusive rightmost position of the clipped sequence, or 0 read if unmapped. */ @Override public int getEnd() { return getAlignmentEnd(); }
/** * an alias of {@link #getAlignmentEnd()} * @return 1-based inclusive rightmost position of the clipped sequence, or 0 read if unmapped. */ @Override public int getEnd() { return getAlignmentEnd(); }
@Override public int getAlignmentEnd() { return record.getAlignmentEnd(); }
@Override public int getEnd() { return rec.getAlignmentEnd(); }
@Override public int getEnd() { return rec.getAlignmentEnd(); }
/** * Check for invalid end of alignments. * @param read The read to validate. * @return true if read end is valid, false otherwise. */ private static boolean checkInvalidAlignmentEnd(final SAMRecord read ) { // Alignment aligns to negative number of bases in the reference. if( !read.getReadUnmappedFlag() && read.getAlignmentEnd() != -1 && (read.getAlignmentEnd()-read.getAlignmentStart()+1)<0 ) return false; return true; }
private void addRead(SAMRecord read) { if (read.getReadUnmappedFlag()) return; // TODO: process CIGAR instead of just taking the whole alignment length as support for the reference currentReferenceRead.add(read.getAlignmentEnd()); if (isLowerMappedOfNonOverlappingConcordantPair(read)) { currentStartReferencePairs.add(read.getAlignmentEnd()); currentEndReferencePairs.add(read.getMateAlignmentStart()); } } /**
public boolean hasNext() { if (chr == null && currentRecord != null) { return true; } if (currentRecord == null || (chr != null && !chr.equals(currentRecord.getReferenceName()))) { return false; } else { return contained ? currentRecord.getAlignmentEnd() <= end : currentRecord.getAlignmentStart() <= end; } }
public void considerBest(final SAMRecord firstEnd, final SAMRecord secondEnd) { final int thisPairMapq = SAMUtils.combineMapqs(firstEnd.getMappingQuality(), secondEnd.getMappingQuality()); final int thisDistance = CoordMath.getLength(Math.min(firstEnd.getAlignmentStart(), secondEnd.getAlignmentStart()), Math.max(firstEnd.getAlignmentEnd(), secondEnd.getAlignmentEnd())); if (thisDistance > bestDistance || (thisDistance == bestDistance && thisPairMapq > bestPairMapq)) { bestDistance = thisDistance; bestPairMapq = thisPairMapq; bestAlignmentPairs.clear(); bestAlignmentPairs.add(new AbstractMap.SimpleEntry<SAMRecord, SAMRecord>(firstEnd, secondEnd)); } else if (thisDistance == bestDistance && thisPairMapq == bestPairMapq) { bestAlignmentPairs.add(new AbstractMap.SimpleEntry<SAMRecord, SAMRecord>(firstEnd, secondEnd)); } }
public void considerBest(final SAMRecord firstEnd, final SAMRecord secondEnd) { final int thisPairMapq = SAMUtils.combineMapqs(firstEnd.getMappingQuality(), secondEnd.getMappingQuality()); final int thisDistance = CoordMath.getLength(Math.min(firstEnd.getAlignmentStart(), secondEnd.getAlignmentStart()), Math.max(firstEnd.getAlignmentEnd(), secondEnd.getAlignmentEnd())); if (thisDistance > bestDistance || (thisDistance == bestDistance && thisPairMapq > bestPairMapq)) { bestDistance = thisDistance; bestPairMapq = thisPairMapq; bestAlignmentPairs.clear(); bestAlignmentPairs.add(new AbstractMap.SimpleEntry<SAMRecord, SAMRecord>(firstEnd, secondEnd)); } else if (thisDistance == bestDistance && thisPairMapq == bestPairMapq) { bestAlignmentPairs.add(new AbstractMap.SimpleEntry<SAMRecord, SAMRecord>(firstEnd, secondEnd)); } }
/** * @return the alignment end (1-based, inclusive) adjusted for clipped bases. For example if the read * has an alignment end of 100 but the last 7 bases were clipped (hard or soft clipped) * then this method will return 107. * * Invalid to call on an unmapped read. */ public int getUnclippedEnd() { return SAMUtils.getUnclippedEnd(getAlignmentEnd(), getCigar()); }
/** * @return the alignment end (1-based, inclusive) adjusted for clipped bases. For example if the read * has an alignment end of 100 but the last 7 bases were clipped (hard or soft clipped) * then this method will return 107. * * Invalid to call on an unmapped read. */ public int getUnclippedEnd() { return SAMUtils.getUnclippedEnd(getAlignmentEnd(), getCigar()); }
/** * @return the alignment end (1-based, inclusive) adjusted for clipped bases. For example if the read * has an alignment end of 100 but the last 7 bases were clipped (hard or soft clipped) * then this method will return 107. * * Invalid to call on an unmapped read. */ public int getUnclippedEnd() { return SAMUtils.getUnclippedEnd(getAlignmentEnd(), getCigar()); }
@Override public long getEndLinearCoordinate(SAMRecord r) { return getLinearCoordinate(r.getReferenceIndex(), r.getAlignmentEnd()); } /* (non-Javadoc)
private void setTextEnd() throws InvalidGenomicCoordsException, IOException{ int alnEnd; if(this.showSoftClip){ alnEnd= this.getSoftUnclippedAlignmentEnd(samRecord); } else { alnEnd= samRecord.getAlignmentEnd(); } this.textEnd= Utils.getIndexOfclosestValue(alnEnd, gc.getMapping()) + 1; return; }
public void add(SAMRecord record, ReadGcSummary summary, double readWeight) { switch (method) { case FRAGMENT: coverage[summary.referenceIndex].add(summary.fragmentStart, summary.fragmentEnd, readWeight); break; case READ: // TODO: use actual read alignment CIGAR coverage[summary.referenceIndex].add(record.getAlignmentStart(), record.getAlignmentEnd(), readWeight); break; } } public void writeToBed(File bed) throws IOException {
private static boolean isReadsOverlap(SAMRecord record, int start, int position, int mateAlignmentStart){ if (position >= mateAlignmentStart) { return start >= mateAlignmentStart && start <= (mateAlignmentStart + record.getCigar().getReferenceLength() - 1); } else { return start >= mateAlignmentStart && record.getMateAlignmentStart() <= record.getAlignmentEnd(); } }
private void advanceToFirstRecord() { while (wrappedIterator.hasNext()) { currentRecord = wrappedIterator.next(); if (!currentRecord.getReferenceName().equals(chr)) { break; //currentRecord is 1-based, end-inclusive. //start/end are 0-based, end-exclusive } else if ((contained && currentRecord.getAlignmentStart()-1 >= start) || (!contained && currentRecord.getAlignmentEnd()-1 >= start)) { break; } } }
public static boolean overlap(SAMRecord r1, SAMRecord r2) { boolean result = r1 != null && r2 != null && !r1.getReadUnmappedFlag() && !r2.getReadUnmappedFlag() && r1.getReferenceIndex().equals(r2.getReferenceIndex()) && ((r1.getAlignmentStart() >= r2.getAlignmentStart() && r1.getAlignmentStart() <= r2.getAlignmentEnd()) || (r2.getAlignmentStart() >= r1.getAlignmentStart() && r2.getAlignmentStart() <= r1.getAlignmentEnd())); return result; }
private boolean isLowerMappedOfNonOverlappingConcordantPair(SAMRecord read) { return !read.getReadUnmappedFlag() && read.getReadPairedFlag() && !read.getMateUnmappedFlag() && read.getAlignmentEnd() < read.getMateAlignmentStart() && read.getReferenceIndex().equals(read.getMateReferenceIndex()) && (read.getAlignmentStart() < read.getMateAlignmentStart() || (read.getAlignmentStart() == read.getMateAlignmentStart() && read.getFirstOfPairFlag())) && pairing.isConcordant(read); } private String trackedBufferName_currentReferenceRead = "coverage.currentReferenceRead";