Struct noodles::sam::record::builder::Builder [−][src]
pub struct Builder { /* fields omitted */ }
Expand description
A SAM record builder.
Implementations
Creates a SAM record builder.
Typically, Record::builder
is used instead of calling this.
Examples
use noodles_sam as sam;
let builder = sam::Record::builder();
Sets a SAM record read name.
Examples
use noodles_sam as sam;
let record = sam::Record::builder()
.set_read_name("r0".parse()?)
.build()?;
assert_eq!(record.read_name().map(|name| name.as_str()), Some("r0"));
Ok::<(), Box<dyn std::error::Error>>(())
Sets SAM record flags.
Examples
use noodles_sam::{self as sam, record::Flags};
let record = sam::Record::builder()
.set_flags(Flags::PAIRED | Flags::READ_1)
.build()?;
assert_eq!(record.flags(), Flags::PAIRED | Flags::READ_1);
pub fn set_reference_sequence_name(
self,
reference_sequence_name: ReferenceSequenceName
) -> Builder
pub fn set_reference_sequence_name(
self,
reference_sequence_name: ReferenceSequenceName
) -> Builder
Sets a SAM record reference sequence name.
Examples
use noodles_sam as sam;
let record = sam::Record::builder()
.set_reference_sequence_name("sq0".parse()?)
.build()?;
assert_eq!(record.reference_sequence_name().map(|name| name.as_str()), Some("sq0"));
Ok::<(), Box<dyn std::error::Error>>(())
Sets a SAM record position.
This value is 1-based.
Examples
use noodles_sam::{self as sam, record::Position};
let record = sam::Record::builder()
.set_position(Position::try_from(13)?)
.build()?;
assert_eq!(record.position().map(i32::from), Some(13));
Sets a SAM record mapping quality.
Examples
use noodles_sam::{self as sam, record::MappingQuality};
let record = sam::Record::builder()
.set_mapping_quality(MappingQuality::from(34))
.build()?;
assert_eq!(*record.mapping_quality(), Some(34));
Sets a SAM record CIGAR.
Examples
use noodles_sam::{self as sam, record::cigar::{op::Kind, Op}};
let record = sam::Record::builder()
.set_cigar("36M".parse()?)
.build()?;
assert_eq!(**record.cigar(), [Op::new(Kind::Match, 36)]);
Ok::<(), Box<dyn std::error::Error>>(())
pub fn set_mate_reference_sequence_name(
self,
mate_reference_sequence_name: ReferenceSequenceName
) -> Builder
pub fn set_mate_reference_sequence_name(
self,
mate_reference_sequence_name: ReferenceSequenceName
) -> Builder
Sets a SAM record mate reference sequence name.
This value is 1-based.
Examples
use noodles_sam as sam;
let record = sam::Record::builder()
.set_mate_reference_sequence_name("sq0".parse()?)
.build()?;
assert_eq!(record.mate_reference_sequence_name().map(|name| name.as_str()), Some("sq0"));
Ok::<(), Box<dyn std::error::Error>>(())
Sets a SAM record mate position.
Examples
use noodles_sam::{self as sam, record::Position};
let record = sam::Record::builder()
.set_mate_position(Position::try_from(17)?)
.build()?;
assert_eq!(record.mate_position().map(i32::from), Some(17));
Sets a SAM record template length.
Examples
use noodles_sam as sam;
let record = sam::Record::builder().set_template_length(36).build()?;
assert_eq!(record.template_length(), 36);
Sets a SAM record sequence.
Examples
use noodles_sam::{self as sam, record::sequence::Base};
let record = sam::Record::builder()
.set_cigar("4M".parse()?)
.set_sequence("ACGT".parse()?)
.set_quality_scores("NDLS".parse()?)
.build()?;
assert_eq!(**record.sequence(), [Base::A, Base::C, Base::G, Base::T]);
Ok::<(), Box<dyn std::error::Error>>(())
Sets SAM record quality scores.
Examples
use noodles_sam::{self as sam, record::quality_scores::Score};
let record = sam::Record::builder()
.set_cigar("2M".parse()?)
.set_sequence("AC".parse()?)
.set_quality_scores("ND".parse()?)
.build()?;
assert_eq!(**record.quality_scores(), [
Score::try_from('N')?,
Score::try_from('D')?,
]);
Ok::<(), Box<dyn std::error::Error>>(())
Sets SAM record data.
Examples
use noodles_sam::{self as sam, record::{data, Data}};
let record = sam::Record::default();
assert!(record.data().is_empty());
let data = Data::try_from(vec![data::Field::new(
data::field::Tag::AlignmentHitCount,
data::field::Value::Int(1),
)])?;
let record = sam::Record::builder().set_data(data).build()?;
assert_eq!(record.data().to_string(), "NH:i:1");