Package htsjdk.samtools.cram.build

# Class CramIO

java.lang.Object
htsjdk.samtools.cram.build.CramIO

public final class CramIO extends Object
A collection of methods to read and write special values to/from CRAM files.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`CRAM_FILE_EXTENSION`
Deprecated.
since June 2019 Use `FileExtensions.CRAM` instead.
`static final int`
`EOF_ALIGNMENT_SPAN`
`static final int`
`EOF_ALIGNMENT_START`
`static final int`
`EOF_BLOCK_SIZE_V2`
`static final int`
`EOF_BLOCK_SIZE_V3`
`static final byte[]`
`ZERO_B_EOF_MARKER`
The 'zero-B' EOF marker as per CRAM specs v2.1.
`static final byte[]`
`ZERO_F_EOF_MARKER`
The zero-F EOF marker as per CRAM specs v3.0.

## Constructor Summary

Constructors
Constructor
Description
`CramIO()`

## Method Summary

Modifier and Type
Method
Description
`static CramHeader`
`readCramHeader(InputStream inputStream)`
Read CRAM header from the given `InputStream`.
`static byte[]`
`samHeaderToByteArray(SAMFileHeader samFileHeader)`
`static long`
`writeCramEOF(CRAMVersion cramVersion, OutputStream outputStream)`
Write an end-of-file marker to the `OutputStream`.
`static long`
`writeCramHeader(CramHeader cramHeader, OutputStream outputStream)`
Writes CRAM header into the specified `OutputStream`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### CRAM_FILE_EXTENSION

@Deprecated public static final String CRAM_FILE_EXTENSION
Deprecated.
since June 2019 Use `FileExtensions.CRAM` instead.

See Also:
  - Constant Field Values

### ZERO_B_EOF_MARKER

public static final byte[] ZERO_B_EOF_MARKER
The '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_MARKER
The 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:
  - Constant Field Values

### EOF_BLOCK_SIZE_V3

public static final int EOF_BLOCK_SIZE_V3

See Also:
  - Constant Field Values

### EOF_BLOCK_SIZE_V2

public static final int EOF_BLOCK_SIZE_V2

See Also:
  - Constant Field Values

### EOF_ALIGNMENT_SPAN

public static final int EOF_ALIGNMENT_SPAN

See Also:
  - Constant Field Values

## Constructor Details

### CramIO

public CramIO()

## Method Details

### writeCramEOF

public static long writeCramEOF(CRAMVersion cramVersion, OutputStream outputStream)
Write an end-of-file marker to the `OutputStream`. 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 assume
  `outputStream` - the stream to write to
Returns:
  the number of bytes written out

### writeCramHeader

public static long writeCramHeader(CramHeader cramHeader, OutputStream outputStream)
Writes CRAM header into the specified `OutputStream`.

Parameters:
  `cramHeader` - the `CramHeader` object to write
  `outputStream` - the output stream to write to
Returns:
  the number of bytes written out

### readCramHeader

public static CramHeader readCramHeader(InputStream inputStream)
Read CRAM header from the given `InputStream`.

Parameters:
  `inputStream` - input stream to read from
Returns:
  complete `CramHeader` object

### samHeaderToByteArray

public static byte[] samHeaderToByteArray(SAMFileHeader samFileHeader)