Package htsjdk.samtools.cram.structure
Class CRAMCompressionRecord
java.lang.Object
htsjdk.samtools.cram.structure.CRAMCompressionRecord
A CRAMRecord represents a SAMRecord that has been transformed to CRAM-style representation. This includes
representing read bases as reference-relative read features, and representation of quality scores,
tags, and BAM and CRAM flags.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
static final int
static final int
static final int
static final int
static final int
static final byte
static final int
-
Constructor Summary
ConstructorDescriptionCRAMCompressionRecord
(long sequentialIndex, int bamFlags, int cramFlags, String readName, int readLength, int referenceIndex, int alignmentStart, int templateSize, int mappingQuality, byte[] qualityScores, byte[] readBases, List<ReadTag> readTags, List<ReadFeature> readFeaturesList, int readGroupID, int mateFlags, int mateReferenceIndex, int mateAlignmentStart, int recordsToNextFragment) Create a CRAMRecord from a set of values retrieved from a serialized Slice's data series streams.CRAMCompressionRecord
(CRAMVersion cramVersion, CRAMEncodingStrategy encodingStrategy, SAMRecord samRecord, byte[] referenceBases, long sequentialIndex, Map<String, Integer> readGroupMap) Create a CRAMRecord from a SAMRecord. -
Method Summary
Modifier and TypeMethodDescriptionvoid
boolean
int
int
int
int
int
int
int
int
byte[]
byte[]
int
int
int
int
long
getTags()
int
int
hashCode()
boolean
static boolean
isDetached
(int cramFlags) boolean
boolean
static boolean
isForcePreserveQualityScores
(int cramFlags) boolean
static boolean
isHasMateDownStream
(int cramFlags) boolean
boolean
When a CRAM record is read from a CRAM stream, it is "raw" in that the record's read bases, quality scores, and mate graph are not stored directly as part of the record.boolean
isPlaced()
Determine is read is "placed".boolean
boolean
boolean
Does this record have the mapped flag set? This is independent of placement/alignment status.static boolean
isSegmentUnmapped
(int bamFlags) boolean
static boolean
isUnknownBases
(int cramFlags) void
Resolve the quality scores for this CRAM record based on preserved scores, read features and flags.void
void
restoreReadBases
(CRAMReferenceRegion cramReferenceRegion, SubstitutionMatrix substitutionMatrix) Restore the actual read bases for this record.void
setDetached
(boolean detached) void
setNextSegment
(CRAMCompressionRecord nextSegment) void
setPreviousSegment
(CRAMCompressionRecord previousSegment) void
setTagIdsIndex
(MutableInt tagIdsIndex) void
toSAMRecord
(SAMFileHeader samFileHeader) Create a SAMRecord from the CRAMRecord.
-
Field Details
-
CF_QS_PRESERVED_AS_ARRAY
public static final int CF_QS_PRESERVED_AS_ARRAY- See Also:
-
CF_DETACHED
public static final int CF_DETACHED- See Also:
-
CF_HAS_MATE_DOWNSTREAM
public static final int CF_HAS_MATE_DOWNSTREAM- See Also:
-
CF_UNKNOWN_BASES
public static final int CF_UNKNOWN_BASES- See Also:
-
NO_READGROUP_ID
public static final int NO_READGROUP_ID- See Also:
-
MISSING_QUALITY_SCORE
public static final byte MISSING_QUALITY_SCORE- See Also:
-
MF_MATE_NEG_STRAND
public static final int MF_MATE_NEG_STRAND- See Also:
-
MF_MATE_UNMAPPED
public static final int MF_MATE_UNMAPPED- See Also:
-
-
Constructor Details
-
CRAMCompressionRecord
public CRAMCompressionRecord(CRAMVersion cramVersion, CRAMEncodingStrategy encodingStrategy, SAMRecord samRecord, byte[] referenceBases, long sequentialIndex, Map<String, Integer> readGroupMap) Create a CRAMRecord from a SAMRecord.- Parameters:
cramVersion
-encodingStrategy
-samRecord
-referenceBases
-sequentialIndex
-readGroupMap
-
-
CRAMCompressionRecord
public CRAMCompressionRecord(long sequentialIndex, int bamFlags, int cramFlags, String readName, int readLength, int referenceIndex, int alignmentStart, int templateSize, int mappingQuality, byte[] qualityScores, byte[] readBases, List<ReadTag> readTags, List<ReadFeature> readFeaturesList, int readGroupID, int mateFlags, int mateReferenceIndex, int mateAlignmentStart, int recordsToNextFragment) Create a CRAMRecord from a set of values retrieved from a serialized Slice's data series streams.- Parameters:
sequentialIndex
-bamFlags
-cramFlags
-readName
-readLength
-referenceIndex
-alignmentStart
-templateSize
-mappingQuality
-qualityScores
-readBases
-readTags
-readFeaturesList
-readGroupID
-mateFlags
-mateReferenceIndex
-mateAlignmentStart
-recordsToNextFragment
-
-
-
Method Details
-
toSAMRecord
Create a SAMRecord from the CRAMRecord.- Parameters:
samFileHeader
- SAMFileHeader- Returns:
- a SAMRecord
-
assignReadName
public void assignReadName() -
isNormalized
public boolean isNormalized()When a CRAM record is read from a CRAM stream, it is "raw" in that the record's read bases, quality scores, and mate graph are not stored directly as part of the record. These values must be resolved through the separate process of normalization, which is performed at Slice granularity (all records in a Slice are normalized at the same time). (seeSlice.normalizeCRAMRecords(List, CRAMReferenceRegion)
).- Returns:
- true if this record is normalized
-
resolveQualityScores
public void resolveQualityScores()Resolve the quality scores for this CRAM record based on preserved scores, read features and flags. -
restoreReadBases
public void restoreReadBases(CRAMReferenceRegion cramReferenceRegion, SubstitutionMatrix substitutionMatrix) Restore the actual read bases for this record.- Parameters:
cramReferenceRegion
- CRAMReferenceRegion spanning the reference bases for this record, if reference bases are required (may be null for records with RR=false in the compression header)substitutionMatrix
- substitution matrix to use for this record
-
restoreMateInfo
public void restoreMateInfo() -
setToDetachedState
public void setToDetachedState() -
isPlaced
public boolean isPlaced()Determine is read is "placed". For consistency with the rest of htsjdk, this only consults the alignmentStart (placed reads should also have a valid reference index, and unplaced reads should be unmapped; those two abberant conditions are logged as warnings).- Returns:
- true if the record is placed
- See Also:
-
getReadName
-
getAlignmentStart
public int getAlignmentStart() -
getReadLength
public int getReadLength() -
getReadBases
public byte[] getReadBases() -
getQualityScores
public byte[] getQualityScores() -
getMappingQuality
public int getMappingQuality() -
getReferenceIndex
public int getReferenceIndex() -
getTemplateSize
public int getTemplateSize() -
getTags
-
getRecordsToNextFragment
public int getRecordsToNextFragment() -
getReadFeatures
-
getReadGroupID
public int getReadGroupID()- Returns:
- read group id, or
NO_READGROUP_ID
if no read group assigned
-
getBAMFlags
public int getBAMFlags() -
getMateReferenceIndex
public int getMateReferenceIndex() -
getMateAlignmentStart
public int getMateAlignmentStart() -
setTagIdsIndex
-
getTagIdsIndex
-
getMateFlags
public int getMateFlags() -
getCRAMFlags
public int getCRAMFlags() -
getAlignmentEnd
public int getAlignmentEnd()- Returns:
- the initialized alignmentEnd
-
getSequentialIndex
public long getSequentialIndex() -
getNextSegment
-
setNextSegment
-
getPreviousSegment
-
setPreviousSegment
-
isSecondaryAlignment
public boolean isSecondaryAlignment() -
isHasMateDownStream
public boolean isHasMateDownStream() -
isHasMateDownStream
public static boolean isHasMateDownStream(int cramFlags) -
isDetached
public boolean isDetached() -
isDetached
public static boolean isDetached(int cramFlags) -
isForcePreserveQualityScores
public boolean isForcePreserveQualityScores() -
isForcePreserveQualityScores
public static boolean isForcePreserveQualityScores(int cramFlags) -
isUnknownBases
public boolean isUnknownBases() -
isUnknownBases
public static boolean isUnknownBases(int cramFlags) -
isReadPaired
public boolean isReadPaired() -
isSegmentUnmapped
public boolean isSegmentUnmapped()Does this record have the mapped flag set? This is independent of placement/alignment status. Unmapped records may be stored in the sameSlice
s andContainer
s as mapped records if they are placed.- Returns:
- true if the record is unmapped
- See Also:
-
isSegmentUnmapped
public static boolean isSegmentUnmapped(int bamFlags) -
isFirstSegment
public boolean isFirstSegment() -
isLastSegment
public boolean isLastSegment() -
setDetached
public void setDetached(boolean detached) -
equals
-
hashCode
public int hashCode()
-