pub struct PackedSeqVecBase<const B: usize>where
Bits<B>: SupportedBits,{ /* private fields */ }Expand description
A variable-bit-width packed owned sequence of DNA bases.
Implementations§
Source§impl<const B: usize> PackedSeqVecBase<B>where
Bits<B>: SupportedBits,
impl<const B: usize> PackedSeqVecBase<B>where
Bits<B>: SupportedBits,
Sourcepub fn from_raw_parts(seq: Vec<u8>, len: usize) -> Self
pub fn from_raw_parts(seq: Vec<u8>, len: usize) -> Self
Creates a SeqVec from a vector of packed bytes and a length in bp.
The vector should have at least 48 bytes of padding after len.
Otherwise, the vector will be resized to be padded with zeros.
Trait Implementations§
Source§impl<const B: usize> Clone for PackedSeqVecBase<B>where
Bits<B>: SupportedBits,
impl<const B: usize> Clone for PackedSeqVecBase<B>where
Bits<B>: SupportedBits,
Source§fn clone(&self) -> PackedSeqVecBase<B>
fn clone(&self) -> PackedSeqVecBase<B>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<const B: usize> CopyType for PackedSeqVecBase<B>
impl<const B: usize> CopyType for PackedSeqVecBase<B>
Source§impl<const B: usize> Debug for PackedSeqVecBase<B>where
Bits<B>: SupportedBits,
impl<const B: usize> Debug for PackedSeqVecBase<B>where
Bits<B>: SupportedBits,
Source§impl<const B: usize> Default for PackedSeqVecBase<B>where
Bits<B>: SupportedBits,
impl<const B: usize> Default for PackedSeqVecBase<B>where
Bits<B>: SupportedBits,
Source§impl<const B: usize> MemDbgImpl for PackedSeqVecBase<B>
impl<const B: usize> MemDbgImpl for PackedSeqVecBase<B>
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
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<const B: usize> MemSize for PackedSeqVecBase<B>
impl<const B: usize> MemSize for PackedSeqVecBase<B>
Source§impl<const B: usize> SeqVec for PackedSeqVecBase<B>where
Bits<B>: SupportedBits,
impl<const B: usize> SeqVec for PackedSeqVecBase<B>where
Bits<B>: SupportedBits,
Source§fn push_ascii(&mut self, seq: &[u8]) -> Range<usize>
fn push_ascii(&mut self, seq: &[u8]) -> Range<usize>
For PackedSeqVec (2-bit encoding): map ASCII ACGT (and acgt) to DNA 0132 in that order.
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.
For BitSeqVec (1-bit encoding): map ACGTacgt to 0, and everything else to 1.
type Seq<'s> = PackedSeqBase<'s, B>
Source§fn as_slice(&self) -> Self::Seq<'_>
fn as_slice(&self) -> Self::Seq<'_>
Get a non-owning slice to the underlying sequence. Read more
Source§fn push_seq<'a>(&mut self, seq: PackedSeqBase<'_, B>) -> Range<usize>
fn push_seq<'a>(&mut self, seq: PackedSeqBase<'_, B>) -> Range<usize>
Append the given sequence to the underlying storage. Read more
Source§fn slice(&self, range: Range<usize>) -> Self::Seq<'_>
fn slice(&self, range: Range<usize>) -> Self::Seq<'_>
Get a sub-slice of the sequence. Indices are character offsets.
Source§fn read_revcomp_kmer_u128(&self, k: usize, pos: usize) -> u128
fn read_revcomp_kmer_u128(&self, k: usize, pos: usize) -> u128
Extract a k-mer from this sequence.
Source§fn from_ascii(seq: &[u8]) -> Self
fn from_ascii(seq: &[u8]) -> Self
Create a
SeqVec from ASCII input.Auto Trait Implementations§
impl<const B: usize> Freeze for PackedSeqVecBase<B>
impl<const B: usize> RefUnwindSafe for PackedSeqVecBase<B>
impl<const B: usize> Send for PackedSeqVecBase<B>
impl<const B: usize> Sync for PackedSeqVecBase<B>
impl<const B: usize> Unpin for PackedSeqVecBase<B>
impl<const B: usize> UnsafeUnpin for PackedSeqVecBase<B>
impl<const B: usize> UnwindSafe for PackedSeqVecBase<B>
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
Source§impl<T, U> CastableInto<U> for Twhere
U: CastableFrom<T>,
impl<T, U> CastableInto<U> for Twhere
U: CastableFrom<T>,
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DowncastableFrom<T> for T
impl<T> DowncastableFrom<T> for T
Source§fn downcast_from(value: T) -> T
fn downcast_from(value: T) -> T
Truncate the current UnsignedInt to a possibly smaller size
Source§impl<T, U> DowncastableInto<U> for Twhere
U: DowncastableFrom<T>,
impl<T, U> DowncastableInto<U> for Twhere
U: DowncastableFrom<T>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> MemDbg for Twhere
T: MemDbgImpl,
impl<T> MemDbg for Twhere
T: MemDbgImpl,
Source§fn mem_dbg(&self, flags: DbgFlags) -> Result<(), Error>
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>
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>
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>
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> Pointable for T
impl<T> Pointable for T
Source§impl<T> UpcastableFrom<T> for T
impl<T> UpcastableFrom<T> for T
Source§fn upcast_from(value: T) -> T
fn upcast_from(value: T) -> T
Extend the current UnsignedInt to a possibly bigger size.