Struct noodles_sam::header::Header
source · [−]pub struct Header { /* private fields */ }
Expand description
A SAM header.
Records are grouped by their types: header, reference seqeuence, read group, program, and comment.
Implementations
sourceimpl Header
impl Header
sourcepub fn builder() -> Builder
pub fn builder() -> Builder
Returns a builder to create a SAM header.
Examples
use noodles_sam as sam;
let builder = sam::Header::builder();
sourcepub fn header(&self) -> Option<&Header>
pub fn header(&self) -> Option<&Header>
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());
sourcepub fn header_mut(&mut self) -> &mut Option<Header>
pub fn header_mut(&mut self) -> &mut Option<Header>
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());
sourcepub fn reference_sequences(&self) -> &ReferenceSequences
pub fn reference_sequences(&self) -> &ReferenceSequences
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".parse()?, 13)?)
.build();
let reference_sequences = header.reference_sequences();
assert_eq!(reference_sequences.len(), 1);
assert!(reference_sequences.contains_key("sq0"));
sourcepub fn reference_sequences_mut(&mut self) -> &mut ReferenceSequences
pub fn reference_sequences_mut(&mut self) -> &mut ReferenceSequences
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());
let reference_sequence = ReferenceSequence::new("sq0".parse()?, 13)?;
header.reference_sequences_mut().insert(
reference_sequence.name().to_string(),
reference_sequence,
);
let reference_sequences = header.reference_sequences();
assert_eq!(reference_sequences.len(), 1);
assert!(reference_sequences.contains_key("sq0"));
sourcepub fn read_groups(&self) -> &ReadGroups
pub fn read_groups(&self) -> &ReadGroups
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"));
sourcepub fn read_groups_mut(&mut self) -> &mut ReadGroups
pub fn read_groups_mut(&mut self) -> &mut ReadGroups
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"));
sourcepub fn programs(&self) -> &Programs
pub fn programs(&self) -> &Programs
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"));
sourcepub fn programs_mut(&mut self) -> &mut Programs
pub fn programs_mut(&mut self) -> &mut Programs
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"));
sourcepub fn comments(&self) -> &[String]
pub fn comments(&self) -> &[String]
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");
sourcepub fn comments_mut(&mut self) -> &mut Vec<String>
pub fn comments_mut(&mut self) -> &mut Vec<String>
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");
sourcepub fn add_comment<S>(&mut self, comment: S) where
S: Into<String>,
pub fn add_comment<S>(&mut self, comment: S) where
S: Into<String>,
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
sourceimpl Display for Header
impl Display for Header
sourcefn fmt(&self, f: &mut Formatter<'_>) -> Result
fn fmt(&self, f: &mut Formatter<'_>) -> Result
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".parse()?, 8)?)
.add_reference_sequence(ReferenceSequence::new("sq1".parse()?, 13)?)
.build();
let expected = "\
@HD\tVN:1.6
@SQ\tSN:sq0\tLN:8
@SQ\tSN:sq1\tLN:13
";
assert_eq!(header.to_string(), expected);
sourceimpl FromStr for Header
impl FromStr for Header
sourcefn from_str(s: &str) -> Result<Self, Self::Err>
fn from_str(s: &str) -> Result<Self, Self::Err>
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.
impl Eq for Header
impl StructuralEq for Header
impl StructuralPartialEq for Header
Auto Trait Implementations
impl RefUnwindSafe for Header
impl Send for Header
impl Sync for Header
impl Unpin for Header
impl UnwindSafe for Header
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more