Package htsjdk.samtools.cram.build
Class CramIO
java.lang.Object
htsjdk.samtools.cram.build.CramIO
A collection of methods to read and write special values to/from CRAM files.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Deprecated.static final int
static final int
static final int
static final int
static final byte[]
The 'zero-B' EOF marker as per CRAM specs v2.1.static final byte[]
The zero-F EOF marker as per CRAM specs v3.0. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic CramHeader
readCramHeader
(InputStream inputStream) Read CRAM header from the givenInputStream
.static byte[]
samHeaderToByteArray
(SAMFileHeader samFileHeader) static long
writeCramEOF
(CRAMVersion cramVersion, OutputStream outputStream) Write an end-of-file marker to theOutputStream
.static long
writeCramHeader
(CramHeader cramHeader, OutputStream outputStream) Writes CRAM header into the specifiedOutputStream
.
-
Field Details
-
CRAM_FILE_EXTENSION
Deprecated.since June 2019 UseFileExtensions.CRAM
instead.- See Also:
-
ZERO_B_EOF_MARKER
public static final byte[] ZERO_B_EOF_MARKERThe 'zero-B' EOF marker as per CRAM specs v2.1. This is basically a serialized empty CRAM container with sequence id set to some number to spell out 'EOF' in hex. -
ZERO_F_EOF_MARKER
public static final byte[] ZERO_F_EOF_MARKERThe zero-F EOF marker as per CRAM specs v3.0. This is basically a serialized empty CRAM container with sequence id set to some number to spell out 'EOF' in hex. -
EOF_ALIGNMENT_START
public static final int EOF_ALIGNMENT_START- See Also:
-
EOF_BLOCK_SIZE_V3
public static final int EOF_BLOCK_SIZE_V3- See Also:
-
EOF_BLOCK_SIZE_V2
public static final int EOF_BLOCK_SIZE_V2- See Also:
-
EOF_ALIGNMENT_SPAN
public static final int EOF_ALIGNMENT_SPAN- See Also:
-
-
Constructor Details
-
CramIO
public CramIO()
-
-
Method Details
-
writeCramEOF
Write an end-of-file marker to theOutputStream
. The specific EOF marker is chosen based on the CRAM version. On read, this is interpreted as a special container sentinel indicating no more containers. The treatment of these EOF markers is asymmetric in that on read, the EOF marker is read in as a special container with sentinel values indicating it is an EOF container (as defined by the spec).- Parameters:
cramVersion
- the CRAM version to assumeoutputStream
- the stream to write to- Returns:
- the number of bytes written out
-
writeCramHeader
Writes CRAM header into the specifiedOutputStream
.- Parameters:
cramHeader
- theCramHeader
object to writeoutputStream
- the output stream to write to- Returns:
- the number of bytes written out
-
readCramHeader
Read CRAM header from the givenInputStream
.- Parameters:
inputStream
- input stream to read from- Returns:
- complete
CramHeader
object
-
samHeaderToByteArray
-
FileExtensions.CRAM
instead.