pub struct FilterConfig {
pub duplex_thresholds: Option<FilterThresholds>,
pub ab_thresholds: Option<FilterThresholds>,
pub ba_thresholds: Option<FilterThresholds>,
pub single_strand_thresholds: Option<FilterThresholds>,
pub min_base_quality: Option<u8>,
pub min_mean_base_quality: Option<f64>,
pub max_no_call_fraction: f64,
}Expand description
Filtering configuration for consensus reads
Fields§
§duplex_thresholds: Option<FilterThresholds>Thresholds for duplex consensus reads (if applicable)
ab_thresholds: Option<FilterThresholds>Thresholds for AB/top-strand consensus
ba_thresholds: Option<FilterThresholds>Thresholds for BA/bottom-strand consensus
single_strand_thresholds: Option<FilterThresholds>Thresholds for single-strand consensus
min_base_quality: Option<u8>Minimum base quality after masking (optional - None means no quality masking)
min_mean_base_quality: Option<f64>Minimum mean base quality after masking (optional)
max_no_call_fraction: f64Maximum fraction of no-calls (N bases) allowed (0.0-1.0)
Implementations§
Source§impl FilterConfig
impl FilterConfig
Sourcepub fn for_single_strand(
thresholds: FilterThresholds,
min_base_quality: Option<u8>,
min_mean_base_quality: Option<f64>,
max_no_call_fraction: f64,
) -> FilterConfig
pub fn for_single_strand( thresholds: FilterThresholds, min_base_quality: Option<u8>, min_mean_base_quality: Option<f64>, max_no_call_fraction: f64, ) -> FilterConfig
Creates a filter configuration for single-strand (simplex) consensus reads.
This is the simplest configuration - one set of thresholds applied to all reads.
§Arguments
thresholds- Filter thresholds for single-strand consensusmin_base_quality- Minimum base quality after masking (None means no quality masking)min_mean_base_quality- Optional minimum mean base qualitymax_no_call_fraction- Maximum fraction of N bases allowed
Sourcepub fn for_duplex(
duplex: FilterThresholds,
strand: FilterThresholds,
min_base_quality: Option<u8>,
min_mean_base_quality: Option<f64>,
max_no_call_fraction: f64,
) -> FilterConfig
pub fn for_duplex( duplex: FilterThresholds, strand: FilterThresholds, min_base_quality: Option<u8>, min_mean_base_quality: Option<f64>, max_no_call_fraction: f64, ) -> FilterConfig
Creates a filter configuration for symmetric duplex consensus reads.
Uses the same thresholds for both AB and BA strands.
§Arguments
duplex- Filter thresholds for final duplex consensusstrand- Filter thresholds for both AB and BA strands (symmetric)min_base_quality- Minimum base quality after masking (None means no quality masking)min_mean_base_quality- Optional minimum mean base qualitymax_no_call_fraction- Maximum fraction of N bases allowed
§Panics
Panics if thresholds violate ordering constraints (strand.min_reads <= duplex.min_reads, etc.)
Sourcepub fn for_duplex_asymmetric(
duplex: FilterThresholds,
ab: FilterThresholds,
ba: FilterThresholds,
min_base_quality: Option<u8>,
min_mean_base_quality: Option<f64>,
max_no_call_fraction: f64,
) -> FilterConfig
pub fn for_duplex_asymmetric( duplex: FilterThresholds, ab: FilterThresholds, ba: FilterThresholds, min_base_quality: Option<u8>, min_mean_base_quality: Option<f64>, max_no_call_fraction: f64, ) -> FilterConfig
Creates a filter configuration for asymmetric duplex consensus reads.
Uses different thresholds for AB (higher depth strand) and BA (lower depth strand).
§Arguments
duplex- Filter thresholds for final duplex consensusab- Filter thresholds for AB strand (typically higher depth)ba- Filter thresholds for BA strand (typically lower depth)min_base_quality- Minimum base quality after masking (None means no quality masking)min_mean_base_quality- Optional minimum mean base qualitymax_no_call_fraction- Maximum fraction of N bases allowed
§Panics
Panics if thresholds violate ordering constraints:
min_reads: BA <= AB <= duplex- error rates: AB <= BA (AB more stringent)
Sourcepub fn duplex_thresholds(
&self,
) -> Option<(&FilterThresholds, &FilterThresholds, &FilterThresholds)>
pub fn duplex_thresholds( &self, ) -> Option<(&FilterThresholds, &FilterThresholds, &FilterThresholds)>
Returns duplex (CC), AB, and BA thresholds, or None if any are missing.
Sourcepub fn effective_single_strand_thresholds(&self) -> Option<&FilterThresholds>
pub fn effective_single_strand_thresholds(&self) -> Option<&FilterThresholds>
Returns the single-strand thresholds, falling back to duplex thresholds.
Sourcepub fn new(
min_reads: &[usize],
max_read_error_rate: &[f64],
max_base_error_rate: &[f64],
min_base_quality: Option<u8>,
min_mean_base_quality: Option<f64>,
max_no_call_fraction: f64,
) -> FilterConfig
pub fn new( min_reads: &[usize], max_read_error_rate: &[f64], max_base_error_rate: &[f64], min_base_quality: Option<u8>, min_mean_base_quality: Option<f64>, max_no_call_fraction: f64, ) -> FilterConfig
Creates a new filter configuration from parameter vectors
§Arguments
min_reads- 1-3 values for [duplex, AB, BA] or [single-strand]max_read_error_rate- 1-3 values for [duplex, AB, BA] or [single-strand]max_base_error_rate- 1-3 values for [duplex, AB, BA] or [single-strand]min_base_quality- Minimum base quality after masking (None means no quality masking)min_mean_base_quality- Optional minimum mean base qualitymax_no_call_fraction- Maximum fraction of N bases allowed
§Panics
Panics if thresholds violate ordering constraints:
min_reads: BA <= AB <= duplex- error rates: AB <= BA (AB more stringent)
Trait Implementations§
Source§impl Clone for FilterConfig
impl Clone for FilterConfig
Source§fn clone(&self) -> FilterConfig
fn clone(&self) -> FilterConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for FilterConfig
impl RefUnwindSafe for FilterConfig
impl Send for FilterConfig
impl Sync for FilterConfig
impl Unpin for FilterConfig
impl UnsafeUnpin for FilterConfig
impl UnwindSafe for FilterConfig
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more