private static void setNextMate(final CramCompressionRecord record, final CramCompressionRecord next) { record.mateAlignmentStart = next.alignmentStart; record.setMateUnmapped(next.isSegmentUnmapped()); record.setMateNegativeStrand(next.isNegativeStrand()); record.mateSequenceID = next.sequenceId; if (record.mateSequenceID == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) record.mateAlignmentStart = SAMRecord.NO_ALIGNMENT_START; }
/** * The method is similar in semantics to * {@link htsjdk.samtools.SamPairUtil#computeInsertSize(SAMRecord, SAMRecord) * computeInsertSize} but operates on CRAM native records instead of * SAMRecord objects. * * @param firstEnd first mate of the pair * @param secondEnd second mate of the pair * @return template length */ public static int computeInsertSize(final CramCompressionRecord firstEnd, final CramCompressionRecord secondEnd) { if (firstEnd.isSegmentUnmapped() || secondEnd.isSegmentUnmapped()) { return 0; } if (firstEnd.sequenceId != secondEnd.sequenceId) { return 0; } final int firstEnd5PrimePosition = firstEnd.isNegativeStrand() ? firstEnd.getAlignmentEnd() : firstEnd.alignmentStart; final int secondEnd5PrimePosition = secondEnd.isNegativeStrand() ? secondEnd.getAlignmentEnd() : secondEnd.alignmentStart; final int adjustment = (secondEnd5PrimePosition >= firstEnd5PrimePosition) ? +1 : -1; return secondEnd5PrimePosition - firstEnd5PrimePosition + adjustment; } }
private static void setNextMate(CramCompressionRecord r, CramCompressionRecord next) { r.mateAlignmentStart = next.alignmentStart; r.setMateUnmapped(next.isSegmentUnmapped()); r.setMateNegativeStrand(next.isNegativeStrand()); r.mateSequenceID = next.sequenceId; if (r.mateSequenceID == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) r.mateAlignmentStart = SAMRecord.NO_ALIGNMENT_START; }
private static void setNextMate(final CramCompressionRecord record, final CramCompressionRecord next) { record.mateAlignmentStart = next.alignmentStart; record.setMateUnmapped(next.isSegmentUnmapped()); record.setMateNegativeStrand(next.isNegativeStrand()); record.mateSequenceID = next.sequenceId; if (record.mateSequenceID == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) record.mateAlignmentStart = SAMRecord.NO_ALIGNMENT_START; }
/** * The method is similar in semantics to * {@link htsjdk.samtools.SamPairUtil#computeInsertSize(SAMRecord, SAMRecord) * computeInsertSize} but operates on CRAM native records instead of * SAMRecord objects. * * @param firstEnd first mate of the pair * @param secondEnd second mate of the pair * @return template length */ public static int computeInsertSize(final CramCompressionRecord firstEnd, final CramCompressionRecord secondEnd) { if (firstEnd.isSegmentUnmapped() || secondEnd.isSegmentUnmapped()) { return 0; } if (firstEnd.sequenceId != secondEnd.sequenceId) { return 0; } final int firstEnd5PrimePosition = firstEnd.isNegativeStrand() ? firstEnd.getAlignmentEnd() : firstEnd.alignmentStart; final int secondEnd5PrimePosition = secondEnd.isNegativeStrand() ? secondEnd.getAlignmentEnd() : secondEnd.alignmentStart; final int adjustment = (secondEnd5PrimePosition >= firstEnd5PrimePosition) ? +1 : -1; return secondEnd5PrimePosition - firstEnd5PrimePosition + adjustment; } }
private static void setNextMate(final CramCompressionRecord record, final CramCompressionRecord next) { record.mateAlignmentStart = next.alignmentStart; record.setMateUnmapped(next.isSegmentUnmapped()); record.setMateNegativeStrand(next.isNegativeStrand()); record.mateSequenceID = next.sequenceId; if (record.mateSequenceID == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) record.mateAlignmentStart = SAMRecord.NO_ALIGNMENT_START; }
/** * The method is similar in semantics to * {@link htsjdk.samtools.SamPairUtil#computeInsertSize(SAMRecord, SAMRecord) * computeInsertSize} but operates on CRAM native records instead of * SAMRecord objects. * * @param firstEnd * first mate of the pair * @param secondEnd * second mate of the pair * @return template length */ public static int computeInsertSize(final CramCompressionRecord firstEnd, final CramCompressionRecord secondEnd) { if (firstEnd.isSegmentUnmapped() || secondEnd.isSegmentUnmapped()) { return 0; } if (firstEnd.sequenceId != secondEnd.sequenceId) { return 0; } final int firstEnd5PrimePosition = firstEnd.isNegativeStrand() ? firstEnd.getAlignmentEnd() : firstEnd.alignmentStart; final int secondEnd5PrimePosition = secondEnd.isNegativeStrand() ? secondEnd.getAlignmentEnd() : secondEnd.alignmentStart; final int adjustment = (secondEnd5PrimePosition >= firstEnd5PrimePosition) ? +1 : -1; return secondEnd5PrimePosition - firstEnd5PrimePosition + adjustment; } }
@SuppressWarnings("SimplifiableIfStatement") @Override public boolean equals(final Object obj) { if (!(obj instanceof CramCompressionRecord)) return false; final CramCompressionRecord cramRecord = (CramCompressionRecord) obj; if (alignmentStart != cramRecord.alignmentStart) return false; if (isNegativeStrand() != cramRecord.isNegativeStrand()) return false; if (isVendorFiltered() != cramRecord.isVendorFiltered()) return false; if (isSegmentUnmapped() != cramRecord.isSegmentUnmapped()) return false; if (readLength != cramRecord.readLength) return false; if (isLastSegment() != cramRecord.isLastSegment()) return false; if (recordsToNextFragment != cramRecord.recordsToNextFragment) return false; if (isFirstSegment() != cramRecord.isFirstSegment()) return false; if (mappingQuality != cramRecord.mappingQuality) return false; if (!deepEquals(readFeatures, cramRecord.readFeatures)) return false; if (!Arrays.equals(readBases, cramRecord.readBases)) return false; return Arrays.equals(qualityScores, cramRecord.qualityScores) && areEqual(flags, cramRecord.flags) && areEqual(readName, cramRecord.readName); }
@SuppressWarnings("SimplifiableIfStatement") @Override public boolean equals(final Object obj) { if (!(obj instanceof CramCompressionRecord)) return false; final CramCompressionRecord cramRecord = (CramCompressionRecord) obj; if (alignmentStart != cramRecord.alignmentStart) return false; if (isNegativeStrand() != cramRecord.isNegativeStrand()) return false; if (isVendorFiltered() != cramRecord.isVendorFiltered()) return false; if (isSegmentUnmapped() != cramRecord.isSegmentUnmapped()) return false; if (readLength != cramRecord.readLength) return false; if (isLastSegment() != cramRecord.isLastSegment()) return false; if (recordsToNextFragment != cramRecord.recordsToNextFragment) return false; if (isFirstSegment() != cramRecord.isFirstSegment()) return false; if (mappingQuality != cramRecord.mappingQuality) return false; if (!deepEquals(readFeatures, cramRecord.readFeatures)) return false; if (!Arrays.equals(readBases, cramRecord.readBases)) return false; return Arrays.equals(qualityScores, cramRecord.qualityScores) && areEqual(flags, cramRecord.flags) && areEqual(readName, cramRecord.readName); }
|| (r.isMateNegativeStrand() != last.isNegativeStrand()) || (last.isMateNegativeStrand() != r.isNegativeStrand()) || (r.mateAlignmentStart != last.alignmentStart) || (last.mateAlignmentStart != r.alignmentStart)) { detach(r);
private static void copyFlags(final CramCompressionRecord cramRecord, final SAMRecord samRecord) { samRecord.setReadPairedFlag(cramRecord.isMultiFragment()); samRecord.setProperPairFlag(cramRecord.isProperPair()); samRecord.setReadUnmappedFlag(cramRecord.isSegmentUnmapped()); samRecord.setReadNegativeStrandFlag(cramRecord.isNegativeStrand()); samRecord.setFirstOfPairFlag(cramRecord.isFirstSegment()); samRecord.setSecondOfPairFlag(cramRecord.isLastSegment()); samRecord.setSecondaryAlignment(cramRecord.isSecondaryAlignment()); samRecord.setReadFailsVendorQualityCheckFlag(cramRecord.isVendorFiltered()); samRecord.setDuplicateReadFlag(cramRecord.isDuplicate()); samRecord.setSupplementaryAlignmentFlag(cramRecord.isSupplementary()); }
private static void copyFlags(final CramCompressionRecord cramRecord, final SAMRecord samRecord) { samRecord.setReadPairedFlag(cramRecord.isMultiFragment()); samRecord.setProperPairFlag(cramRecord.isProperPair()); samRecord.setReadUnmappedFlag(cramRecord.isSegmentUnmapped()); samRecord.setReadNegativeStrandFlag(cramRecord.isNegativeStrand()); samRecord.setFirstOfPairFlag(cramRecord.isFirstSegment()); samRecord.setSecondOfPairFlag(cramRecord.isLastSegment()); samRecord.setSecondaryAlignment(cramRecord.isSecondaryAlignment()); samRecord.setReadFailsVendorQualityCheckFlag(cramRecord.isVendorFiltered()); samRecord.setDuplicateReadFlag(cramRecord.isDuplicate()); samRecord.setSupplementaryAlignmentFlag(cramRecord.isSupplementary()); }