pub struct NucleotideSequence { /* private fields */ }
Expand description
BLAST database representation of a nucleotide sequence.
This representation is divided into two different parts:
- Sequence encoding packed down to 2 bits per base. Ambiguous bases are resolved at random.
- Description of the ranges containing ambiguous bases.
This can easily converted to and from a FASTA string:
use blastdb_sequence_util::{Ncbi8naBase, NucleotideSequence};
let fasta = "acgtACGT";
let seq: NucleotideSequence = fasta.as_bytes().iter().map(|b| Ncbi8naBase::try_from(*b)).collect::<Result<_, _>>().unwrap();
let normalized_fasta: String = seq.iter().map(|b| char::from(b)).collect(); // ACGTACGT
Implementations§
Source§impl NucleotideSequence
impl NucleotideSequence
Sourcepub fn new(seq: Vec<u8>, amb: Vec<u8>) -> NucleotideSequence
pub fn new(seq: Vec<u8>, amb: Vec<u8>) -> NucleotideSequence
Create a NucleotideSequence
from sequence and ambiguity streams.
pub fn is_empty(&self) -> bool
Sourcepub fn iter(&self) -> SequenceIter<'_, '_>
pub fn iter(&self) -> SequenceIter<'_, '_>
Iterate over Ncbi8na representation of sequence data.
Sourcepub fn sequence_bytes(&self) -> &[u8] ⓘ
pub fn sequence_bytes(&self) -> &[u8] ⓘ
Return the raw sequence bytes for storage.
Sourcepub fn ambiguity_bytes(&self) -> &[u8] ⓘ
pub fn ambiguity_bytes(&self) -> &[u8] ⓘ
Return the raw ambiguity bytes for storage.
Trait Implementations§
Source§impl Display for NucleotideSequence
Render the sequence as an IUPAC nucleic acide sequence.
impl Display for NucleotideSequence
Render the sequence as an IUPAC nucleic acide sequence.
Source§impl FromIterator<Ncbi8naBase> for NucleotideSequence
impl FromIterator<Ncbi8naBase> for NucleotideSequence
Source§fn from_iter<T>(into_iter: T) -> Selfwhere
T: IntoIterator<Item = Ncbi8naBase>,
fn from_iter<T>(into_iter: T) -> Selfwhere
T: IntoIterator<Item = Ncbi8naBase>,
Creates a value from an iterator. Read more
Auto Trait Implementations§
impl Freeze for NucleotideSequence
impl RefUnwindSafe for NucleotideSequence
impl Send for NucleotideSequence
impl Sync for NucleotideSequence
impl Unpin for NucleotideSequence
impl UnwindSafe for NucleotideSequence
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