Struct noodles::bam::Writer [−][src]
pub struct Writer<W> where
W: Write, { /* fields omitted */ }
Expand description
A BAM writer.
Since the raw text header and bam::Record
are immutable, BAM files are created by encoding a
SAM header and SAM records.
Examples
use noodles_bam as bam;
use noodles_sam as sam;
let mut writer = bam::Writer::new(Vec::new());
let header = sam::Header::builder().add_comment("noodles-bam").build();
writer.write_header(&header)?;
writer.write_reference_sequences(header.reference_sequences())?;
let record = sam::Record::default();
writer.write_sam_record(header.reference_sequences(), &record)?;
Implementations
Creates a BAM writer with a default compression level.
The given stream is wrapped in a BGZF encoder.
Examples
use noodles_bam as bam;
let writer = bam::Writer::new(Vec::new());
Returns a reference to the underlying writer.
Examples
use noodles_bam as bam;
let writer = bam::Writer::new(Vec::new());
assert!(writer.get_ref().is_empty());
Attempts to finish the output stream.
This is typically only manually called if the underlying stream is needed before the writer is dropped.
Examples
use noodles_bam as bam;
let mut writer = bam::Writer::new(Vec::new());
writer.try_finish()?;
Writes a SAM header.
Examples
use noodles_bam as bam;
use noodles_sam as sam;
let mut writer = bam::Writer::new(Vec::new());
let header = sam::Header::builder().add_comment("noodles-bam").build();
writer.write_header(&header)?;
pub fn write_reference_sequences(
&mut self,
reference_sequences: &IndexMap<String, ReferenceSequence, RandomState>
) -> Result<(), Error>
pub fn write_reference_sequences(
&mut self,
reference_sequences: &IndexMap<String, ReferenceSequence, RandomState>
) -> Result<(), Error>
Writes SAM reference sequences.
The reference sequences here are typically the same as the reference sequences in the SAM header.
Examples
use noodles_bam as bam;
use noodles_sam::{self as sam, header::ReferenceSequence};
let mut writer = bam::Writer::new(Vec::new());
let header = sam::Header::builder()
.add_reference_sequence(ReferenceSequence::new("sq0", 8)?)
.add_comment("noodles-bam")
.build();
writer.write_header(&header)?;
writer.write_reference_sequences(header.reference_sequences())?;
Writes a BAM record.
Examples
use noodles_bam as bam;
let mut writer = bam::Writer::new(Vec::new());
let record = bam::Record::default();
writer.write_record(&record)?;
pub fn write_sam_record(
&mut self,
reference_sequences: &IndexMap<String, ReferenceSequence, RandomState>,
record: &Record
) -> Result<(), Error>
pub fn write_sam_record(
&mut self,
reference_sequences: &IndexMap<String, ReferenceSequence, RandomState>,
record: &Record
) -> Result<(), Error>
Writes a SAM record.
Examples
use noodles_bam as bam;
use noodles_sam as sam;
let mut writer = bam::Writer::new(Vec::new());
let reference_sequences = sam::header::ReferenceSequences::new();
let record = sam::Record::default();
writer.write_sam_record(&reference_sequences, &record)?;