Skip to main content

ReferenceGenome

Struct ReferenceGenome 

Source
pub struct ReferenceGenome { /* private fields */ }
Expand description

Wrapper structure for a reference genome

Implementations§

Source§

impl ReferenceGenome

Source

pub fn empty_reference() -> Self

Creates an empty reference genome, which we can be populated through add_contig(...)

Source

pub fn from_fasta(fasta_fn: &Path) -> Result<ReferenceGenome>

Loads a reference genome from a given FASTA file

§Arguments
  • fasta_fn - the FASTA filename, gzip is allowed
§Errors
  • if the FASTA file cannot be opened or read
  • if a FASTA record cannot be parsed
  • if a contig key is duplicated in the FASTA file
Source

pub fn add_contig( &mut self, contig_key: String, contig_sequence: Vec<u8>, ) -> Result<()>

Adds a new contig to the reference genome

§Arguments
  • contig_key - the name of the contig
  • contig_sequence - the sequence to add; all sequence is automatically upper-cased in place
§Errors
  • if contig_key is already in the reference genome
Source

pub fn add_contig_string( &mut self, contig_key: String, contig_sequence: String, ) -> Result<()>

Adds a new contig from a UTF-8 string by converting it to bytes and calling Self::add_contig.

§Arguments
  • contig_key - the name of the contig
  • contig_sequence - the sequence to add; all sequence is automatically upper-cased
§Errors
  • if contig_key is already in the reference genome
Source

pub fn filename(&self) -> &Path

Returns the filename of the reference genome.

Source

pub fn contig_keys(&self) -> impl Iterator<Item = &String>

Returns an iterator over the contig keys in the reference genome. The order of the contig keys is guaranteed to be the same as the order as they were added to the reference genome.

Source

pub fn get_slice( &self, chromosome: &str, start: usize, end: usize, ) -> Result<&[u8]>

Retrieves a reference slice from a given 0-based coordinates. If start or end goes past the full contig length, it will be truncated to the full contig length.

§Arguments
  • chromosome - the chromosome to slice from
  • start - the 0-based start index (included)
  • end - the 0-based end index (excluded)
§Errors
  • if chromosome was not in the FASTA file
  • if start > end
Source

pub fn get_full_chromosome(&self, chromosome: &str) -> Result<&[u8]>

Retrieves a full chromosome by name

§Arguments
  • chromosome - the chromosome to slice from
§Errors
  • if chromosome was not in the FASTA file

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V