pub struct Variant<N: Nucleotide> { /* private fields */ }Expand description
A single nucleotide variant.
Implementations§
Source§impl<N: Nucleotide> Variant<N>
impl<N: Nucleotide> Variant<N>
Sourcepub fn try_new(
coordinate: impl Into<Coordinate<Base>>,
reference_nucleotide: impl Into<N>,
alternate_nucleotide: impl Into<N>,
) -> Result<Self, Error<N>>
pub fn try_new( coordinate: impl Into<Coordinate<Base>>, reference_nucleotide: impl Into<N>, alternate_nucleotide: impl Into<N>, ) -> Result<Self, Error<N>>
Attempts to create a new Variant.
§Examples
use omics_coordinate::base::Coordinate;
use omics_coordinate::system::Base;
use omics_molecule::polymer::dna;
use omics_variation::snv::Variant;
let variant = Variant::<dna::Nucleotide>::try_new(
"seq0:+:1".parse::<Coordinate>()?,
dna::Nucleotide::A,
dna::Nucleotide::T,
)?;
Sourcepub fn coordinate(&self) -> &Coordinate<Base>
pub fn coordinate(&self) -> &Coordinate<Base>
Gets the Coordinate for this Variant.
§Examples
use omics_coordinate::Strand;
use omics_coordinate::base::Coordinate;
use omics_coordinate::system::Base;
use omics_molecule::polymer::dna;
use omics_variation::snv::Variant;
let variant = Variant::<dna::Nucleotide>::try_new(
"seq0:+:1".parse::<Coordinate>()?,
dna::Nucleotide::A,
dna::Nucleotide::T,
)?;
assert_eq!(variant.coordinate().contig().as_str(), "seq0");
assert_eq!(variant.coordinate().strand(), Strand::Positive);
assert_eq!(variant.coordinate().position().get(), 1);
Sourcepub fn reference(&self) -> &N
pub fn reference(&self) -> &N
Gets the reference nucleotide as a Nucleotide from the Variant.
§Examples
use omics_coordinate::base::Coordinate;
use omics_coordinate::system::Base;
use omics_molecule::polymer::dna;
use omics_variation::snv::Variant;
let variant = "seq0:+:1:A:T".parse::<Variant<dna::Nucleotide>>()?;
assert_eq!(variant.reference(), &dna::Nucleotide::A);
Sourcepub fn alternate(&self) -> &N
pub fn alternate(&self) -> &N
Gets the alternate nucleotide as a Nucleotide from the Variant.
§Examples
use omics_coordinate::base::Coordinate;
use omics_coordinate::system::Base;
use omics_molecule::polymer::dna;
use omics_variation::snv::Variant;
let variant = "seq0:+:1:A:T".parse::<Variant<dna::Nucleotide>>()?;
assert_eq!(variant.alternate(), &dna::Nucleotide::T);
Trait Implementations§
Source§impl<N: Nucleotide> Display for Variant<N>
impl<N: Nucleotide> Display for Variant<N>
Auto Trait Implementations§
impl<N> Freeze for Variant<N>where
N: Freeze,
impl<N> RefUnwindSafe for Variant<N>where
N: RefUnwindSafe,
impl<N> Send for Variant<N>where
N: Send,
impl<N> Sync for Variant<N>where
N: Sync,
impl<N> Unpin for Variant<N>where
N: Unpin,
impl<N> UnwindSafe for Variant<N>where
N: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more