Skip to main content

SimplificationOptions

Struct SimplificationOptions 

Source
pub struct SimplificationOptions(/* private fields */);
Expand description

Control the behavior of table simplification.

Inclusion of values sets an option to true. The default behavior is to perform the algorithm as described in Kelleher et al. (2018), 10.1371/journal.pcbi.1006581.

The documentation for each field is taken from the tskit primary docs.

§Examples

§Building up flags

§Default flags

let flags = SimplificationOptions::default();

§Using a “builder” API

let flags =
SimplificationOptions::default().keep_unary().filter_populations().filter_sites();
assert!(flags.contains(SimplificationOptions::KEEP_UNARY));
assert!(flags.contains(SimplificationOptions::FILTER_POPULATIONS));
assert!(flags.contains(SimplificationOptions::FILTER_SITES));

Implementations§

Source§

impl SimplificationOptions

Source

pub const FILTER_SITES: Self

Source

pub const FILTER_POPULATIONS: Self

If True, remove any populations that are not referenced by nodes after simplification; new population IDs are allocated sequentially from zero. If False, the population table will not be altered in any way.

Source

pub const FILTER_INDIVIDUALS: Self

If True, remove any individuals that are not referenced by nodes after simplification; new individual IDs are allocated sequentially from zero. If False, the individual table will not be altered in any way.

Source

pub const REDUCE_TO_SITE_TOPOLOGY: Self

Whether to reduce the topology down to the trees that are present at sites.

Source

pub const KEEP_UNARY: Self

If True, preserve unary nodes (i.e. nodes with exactly one child) that exist on the path from samples to root.

Source

pub const KEEP_INPUT_ROOTS: Self

Whether to retain history ancestral to the MRCA of the samples.

Source

pub const KEEP_UNARY_IN_INDIVIDUALS: Self

If True, preserve unary nodes that exist on the path from samples to root, but only if they are associated with an individual in the individuals table. Cannot be specified at the same time as KEEP_UNARY.

Source

pub fn keep_input_roots(self) -> Self

Update to set KEEP_INPUT_ROOTS.

§Examples
let f = SimplificationOptions::default().keep_input_roots();
assert!(f.contains(SimplificationOptions::KEEP_INPUT_ROOTS));
Source

pub fn keep_unary(self) -> Self

Update to set KEEP_UNARY.

§Examples
let f = SimplificationOptions::default().keep_unary();
assert!(f.contains(SimplificationOptions::KEEP_UNARY));
Source

pub fn keep_unary_in_individuals(self) -> Self

Update to set KEEP_UNARY_IN_INDIVIDUALS.

§Examples
let f = SimplificationOptions::default().keep_unary_in_individuals();
assert!(f.contains(SimplificationOptions::KEEP_UNARY_IN_INDIVIDUALS));
Source

pub fn filter_populations(self) -> Self

Update to set FILTER_POPULATIONS.

§Examples
let f = SimplificationOptions::default().filter_populations();
assert!(f.contains(SimplificationOptions::FILTER_POPULATIONS));
Source

pub fn filter_sites(self) -> Self

Update to set FILTER_SITES.

§Examples
let f = SimplificationOptions::default().filter_sites();
assert!(f.contains(SimplificationOptions::FILTER_SITES));
Source

pub fn reduce_to_site_topology(self) -> Self

Update to set REDUCE_TO_SITE_TOPOLOGY.

§Examples
let f = SimplificationOptions::default().reduce_to_site_topology();
assert!(f.contains(SimplificationOptions::REDUCE_TO_SITE_TOPOLOGY));
Source

pub fn filter_individuals(self) -> Self

Update to set FILTER_INDIVIDUALS.

§Examples
let f = SimplificationOptions::default().filter_individuals();
assert!(f.contains(SimplificationOptions::FILTER_INDIVIDUALS));
Source

pub fn bits(&self) -> RawFlags

Source

pub fn all() -> Self

Source

pub fn contains<I>(&self, bit: I) -> bool
where I: Into<Self> + Copy,

Trait Implementations§

Source§

impl BitAnd for SimplificationOptions

Source§

type Output = SimplificationOptions

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: Self) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAndAssign for SimplificationOptions

Source§

fn bitand_assign(&mut self, rhs: Self)

Performs the &= operation. Read more
Source§

impl BitOr for SimplificationOptions

Source§

type Output = SimplificationOptions

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: Self) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOrAssign for SimplificationOptions

Source§

fn bitor_assign(&mut self, rhs: Self)

Performs the |= operation. Read more
Source§

impl BitXor for SimplificationOptions

Source§

type Output = SimplificationOptions

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: Self) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXorAssign for SimplificationOptions

Source§

fn bitxor_assign(&mut self, rhs: Self)

Performs the ^= operation. Read more
Source§

impl Clone for SimplificationOptions

Source§

fn clone(&self) -> SimplificationOptions

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SimplificationOptions

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SimplificationOptions

Source§

fn default() -> SimplificationOptions

Returns the “default value” for a type. Read more
Source§

impl From<u32> for SimplificationOptions

Source§

fn from(value: RawFlags) -> Self

Converts to this type from the input type.
Source§

impl Hash for SimplificationOptions

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for SimplificationOptions

Source§

fn cmp(&self, other: &SimplificationOptions) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for SimplificationOptions

Source§

fn eq(&self, other: &SimplificationOptions) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for SimplificationOptions

Source§

fn partial_cmp(&self, other: &SimplificationOptions) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Copy for SimplificationOptions

Source§

impl Eq for SimplificationOptions

Source§

impl StructuralPartialEq for SimplificationOptions

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.