private BAMIndexer(final SAMFileHeader fileHeader, Function<Integer, BinaryBAMIndexWriter> createWriter) { if (fileHeader.getSortOrder() != SAMFileHeader.SortOrder.coordinate) { if (fileHeader.getSortOrder() == SAMFileHeader.SortOrder.unsorted) { log.warn("For indexing, the BAM file is required to be coordinate sorted. Attempting to index \"unsorted\" BAM file."); } else { throw new SAMException("Indexing requires a coordinate-sorted input BAM."); } } numReferences = fileHeader.getSequenceDictionary().size(); indexBuilder = new BAMIndexBuilder(fileHeader.getSequenceDictionary()); outputWriter = createWriter.apply(numReferences); }
private BAMIndexer(final SAMFileHeader fileHeader, Function<Integer, BinaryBAMIndexWriter> createWriter) { if (fileHeader.getSortOrder() != SAMFileHeader.SortOrder.coordinate) { if (fileHeader.getSortOrder() == SAMFileHeader.SortOrder.unsorted) { log.warn("For indexing, the BAM file is required to be coordinate sorted. Attempting to index \"unsorted\" BAM file."); } else { throw new SAMException("Indexing requires a coordinate-sorted input BAM."); } } numReferences = fileHeader.getSequenceDictionary().size(); indexBuilder = new BAMIndexBuilder(fileHeader.getSequenceDictionary()); outputWriter = createWriter.apply(numReferences); }
/** * @param output binary BAM Index (.bai) file * @param fileHeader header for the corresponding bam file */ public BAMIndexer(final File output, final SAMFileHeader fileHeader) { numReferences = fileHeader.getSequenceDictionary().size(); indexBuilder = new BAMIndexBuilder(fileHeader.getSequenceDictionary()); outputWriter = new BinaryBAMIndexWriter(numReferences, output); }
/** * Prepare to index a BAM. * @param output Index will be written here. output will be closed when finish() method is called. * @param fileHeader header for the corresponding bam file. */ public BAMIndexer(final OutputStream output, final SAMFileHeader fileHeader) { numReferences = fileHeader.getSequenceDictionary().size(); indexBuilder = new BAMIndexBuilder(fileHeader.getSequenceDictionary()); outputWriter = new BinaryBAMIndexWriter(numReferences, output); }