PackedSeqVec

Struct PackedSeqVec 

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

A 2-bit packed owned sequence of DNA bases.

Trait Implementations§

Source§

impl Clone for PackedSeqVec

Source§

fn clone(&self) -> PackedSeqVec

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl CopyType for PackedSeqVec

Source§

impl Debug for PackedSeqVec

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for PackedSeqVec

Source§

fn default() -> Self

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

impl MemDbgImpl for PackedSeqVec

Source§

fn _mem_dbg_rec_on( &self, _memdbg_writer: &mut impl Write, _memdbg_total_size: usize, _memdbg_max_depth: usize, _memdbg_prefix: &mut String, _memdbg_is_last: bool, _memdbg_flags: DbgFlags, ) -> Result

Source§

fn _mem_dbg_depth_on( &self, writer: &mut impl Write, total_size: usize, max_depth: usize, prefix: &mut String, field_name: Option<&str>, is_last: bool, padded_size: usize, flags: DbgFlags, ) -> Result<(), Error>

Source§

impl MemSize for PackedSeqVec

Source§

fn mem_size(&self, _memsize_flags: SizeFlags) -> usize

Returns the (recursively computed) overall memory size of the structure in bytes.
Source§

impl SeqVec for PackedSeqVec

Source§

fn push_ascii(&mut self, seq: &[u8]) -> Range<usize>

Push an ASCII sequence to an PackedSeqVec. Aa map to 0, Cc to 1, Gg to 3, and Tt to 2. Other characters are silently mapped into 0..4.

Uses the BMI2 pext instruction when available, based on the n_to_bits_pext method described at https://github.com/Daniel-Liu-c0deb0t/cute-nucleotides.

TODO: Support multiple ways of dealing with non-ACTG characters:

  • panic on non-ACGT,
  • filter out non-ACGT.
Source§

type Seq<'s> = PackedSeq<'s>

Source§

fn into_raw(self) -> Vec<u8>

Convert into the underlying raw representation.
Source§

fn as_slice(&self) -> Self::Seq<'_>

Get a non-owning slice to the underlying sequence. Read more
Source§

fn len(&self) -> usize

The length of the sequence in characters.
Source§

fn is_empty(&self) -> bool

Returns true if the sequence is empty.
Source§

fn clear(&mut self)

Empty the sequence.
Source§

fn push_seq<'a>(&mut self, seq: PackedSeq<'_>) -> Range<usize>

Append the given sequence to the underlying storage. Read more
Source§

fn random(n: usize) -> Self

Generate a random sequence with the given number of characters.
Source§

fn slice(&self, range: Range<usize>) -> Self::Seq<'_>

Get a sub-slice of the sequence. Indices are character offsets.
Source§

fn read_kmer(&self, k: usize, pos: usize) -> u64

Extract a k-mer from this sequence.
Source§

fn read_revcomp_kmer(&self, k: usize, pos: usize) -> u64

Extract a k-mer from this sequence.
Source§

fn from_ascii(seq: &[u8]) -> Self

Create a SeqVec from ASCII input.

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<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
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> MemDbg for T
where T: MemDbgImpl,

Source§

fn mem_dbg(&self, flags: DbgFlags) -> Result<(), Error>

Writes to stderr debug infos about the structure memory usage, expanding all levels of nested structures.
Source§

fn mem_dbg_on( &self, writer: &mut impl Write, flags: DbgFlags, ) -> Result<(), Error>

Writes to a core::fmt::Write debug infos about the structure memory usage, expanding all levels of nested structures.
Source§

fn mem_dbg_depth(&self, max_depth: usize, flags: DbgFlags) -> Result<(), Error>

Writes to stderr debug infos about the structure memory usage as mem_dbg, but expanding only up to max_depth levels of nested structures.
Source§

fn mem_dbg_depth_on( &self, writer: &mut impl Write, max_depth: usize, flags: DbgFlags, ) -> Result<(), Error>

Writes to a core::fmt::Write debug infos about the structure memory usage as mem_dbg_on, but expanding only up to max_depth levels of nested structures.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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