use super::*;
#[cfg(feature = "serialization")]
use serde::{Deserialize, Serialize};
use std::collections::{HashMap, HashSet};
#[cfg_attr(feature = "serde", derive(Serialize))]
pub struct Dataset {
pub proteins: Vec<Protein>,
pub channels: u8,
}
impl Dataset {
pub fn accessions(&self) -> HashSet<&'_ str> {
self.proteins
.iter()
.map(|pr| pr.accession.as_ref())
.collect()
}
pub fn map(&self) -> HashMap<&'_ str, &Protein> {
self.proteins
.iter()
.map(|pr| (pr.accession.as_ref(), pr))
.collect()
}
pub fn filter(self, filter: &Filter) -> Self {
filter.filter_dataset(self)
}
}