/** * Create a BAMFileWriter that is ready to receive SAMRecords. * * @param header entire header. Sort order is determined by the sortOrder property of this arg. * @param presorted if true, SAMRecords must be added to the SAMFileWriter in order that agrees with header.sortOrder. * @param outputFile where to write the output. * @param compressionLevel Override default compression level with the given value, between 0 (fastest) and 9 (smallest). */ public SAMFileWriter makeBAMWriter(final SAMFileHeader header, final boolean presorted, final File outputFile, final int compressionLevel) { return makeBAMWriter(header, presorted, outputFile.toPath(), compressionLevel); }
/** * Create a BAMFileWriter that is ready to receive SAMRecords. * * @param header entire header. Sort order is determined by the sortOrder property of this arg. * @param presorted if true, SAMRecords must be added to the SAMFileWriter in order that agrees with header.sortOrder. * @param outputFile where to write the output. * @param compressionLevel Override default compression level with the given value, between 0 (fastest) and 9 (smallest). */ public SAMFileWriter makeBAMWriter(final SAMFileHeader header, final boolean presorted, final File outputFile, final int compressionLevel) { return makeBAMWriter(header, presorted, outputFile.toPath(), compressionLevel); }
/** * Create a BAMFileWriter that is ready to receive SAMRecords. Uses default compression level. * * @param header entire header. Sort order is determined by the sortOrder property of this arg. * @param presorted if true, SAMRecords must be added to the SAMFileWriter in order that agrees with header.sortOrder. * @param outputPath where to write the output. */ public SAMFileWriter makeBAMWriter(final SAMFileHeader header, final boolean presorted, final Path outputPath) { return makeBAMWriter(header, presorted, outputPath, this.getCompressionLevel()); }
/** * Create a BAMFileWriter that is ready to receive SAMRecords. Uses default compression level. * * @param header entire header. Sort order is determined by the sortOrder property of this arg. * @param presorted if true, SAMRecords must be added to the SAMFileWriter in order that agrees with header.sortOrder. * @param outputFile where to write the output. */ public SAMFileWriter makeBAMWriter(final SAMFileHeader header, final boolean presorted, final File outputFile) { return makeBAMWriter(header, presorted, outputFile, this.getCompressionLevel()); }
/** * Create a BAMFileWriter that is ready to receive SAMRecords. Uses default compression level. * * @param header entire header. Sort order is determined by the sortOrder property of this arg. * @param presorted if true, SAMRecords must be added to the SAMFileWriter in order that agrees with header.sortOrder. * @param outputFile where to write the output. */ public SAMFileWriter makeBAMWriter(final SAMFileHeader header, final boolean presorted, final File outputFile) { return makeBAMWriter(header, presorted, outputFile, this.getCompressionLevel()); }
/** * Create a BAMFileWriter that is ready to receive SAMRecords. Uses default compression level. * * @param header entire header. Sort order is determined by the sortOrder property of this arg. * @param presorted if true, SAMRecords must be added to the SAMFileWriter in order that agrees with header.sortOrder. * @param outputPath where to write the output. */ public SAMFileWriter makeBAMWriter(final SAMFileHeader header, final boolean presorted, final Path outputPath) { return makeBAMWriter(header, presorted, outputPath, this.getCompressionLevel()); }
/** * Create either a SAM or a BAM writer based on examination of the outputFile extension. * @param header entire header. Sort order is determined by the sortOrder property of this arg. * @param presorted presorted if true, SAMRecords must be added to the SAMFileWriter in order that agrees with header.sortOrder. * @param outputFile where to write the output. Must end with .sam or .bam. * @return SAM or BAM writer based on file extension of outputFile. */ public SAMFileWriter makeSAMOrBAMWriter(final SAMFileHeader header, final boolean presorted, final File outputFile) { final String filename = outputFile.getName(); if (filename.endsWith(BamFileIoUtils.BAM_FILE_EXTENSION)) { return makeBAMWriter(header, presorted, outputFile); } if (filename.endsWith(".sam")) { return makeSAMWriter(header, presorted, outputFile); } return makeBAMWriter(header, presorted, outputFile); } }
/** * Create a BAMFileWriter that is ready to receive SAMRecords. Uses default compression level. * @param header entire header. Sort order is determined by the sortOrder property of this arg. * @param presorted if true, SAMRecords must be added to the SAMFileWriter in order that agrees with header.sortOrder. * @param outputFile where to write the output. */ public SAMFileWriter makeBAMWriter(final SAMFileHeader header, final boolean presorted, final File outputFile) { return makeBAMWriter(header, presorted, outputFile, BlockCompressedOutputStream.getDefaultCompressionLevel()); }
/** * Create either a SAM or a BAM writer based on examination of the outputPath extension. * * @param header entire header. Sort order is determined by the sortOrder property of this arg. * @param presorted presorted if true, SAMRecords must be added to the SAMFileWriter in order that agrees with header.sortOrder. * @param outputPath where to write the output. Must end with .sam or .bam. * @return SAM or BAM writer based on file extension of outputPath. */ public SAMFileWriter makeSAMOrBAMWriter(final SAMFileHeader header, final boolean presorted, final Path outputPath) { final String filename = outputPath.getFileName().toString(); if (filename.endsWith(BamFileIoUtils.BAM_FILE_EXTENSION)) { return makeBAMWriter(header, presorted, outputPath); } if (filename.endsWith(".sam")) { return makeSAMWriter(header, presorted, outputPath); } return makeBAMWriter(header, presorted, outputPath); }
@Override public boolean pre() { if (this.input.toFile().exists()) { SAMFileHeader samFileHeader = AlignmentConverter.buildSAMFileHeader(reader.getHeader()); writer = new SAMFileWriterFactory().makeBAMWriter(samFileHeader, true, this.input.toFile()); super.pre(); return true; } else { return false; } }
private void initChromosomeChunk(int sampleIdx, int chromosomeChunkIdx) { Logger.debug("Writer init: %d, %d", sampleIdx, chromosomeChunkIdx); samHeaders[sampleIdx].setSortOrder(SortOrder.unsorted); writers[sampleIdx][chromosomeChunkIdx] = writerFactory.makeBAMWriter(samHeaders[sampleIdx], false, new File(getTempFilename(sampleIdx, chromosomeChunkIdx)), TEMP_COMPRESSION_LEVEL); }
/** * Write the reads from this builder to output, creating an index as well * @param output the output BAM file we want to use * @return */ public File makeBAMFile(final File output) { final SAMFileWriter writer = factory.makeBAMWriter(header, true, output, 0); for ( final GATKSAMRecord read : makeReads() ) writer.addAlignment(read); writer.close(); return output; }
private void createBAM(final List<GATKSAMRecord> reads) throws IOException { testBAM = createTempFile("TraverseActiveRegionsUnitTest", ".bam"); SAMFileWriter out = new SAMFileWriterFactory().setCreateIndex(true).makeBAMWriter(reads.get(0).getHeader(), true, testBAM); for (GATKSAMRecord read : reads ) { out.addAlignment(read); } out.close(); new File(testBAM.getAbsolutePath().replace(".bam", ".bai")).deleteOnExit(); new File(testBAM.getAbsolutePath() + ".bai").deleteOnExit(); }
private void createBAM(List<GATKSAMRecord> reads) throws IOException { testBAM = createTempFile("TraverseActiveRegionsUnitTest", ".bam"); SAMFileWriter out = new SAMFileWriterFactory().setCreateIndex(true).makeBAMWriter(reads.get(0).getHeader(), true, testBAM); for (GATKSAMRecord read : ReadUtils.sortReadsByCoordinate(reads)) { out.addAlignment(read); } out.close(); new File(testBAM.getAbsolutePath().replace(".bam", ".bai")).deleteOnExit(); new File(testBAM.getAbsolutePath() + ".bai").deleteOnExit(); }
public static void main(String[] args) { File inputFile = new File(args[0]); File outputFile = new File(args[1]); SAMFileReader reader = new SAMFileReader(inputFile); reader.setValidationStringency(ValidationStringency.SILENT); SAMFileHeader header = reader.getFileHeader(); SAMFileWriter writer = new SAMFileWriterFactory().makeBAMWriter(header, true, outputFile); for (SAMRecord record : reader) { if (record.getIndexingBin() != null) { record.setIndexingBin(record.computeIndexingBin()); } writer.addAlignment(record); } writer.close(); } }
protected void kickedFromCache(FastqRead read) { if (writer == null) { log.info("Creating overflow BAM file."); headerForOverflowWriter = header.clone(); headerForOverflowWriter.setSortOrder(SAMFileHeader.SortOrder.queryname); writer = new SAMFileWriterFactory().makeBAMWriter(headerForOverflowWriter, false, cacheOverFlowStream); } SAMRecord r = read.toSAMRecord(writer.getFileHeader()); writer.addAlignment(r); }
public File build (final List<SAMRecordSetBuilder> setBuilder, final File unsortedSam, final SAMFileHeader header) throws IOException { final File sortedSam = VcfTestUtils.createTemporaryIndexedFile("CollectGcBias", ".bam"); final SAMFileWriter writer = new SAMFileWriterFactory() .setCreateIndex(true).makeBAMWriter(header, false, unsortedSam); for (final SAMRecordSetBuilder subSetBuilder : setBuilder) { for (final SAMRecord record : subSetBuilder) { writer.addAlignment(record); } } writer.close(); final SortSam sorter = new SortSam(); final String[] args = new String[] { "INPUT=" + unsortedSam.getAbsolutePath(), "OUTPUT=" + sortedSam.getAbsolutePath(), "SORT_ORDER=coordinate" }; sorter.instanceMain(args); return sortedSam; }
private void createSmallBam(final Path outputPath) { final SAMFileWriterFactory factory = new SAMFileWriterFactory(); factory.setCreateIndex(true); factory.setCreateMd5File(true); final SAMFileHeader header = new SAMFileHeader(); // index only created if coordinate sorted header.setSortOrder(SAMFileHeader.SortOrder.coordinate); header.addSequence(new SAMSequenceRecord("chr1", 123)); try (final SAMFileWriter writer = factory.makeBAMWriter(header, false, outputPath)) { fillSmallBam(writer); } }
private void createSmallBam(final File outputFile) { final SAMFileWriterFactory factory = new SAMFileWriterFactory(); factory.setCreateIndex(true); factory.setCreateMd5File(true); final SAMFileHeader header = new SAMFileHeader(); // index only created if coordinate sorted header.setSortOrder(SAMFileHeader.SortOrder.coordinate); header.addSequence(new SAMSequenceRecord("chr1", 123)); try (final SAMFileWriter writer = factory.makeBAMWriter(header, false, outputFile)) { fillSmallBam(writer); } }
private void createSmallBamToOutputStream(final OutputStream outputStream,boolean binary) { final SAMFileWriterFactory factory = new SAMFileWriterFactory(); factory.setCreateIndex(false); factory.setCreateMd5File(false); final SAMFileHeader header = new SAMFileHeader(); // index only created if coordinate sorted header.setSortOrder(SAMFileHeader.SortOrder.coordinate); header.addSequence(new SAMSequenceRecord("chr1", 123)); try (final SAMFileWriter writer = (binary? factory.makeBAMWriter(header, false, outputStream): factory.makeSAMWriter(header, false, outputStream) )) { fillSmallBam(writer); } }