Struct noodles_bam::record::Record [−][src]
pub struct Record { /* fields omitted */ }
Expand description
A BAM record.
A BAM record encodes the same fields as a SAM record:
- reference sequence ID (
RNAME
equiv.), - position (
POS
), - mapping quality (
MAPQ
), - flags (
FLAG
), - mate reference sequence ID (
RNEXT
equiv.), - mate position (
PNEXT
), - template length (
TLEN
), - read name (
QNAME
), - CIGAR operations (
CIGAR
), - sequence (
SEQ
), - quality scores (
QUAL
), and - optional data fields.
Additionally, it encodes the BAM index bin (bin
).
A bam::Record
and its fields store raw values and care should be taken when manipulating
them.
Implementations
pub fn try_from_sam_record(
reference_sequences: &ReferenceSequences,
sam_record: &Record
) -> Result<Self>
pub fn try_from_sam_record(
reference_sequences: &ReferenceSequences,
sam_record: &Record
) -> Result<Self>
Converts a SAM record to a BAM record.
Examples
use noodles_bam as bam;
use noodles_sam::{self as sam, header::ReferenceSequences};
let reference_sequences = ReferenceSequences::default();
let sam_record = sam::Record::default();
let record = bam::Record::try_from_sam_record(&reference_sequences, &sam_record)?;
assert_eq!(record, bam::Record::default());
Converts this record to a SAM record.
Examples
use noodles_bam as bam;
use noodles_sam as sam;
let reference_sequences = sam::header::ReferenceSequences::default();
let record = bam::Record::default();
let sam_record = record.try_into_sam_record(&reference_sequences)?;
assert_eq!(sam_record, sam::Record::default());
Creates a BAM record builder.
Examples
use noodles_bam as bam;
let builder = bam::Record::builder();
let record = builder.build()?;
Returns the reference sequence ID of this record.
The reference sequence ID is the index of the associated reference sequence in the SAM header or BAM reference sequences.
Examples
use noodles_bam as bam;
let record = bam::Record::default();
assert!(record.reference_sequence_id().is_none());
Returns a mutable reference to the reference sequence ID.
Examples
use noodles_bam::{self as bam, record::ReferenceSequenceId};
let mut record = bam::Record::default();
*record.reference_sequence_id_mut() = ReferenceSequenceId::try_from(1).map(Some)?;
assert_eq!(record.reference_sequence_id().map(i32::from), Some(1));
Returns the start position of this record.
Despite the BAM format using 0-based positions, this normalizes the value as a 1-based position.
Examples
use noodles_bam as bam;
let record = bam::Record::default();
assert!(record.position().is_none());
Returns the mapping quality of this record.
Examples
use noodles_bam as bam;
let record = bam::Record::default();
assert!(record.mapping_quality().is_none());
Returns a mutable reference to the mapping quality.
Examples
use noodles_bam as bam;
use noodles_sam::record::MappingQuality;
let mut record = bam::Record::default();
*record.mapping_quality_mut() = MappingQuality::from(13);
assert_eq!(record.mapping_quality().map(u8::from), Some(13));
Returns the index bin that includes this record.
Examples
use noodles_bam as bam;
let record = bam::Record::default();
assert_eq!(record.bin(), 4680);
Returns the SAM flags of this record.
Examples
use noodles_bam as bam;
use noodles_sam as sam;
let record = bam::Record::default();
assert_eq!(record.flags(), sam::record::Flags::UNMAPPED);
Returns a mutable reference to the flags.
Examples
use noodles_bam as bam;
use noodles_sam::record::Flags;
let mut record = bam::Record::default();
*record.flags_mut() = Flags::PAIRED | Flags::READ_1;
assert_eq!(record.flags(), Flags::PAIRED | Flags::READ_1);
Returns the reference sequence ID of the mate of this record.
The mate reference sequence ID is the index of the associated reference sequence in the SAM header or BAM reference sequences.
Examples
use noodles_bam as bam;
let record = bam::Record::default();
assert!(record.mate_reference_sequence_id().is_none());
Returns a mutable reference to the mate reference sequence ID.
Examples
use noodles_bam::{self as bam, record::ReferenceSequenceId};
let mut record = bam::Record::default();
*record.mate_reference_sequence_id_mut() = ReferenceSequenceId::try_from(1).map(Some)?;
assert_eq!(record.mate_reference_sequence_id().map(i32::from), Some(1));
Returns the start position of the mate of this record.
Despite the BAM format using 0-based positions, this normalizes the value as a 1-based position.
Examples
use noodles_bam as bam;
let record = bam::Record::default();
assert!(record.mate_position().is_none());
Returns the template length of this record.
Examples
use noodles_bam as bam;
let record = bam::Record::default();
assert_eq!(record.template_length(), 0);
Returns the read name of this record.
This is also called the query name.
Examples
use noodles_bam as bam;
let record = bam::Record::default();
assert_eq!(record.read_name()?.to_bytes(), b"*");
Returns the CIGAR operations that describe how the read was mapped.
Examples
use noodles_bam as bam;
let record = bam::Record::default();
assert!(record.cigar().is_empty());
Returns a mutable reference to the CIGAR.
Examples
use noodles_bam::{self as bam, record::cigar::Op};
use noodles_sam::record::cigar::op::Kind;
let mut record = bam::Record::default();
let op = Op::new(Kind::Match, 36)?;
record.cigar_mut().push(op);
assert_eq!(record.cigar().as_ref(), [0x00000240]);
Ok::<_, bam::record::cigar::op::LengthError>(())
Returns the bases in the sequence of this record.
Examples
use noodles_bam as bam;
let record = bam::Record::default();
assert!(record.sequence().is_empty());
Returns a mutable reference to the sequence.
Examples
use noodles_bam::{self as bam, record::sequence::Base};
let mut record = bam::Record::default();
let sequence = record.sequence_mut();
sequence.push(Base::A);
sequence.set_len(1);
assert_eq!(record.sequence().as_ref(), [0x10]); // A
assert_eq!(record.sequence().len(), 1);
Returns the quality score for each base in the sequence.
Examples
use noodles_bam as bam;
let record = bam::Record::default();
assert!(record.quality_scores().is_empty());
Returns a mutable reference to the quality scores.
Examples
use noodles_bam as bam;
use noodles_sam::record::quality_scores::Score;
let mut record = bam::Record::default();
record.quality_scores_mut().push(Score::try_from(8)?);
assert_eq!(record.quality_scores().as_ref(), [8]);
Returns the optional data fields for this record.
Examples
use noodles_bam as bam;
let record = bam::Record::default();
assert!(record.data().is_empty());
Returns a mutable reference to the data.
Examples
use noodles_bam::{self as bam, record::data::{field::Value, Field}};
use noodles_sam::record::data::field::Tag;
let mut record = bam::Record::default();
let nh = Field::new(Tag::AlignmentHitCount, Value::UInt8(1));
record.data_mut().insert(nh).transpose()?;
assert_eq!(record.data().len(), 1);
Trait Implementations
fn reference_sequence<'rs>(
&self,
reference_sequences: &'rs ReferenceSequences
) -> Option<Result<&'rs ReferenceSequence>>
fn reference_sequence<'rs>(
&self,
reference_sequences: &'rs ReferenceSequences
) -> Option<Result<&'rs ReferenceSequence>>
Returns the associated reference sequence.
Examples
use noodles_bam as bam;
use noodles_sam::{header::ReferenceSequences, RecordExt};
let record = bam::Record::default();
let reference_sequences = ReferenceSequences::default();
assert!(record.reference_sequence(&reference_sequences).is_none());
Returns the start position.
Examples
use noodles_bam as bam;
use noodles_sam::RecordExt;
let record = bam::Record::default();
assert!(record.alignment_start().is_none());
Calculates the alignment span over the reference sequence.
Examples
use noodles_bam as bam;
use noodles_sam::RecordExt;
let record = bam::Record::default();
assert_eq!(record.alignment_span()?, 0);
fn mate_reference_sequence<'rs>(
&self,
reference_sequences: &'rs ReferenceSequences
) -> Option<Result<&'rs ReferenceSequence>>
fn mate_reference_sequence<'rs>(
&self,
reference_sequences: &'rs ReferenceSequences
) -> Option<Result<&'rs ReferenceSequence>>
Returns the associated reference sequence of the mate.
Examples
use noodles_bam as bam;
use noodles_sam::{header::ReferenceSequences, RecordExt};
let record = bam::Record::default();
let reference_sequences = ReferenceSequences::default();
assert!(record.mate_reference_sequence(&reference_sequences).is_none());
Auto Trait Implementations
impl RefUnwindSafe for Record
impl UnwindSafe for Record
Blanket Implementations
Mutably borrows from an owned value. Read more
Compare self to key
and return true
if they are equal.