Struct PackedSeq

Source
pub struct PackedSeq<'s> { /* private fields */ }
Expand description

A 2-bit packed non-owned slice of DNA bases.

Implementations§

Source§

impl PackedSeq<'_>

Source

pub fn normalize(&self) -> Self

Shrink seq to only just cover the data.

Source

pub fn unpack(&self) -> Vec<u8>

Return a Vec<u8> of ASCII ACTG characters.

Trait Implementations§

Source§

impl<'s> Clone for PackedSeq<'s>

Source§

fn clone(&self) -> PackedSeq<'s>

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<'s> CopyType for PackedSeq<'s>
where &'s [u8]: MemSize, usize: MemSize,

Source§

impl<'s> Debug for PackedSeq<'s>

Source§

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

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

impl<'s> MemDbgImpl for PackedSeq<'s>
where &'s [u8]: MemDbgImpl, usize: MemDbgImpl,

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<'s> MemSize for PackedSeq<'s>
where &'s [u8]: MemSize, usize: MemSize,

Source§

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

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

impl Ord for PackedSeq<'_>

Source§

fn cmp(&self, other: &Self) -> Ordering

Compares 29 characters at a time.

1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for PackedSeq<'_>

Source§

fn eq(&self, other: &Self) -> bool

Compares 29 characters at a time.

1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for PackedSeq<'_>

Source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<'s> Seq<'s> for PackedSeq<'s>

Source§

fn as_u64(&self) -> u64

Convert a short sequence (kmer) to a packed representation as usize. Panics if self is longer than 32 characters.

Source§

fn revcomp_as_u64(&self) -> u64

Convert a short sequence (kmer) to a packed representation of its reverse complement as usize. Panics if self is longer than 32 characters.

Source§

fn par_iter_bp_delayed( self, context: usize, delay: usize, ) -> (impl ExactSizeIterator<Item = (S, S)> + Clone, usize)

NOTE: When self starts does not start at a byte boundary, the ‘delayed’ character is not guaranteed to be 0.

Source§

fn par_iter_bp_delayed_2( self, context: usize, delay1: usize, delay2: usize, ) -> (impl ExactSizeIterator<Item = (S, S, S)> + Clone, usize)

NOTE: When self starts does not start at a byte boundary, the ‘delayed’ character is not guaranteed to be 0.

Source§

fn cmp_lcp(&self, other: &Self) -> (Ordering, usize)

Compares 29 characters at a time.

Source§

const BASES_PER_BYTE: usize = 4usize

Number of encoded characters per byte of memory of the Seq.
Source§

const BITS_PER_CHAR: usize = 2usize

Number of bits b to represent each character returned by iter_bp and variants..
Source§

type SeqVec = PackedSeqVec

The corresponding owned sequence type.
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 get(&self, index: usize) -> u8

Get the character at the given index.
Source§

fn get_ascii(&self, index: usize) -> u8

Get the ASCII character at the given index, without mapping to b-bit values.
Source§

fn to_vec(&self) -> PackedSeqVec

Convert to an owned version.
Source§

fn to_revcomp(&self) -> PackedSeqVec

Compute the reverse complement of this sequence.
Source§

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

Get a sub-slice of the sequence. range indicates character indices.
Source§

fn iter_bp(self) -> impl ExactSizeIterator<Item = u8> + Clone

Iterate over the b-bit characters of the sequence.
Source§

fn par_iter_bp( self, context: usize, ) -> (impl ExactSizeIterator<Item = S> + Clone, usize)

Iterate over 8 chunks of b-bit characters of the sequence in parallel. Read more
Source§

fn bits_per_char(&self) -> usize

Convenience function that returns b=Self::BITS_PER_CHAR.
Source§

fn to_word(&self) -> usize

👎Deprecated: Prefer to_u64.
Convert a short sequence (kmer) to a packed representation as usize.
Source§

fn to_word_revcomp(&self) -> usize

👎Deprecated: Prefer revcomp_to_u64.
Convert a short sequence (kmer) to a packed representation of its reverse complement as usize.
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 reverse complement k-mer from this sequence.
Source§

impl<'s> Copy for PackedSeq<'s>

Source§

impl Eq for PackedSeq<'_>

Auto Trait Implementations§

§

impl<'s> Freeze for PackedSeq<'s>

§

impl<'s> RefUnwindSafe for PackedSeq<'s>

§

impl<'s> Send for PackedSeq<'s>

§

impl<'s> Sync for PackedSeq<'s>

§

impl<'s> Unpin for PackedSeq<'s>

§

impl<'s> UnwindSafe for PackedSeq<'s>

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