pub struct Record { /* private fields */ }
Expand description
A BED record as defined by BEDtools (http://bedtools.readthedocs.org/en/latest/content/general-usage.html)
Implementations§
Trait Implementations§
source§impl<'de> Deserialize<'de> for Record
impl<'de> Deserialize<'de> for Record
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl<'a> From<&'a Record> for Contig<String, Strand>
impl<'a> From<&'a Record> for Contig<String, Strand>
source§fn from(rec: &Record) -> Self
fn from(rec: &Record) -> Self
Returns a Contig
annotation for the BED record.
use bio::io::bed;
use bio_types::annot::contig::Contig;
use bio_types::strand::Strand;
let example = b"chr1\t5\t5000\tname1\t0.5";
let mut reader = bed::Reader::new(&example[..]);
let rec = reader
.records()
.next()
.expect("Found no bed record.")
.expect("Got a csv::Error");
let loc = Contig::from(&rec);
assert_eq!(loc.to_string(), "chr1:5-5000");
source§impl<R, S> From<Contig<R, S>> for Recordwhere
R: Deref<Target = str>,
S: Into<Strand> + Copy,
impl<R, S> From<Contig<R, S>> for Recordwhere R: Deref<Target = str>, S: Into<Strand> + Copy,
Generate a BED format Record
for the location.
As created, it will have an empty name.
source§impl<R, S> From<Pos<R, S>> for Recordwhere
R: Deref<Target = str>,
S: Into<Strand> + Copy,
impl<R, S> From<Pos<R, S>> for Recordwhere R: Deref<Target = str>, S: Into<Strand> + Copy,
Generate a BED format Record
for an annotation position.
This record will have length 1, and when created it will have an empty name.
source§impl<R, S> From<Spliced<R, S>> for Recordwhere
R: Deref<Target = str>,
S: Into<Strand> + Copy,
impl<R, S> From<Spliced<R, S>> for Recordwhere R: Deref<Target = str>, S: Into<Strand> + Copy,
Generate a BED format Record
for the position.
Splicing information will be represented with the 12-column BED format, using columns 10 through 12 (blockCount, blockSizes, and blockStarts) for exons.
As created, it will have an empty name and default to using the overall start & end (columns 1 and 2) for the start and end of the “thick” region (columns 7 and 8).
use bio::io::bed;
use bio_types::annot::spliced::{Spliced, SplicingError};
use bio_types::annot::AnnotError;
use bio_types::strand::ReqStrand;
let tad3 = Spliced::with_lengths_starts(
"chrXII".to_owned(),
765265,
&vec![808, 52, 109],
&vec![0, 864, 984],
ReqStrand::Reverse,
)
.expect("Encountered a bio_types::annot::spliced::SplicingError.");
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(-)");
let mut buf = Vec::new();
{
let mut writer = bed::Writer::new(&mut buf);
let mut tad3_bed = bed::Record::from(tad3);
tad3_bed.set_name("YLR316C");
writer.write(&tad3_bed).unwrap();
}
assert_eq!(
"chrXII\t765265\t766358\tYLR316C\t0\t-\t765265\t766358\t0\t3\t808,52,109,\t0,864,984,\n",
String::from_utf8(buf)
.unwrap_or_else(|_| "???".to_owned())
.as_str()
);
source§impl Ord for Record
impl Ord for Record
source§impl PartialEq<Record> for Record
impl PartialEq<Record> for Record
source§impl PartialOrd<Record> for Record
impl PartialOrd<Record> for Record
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moreimpl Eq for Record
impl StructuralEq for Record
impl StructuralPartialEq for Record
Auto Trait Implementations§
impl RefUnwindSafe for Record
impl Send for Record
impl Sync for Record
impl Unpin for Record
impl UnwindSafe for Record
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<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.