SAMFileWriterFactory factory = new SAMFileWriterFactory(); if (stub.getFileHeader().getSortOrder().equals(SAMFileHeader.SortOrder.coordinate) && stub.getIndexOnTheFly()) factory.setCreateIndex(true); if (stub.getGenerateMD5()) try { if (stub.getOutputFile().getName().toLowerCase().endsWith(".cram")) { this.writer = createCRAMWriter(factory, stub.getFileHeader(), file, this.referenceFasta); } else { this.writer = createBAMWriter(factory,stub.getFileHeader(),stub.isPresorted(),file,stub.getCompressionLevel()); this.writer = factory.makeSAMWriter( stub.getFileHeader(), stub.isPresorted(), stub.getOutputStream());