Package htsjdk.samtools
Class BAMRecord
- java.lang.Object
-
- htsjdk.samtools.SAMRecord
-
- htsjdk.samtools.BAMRecord
-
- All Implemented Interfaces:
Locatable
,Serializable
,Cloneable
public class BAMRecord extends SAMRecord
Wrapper class for binary BAM records. Delays unpacking all data binary until requested.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class htsjdk.samtools.SAMRecord
SAMRecord.SAMTagAndValue
-
-
Field Summary
Fields Modifier and Type Field Description static short
CIGAR_SIZE_MULTIPLIER
Constant for converting between the number of operators in a Cigar and the length of the int[] array needed to represent it in the BAM formatstatic int
MAX_CIGAR_ELEMENT_LENGTH
static int
MAX_CIGAR_OPERATORS
Maximal number of cigar operators that can be represented normally in the cigar part of the bam record.-
Fields inherited from class htsjdk.samtools.SAMRecord
MAX_INSERT_SIZE, mMateReferenceIndex, mReferenceIndex, NO_ALIGNMENT_CIGAR, NO_ALIGNMENT_REFERENCE_INDEX, NO_ALIGNMENT_REFERENCE_NAME, NO_ALIGNMENT_START, NO_MAPPING_QUALITY, NULL_QUALS, NULL_QUALS_STRING, NULL_SEQUENCE, NULL_SEQUENCE_STRING, serialVersionUID, TAGS_TO_REVERSE, TAGS_TO_REVERSE_COMPLEMENT, UNKNOWN_MAPPING_QUALITY
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
BAMRecord(SAMFileHeader header, int referenceID, int coordinate, short readNameLength, short mappingQuality, int indexingBin, int cigarLen, int flags, int readLen, int mateReferenceID, int mateCoordinate, int insertSize, byte[] restOfData)
Create a new BAM Record.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clearAttributes()
Removes all attributes.protected void
eagerDecode()
Force all the lazily-initialized attributes to be decoded.Object
getAttribute(short tag)
int
getAttributesBinarySize()
Depending on the concrete implementation, the binary file size of attributes may be known without computing them all.byte[]
getBaseQualities()
Do not modify the value returned by this method.protected SAMBinaryTagAndValue
getBinaryAttributes()
Cigar
getCigar()
Do not modify the value returned by this method.int
getCigarLength()
Avoids decoding CIGAR in order to get length.byte[]
getReadBases()
Do not modify the value returned by this method.int
getReadLength()
Avoids decoding binary block to get read length.String
getReadName()
int
getReadNameLength()
Avoids decoding read name to get read name length.byte[]
getVariableBinaryRepresentation()
If this record has a valid binary representation of the variable-length portion of a binary record stored, return that byte array, otherwise return null.protected void
setAttribute(short tag, Object value, boolean isUnsignedArray)
void
setBaseQualities(byte[] value)
void
setCigar(Cigar cigar)
For setting the Cigar string when changed.void
setCigarString(String value)
void
setReadBases(byte[] value)
void
setReadName(String value)
-
Methods inherited from class htsjdk.samtools.SAMRecord
clone, computeIndexingBinIfAbsent, deepCopy, equals, format, getAlignmentBlocks, getAlignmentEnd, getAlignmentStart, getAttribute, getAttributes, getBaseQualityString, getByteArrayAttribute, getByteAttribute, getCharacterAttribute, getCigarString, getContig, getDuplicateReadFlag, getEnd, getFileSource, getFirstOfPairFlag, getFlags, getFloatArrayAttribute, getFloatAttribute, getHeader, getInferredInsertSize, getIntegerAttribute, getMappingQuality, getMateAlignmentStart, getMateNegativeStrandFlag, getMateReferenceIndex, getMateReferenceName, getMateUnmappedFlag, getNotPrimaryAlignmentFlag, getOriginalBaseQualities, getPairedReadName, getProperPairFlag, getReadFailsVendorQualityCheckFlag, getReadGroup, getReadNegativeStrandFlag, getReadPairedFlag, getReadPositionAtReferencePosition, getReadPositionAtReferencePosition, getReadPositionAtReferencePosition, getReadString, getReadUnmappedFlag, getReferenceIndex, getReferenceName, getReferencePositionAtReadPosition, getReferencePositionAtReadPosition, getSAMFlags, getSAMString, getSecondOfPairFlag, getShortAttribute, getSignedByteArrayAttribute, getSignedIntArrayAttribute, getSignedShortArrayAttribute, getStart, getStringAttribute, getSupplementaryAlignmentFlag, getTransientAttribute, getUnclippedEnd, getUnclippedStart, getUnsignedByteArrayAttribute, getUnsignedIntArrayAttribute, getUnsignedIntegerAttribute, getUnsignedIntegerAttribute, getUnsignedShortArrayAttribute, getValidationStringency, hasAttribute, hashCode, initializeCigar, isAllowedAttributeValue, isSecondaryAlignment, isSecondaryOrSupplementary, isUnsignedArrayAttribute, isValid, isValid, removeTransientAttribute, resolveIndexFromName, resolveNameFromIndex, reverseComplement, reverseComplement, reverseComplement, setAlignmentStart, setAttribute, setAttribute, setAttributes, setBaseQualityString, setDuplicateReadFlag, setFileSource, setFirstOfPairFlag, setFlags, setHeader, setHeaderStrict, setInferredInsertSize, setMappingQuality, setMateAlignmentStart, setMateNegativeStrandFlag, setMateReferenceIndex, setMateReferenceName, setMateUnmappedFlag, setNotPrimaryAlignmentFlag, setOriginalBaseQualities, setProperPairFlag, setReadFailsVendorQualityCheckFlag, setReadNegativeStrandFlag, setReadPairedFlag, setReadString, setReadUmappedFlag, setReadUnmappedFlag, setReferenceIndex, setReferenceName, setSecondaryAlignment, setSecondOfPairFlag, setSupplementaryAlignmentFlag, setTransientAttribute, setUnsignedArrayAttribute, setValidationStringency, toString, validateCigar
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface htsjdk.samtools.util.Locatable
contains, contigsMatch, getLengthOnReference, overlaps, withinDistanceOf
-
-
-
-
Field Detail
-
CIGAR_SIZE_MULTIPLIER
public static final short CIGAR_SIZE_MULTIPLIER
Constant for converting between the number of operators in a Cigar and the length of the int[] array needed to represent it in the BAM format- See Also:
- Constant Field Values
-
MAX_CIGAR_OPERATORS
public static final int MAX_CIGAR_OPERATORS
Maximal number of cigar operators that can be represented normally in the cigar part of the bam record. Records that have larger cigars will have their Cigars encoded to int[] and placed in the CG tag in the attributes (BAM only) This should happen upon encoding. In place of the Cigar a sentinel value will be placedS N When a BAM record is decoded, the sentinel cigar informs of the existance of the CG tag, which is decoded and removed. The sentinel value is then replaced with the actual cigar (in memory).
- See Also:
- Constant Field Values
-
MAX_CIGAR_ELEMENT_LENGTH
public static final int MAX_CIGAR_ELEMENT_LENGTH
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
BAMRecord
protected BAMRecord(SAMFileHeader header, int referenceID, int coordinate, short readNameLength, short mappingQuality, int indexingBin, int cigarLen, int flags, int readLen, int mateReferenceID, int mateCoordinate, int insertSize, byte[] restOfData)
Create a new BAM Record. If the reference sequence index or mate reference sequence index are any value other than NO_ALIGNMENT_REFERENCE_INDEX (-1), then the specified index values must exist in the sequence dictionary in the header argument.
-
-
Method Detail
-
eagerDecode
protected void eagerDecode()
Force all the lazily-initialized attributes to be decoded.- Overrides:
eagerDecode
in classSAMRecord
-
getVariableBinaryRepresentation
public byte[] getVariableBinaryRepresentation()
If this record has a valid binary representation of the variable-length portion of a binary record stored, return that byte array, otherwise return null. This will never be true for SAMRecords. It will be true for BAMRecords that have not been eagerDecoded(), and for which none of the data in the variable-length portion has been changed.- Overrides:
getVariableBinaryRepresentation
in classSAMRecord
-
getAttributesBinarySize
public int getAttributesBinarySize()
Depending on the concrete implementation, the binary file size of attributes may be known without computing them all.- Overrides:
getAttributesBinarySize
in classSAMRecord
- Returns:
- binary file size of attribute, if known, else -1.
-
setReadName
public void setReadName(String value)
- Overrides:
setReadName
in classSAMRecord
-
setCigar
public void setCigar(Cigar cigar)
Description copied from class:SAMRecord
For setting the Cigar string when changed. Note that this nulls the indexing bin, which would need to be recomputed on write (if needed). To avoid clobbering the indexing bin, useSAMRecord.initializeCigar(htsjdk.samtools.Cigar)
-
setCigarString
public void setCigarString(String value)
- Overrides:
setCigarString
in classSAMRecord
-
setReadBases
public void setReadBases(byte[] value)
- Overrides:
setReadBases
in classSAMRecord
-
setBaseQualities
public void setBaseQualities(byte[] value)
- Overrides:
setBaseQualities
in classSAMRecord
-
setAttribute
protected void setAttribute(short tag, Object value, boolean isUnsignedArray)
- Overrides:
setAttribute
in classSAMRecord
-
clearAttributes
public void clearAttributes()
Removes all attributes.- Overrides:
clearAttributes
in classSAMRecord
-
getReadLength
public int getReadLength()
Avoids decoding binary block to get read length.- Overrides:
getReadLength
in classSAMRecord
- Returns:
- number of bases in the read.
-
getReadName
public String getReadName()
- Overrides:
getReadName
in classSAMRecord
-
getReadNameLength
public int getReadNameLength()
Avoids decoding read name to get read name length. Do not include null terminator.- Overrides:
getReadNameLength
in classSAMRecord
- Returns:
- length not including a null terminator.
-
getCigar
public Cigar getCigar()
Description copied from class:SAMRecord
Do not modify the value returned by this method. If you want to change the Cigar, create a new Cigar and call setCigar() or call setCigarString()
-
getCigarLength
public int getCigarLength()
Avoids decoding CIGAR in order to get length.- Overrides:
getCigarLength
in classSAMRecord
- Returns:
- number of cigar elements (number + operator) in the cigar string.
-
getReadBases
public byte[] getReadBases()
Description copied from class:SAMRecord
Do not modify the value returned by this method. If you want to change the bases, create a new byte[] and call setReadBases() or call setReadString().- Overrides:
getReadBases
in classSAMRecord
- Returns:
- read sequence as ASCII bytes ACGTN=.
-
getBaseQualities
public byte[] getBaseQualities()
Description copied from class:SAMRecord
Do not modify the value returned by this method. If you want to change the qualities, create a new byte[] and call setBaseQualities() or call setBaseQualityString().- Overrides:
getBaseQualities
in classSAMRecord
- Returns:
- Base qualities, as binary phred scores (not ASCII).
-
getAttribute
public Object getAttribute(short tag)
- Overrides:
getAttribute
in classSAMRecord
- Parameters:
tag
- Binary representation of a 2-char String tag as created by SAMTagUtil.- See Also:
SAMRecord.getAttribute(java.lang.String)
-
getBinaryAttributes
protected SAMBinaryTagAndValue getBinaryAttributes()
- Overrides:
getBinaryAttributes
in classSAMRecord
- Returns:
- Pointer to the first of the tags. Returns null if there are no tags.
-
-