Struct noodles_vcf::record::builder::Builder
source · pub struct Builder { /* private fields */ }
Expand description
A VCF record builder.
Implementations§
source§impl Builder
impl Builder
sourcepub fn set_chromosome(self, chromosome: Chromosome) -> Self
pub fn set_chromosome(self, chromosome: Chromosome) -> Self
Sets the chromosome.
Examples
use noodles_vcf::{self as vcf, record::{Chromosome, Position}};
let record = vcf::Record::builder()
.set_chromosome("sq0".parse()?)
.set_position(Position::from(1))
.set_reference_bases("A".parse()?)
.build()?;
assert_eq!(record.chromosome(), &Chromosome::Name(String::from("sq0")));
sourcepub fn set_position(self, position: Position) -> Self
pub fn set_position(self, position: Position) -> Self
Sets the start position.
Examples
use noodles_vcf::{self as vcf, record::Position};
let record = vcf::Record::builder()
.set_chromosome("sq0".parse()?)
.set_position(Position::from(8))
.set_reference_bases("A".parse()?)
.build()?;
assert_eq!(usize::from(record.position()), 8);
sourcepub fn set_ids(self, ids: Ids) -> Self
pub fn set_ids(self, ids: Ids) -> Self
Sets a list of IDs.
Examples
use noodles_vcf::{self as vcf, record::Position};
let record = vcf::Record::builder()
.set_chromosome("sq0".parse()?)
.set_position(Position::from(1))
.set_ids("nd0".parse()?)
.set_reference_bases("A".parse()?)
.build()?;
assert_eq!(*record.ids(), "nd0".parse()?);
sourcepub fn set_reference_bases(self, reference_bases: ReferenceBases) -> Self
pub fn set_reference_bases(self, reference_bases: ReferenceBases) -> Self
Sets the reference bases.
Examples
use noodles_vcf::{
self as vcf,
record::{reference_bases::Base, Position, ReferenceBases},
};
let record = vcf::Record::builder()
.set_chromosome("sq0".parse()?)
.set_position(Position::from(1))
.set_reference_bases("A".parse()?)
.build()?;
assert_eq!(
record.reference_bases(),
&ReferenceBases::try_from(vec![Base::A])?,
);
sourcepub fn add_reference_base(self, reference_base: Base) -> Self
pub fn add_reference_base(self, reference_base: Base) -> Self
Adds a base to reference bases.
Examples
use noodles_vcf::{
self as vcf,
record::{reference_bases::Base, Position, ReferenceBases},
};
let record = vcf::Record::builder()
.set_chromosome("sq0".parse()?)
.set_position(Position::from(1))
.add_reference_base(Base::A)
.build()?;
assert_eq!(
record.reference_bases(),
&ReferenceBases::try_from(vec![Base::A])?,
);
sourcepub fn set_alternate_bases(self, alternate_bases: AlternateBases) -> Self
pub fn set_alternate_bases(self, alternate_bases: AlternateBases) -> Self
Sets the alternate bases.
Examples
use noodles_vcf::{
self as vcf,
record::{alternate_bases::Allele, reference_bases::Base, AlternateBases, Position},
};
let record = vcf::Record::builder()
.set_chromosome("sq0".parse()?)
.set_position(Position::from(1))
.set_reference_bases("A".parse()?)
.set_alternate_bases("C".parse()?)
.build()?;
assert_eq!(
record.alternate_bases(),
&AlternateBases::from(vec![Allele::Bases(vec![Base::C])]),
);
sourcepub fn set_quality_score(self, quality_score: QualityScore) -> Self
pub fn set_quality_score(self, quality_score: QualityScore) -> Self
Sets the quality score.
Examples
use noodles_vcf::{self as vcf, record::{Position, QualityScore}};
let record = vcf::Record::builder()
.set_chromosome("sq0".parse()?)
.set_position(Position::from(1))
.set_reference_bases("A".parse()?)
.set_quality_score(QualityScore::try_from(13.0)?)
.build()?;
assert_eq!(record.quality_score().map(f32::from), Some(13.0));
sourcepub fn set_filters(self, filters: Filters) -> Self
pub fn set_filters(self, filters: Filters) -> Self
Sets the filters.
Examples
use noodles_vcf::{self as vcf, record::{Filters, Position}};
let record = vcf::Record::builder()
.set_chromosome("sq0".parse()?)
.set_position(Position::from(1))
.set_reference_bases("A".parse()?)
.set_filters(Filters::Pass)
.build()?;
assert_eq!(record.filters(), Some(&Filters::Pass));
sourcepub fn set_info(self, info: Info) -> Self
pub fn set_info(self, info: Info) -> Self
Sets additional information.
Examples
use noodles_vcf::{
self as vcf,
header::info::key,
record::{info::field::Value, Info, Position},
};
let record = vcf::Record::builder()
.set_chromosome("sq0".parse()?)
.set_position(Position::from(1))
.set_reference_bases("A".parse()?)
.set_alternate_bases("C".parse()?)
.set_info("NS=3;AF=0.5".parse()?)
.build()?;
let expected = [
(key::SAMPLES_WITH_DATA_COUNT, Some(Value::Integer(3))),
(key::ALLELE_FREQUENCIES, Some(Value::FloatArray(vec![Some(0.5)]))),
].into_iter().collect();
assert_eq!(record.info(), &expected);
sourcepub fn set_genotypes(self, genotypes: Genotypes) -> Self
pub fn set_genotypes(self, genotypes: Genotypes) -> Self
Sets the list of genotypes.
Examples
use noodles_vcf::{
self as vcf,
header::format::key,
record::{genotypes::sample::Value, Genotypes, Position},
};
let keys = "GT:GQ".parse()?;
let genotypes = Genotypes::new(
keys,
vec![vec![
Some(Value::String(String::from("0|0"))),
Some(Value::Integer(13)),
]],
);
let record = vcf::Record::builder()
.set_chromosome("sq0".parse()?)
.set_position(Position::from(1))
.set_reference_bases("A".parse()?)
.set_genotypes(genotypes.clone())
.build()?;
assert_eq!(record.genotypes(), &genotypes);