Struct noodles::sam::Header [−][src]
pub struct Header { /* fields omitted */ }
Expand description
A SAM header.
Records are grouped by their types: header, reference seqeuence, read group, program, and comment.
Implementations
Returns a builder to create a SAM header.
Examples
use noodles_sam as sam;
let builder = sam::Header::builder();
Returns the SAM header header if it is set.
Examples
use noodles_sam::{self as sam, header};
let header = sam::Header::default();
assert!(header.header().is_none());
let header = sam::Header::builder()
.set_header(header::header::Header::default())
.build();
assert!(header.header().is_some());
Returns a mutable reference to the SAM header header if it is set.
Examples
use noodles_sam::{self as sam, header::{self, header::Version}};
let mut header = sam::Header::builder()
.set_header(header::header::Header::new(Version::new(1, 6)))
.build();
assert_eq!(header.header().map(|h| h.version()), Some(Version::new(1, 6)));
header.header_mut().as_mut().map(|h| {
*h.version_mut() = Version::new(1, 5)
});
assert_eq!(header.header().map(|h| h.version()), Some(Version::new(1, 5)));
*header.header_mut() = None;
assert!(header.header().is_none());
Returns the SAM header reference sequences.
This is also called the reference sequence dictionary.
Examples
use noodles_sam::{self as sam, header::ReferenceSequence};
let header = sam::Header::builder()
.add_reference_sequence(ReferenceSequence::new("sq0", 13)?)
.build();
let reference_sequences = header.reference_sequences();
assert_eq!(reference_sequences.len(), 1);
assert!(reference_sequences.contains_key("sq0"));
pub fn reference_sequences_mut(
&mut self
) -> &mut IndexMap<String, ReferenceSequence, RandomState>
pub fn reference_sequences_mut(
&mut self
) -> &mut IndexMap<String, ReferenceSequence, RandomState>
Returns a mutable reference to the SAM header reference sequences.
This is also called the reference sequence dictionary.
Examples
use noodles_sam::{self as sam, header::ReferenceSequence};
let mut header = sam::Header::default();
assert!(header.reference_sequences().is_empty());
header.reference_sequences_mut().insert(
String::from("sq0"),
ReferenceSequence::new("sq0", 13)?,
);
let reference_sequences = header.reference_sequences();
assert_eq!(reference_sequences.len(), 1);
assert!(reference_sequences.contains_key("sq0"));
Returns the SAM header read groups.
Examples
use noodles_sam::{self as sam, header::ReadGroup};
let header = sam::Header::builder()
.add_read_group(ReadGroup::new("rg0"))
.build();
let read_groups = header.read_groups();
assert_eq!(read_groups.len(), 1);
assert!(read_groups.contains_key("rg0"));
Returns a mutable reference to the SAM header read groups.
Examples
use noodles_sam::{self as sam, header::ReadGroup};
let mut header = sam::Header::default();
assert!(header.read_groups().is_empty());
header.read_groups_mut().insert(
String::from("rg0"),
ReadGroup::new("rg0"),
);
let read_groups = header.read_groups();
assert_eq!(read_groups.len(), 1);
assert!(read_groups.contains_key("rg0"));
Returns the SAM header programs.
Examples
use noodles_sam::{self as sam, header::Program};
let header = sam::Header::builder()
.add_program(Program::new("noodles-sam"))
.build();
let programs = header.programs();
assert_eq!(programs.len(), 1);
assert!(programs.contains_key("noodles-sam"));
Returns a mutable reference to the SAM header programs.
Examples
use noodles_sam::{self as sam, header::Program};
let mut header = sam::Header::default();
header.programs_mut().insert(
String::from("noodles-sam"),
Program::new("noodles-sam"),
);
let programs = header.programs();
assert_eq!(programs.len(), 1);
assert!(programs.contains_key("noodles-sam"));
Returns the SAM header comments.
Examples
use noodles_sam as sam;
let header = sam::Header::builder().add_comment("noodles-sam").build();
let comments = header.comments();
assert_eq!(comments.len(), 1);
assert_eq!(&comments[0], "noodles-sam");
Returns a mutable reference to the SAM header comments.
To simply append a comment record, consider using Self::add_comment
instead.
Examples
use noodles_sam as sam;
let mut header = sam::Header::default();
header.comments_mut().push(String::from("noodles-sam"));
let comments = header.comments();
assert_eq!(comments.len(), 1);
assert_eq!(&comments[0], "noodles-sam");
Adds a comment.
Examples
use noodles_sam as sam;
let mut header = sam::Header::default();
header.add_comment("noodles-sam");
let comments = header.comments();
assert_eq!(comments.len(), 1);
assert_eq!(&comments[0], "noodles-sam");
Trait Implementations
Formats the SAM header as a raw SAM header.
Examples
use noodles_sam::{self as sam, header::{self, ReferenceSequence}};
let header = sam::Header::builder()
.set_header(header::header::Header::new(header::header::Version::new(1, 6)))
.add_reference_sequence(ReferenceSequence::new("sq0", 8)?)
.add_reference_sequence(ReferenceSequence::new("sq1", 13)?)
.build();
let expected = "\
@HD\tVN:1.6
@SQ\tSN:sq0\tLN:8
@SQ\tSN:sq1\tLN:13
";
assert_eq!(header.to_string(), expected);
Parses a raw SAM header.
Examples
use noodles_sam as sam;
let s = "\
@HD\tVN:1.6\tSO:coordinate
@SQ\tSN:sq0\tLN:8
@SQ\tSN:sq1\tLN:13
";
let header: sam::Header = s.parse()?;
assert!(header.header().is_some());
assert_eq!(header.reference_sequences().len(), 2);
assert!(header.read_groups().is_empty());
assert!(header.programs().is_empty());
assert!(header.comments().is_empty());
type Err = ParseError
type Err = ParseError
The associated error which can be returned from parsing.
Auto Trait Implementations
impl RefUnwindSafe for Header
impl UnwindSafe for Header
Blanket Implementations
Mutably borrows from an owned value. Read more
Compare self to key
and return true
if they are equal.