pub struct Spliced<R, S> { /* private fields */ }Expand description
Spliced sequence annotation on a particular, named sequence (e.g. a chromosome).
Parameterized over the type of the reference sequence identifier and over the strandedness of the position.
The display format for a Spliced is
chr:start_0-end_0;start_1-end_1;…;start_N-end_N(+/-/.). The
boundaries for each individual exon are given as a half-open
0-based interval, like the Rust Range and BED format.
let tad3 = Spliced::with_lengths_starts("chrXII".to_owned(), 765265,
&vec![808,52,109], &vec![0,864,984],
ReqStrand::Reverse)?;
assert_eq!(tad3.to_string(), "chrXII:765265-766073;766129-766181;766249-766358(-)");
let tad3_exons = tad3.exon_contigs();
assert_eq!(tad3_exons.len(), 3);
assert_eq!(tad3_exons[0].to_string(), "chrXII:766249-766358(-)");
assert_eq!(tad3_exons[1].to_string(), "chrXII:766129-766181(-)");
assert_eq!(tad3_exons[2].to_string(), "chrXII:765265-766073(-)");Implementations
sourceimpl<R, S> Spliced<R, S>
impl<R, S> Spliced<R, S>
sourcepub fn new(refid: R, start: isize, exon_0_length: usize, strand: S) -> Self
pub fn new(refid: R, start: isize, exon_0_length: usize, strand: S) -> Self
Construct a new, single-exon “spliced” location
use std::rc::Rc;
use bio_types::annot::spliced::Spliced;
use bio_types::strand::ReqStrand;
let chr = Rc::new("chrX".to_owned());
let tma22 = Spliced::new(chr, 461829, 462426 - 461829, ReqStrand::Forward);sourcepub fn with_lengths_starts(
refid: R,
start: isize,
exon_lengths: &[usize],
exon_starts: &[usize],
strand: S
) -> Result<Self, SplicingError>
pub fn with_lengths_starts(
refid: R,
start: isize,
exon_lengths: &[usize],
exon_starts: &[usize],
strand: S
) -> Result<Self, SplicingError>
Construct a multi-exon “spliced” location using BED-style exon starts and lengths.
sourcepub fn exon_count(&self) -> usize
pub fn exon_count(&self) -> usize
Number of exons
sourcepub fn exon_starts(&self) -> Vec<usize>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
pub fn exon_starts(&self) -> Vec<usize>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Vector of exon starting positions, relative to the start of the location overall.
These positions run from left to right on the reference sequence, regardless of the location’s strand.
sourcepub fn exon_lengths(&self) -> Vec<usize>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
pub fn exon_lengths(&self) -> Vec<usize>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Vector of exon lengths.
Exon lengths are given from left to right on the reference sequence, regardless of the location’s strand.
sourcepub fn exon_total_length(&self) -> usize
pub fn exon_total_length(&self) -> usize
Total length of exons only.
The length method from the Loc trait returns the total
length spanned by the annotation, including both introns and
exons.
sourcepub fn into_stranded(self, strand: ReqStrand) -> Spliced<R, ReqStrand>
pub fn into_stranded(self, strand: ReqStrand) -> Spliced<R, ReqStrand>
Convert into a stranded sequence location on the specified strand
pub fn contig_cover(self) -> Contig<R, S>
Trait Implementations
sourceimpl<R, S> Loc for Spliced<R, S>
impl<R, S> Loc for Spliced<R, S>
type RefID = R
type Strand = S
sourcefn start(&self) -> isize
fn start(&self) -> isize
Starting (lowest, left-most, 5’-most) position on the reference sequence (0-based). Read more
sourcefn pos_into<T>(&self, pos: &Pos<Self::RefID, T>) -> Option<Pos<(), T>> where
Self::RefID: Eq,
Self::Strand: Into<ReqStrand> + Copy,
T: Neg<Output = T> + Copy,
fn pos_into<T>(&self, pos: &Pos<Self::RefID, T>) -> Option<Pos<(), T>> where
Self::RefID: Eq,
Self::Strand: Into<ReqStrand> + Copy,
T: Neg<Output = T> + Copy,
Map a sequence position on a reference sequence into a relative position within an annotated location on the reference sequence. Read more
sourcefn pos_outof<Q, T>(&self, pos: &Pos<Q, T>) -> Option<Pos<Self::RefID, T>> where
Self::RefID: Clone,
Self::Strand: Into<ReqStrand> + Copy,
T: Neg<Output = T> + Copy,
fn pos_outof<Q, T>(&self, pos: &Pos<Q, T>) -> Option<Pos<Self::RefID, T>> where
Self::RefID: Clone,
Self::Strand: Into<ReqStrand> + Copy,
T: Neg<Output = T> + Copy,
Map a relative position within an annotated location out of that location onto the enclosing reference sequence. Read more
fn contig_intersection<T>(&self, contig: &Contig<Self::RefID, T>) -> Option<Self> where
Self::RefID: PartialEq + Clone,
Self::Strand: Copy,
sourcefn contig(&self) -> Contig<Self::RefID, Self::Strand> where
Self::RefID: Clone,
Self::Strand: Copy,
fn contig(&self) -> Contig<Self::RefID, Self::Strand> where
Self::RefID: Clone,
Self::Strand: Copy,
Contiguous sequence location that fully covers the location.
impl<R: Eq, S: Eq> Eq for Spliced<R, S>
impl<R, S> StructuralEq for Spliced<R, S>
impl<R, S> StructuralPartialEq for Spliced<R, S>
Auto Trait Implementations
impl<R, S> RefUnwindSafe for Spliced<R, S> where
R: RefUnwindSafe,
S: RefUnwindSafe,
impl<R, S> Send for Spliced<R, S> where
R: Send,
S: Send,
impl<R, S> Sync for Spliced<R, S> where
R: Sync,
S: Sync,
impl<R, S> Unpin for Spliced<R, S> where
R: Unpin,
S: Unpin,
impl<R, S> UnwindSafe for Spliced<R, S> where
R: UnwindSafe,
S: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more