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

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

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

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);

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());

Calculates the end position. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Compare self to key and return true if they are equal.

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.