Struct noodles_fasta::record::sequence::Sequence
source · pub struct Sequence(_);
Expand description
A FASTA record sequence.
Implementations§
source§impl Sequence
impl Sequence
sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
Returns the length of the sequence.
Examples
use noodles_fasta::record::Sequence;
let sequence = Sequence::default();
assert_eq!(sequence.len(), 0);
sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns whether the sequence is empty.
Examples
use noodles_fasta::record::Sequence;
let sequence = Sequence::default();
assert!(sequence.is_empty());
sourcepub fn get<I>(&self, index: I) -> Option<&I::Output>where
I: SequenceIndex<u8>,
pub fn get<I>(&self, index: I) -> Option<&I::Output>where I: SequenceIndex<u8>,
Returns a reference to a base at or slice of bases between the given index.
Examples
use noodles_core::Position;
use noodles_fasta::record::Sequence;
let sequence = Sequence::from(b"ACGT".to_vec());
let start = Position::try_from(2)?;
assert_eq!(sequence.get(start), Some(&b'C'));
assert_eq!(sequence.get(start..), Some(&b"CGT"[..]));
let end = Position::try_from(3)?;
assert_eq!(sequence.get(start..=end), Some(&b"CG"[..]));
sourcepub fn slice<I>(&self, interval: I) -> Option<Self>where
I: Into<Interval>,
pub fn slice<I>(&self, interval: I) -> Option<Self>where I: Into<Interval>,
Returns a subset of the sequence within the given range.
Unlike Self::get
, this returns the slice as a Sequence
.
Examples
use noodles_core::Position;
use noodles_fasta::record::Sequence;
let sequence = Sequence::from(b"ACGT".to_vec());
let start = Position::try_from(2)?;
let end = Position::try_from(3)?;
let actual = sequence.slice(start..=end);
let expected = Sequence::from(b"CG".to_vec());
assert_eq!(actual, Some(expected));
sourcepub fn complement(&self) -> Complement<'_> ⓘ
pub fn complement(&self) -> Complement<'_> ⓘ
Returns an iterator that complements the sequence.
Examples
Complement a sequence
use noodles_fasta::record::Sequence;
let sequence = Sequence::from(b"ACGT".to_vec());
let actual: Sequence = sequence.complement().collect::<Result<_, _>>()?;
let expected = Sequence::from(b"TGCA".to_vec());
assert_eq!(actual, expected);
Reverse complement a sequence
use noodles_fasta::record::Sequence;
let sequence = Sequence::from(b"ACGT".to_vec());
let actual: Sequence = sequence.complement().rev().collect::<Result<_, _>>()?;
let expected = sequence.clone();
assert_eq!(actual, expected);