scFactory.losslessQS = true;
scFactory.preserveReadNames = true;
SequenceBaseProvider provider = new ByteArraySequenceBaseProvider(refBytes);
SAMFileReader reader = new SAMFileReader(bamFile);
SAMRecordIterator iterator = reader.query(seqName, 0, 0, false);
List<CramRecord> records = new ArrayList<CramRecord>();
PairedTemplateAssembler a = new PairedTemplateAssembler();
int counter = 0;
int bases = 0;
long size = 0;
Definition definition = new Definition();
definition.contentId = "input.bam".getBytes();
definition.formatMajor = 1;
definition.formatMinor = 0;
definition.magick = "CRAM".getBytes();
Format format = new FormatFactory().createFormat(definition);
SAMRecord samRecord = null;
CramHeader cramHeader = createCramHeader(reader.getFileHeader());
ByteArrayOutputStream hBaos= new ByteArrayOutputStream() ;
Container hC = new Container() ;
Block hBlock = new Block() ;
hBlock.contentId=0;
hBlock.contentType=0;
hBlock.method = CompressionMethod.GZIP.byteValue() ;
hC.blocks = new Block[]{hBlock} ;
hC.containers= new Container[0] ;
CramHeaderIO.write(cramHeader, hBaos) ;
hBlock.data = hBaos.toByteArray() ;
format.writeContainer(hC, hBaos) ;
System.out.println("Header size: " + hBaos.size());
for (int b = 0; b < maxRecords; b+=recordsPerBlock) {
bases = 0 ;
size = 0 ;
for (int i = 0; i < recordsPerBlock; i++) {
samRecord = iterator.next();
a.addSAMRecord(samRecord);
bases += samRecord.getReadLength();
}
for (int i = 0; i < recordsPerBlock; i++) {