From b538236c285177db3e8ceeedadf1beff893fd908 Mon Sep 17 00:00:00 2001 From: Francesco Terenzi Date: Fri, 1 Mar 2024 13:45:42 +0000 Subject: [PATCH] v3.0.6 --- CHANGELOG.md | 5 ++ Cargo.lock | 2 +- Cargo.toml | 2 +- docs/hsc/all.html | 2 +- docs/hsc/constant.MAX_SUBCLONES.html | 2 +- docs/hsc/fn.write2file.html | 2 +- docs/hsc/genotype/index.html | 2 +- .../hsc/genotype/struct.MutationalBurden.html | 10 ++-- .../struct.NeutralMutationPoisson.html | 16 ++++-- docs/hsc/genotype/struct.Sfs.html | 6 +- docs/hsc/genotype/type.Variant.html | 2 +- docs/hsc/index.html | 2 +- docs/hsc/process/enum.SavingCells.html | 2 +- docs/hsc/process/enum.Stats2Save.html | 2 +- docs/hsc/process/index.html | 2 +- .../struct.CellDivisionProbabilities.html | 2 +- docs/hsc/process/struct.Exponential.html | 12 ++-- docs/hsc/process/struct.Moran.html | 16 +++--- docs/hsc/process/struct.ProcessOptions.html | 2 +- docs/hsc/process/struct.SavingOptions.html | 2 +- docs/hsc/process/struct.Snapshot.html | 2 +- .../enum.MutateUponDivision.html | 6 +- docs/hsc/proliferation/index.html | 2 +- ...onAndBackgroundMutationsProliferation.html | 2 +- ...struct.DivisionMutationsProliferation.html | 2 +- .../proliferation/trait.Proliferation.html | 2 +- .../fn.assign_background_mutations.html | 3 +- docs/hsc/stemcell/fn.mutate.html | 2 +- docs/hsc/stemcell/index.html | 2 +- docs/hsc/stemcell/struct.StemCell.html | 2 +- docs/hsc/subclone/enum.Fitness.html | 2 +- docs/hsc/subclone/fn.assign.html | 2 +- .../fn.from_mean_std_to_shape_scale.html | 2 +- docs/hsc/subclone/fn.proliferating_cell.html | 2 +- .../subclone/fn.save_variant_fraction.html | 2 +- docs/hsc/subclone/index.html | 2 +- docs/hsc/subclone/struct.Distributions.html | 2 +- docs/hsc/subclone/struct.SubClone.html | 2 +- docs/hsc/subclone/struct.SubClones.html | 2 +- docs/hsc/subclone/struct.Variants.html | 2 +- docs/hsc/subclone/type.CloneId.html | 2 +- docs/search-index.js | 2 +- docs/src/hsc/genotype.rs.html | 56 ++++++++++++++++--- docs/src/hsc/process.rs.html | 34 +++++++++-- docs/src/hsc/stemcell.rs.html | 36 ++++++++++++ docs/src/hsc/subclone.rs.html | 32 ++++++++++- docs/trait.impl/core/clone/trait.Clone.js | 2 +- docs/trait.impl/core/cmp/trait.PartialEq.js | 2 +- docs/trait.impl/core/convert/trait.From.js | 2 +- docs/trait.impl/core/convert/trait.TryInto.js | 2 +- docs/trait.impl/core/default/trait.Default.js | 2 +- docs/trait.impl/core/fmt/trait.Debug.js | 2 +- docs/trait.impl/core/marker/trait.Copy.js | 2 +- docs/trait.impl/sosa/trait.AdvanceStep.js | 2 +- src/genotype.rs | 35 +++++++++--- src/main.rs | 2 +- src/process.rs | 18 +++++- src/stemcell.rs | 18 ++++++ src/subclone.rs | 17 +++++- 59 files changed, 308 insertions(+), 98 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f64d430e9..71351b2b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog The semantic versioning is kind of random. +## 3.0.6 +- tune verbosity +### BugFix +- Fix exponential phase background lambda + ## 3.0.5 - specfify the neutral background mutation rate for the exponential phase diff --git a/Cargo.lock b/Cargo.lock index a1a8232be..db400f1ec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -323,7 +323,7 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hsc" -version = "3.0.5" +version = "3.0.6" dependencies = [ "anyhow", "chrono", diff --git a/Cargo.toml b/Cargo.toml index 1624f7f7c..d8bf0dd8b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hsc" -version = "3.0.5" +version = "3.0.6" edition = "2021" [dependencies] diff --git a/docs/hsc/all.html b/docs/hsc/all.html index dd11c04a8..ff80bfd6c 100644 --- a/docs/hsc/all.html +++ b/docs/hsc/all.html @@ -1 +1 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate
\ No newline at end of file diff --git a/docs/hsc/constant.MAX_SUBCLONES.html b/docs/hsc/constant.MAX_SUBCLONES.html index 56d58aff4..08824266b 100644 --- a/docs/hsc/constant.MAX_SUBCLONES.html +++ b/docs/hsc/constant.MAX_SUBCLONES.html @@ -1,4 +1,4 @@ -MAX_SUBCLONES in hsc - Rust

Constant hsc::MAX_SUBCLONES

source ·
pub const MAX_SUBCLONES: usize = 1200;
Expand description

Maximal number of fit clones that can arise during the simulation.

+MAX_SUBCLONES in hsc - Rust

Constant hsc::MAX_SUBCLONES

source ·
pub const MAX_SUBCLONES: usize = 1200;
Expand description

Maximal number of fit clones that can arise during the simulation.

If the parameters of the simulation provided by the user (e.g. fit mutation rate) are too extreme, the program will exit with error. To avoid this, increase here the number of clones.

diff --git a/docs/hsc/fn.write2file.html b/docs/hsc/fn.write2file.html index 3d79ee717..cba88d0f1 100644 --- a/docs/hsc/fn.write2file.html +++ b/docs/hsc/fn.write2file.html @@ -1,4 +1,4 @@ -write2file in hsc - Rust

Function hsc::write2file

source ·
pub fn write2file<T: Display>(
+write2file in hsc - Rust

Function hsc::write2file

source ·
pub fn write2file<T: Display>(
     data: &[T],
     path: &Path,
     header: Option<&str>,
diff --git a/docs/hsc/genotype/index.html b/docs/hsc/genotype/index.html
index 7ce486420..a2ff2b267 100644
--- a/docs/hsc/genotype/index.html
+++ b/docs/hsc/genotype/index.html
@@ -1,4 +1,4 @@
-hsc::genotype - Rust

Module hsc::genotype

source ·
Expand description

The neutral mutations representing the genotype of the stem cells.

+hsc::genotype - Rust

Module hsc::genotype

source ·
Expand description

The neutral mutations representing the genotype of the stem cells.

Structs

source§

fn update_state(&self, state: &mut CurrentState<MAX_SUBCLONES>)

Once the process has been updated by AdvanceStep::advance_step, +
source§

fn update_state(&self, state: &mut CurrentState<MAX_SUBCLONES>)

Once the process has been updated by AdvanceStep::advance_step, update back the CurrentState according to the process’ rules.
source§

fn next_reaction( &self, state: &CurrentState<NB_REACTIONS>, diff --git a/docs/hsc/process/struct.Moran.html b/docs/hsc/process/struct.Moran.html index 6505fa993..ccc6defcd 100644 --- a/docs/hsc/process/struct.Moran.html +++ b/docs/hsc/process/struct.Moran.html @@ -1,4 +1,4 @@ -Moran in hsc::process - Rust

Fields§

§subclones: SubClones

A collection of clones having a proliferative advantage.

§counter_divisions: usize

The counter for the number of proliferative events.

-
§time: f32§path2dir: PathBuf§verbosity: u8§distributions: Distributions§snapshots: VecDeque<Snapshot>§filename: PathBuf§save_sfs_only: bool§save_population: bool§proliferation: MutateUponDivision

Implementations§

source§

impl Moran

source

pub fn new( +

§time: f32§path2dir: PathBuf§verbosity: u8§distributions: Distributions§snapshots: VecDeque<Snapshot>§filename: PathBuf§save_sfs_only: bool§save_population: bool§proliferation: MutateUponDivision

Implementations§

source§

impl Moran

source

pub fn new( process_options: ProcessOptions, initial_subclones: SubClones, time: f32, @@ -25,19 +25,19 @@ verbosity: u8 ) -> Moran

A Moran process with wild-type subclone with neutral fitness, to which all cells will be assigned.

-
source

pub fn make_path( +

source

pub fn make_path( &self, tosave: Stats2Save, cells: usize, time: f32 -) -> Result<PathBuf>

source

pub fn save( +) -> Result<PathBuf>

source

pub fn save( &mut self, time: f32, saving_cells: &SavingCells, save_sfs_only: bool, rng: &mut impl Rng -) -> Result<()>

Trait Implementations§

source§

impl AdvanceStep<MAX_SUBCLONES> for Moran

§

type Reaction = usize

The id of a subclone CloneId.

-
source§

fn advance_step( +) -> Result<()>

Trait Implementations§

source§

impl AdvanceStep<MAX_SUBCLONES> for Moran

§

type Reaction = usize

The id of a subclone CloneId.

+
source§

fn advance_step( &mut self, reaction: NextReaction<Self::Reaction>, rng: &mut impl Rng @@ -50,7 +50,7 @@ waiting time and the non-empty clone that will proliferate. From the proliferating clone selected, we sample a random cell to which we assign neutral and fit mutations.

-

source§

fn update_state(&self, state: &mut CurrentState<MAX_SUBCLONES>)

Once the process has been updated by AdvanceStep::advance_step, +
source§

fn update_state(&self, state: &mut CurrentState<MAX_SUBCLONES>)

Once the process has been updated by AdvanceStep::advance_step, update back the CurrentState according to the process’ rules.
source§

fn next_reaction( &self, state: &CurrentState<NB_REACTIONS>, @@ -60,7 +60,7 @@ iter_and_time: IterTime, rng: &mut impl Rng ) -> (SimState, Option<NextReaction<Self::Reaction>>)

Find the next reaction in the system according to a -Monte-Carlo generating method. Read more
source§

impl Clone for Moran

source§

fn clone(&self) -> Moran

Returns a copy 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 Moran

source§

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

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

impl Default for Moran

source§

fn default() -> Self

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

Auto Trait Implementations§

§

impl RefUnwindSafe for Moran

§

impl Send for Moran

§

impl Sync for Moran

§

impl Unpin for Moran

§

impl UnwindSafe for Moran

Blanket Implementations§

source§

impl Clone for Moran

source§

fn clone(&self) -> Moran

Returns a copy 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 Moran

source§

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

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

impl Default for Moran

source§

fn default() -> Self

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

Auto Trait Implementations§

§

impl RefUnwindSafe for Moran

§

impl Send for Moran

§

impl Sync for Moran

§

impl Unpin for Moran

§

impl UnwindSafe for Moran

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/hsc/process/struct.ProcessOptions.html b/docs/hsc/process/struct.ProcessOptions.html index 81ad97337..1e0efdf5c 100644 --- a/docs/hsc/process/struct.ProcessOptions.html +++ b/docs/hsc/process/struct.ProcessOptions.html @@ -1,4 +1,4 @@ -ProcessOptions in hsc::process - Rust

Struct hsc::process::ProcessOptions

source ·
pub struct ProcessOptions {
+ProcessOptions in hsc::process - Rust

Struct hsc::process::ProcessOptions

source ·
pub struct ProcessOptions {
     pub path: PathBuf,
     pub snapshots: VecDeque<Snapshot>,
 }

Fields§

§path: PathBuf§snapshots: VecDeque<Snapshot>

Trait Implementations§

source§

impl Clone for ProcessOptions

source§

fn clone(&self) -> ProcessOptions

Returns a copy 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 ProcessOptions

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere diff --git a/docs/hsc/process/struct.SavingOptions.html b/docs/hsc/process/struct.SavingOptions.html index 37dc21ecc..c706810ed 100644 --- a/docs/hsc/process/struct.SavingOptions.html +++ b/docs/hsc/process/struct.SavingOptions.html @@ -1,4 +1,4 @@ -SavingOptions in hsc::process - Rust

Struct hsc::process::SavingOptions

source ·
pub struct SavingOptions {
+SavingOptions in hsc::process - Rust

Struct hsc::process::SavingOptions

source ·
pub struct SavingOptions {
     pub filename: PathBuf,
     pub save_sfs_only: bool,
     pub save_population: bool,
diff --git a/docs/hsc/process/struct.Snapshot.html b/docs/hsc/process/struct.Snapshot.html
index ae79592c9..6e6b835e9 100644
--- a/docs/hsc/process/struct.Snapshot.html
+++ b/docs/hsc/process/struct.Snapshot.html
@@ -1,4 +1,4 @@
-Snapshot in hsc::process - Rust

Struct hsc::process::Snapshot

source ·
pub struct Snapshot {
+Snapshot in hsc::process - Rust

Struct hsc::process::Snapshot

source ·
pub struct Snapshot {
     pub cells2sample: usize,
     pub time: f32,
 }

Fields§

§cells2sample: usize

The number of cells to subsample

diff --git a/docs/hsc/proliferation/enum.MutateUponDivision.html b/docs/hsc/proliferation/enum.MutateUponDivision.html index 847161598..f5ea2b79b 100644 --- a/docs/hsc/proliferation/enum.MutateUponDivision.html +++ b/docs/hsc/proliferation/enum.MutateUponDivision.html @@ -1,4 +1,4 @@ -MutateUponDivision in hsc::proliferation - Rust

source§

impl TryInto<DivisionAndBackgroundMutationsProliferation> for MutateUponDivision

§

type Error = &'static str

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

fn try_into( +)

source§

impl TryInto<DivisionAndBackgroundMutationsProliferation> for MutateUponDivision

§

type Error = &'static str

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

fn try_into( self -) -> Result<DivisionAndBackgroundMutationsProliferation, <Self as TryInto<DivisionAndBackgroundMutationsProliferation>>::Error>

Performs the conversion.
source§

impl TryInto<DivisionMutationsProliferation> for MutateUponDivision

§

type Error = &'static str

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

fn try_into( +) -> Result<DivisionAndBackgroundMutationsProliferation, <Self as TryInto<DivisionAndBackgroundMutationsProliferation>>::Error>

Performs the conversion.
source§

impl TryInto<DivisionMutationsProliferation> for MutateUponDivision

§

type Error = &'static str

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

fn try_into( self ) -> Result<DivisionMutationsProliferation, <Self as TryInto<DivisionMutationsProliferation>>::Error>

Performs the conversion.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere diff --git a/docs/hsc/proliferation/index.html b/docs/hsc/proliferation/index.html index 3526106c6..78291b7e7 100644 --- a/docs/hsc/proliferation/index.html +++ b/docs/hsc/proliferation/index.html @@ -1,4 +1,4 @@ -hsc::proliferation - Rust

Module hsc::proliferation

source ·
Expand description

The proliferation of cells with the simulation of neutral and fit mutations.

+hsc::proliferation - Rust

Module hsc::proliferation

source ·
Expand description

The proliferation of cells with the simulation of neutral and fit mutations.

Structs

Enums

  • Duplicate cells and deal with subclones. diff --git a/docs/hsc/proliferation/struct.DivisionAndBackgroundMutationsProliferation.html b/docs/hsc/proliferation/struct.DivisionAndBackgroundMutationsProliferation.html index 7d404aba2..25cc472bb 100644 --- a/docs/hsc/proliferation/struct.DivisionAndBackgroundMutationsProliferation.html +++ b/docs/hsc/proliferation/struct.DivisionAndBackgroundMutationsProliferation.html @@ -1,4 +1,4 @@ -DivisionAndBackgroundMutationsProliferation in hsc::proliferation - Rust
    pub struct DivisionAndBackgroundMutationsProliferation;
    Expand description

    Simulate fit mutations, neutral background mutations and neutral mutations +DivisionAndBackgroundMutationsProliferation in hsc::proliferation - Rust

    pub struct DivisionAndBackgroundMutationsProliferation;
    Expand description

    Simulate fit mutations, neutral background mutations and neutral mutations upon division.

    Trait Implementations§

    source§

    impl Clone for DivisionAndBackgroundMutationsProliferation

    source§

    fn clone(&self) -> DivisionAndBackgroundMutationsProliferation

    Returns a copy 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 DivisionAndBackgroundMutationsProliferation

    source§

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

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

    impl From<DivisionAndBackgroundMutationsProliferation> for MutateUponDivision

    source§

    fn from(v: DivisionAndBackgroundMutationsProliferation) -> MutateUponDivision

    Converts to this type from the input type.
    source§

    impl Proliferation for DivisionAndBackgroundMutationsProliferation

    source§

    fn duplicate_cell_assign_mutations( &self, diff --git a/docs/hsc/proliferation/struct.DivisionMutationsProliferation.html b/docs/hsc/proliferation/struct.DivisionMutationsProliferation.html index 47193e9c0..10837a3c6 100644 --- a/docs/hsc/proliferation/struct.DivisionMutationsProliferation.html +++ b/docs/hsc/proliferation/struct.DivisionMutationsProliferation.html @@ -1,4 +1,4 @@ -DivisionMutationsProliferation in hsc::proliferation - Rust
    pub struct DivisionMutationsProliferation;
    Expand description

    Do not simulate neutral background mutations but only neutral mutations +DivisionMutationsProliferation in hsc::proliferation - Rust

    pub struct DivisionMutationsProliferation;
    Expand description

    Do not simulate neutral background mutations but only neutral mutations and fit mutations upon division

    Trait Implementations§

    source§

    impl Clone for DivisionMutationsProliferation

    source§

    fn clone(&self) -> DivisionMutationsProliferation

    Returns a copy 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 DivisionMutationsProliferation

    source§

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

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

    impl From<DivisionMutationsProliferation> for MutateUponDivision

    source§

    fn from(v: DivisionMutationsProliferation) -> MutateUponDivision

    Converts to this type from the input type.
    source§

    impl Proliferation for DivisionMutationsProliferation

    source§

    fn duplicate_cell_assign_mutations( &self, diff --git a/docs/hsc/proliferation/trait.Proliferation.html b/docs/hsc/proliferation/trait.Proliferation.html index a86e268af..4b82170f1 100644 --- a/docs/hsc/proliferation/trait.Proliferation.html +++ b/docs/hsc/proliferation/trait.Proliferation.html @@ -1,4 +1,4 @@ -Proliferation in hsc::proliferation - Rust
    pub trait Proliferation {
    +Proliferation in hsc::proliferation - Rust
    pub trait Proliferation {
         // Required method
         fn duplicate_cell_assign_mutations(
             &self,
    diff --git a/docs/hsc/stemcell/fn.assign_background_mutations.html b/docs/hsc/stemcell/fn.assign_background_mutations.html
    index a6e665ba9..810a31ac5 100644
    --- a/docs/hsc/stemcell/fn.assign_background_mutations.html
    +++ b/docs/hsc/stemcell/fn.assign_background_mutations.html
    @@ -1,4 +1,4 @@
    -assign_background_mutations in hsc::stemcell - Rust
    pub fn assign_background_mutations(
    +assign_background_mutations in hsc::stemcell - Rust
    pub fn assign_background_mutations(
         stem_cell: &mut StemCell,
         time: f32,
         neutral_poisson: &NeutralMutationPoisson,
    @@ -6,4 +6,5 @@
         verbosity: u8
     )
    Expand description

    Assign background mutations to all cells in the system based on the current simulation time.

    +

    This updates also the time of the last division for the cell

    \ No newline at end of file diff --git a/docs/hsc/stemcell/fn.mutate.html b/docs/hsc/stemcell/fn.mutate.html index 6f6bd48bf..1b708e894 100644 --- a/docs/hsc/stemcell/fn.mutate.html +++ b/docs/hsc/stemcell/fn.mutate.html @@ -1 +1 @@ -mutate in hsc::stemcell - Rust

    Function hsc::stemcell::mutate

    source ·
    pub fn mutate(cell: &mut StemCell, mutations: Vec<Variant>)
    \ No newline at end of file +mutate in hsc::stemcell - Rust

    Function hsc::stemcell::mutate

    source ·
    pub fn mutate(cell: &mut StemCell, mutations: Vec<Variant>)
    \ No newline at end of file diff --git a/docs/hsc/stemcell/index.html b/docs/hsc/stemcell/index.html index 2a975ef72..981209617 100644 --- a/docs/hsc/stemcell/index.html +++ b/docs/hsc/stemcell/index.html @@ -1,4 +1,4 @@ -hsc::stemcell - Rust

    Module hsc::stemcell

    source ·
    Expand description

    The agents whose state defines the system simulated by the process.

    +hsc::stemcell - Rust

    Module hsc::stemcell

    source ·
    Expand description

    The agents whose state defines the system simulated by the process.

    Structs

    • Hematopoietic stem and progenitor cells (HSPCs) are a rare population of precursor cells that possess the capacity for self-renewal and multilineage differentiation.

    Functions

    • Assign background mutations to all cells in the system based on the diff --git a/docs/hsc/stemcell/struct.StemCell.html b/docs/hsc/stemcell/struct.StemCell.html index afc845154..b4fd9e795 100644 --- a/docs/hsc/stemcell/struct.StemCell.html +++ b/docs/hsc/stemcell/struct.StemCell.html @@ -1,4 +1,4 @@ -StemCell in hsc::stemcell - Rust

      Struct hsc::stemcell::StemCell

      source ·
      pub struct StemCell {
      +StemCell in hsc::stemcell - Rust

      Struct hsc::stemcell::StemCell

      source ·
      pub struct StemCell {
           pub variants: Vec<Variant>,
           pub last_division_t: f32,
       }
      Expand description

      Hematopoietic stem and progenitor cells (HSPCs) are a rare population of diff --git a/docs/hsc/subclone/enum.Fitness.html b/docs/hsc/subclone/enum.Fitness.html index b7ed5267c..6b3332d7d 100644 --- a/docs/hsc/subclone/enum.Fitness.html +++ b/docs/hsc/subclone/enum.Fitness.html @@ -1,4 +1,4 @@ -Fitness in hsc::subclone - Rust

      Enum hsc::subclone::Fitness

      source ·
      pub enum Fitness {
      +Fitness in hsc::subclone - Rust

      Enum hsc::subclone::Fitness

      source ·
      pub enum Fitness {
           Neutral,
           Fixed {
               s: f32,
      diff --git a/docs/hsc/subclone/fn.assign.html b/docs/hsc/subclone/fn.assign.html
      index 19e10bb6a..597e745ce 100644
      --- a/docs/hsc/subclone/fn.assign.html
      +++ b/docs/hsc/subclone/fn.assign.html
      @@ -1,4 +1,4 @@
      -assign in hsc::subclone - Rust

      Function hsc::subclone::assign

      source ·
      pub fn assign(
      +assign in hsc::subclone - Rust

      Function hsc::subclone::assign

      source ·
      pub fn assign(
           subclones: &mut SubClones,
           old_subclone_id: CloneId,
           cell: StemCell,
      diff --git a/docs/hsc/subclone/fn.from_mean_std_to_shape_scale.html b/docs/hsc/subclone/fn.from_mean_std_to_shape_scale.html
      index 03fff6f10..cd8588678 100644
      --- a/docs/hsc/subclone/fn.from_mean_std_to_shape_scale.html
      +++ b/docs/hsc/subclone/fn.from_mean_std_to_shape_scale.html
      @@ -1 +1 @@
      -from_mean_std_to_shape_scale in hsc::subclone - Rust
      pub fn from_mean_std_to_shape_scale(mean: f32, std: f32) -> (f32, f32)
      \ No newline at end of file +from_mean_std_to_shape_scale in hsc::subclone - Rust
      pub fn from_mean_std_to_shape_scale(mean: f32, std: f32) -> (f32, f32)
      \ No newline at end of file diff --git a/docs/hsc/subclone/fn.proliferating_cell.html b/docs/hsc/subclone/fn.proliferating_cell.html index b3adb87e9..7f0596ea0 100644 --- a/docs/hsc/subclone/fn.proliferating_cell.html +++ b/docs/hsc/subclone/fn.proliferating_cell.html @@ -1,4 +1,4 @@ -proliferating_cell in hsc::subclone - Rust
      pub fn proliferating_cell(
      +proliferating_cell in hsc::subclone - Rust
      pub fn proliferating_cell(
           subclones: &mut SubClones,
           subclone_id: CloneId,
           verbosity: u8,
      diff --git a/docs/hsc/subclone/fn.save_variant_fraction.html b/docs/hsc/subclone/fn.save_variant_fraction.html
      index 87163977f..d2c681c0e 100644
      --- a/docs/hsc/subclone/fn.save_variant_fraction.html
      +++ b/docs/hsc/subclone/fn.save_variant_fraction.html
      @@ -1,4 +1,4 @@
      -save_variant_fraction in hsc::subclone - Rust
      pub fn save_variant_fraction(
      +save_variant_fraction in hsc::subclone - Rust
      pub fn save_variant_fraction(
           subclones: &SubClones,
           path2file: &Path,
           verbosity: u8
      diff --git a/docs/hsc/subclone/index.html b/docs/hsc/subclone/index.html
      index 21f25e388..da51c716e 100644
      --- a/docs/hsc/subclone/index.html
      +++ b/docs/hsc/subclone/index.html
      @@ -1,4 +1,4 @@
      -hsc::subclone - Rust

      Module hsc::subclone

      source ·
      Expand description

      The classes defining the proliferative advantage.

      +hsc::subclone - Rust

      Module hsc::subclone

      source ·
      Expand description

      The classes defining the proliferative advantage.

      Structs

      • Distribution probabilities for the simulations upon cell division.
      • A group of cells sharing the same genetic background with a specific proliferation rate.
      • A collection of subclones each having their proliferative advantage. This collection contains the neutral clone as well.
      • Number of cells in subclones.

      Enums

      • Fitness models implemented so far.

      Functions

      • Assign cell to a subclone.
      • Determine which cells will proliferate by randomly selecting a cell diff --git a/docs/hsc/subclone/struct.Distributions.html b/docs/hsc/subclone/struct.Distributions.html index 45bc1b5fb..a47eb7381 100644 --- a/docs/hsc/subclone/struct.Distributions.html +++ b/docs/hsc/subclone/struct.Distributions.html @@ -1,4 +1,4 @@ -Distributions in hsc::subclone - Rust

        Struct hsc::subclone::Distributions

        source ·
        pub struct Distributions {
        +Distributions in hsc::subclone - Rust

        Struct hsc::subclone::Distributions

        source ·
        pub struct Distributions {
             pub bern: Bernoulli,
             pub u: f64,
             pub neutral_poisson: NeutralMutationPoisson,
        diff --git a/docs/hsc/subclone/struct.SubClone.html b/docs/hsc/subclone/struct.SubClone.html
        index 601841f17..7952981a5 100644
        --- a/docs/hsc/subclone/struct.SubClone.html
        +++ b/docs/hsc/subclone/struct.SubClone.html
        @@ -1,4 +1,4 @@
        -SubClone in hsc::subclone - Rust

        Struct hsc::subclone::SubClone

        source ·
        pub struct SubClone {
        +SubClone in hsc::subclone - Rust

        Struct hsc::subclone::SubClone

        source ·
        pub struct SubClone {
             pub id: CloneId,
             /* private fields */
         }
        Expand description

        A group of cells sharing the same genetic background with a specific diff --git a/docs/hsc/subclone/struct.SubClones.html b/docs/hsc/subclone/struct.SubClones.html index e3545a3de..f81b66903 100644 --- a/docs/hsc/subclone/struct.SubClones.html +++ b/docs/hsc/subclone/struct.SubClones.html @@ -1,4 +1,4 @@ -SubClones in hsc::subclone - Rust

        Struct hsc::subclone::SubClones

        source ·
        pub struct SubClones(/* private fields */);
        Expand description

        A collection of subclones each having their proliferative advantage. +SubClones in hsc::subclone - Rust

        Struct hsc::subclone::SubClones

        source ·
        pub struct SubClones(/* private fields */);
        Expand description

        A collection of subclones each having their proliferative advantage. This collection contains the neutral clone as well.

        Implementations§

        source§

        impl SubClones

        source

        pub fn new(cells: Vec<StemCell>, capacity: usize) -> Self

        Returns all the newly initiated subclones by assigning all cells to the neutral clone.

        diff --git a/docs/hsc/subclone/struct.Variants.html b/docs/hsc/subclone/struct.Variants.html index 34030c49a..3e8754d2a 100644 --- a/docs/hsc/subclone/struct.Variants.html +++ b/docs/hsc/subclone/struct.Variants.html @@ -1,4 +1,4 @@ -Variants in hsc::subclone - Rust

        Struct hsc::subclone::Variants

        source ·
        pub struct Variants {}
        Expand description

        Number of cells in subclones.

        +Variants in hsc::subclone - Rust

        Struct hsc::subclone::Variants

        source ·
        pub struct Variants {}
        Expand description

        Number of cells in subclones.

        Implementations§

        source§

        impl Variants

        source

        pub fn variant_counts(subclones: &SubClones) -> [u64; 1200]

        The total variant count is the number of cells in all subclones.

        use hsc::MAX_SUBCLONES;
        diff --git a/docs/hsc/subclone/type.CloneId.html b/docs/hsc/subclone/type.CloneId.html
        index 1c276801d..dcca31869 100644
        --- a/docs/hsc/subclone/type.CloneId.html
        +++ b/docs/hsc/subclone/type.CloneId.html
        @@ -1,2 +1,2 @@
        -CloneId in hsc::subclone - Rust

        Type Alias hsc::subclone::CloneId

        source ·
        pub type CloneId = usize;
        Expand description

        Id of the SubClones.

        +CloneId in hsc::subclone - Rust

        Type Alias hsc::subclone::CloneId

        source ·
        pub type CloneId = usize;
        Expand description

        Id of the SubClones.

        \ No newline at end of file diff --git a/docs/search-index.js b/docs/search-index.js index bb875bf04..d51f1d987 100644 --- a/docs/search-index.js +++ b/docs/search-index.js @@ -19,7 +19,7 @@ var searchIndex = JSON.parse('{\ "enum_dispatch":{"doc":"enum_dispatch provides a set of macros that can be used to …","t":"X","n":["enum_dispatch"],"q":[[0,"enum_dispatch"]],"d":["Annotating a trait or enum definition with an …"],"i":[0],"f":[0],"c":[],"p":[],"b":[]},\ "getrandom":{"doc":"Interface to the operating system’s random number …","t":"SSDSSSSSSSSSSSSLLLLLLLLLLFFLLLLLLL","n":["CUSTOM_START","ERRNO_NOT_POSITIVE","Error","FAILED_RDRAND","INTERNAL_START","IOS_SEC_RANDOM","NODE_CRYPTO","NODE_ES_MODULE","NODE_RANDOM_FILL_SYNC","NO_RDRAND","UNSUPPORTED","VXWORKS_RAND_SECURE","WEB_CRYPTO","WEB_GET_RANDOM_VALUES","WINDOWS_RTL_GEN_RANDOM","borrow","borrow_mut","clone","clone_into","code","eq","fmt","fmt","from","from","getrandom","getrandom_uninit","into","raw_os_error","to_owned","to_string","try_from","try_into","type_id"],"q":[[0,"getrandom"],[34,"core::num::nonzero"],[35,"core::fmt"],[36,"core::fmt"],[37,"core::mem::maybe_uninit"],[38,"core::option"],[39,"alloc::string"],[40,"core::any"]],"d":["Codes at or above this point can be used by users to …","The platform-specific errno returned a non-positive value.","A small and no_std compatible error type","RDRAND instruction failed due to a hardware issue.","Codes below this point represent OS Errors (i.e. positive …","Call to iOS SecRandomCopyBytes failed.","Node.js does not have the crypto CommonJS module.","Called from an ES module on Node.js. This is unsupported, …","Calling Node.js function crypto.randomFillSync failed.","RDRAND instruction unsupported on this target.","This target/platform is not supported by getrandom.","On VxWorks, call to randSecure failed (random number …","The environment does not support the Web Crypto API.","Calling Web Crypto API crypto.getRandomValues failed.","Call to Windows RtlGenRandom failed.","","","","","Extract the bare error code.","","","","Returns the argument unchanged.","","Fill dest with random bytes from the system’s preferred …","Version of the getrandom function which fills dest with …","Calls U::from(self).","Extract the raw OS error code (if this error came from the …","","","","",""],"i":[1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[1,1],[[-1,-2],2,[],[]],[1,3],[[1,1],4],[[1,5],6],[[1,5],6],[-1,-1,[]],[3,1],[[[8,[7]]],[[9,[2,1]]]],[[[8,[[10,[7]]]]],[[9,[[8,[7]],1]]]],[-1,-2,[],[]],[1,[[12,[11]]]],[-1,-2,[],[]],[-1,13,[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,14,[]]],"c":[],"p":[[3,"Error",0],[15,"tuple"],[3,"NonZeroU32",34],[15,"bool"],[3,"Formatter",35],[6,"Result",35],[15,"u8"],[15,"slice"],[4,"Result",36],[19,"MaybeUninit",37],[15,"i32"],[4,"Option",38],[3,"String",39],[3,"TypeId",40]],"b":[[21,"impl-Display-for-Error"],[22,"impl-Debug-for-Error"]]},\ "heck":{"doc":"heck is a case conversion library.","t":"DDDDDDDDDDDKIIIIIIIIIIILLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKKKKKKLLLLLLLLKKKLLLLLLLLLLLLLLLLLLLLLLLL","n":["AsKebabCase","AsLowerCamelCase","AsPascalCase","AsShoutyKebabCase","AsShoutySnakeCase","AsShoutySnekCase","AsSnakeCase","AsSnekCase","AsTitleCase","AsTrainCase","AsUpperCamelCase","TO_SHOUTY_SNEK_CASE","ToKebabCase","ToLowerCamelCase","ToPascalCase","ToShoutyKebabCase","ToShoutySnakeCase","ToShoutySnekCase","ToSnakeCase","ToSnekCase","ToTitleCase","ToTrainCase","ToUpperCamelCase","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","into","into","into","into","into","into","into","into","to_kebab_case","to_lower_camel_case","to_pascal_case","to_shouty_kebab_case","to_shouty_snake_case","to_snake_case","to_snek_case","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_title_case","to_train_case","to_upper_camel_case","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id"],"q":[[0,"heck"],[105,"core::fmt"],[106,"core::fmt"],[107,"alloc::string"],[108,"core::result"],[109,"core::any"]],"d":["This wrapper performs a kebab case conversion in …","This wrapper performs a lower camel case conversion in …","This wrapper performs a upper camel case conversion in …","This wrapper performs a kebab case conversion in …","This wrapper performs a shouty snake case conversion in …","This wrapper performs a shouty snake case conversion in …","This wrapper performs a snake case conversion in …","This wrapper performs a snake case conversion in …","This wrapper performs a title case conversion in …","This wrapper performs a train case conversion in …","This wrapper performs a upper camel case conversion in …","CONVERT THIS TYPE TO SNEK CASE.","This trait defines a kebab case conversion.","This trait defines a lower camel case conversion.","ToPascalCase is an alias for ToUpperCamelCase. See …","This trait defines a shouty kebab case conversion.","This trait defines a shouty snake case conversion.","Oh heck, ToShoutySnekCase is an alias for …","This trait defines a snake case conversion.","Oh heck, SnekCase is an alias for ToSnakeCase. See …","This trait defines a title case conversion.","This trait defines a train case conversion.","This trait defines an upper camel case conversion.","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Convert this type to kebab case.","Convert this type to lower camel case.","Convert this type to upper camel case.","Convert this type to shouty kebab case.","Convert this type to shouty snake case.","Convert this type to snake case.","Convert this type to snek case.","","","","","","","","","Convert this type to title case.","Convert this type to Train-Case.","Convert this type to upper camel case.","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,1,6,7,8,9,10,11,12,1,6,7,8,9,10,11,12,1,6,7,8,9,10,11,12,1,6,7,8,9,10,11,12,1,6,7,8,9,10,11,12,17,18,19,20,21,22,23,1,6,7,8,9,10,11,12,24,25,26,1,6,7,8,9,10,11,12,1,6,7,8,9,10,11,12,1,6,7,8,9,10,11,12],"f":[0,0,0,0,0,0,0,0,0,0,0,[-1,[],[]],0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[1,[-1]],2],3,[[5,[4]]]],[[[6,[-1]],2],3,[[5,[4]]]],[[[7,[-1]],2],3,[[5,[4]]]],[[[8,[-1]],2],3,[[5,[4]]]],[[[9,[-1]],2],3,[[5,[4]]]],[[[10,[-1]],2],3,[[5,[4]]]],[[[11,[-1]],2],3,[[5,[4]]]],[[[12,[-1]],2],3,[[5,[4]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[],[]],[-1,[],[]],[-1,[],[]],[-1,[],[]],[-1,[],[]],[-1,[],[]],[-1,[],[]],[-1,13,[]],[-1,13,[]],[-1,13,[]],[-1,13,[]],[-1,13,[]],[-1,13,[]],[-1,13,[]],[-1,13,[]],[-1,[],[]],[-1,[],[]],[-1,[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,15,[]],[-1,15,[]],[-1,15,[]],[-1,15,[]],[-1,15,[]],[-1,15,[]],[-1,15,[]],[-1,15,[]]],"c":[],"p":[[3,"AsKebabCase",0],[3,"Formatter",105],[6,"Result",105],[15,"str"],[8,"AsRef",106],[3,"AsLowerCamelCase",0],[3,"AsShoutyKebabCase",0],[3,"AsShoutySnakeCase",0],[3,"AsSnakeCase",0],[3,"AsTitleCase",0],[3,"AsTrainCase",0],[3,"AsUpperCamelCase",0],[3,"String",107],[4,"Result",108],[3,"TypeId",109],[8,"ToShoutySnekCase",0],[8,"ToKebabCase",0],[8,"ToLowerCamelCase",0],[8,"ToPascalCase",0],[8,"ToShoutyKebabCase",0],[8,"ToShoutySnakeCase",0],[8,"ToSnakeCase",0],[8,"ToSnekCase",0],[8,"ToTitleCase",0],[8,"ToTrainCase",0],[8,"ToUpperCamelCase",0]],"b":[]},\ -"hsc":{"doc":"Simulate the dynamics of a stem cell population undergoing …","t":"RAAAAAFDDDGLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNDDDDEDNDENNNLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLMMLMMLMMLLLLLLLLLLLLLLLLLLLLLLLLMLLLMMMMMLMMMMMMMMLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLMMNDNDEILLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDFLLLLLLLLLLMFLLLLLMLLGDENNNDDDLFLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLMLLLLLLLMLLLLLFLFLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLMMM","n":["MAX_SUBCLONES","genotype","process","proliferation","stemcell","subclone","write2file","MutationalBurden","NeutralMutationPoisson","Sfs","Variant","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","default","fmt","from","from","from","from_cells","from_cells","from_exp","from_moran","into","into","into","new","new_muts_background","new_muts_upon_division","save","save","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Burden","CellDivisionProbabilities","Exponential","Moran","ProcessOptions","SavingCells","SavingOptions","Sfs","Snapshot","Stats2Save","Subsampling","VariantFraction","WholePopulation","advance_step","advance_step","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cells2sample","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","counter_divisions","counter_divisions","default","distributions","distributions","eq","filename","filename","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","hash","into","into","into","into","into","into","into","into","lambda_poisson","make_path","new","new","p","path","path2dir","proliferation","proliferation","save","save_population","save_population","save_sfs_only","save_sfs_only","snapshots","snapshots","subclones","subclones","switch_to_moran","time","time","time","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_state","update_state","verbosity","verbosity","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","population_as_well","sample_size","DivisionAndBackgroundMutations","DivisionAndBackgroundMutationsProliferation","DivisionMutations","DivisionMutationsProliferation","MutateUponDivision","Proliferation","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","default","duplicate_cell_assign_mutations","duplicate_cell_assign_mutations","duplicate_cell_assign_mutations","duplicate_cell_assign_mutations","fmt","fmt","fmt","from","from","from","from","from","into","into","into","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","StemCell","assign_background_mutations","borrow","borrow_mut","burden","clone","clone_into","default","fmt","from","has_mutations","into","last_division_t","mutate","new","to_owned","try_from","try_into","type_id","variants","vzip","with_mutations","CloneId","Distributions","Fitness","Fixed","GammaSampled","Neutral","SubClone","SubClones","Variants","acquire_p_mutation","assign","assign_cell","bern","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cell_count","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","compute_tot_cells","default","default","empty_with_id","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_mean_std_to_shape_scale","get_cells","get_cells","get_cells_subclones_idx","get_cells_subsampled","get_cells_subsampled_with_clones_idx","get_cells_with_clones_idx","get_clone","get_clone_unchecked","get_mean_std","get_mut_cells","get_mut_cells","get_mut_clone_unchecked","get_neutral_clone","gillespie_rates","gillespie_set_of_reactions","id","into","into","into","into","into","into_iter","is_empty","neutral_poisson","new","new","new","new_empty","next","proliferating_cell","random_cell","save_variant_fraction","the_only_one_subclone_present","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","u","variant_counts","variant_fractions","vzip","vzip","vzip","vzip","vzip","with_capacity","with_capacity","s","scale","shape"],"q":[[0,"hsc"],[7,"hsc::genotype"],[49,"hsc::process"],[192,"hsc::process::SavingCells"],[194,"hsc::proliferation"],[245,"hsc::stemcell"],[267,"hsc::subclone"],[376,"hsc::subclone::Fitness"],[379,"std::path"],[380,"core::option"],[381,"anyhow"],[382,"core::fmt"],[383,"core::fmt"],[384,"rand::rng"],[385,"core::result"],[386,"core::any"],[387,"sosa"],[388,"core::hash"],[389,"std::path"]],"d":["Maximal number of fit clones that can arise during the …","The neutral mutations representing the genotype of the …","The events to simulate for this Markov process.","The proliferation of cells with the simulation of neutral …","The agents whose state defines the system simulated by the …","The classes defining the proliferative advantage.","Write vector of float into new file with a precision of 6 …","Single-cell mutational burden is a mapping of cells …","The Poisson probability distribution modeling the …","Site frequency spectrum implemented as mapping with keys …","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Compute the SFS from the stem cell population.","Compute the single-cell mutational burden from the stem …","Create the single-cell mutational burden from all cells in …","Create the single-cell mutational burden from all cells in …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Create two Poisson distributions, one modelling the neutral","The number of neutral mutations acquired upon cell …","Generate neutral mutations acquired upon cell division …","","","","","","","","","","","","","","","","","","Exponential growing process","The Moran process saves the state of the agents and …","","","","","","","","","","Update the process by simulating the next proliferative …","Update the process by simulating the next proliferative …","","","","","","","","","","","","","","","","","The number of cells to subsample","","","","","","","","","","","","","","","The counter for the number of proliferative events.","The counter for the number of proliferative events.","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Rate of neutral mutations per cell-division","","","A Moran process with wild-type subclone with neutral …","Probability of getting a fit mutant upon cell division","","","","","","","","","","","","A collection of clones having a proliferative advantage.","A collection of clones having a proliferative advantage.","","The time at which we subsample","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Simulate fit mutations, neutral background mutations and …","","Do not simulate neutral background mutations but only …","Duplicate cells and deal with subclones. Also specifies …","All the updates and changes in the system upon …","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","Hematopoietic stem and progenitor cells (HSPCs) are a rare …","Assign background mutations to all cells in the system …","","","","","","Creates a stem cell without any neutral mutations.","","Returns the argument unchanged.","","Calls U::from(self).","the last time at which the cell has divided","","Construct a new cell without any neutral mutations.","","","","","","","","Id of the SubClones.","Distribution probabilities for the simulations upon cell …","Fitness models implemented so far.","According to the Fixed fitness model, the birth-rates for …","According to the GammaSampled fitness model, the …","According to the Neutral fitness model, all subclones have …","A group of cells sharing the same genetic background with …","A collection of subclones each having their proliferative …","Number of cells in subclones.","","Assign cell to a subclone.","","probability of fit mutations upon cell proliferation","","","","","","","","","","","","","","","","","","","","","","Create new subclones each having one cell (this creates …","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","","","","","","","","","Create the Gillespie reaction rates according to the …","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","Returns all the newly initiated subclones by assigning all …","","","Determine which cells will proliferate by randomly …","","","returns None if more than one subclone is present else the …","","","","","","","","","","","","","","","","","","","","","The total variant count is the number of cells in all …","The proportion of cells in all subclones.","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,14,15,9,14,15,9,9,9,9,9,14,15,9,14,15,15,15,14,15,9,9,9,9,14,15,9,14,15,9,14,15,9,14,15,9,14,15,9,30,0,0,0,0,0,0,30,0,0,25,30,25,16,17,25,26,27,28,30,29,16,17,25,26,27,28,30,29,16,17,26,25,26,27,28,29,16,17,25,26,27,28,29,16,17,16,17,17,16,17,30,27,17,25,26,27,28,29,16,17,25,26,27,28,30,29,16,17,30,25,26,27,28,30,29,16,17,29,17,16,17,29,28,17,16,17,17,27,17,27,17,28,17,16,17,16,26,16,17,25,26,27,28,29,16,17,25,26,27,28,30,29,16,17,25,26,27,28,30,29,16,17,25,26,27,28,30,29,16,17,16,17,16,17,25,26,27,28,30,29,16,17,47,47,36,0,36,0,0,0,38,39,36,38,39,36,38,39,36,38,39,36,36,48,38,39,36,38,39,36,38,39,36,36,36,38,39,36,38,39,36,38,39,36,38,39,36,36,36,38,39,36,38,39,36,0,0,12,12,12,12,12,12,12,12,12,12,12,0,12,12,12,12,12,12,12,12,0,0,0,43,43,43,0,0,0,35,0,41,35,49,35,43,41,34,49,35,43,41,34,41,35,43,41,34,35,43,41,34,34,35,34,41,35,43,41,34,49,35,43,41,34,34,0,41,34,41,34,34,34,34,34,43,41,34,34,34,34,34,41,49,35,43,41,34,41,41,35,35,41,34,34,41,0,41,0,34,35,43,41,34,49,35,43,41,34,49,35,43,41,34,49,35,43,41,34,35,49,49,49,35,43,41,34,41,34,50,51,51],"f":[0,0,0,0,0,0,[[[1,[-1]],2,[4,[3]],5],[[7,[6]]],8],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[9,9],[[-1,-2],6,[],[]],[[],9],[[9,10],11],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[1,[12]],13],[[7,[14]]]],[[[1,[12]],13],[[7,[15]]]],[[16,13],[[7,[15]]]],[[17,13],[[7,[15]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[18,18],[[7,[9]]]],[[9,18,-1,13],[[4,[[20,[19]]]]],21],[[9,-1],[[4,[[20,[19]]]]],21],[[14,2,13],[[7,[6]]]],[[15,2,13],[[7,[6]]]],[-1,-2,[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[16,24,-1],6,21],[[17,24,-1],6,21],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[25,25],[26,26],[27,27],[28,28],[29,29],[16,16],[17,17],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],0,0,[[],17],0,0,[[30,30],5],0,0,[[25,10],11],[[26,10],11],[[27,10],11],[[28,10],11],[[29,10],11],[[16,10],11],[[17,10],11],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[30,-1],6,31],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[17,30,32,18],[[7,[33]]]],[[34,35,36,13],16],[[28,34,18,27,35,36,13],17],0,0,0,0,0,[[17,18,25,5,-1],[[7,[6]]],21],0,0,0,0,0,0,0,0,[[16,28,35,33,5,5,-1],17,21],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[[16,37],6],[[17,37],6],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[38,38],[39,39],[36,36],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[],36],[[-1,34,18,40,35,-2,13],6,[],21],[[38,34,18,40,35,-1,13],6,21],[[39,34,18,40,35,-1,13],6,21],[[36,34,18,40,35,-1,13],6,21],[[38,10],11],[[39,10],11],[[36,10],11],[-1,-1,[]],[-1,-1,[]],[39,36],[-1,-1,[]],[38,36],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[36,[[22,[38]]]],[36,[[22,[39]]]],[-1,[[22,[-2]]],[],[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[12,18,9,-1,13],6,21],[-1,-2,[],[]],[-1,-2,[],[]],[12,32],[12,12],[[-1,-2],6,[],[]],[[],12],[[12,10],11],[-1,-1,[]],[12,5],[-1,-2,[],[]],0,[[12,[20,[19]]],6],[[],12],[-1,-2,[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,23,[]],0,[-1,-2,[],[]],[[[20,[19]]],12],0,0,0,0,0,0,0,0,0,[[35,-1],5,21],[[34,40,12,35,-1,13],6,21],[[41,12],6],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[41,42],[35,35],[43,43],[41,41],[34,34],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[34,42],[[],35],[[],34],[32,41],[[35,10],11],[[43,10],11],[[41,10],11],[[34,10],11],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[20,[[6,[12,32]]]]],34],[-1,-1,[]],[[18,18],[[6,[18,18]]]],[41,[[1,[12]]]],[34,[[20,[12]]]],[41,[[20,[[6,[12,32]]]]]],[[34,32,-1],[[20,[12]]],21],[[34,32,-1],[[20,[[6,[12,32]]]]],21],[34,[[20,[[6,[12,32]]]]]],[[34,32],[[4,[41]]]],[[34,32],41],[43,[[6,[18,18]]]],[41,[[1,[12]]]],[34,[[20,[12]]]],[[34,32],41],[34,41],[[34,43,18,-1],44,21],[34,[[45,[40]]]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[41,5],0,[[46,18,18,13],35],[[40,32],41],[[[20,[12]],32],34],[[],34],[41,4],[[34,40,13,-1],12,21],[[41,-1],[[7,[12]]],21],[[34,2,13],[[7,[6]]]],[34,[[4,[40]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],0,[34,[[45,[42]]]],[34,[[20,[18]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[32,32],41],[32,34],0,0,0],"c":[],"p":[[15,"slice"],[3,"Path",379],[15,"str"],[4,"Option",380],[15,"bool"],[15,"tuple"],[6,"Result",381],[8,"Display",382],[3,"NeutralMutationPoisson",7],[3,"Formatter",382],[6,"Result",382],[3,"StemCell",245],[15,"u8"],[3,"Sfs",7],[3,"MutationalBurden",7],[3,"Exponential",49],[3,"Moran",49],[15,"f32"],[6,"Variant",7],[3,"Vec",383],[8,"Rng",384],[4,"Result",385],[3,"TypeId",386],[3,"NextReaction",387],[4,"SavingCells",49],[3,"Snapshot",49],[3,"SavingOptions",49],[3,"ProcessOptions",49],[3,"CellDivisionProbabilities",49],[4,"Stats2Save",49],[8,"Hasher",388],[15,"usize"],[3,"PathBuf",379],[3,"SubClones",267],[3,"Distributions",267],[4,"MutateUponDivision",194],[3,"CurrentState",387],[3,"DivisionAndBackgroundMutationsProliferation",194],[3,"DivisionMutationsProliferation",194],[6,"CloneId",267],[3,"SubClone",267],[15,"u64"],[4,"Fitness",267],[3,"ReactionRates",387],[15,"array"],[15,"f64"],[13,"Subsampling",192],[8,"Proliferation",194],[3,"Variants",267],[13,"Fixed",376],[13,"GammaSampled",376]],"b":[[222,"impl-From%3CDivisionMutationsProliferation%3E-for-MutateUponDivision"],[224,"impl-From%3CDivisionAndBackgroundMutationsProliferation%3E-for-MutateUponDivision"],[236,"impl-TryInto%3CDivisionAndBackgroundMutationsProliferation%3E-for-MutateUponDivision"],[237,"impl-TryInto%3CDivisionMutationsProliferation%3E-for-MutateUponDivision"]]},\ +"hsc":{"doc":"Simulate the dynamics of a stem cell population undergoing …","t":"RAAAAAFDDDGLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLNDDDDEDNDENNNLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLMMLMMLMMLLLLLLLLLLLLLLLLLLLLLLLLMLLLMMMMMLMMMMMMMMLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLMMNDNDEILLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDFLLLLLLLLLLMFLLLLLMLLGDENNNDDDLFLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLMLLLLLLLMLLLLLFLFLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLMMM","n":["MAX_SUBCLONES","genotype","process","proliferation","stemcell","subclone","write2file","MutationalBurden","NeutralMutationPoisson","Sfs","Variant","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","default","eq","fmt","from","from","from","from_cells","from_cells","from_exp","from_moran","into","into","into","lambda_background","lambda_division","new","new_muts_background","new_muts_upon_division","save","save","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Burden","CellDivisionProbabilities","Exponential","Moran","ProcessOptions","SavingCells","SavingOptions","Sfs","Snapshot","Stats2Save","Subsampling","VariantFraction","WholePopulation","advance_step","advance_step","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cells2sample","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","counter_divisions","counter_divisions","default","distributions","distributions","eq","filename","filename","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","hash","into","into","into","into","into","into","into","into","lambda_poisson","make_path","new","new","p","path","path2dir","proliferation","proliferation","save","save_population","save_population","save_sfs_only","save_sfs_only","snapshots","snapshots","subclones","subclones","switch_to_moran","time","time","time","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_state","update_state","verbosity","verbosity","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","population_as_well","sample_size","DivisionAndBackgroundMutations","DivisionAndBackgroundMutationsProliferation","DivisionMutations","DivisionMutationsProliferation","MutateUponDivision","Proliferation","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","default","duplicate_cell_assign_mutations","duplicate_cell_assign_mutations","duplicate_cell_assign_mutations","duplicate_cell_assign_mutations","fmt","fmt","fmt","from","from","from","from","from","into","into","into","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","StemCell","assign_background_mutations","borrow","borrow_mut","burden","clone","clone_into","default","fmt","from","has_mutations","into","last_division_t","mutate","new","to_owned","try_from","try_into","type_id","variants","vzip","with_mutations","CloneId","Distributions","Fitness","Fixed","GammaSampled","Neutral","SubClone","SubClones","Variants","acquire_p_mutation","assign","assign_cell","bern","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cell_count","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","compute_tot_cells","default","default","empty_with_id","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_mean_std_to_shape_scale","get_cells","get_cells","get_cells_subclones_idx","get_cells_subsampled","get_cells_subsampled_with_clones_idx","get_cells_with_clones_idx","get_clone","get_clone_unchecked","get_mean_std","get_mut_cells","get_mut_cells","get_mut_clone_unchecked","get_neutral_clone","gillespie_rates","gillespie_set_of_reactions","id","into","into","into","into","into","into_iter","is_empty","neutral_poisson","new","new","new","new_empty","next","proliferating_cell","random_cell","save_variant_fraction","the_only_one_subclone_present","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","u","variant_counts","variant_fractions","vzip","vzip","vzip","vzip","vzip","with_capacity","with_capacity","s","scale","shape"],"q":[[0,"hsc"],[7,"hsc::genotype"],[52,"hsc::process"],[195,"hsc::process::SavingCells"],[197,"hsc::proliferation"],[248,"hsc::stemcell"],[270,"hsc::subclone"],[379,"hsc::subclone::Fitness"],[382,"std::path"],[383,"core::option"],[384,"anyhow"],[385,"core::fmt"],[386,"core::fmt"],[387,"rand::rng"],[388,"core::result"],[389,"core::any"],[390,"sosa"],[391,"core::hash"],[392,"std::path"]],"d":["Maximal number of fit clones that can arise during the …","The neutral mutations representing the genotype of the …","The events to simulate for this Markov process.","The proliferation of cells with the simulation of neutral …","The agents whose state defines the system simulated by the …","The classes defining the proliferative advantage.","Write vector of float into new file with a precision of 6 …","Single-cell mutational burden is a mapping of cells …","The Poisson probability distribution modeling the …","Site frequency spectrum implemented as mapping with keys …","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Compute the SFS from the stem cell population.","Compute the single-cell mutational burden from the stem …","Create the single-cell mutational burden from all cells in …","Create the single-cell mutational burden from all cells in …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","Create two Poisson distributions, one modelling the neutral","The number of neutral mutations acquired upon cell …","Generate neutral mutations acquired upon cell division …","","","","","","","","","","","","","","","","","","Exponential growing process","The Moran process saves the state of the agents and …","","","","","","","","","","Update the process by simulating the next proliferative …","Update the process by simulating the next proliferative …","","","","","","","","","","","","","","","","","The number of cells to subsample","","","","","","","","","","","","","","","The counter for the number of proliferative events.","The counter for the number of proliferative events.","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Rate of neutral mutations per cell-division","","","A Moran process with wild-type subclone with neutral …","Probability of getting a fit mutant upon cell division","","","","","","","","","","","","A collection of clones having a proliferative advantage.","A collection of clones having a proliferative advantage.","","The time at which we subsample","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Simulate fit mutations, neutral background mutations and …","","Do not simulate neutral background mutations but only …","Duplicate cells and deal with subclones. Also specifies …","All the updates and changes in the system upon …","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","Hematopoietic stem and progenitor cells (HSPCs) are a rare …","Assign background mutations to all cells in the system …","","","","","","Creates a stem cell without any neutral mutations.","","Returns the argument unchanged.","","Calls U::from(self).","the last time at which the cell has divided","","Construct a new cell without any neutral mutations.","","","","","","","","Id of the SubClones.","Distribution probabilities for the simulations upon cell …","Fitness models implemented so far.","According to the Fixed fitness model, the birth-rates for …","According to the GammaSampled fitness model, the …","According to the Neutral fitness model, all subclones have …","A group of cells sharing the same genetic background with …","A collection of subclones each having their proliferative …","Number of cells in subclones.","","Assign cell to a subclone.","","probability of fit mutations upon cell proliferation","","","","","","","","","","","","","","","","","","","","","","Create new subclones each having one cell (this creates …","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","","","","","","","","","Create the Gillespie reaction rates according to the …","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","Returns all the newly initiated subclones by assigning all …","","","Determine which cells will proliferate by randomly …","","","returns None if more than one subclone is present else the …","","","","","","","","","","","","","","","","","","","","","The total variant count is the number of cells in all …","The proportion of cells in all subclones.","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,14,15,9,14,15,9,9,9,9,9,9,14,15,9,14,15,15,15,14,15,9,9,9,9,9,9,14,15,9,14,15,9,14,15,9,14,15,9,14,15,9,30,0,0,0,0,0,0,30,0,0,25,30,25,16,17,25,26,27,28,30,29,16,17,25,26,27,28,30,29,16,17,26,25,26,27,28,29,16,17,25,26,27,28,29,16,17,16,17,17,16,17,30,27,17,25,26,27,28,29,16,17,25,26,27,28,30,29,16,17,30,25,26,27,28,30,29,16,17,29,17,16,17,29,28,17,16,17,17,27,17,27,17,28,17,16,17,16,26,16,17,25,26,27,28,29,16,17,25,26,27,28,30,29,16,17,25,26,27,28,30,29,16,17,25,26,27,28,30,29,16,17,16,17,16,17,25,26,27,28,30,29,16,17,47,47,36,0,36,0,0,0,38,39,36,38,39,36,38,39,36,38,39,36,36,48,38,39,36,38,39,36,38,39,36,36,36,38,39,36,38,39,36,38,39,36,38,39,36,36,36,38,39,36,38,39,36,0,0,12,12,12,12,12,12,12,12,12,12,12,0,12,12,12,12,12,12,12,12,0,0,0,43,43,43,0,0,0,35,0,41,35,49,35,43,41,34,49,35,43,41,34,41,35,43,41,34,35,43,41,34,34,35,34,41,35,43,41,34,49,35,43,41,34,34,0,41,34,41,34,34,34,34,34,43,41,34,34,34,34,34,41,49,35,43,41,34,41,41,35,35,41,34,34,41,0,41,0,34,35,43,41,34,49,35,43,41,34,49,35,43,41,34,49,35,43,41,34,35,49,49,49,35,43,41,34,41,34,50,51,51],"f":[0,0,0,0,0,0,[[[1,[-1]],2,[4,[3]],5],[[7,[6]]],8],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[9,9],[[-1,-2],6,[],[]],[[],9],[[9,9],5],[[9,10],11],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[1,[12]],13],[[7,[14]]]],[[[1,[12]],13],[[7,[15]]]],[[16,13],[[7,[15]]]],[[17,13],[[7,[15]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[18,18],[[7,[9]]]],[[9,18,-1,13],[[4,[[20,[19]]]]],21],[[9,-1],[[4,[[20,[19]]]]],21],[[14,2,13],[[7,[6]]]],[[15,2,13],[[7,[6]]]],[-1,-2,[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[16,24,-1],6,21],[[17,24,-1],6,21],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[25,25],[26,26],[27,27],[28,28],[29,29],[16,16],[17,17],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],0,0,[[],17],0,0,[[30,30],5],0,0,[[25,10],11],[[26,10],11],[[27,10],11],[[28,10],11],[[29,10],11],[[16,10],11],[[17,10],11],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[30,-1],6,31],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[17,30,32,18],[[7,[33]]]],[[34,35,36,13],16],[[28,34,18,27,35,36,13],17],0,0,0,0,0,[[17,18,25,5,-1],[[7,[6]]],21],0,0,0,0,0,0,0,0,[[16,28,35,33,5,5,-1],17,21],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[[16,37],6],[[17,37],6],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[38,38],[39,39],[36,36],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[],36],[[-1,34,18,40,35,-2,13],6,[],21],[[38,34,18,40,35,-1,13],6,21],[[39,34,18,40,35,-1,13],6,21],[[36,34,18,40,35,-1,13],6,21],[[38,10],11],[[39,10],11],[[36,10],11],[-1,-1,[]],[-1,-1,[]],[38,36],[-1,-1,[]],[39,36],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[36,[[22,[39]]]],[-1,[[22,[-2]]],[],[]],[36,[[22,[38]]]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[12,18,9,-1,13],6,21],[-1,-2,[],[]],[-1,-2,[],[]],[12,32],[12,12],[[-1,-2],6,[],[]],[[],12],[[12,10],11],[-1,-1,[]],[12,5],[-1,-2,[],[]],0,[[12,[20,[19]]],6],[[],12],[-1,-2,[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,23,[]],0,[-1,-2,[],[]],[[[20,[19]]],12],0,0,0,0,0,0,0,0,0,[[35,-1],5,21],[[34,40,12,35,-1,13],6,21],[[41,12],6],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[41,42],[35,35],[43,43],[41,41],[34,34],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[34,42],[[],35],[[],34],[32,41],[[35,10],11],[[43,10],11],[[41,10],11],[[34,10],11],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[20,[[6,[12,32]]]]],34],[-1,-1,[]],[[18,18],[[6,[18,18]]]],[41,[[1,[12]]]],[34,[[20,[12]]]],[41,[[20,[[6,[12,32]]]]]],[[34,32,-1],[[20,[12]]],21],[[34,32,-1],[[20,[[6,[12,32]]]]],21],[34,[[20,[[6,[12,32]]]]]],[[34,32],[[4,[41]]]],[[34,32],41],[43,[[6,[18,18]]]],[41,[[1,[12]]]],[34,[[20,[12]]]],[[34,32],41],[34,41],[[34,43,18,-1],44,21],[34,[[45,[40]]]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[41,5],0,[[46,18,18,13],35],[[40,32],41],[[[20,[12]],32],34],[[],34],[41,4],[[34,40,13,-1],12,21],[[41,-1],[[7,[12]]],21],[[34,2,13],[[7,[6]]]],[34,[[4,[40]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],0,[34,[[45,[42]]]],[34,[[20,[18]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[32,32],41],[32,34],0,0,0],"c":[],"p":[[15,"slice"],[3,"Path",382],[15,"str"],[4,"Option",383],[15,"bool"],[15,"tuple"],[6,"Result",384],[8,"Display",385],[3,"NeutralMutationPoisson",7],[3,"Formatter",385],[6,"Result",385],[3,"StemCell",248],[15,"u8"],[3,"Sfs",7],[3,"MutationalBurden",7],[3,"Exponential",52],[3,"Moran",52],[15,"f32"],[6,"Variant",7],[3,"Vec",386],[8,"Rng",387],[4,"Result",388],[3,"TypeId",389],[3,"NextReaction",390],[4,"SavingCells",52],[3,"Snapshot",52],[3,"SavingOptions",52],[3,"ProcessOptions",52],[3,"CellDivisionProbabilities",52],[4,"Stats2Save",52],[8,"Hasher",391],[15,"usize"],[3,"PathBuf",382],[3,"SubClones",270],[3,"Distributions",270],[4,"MutateUponDivision",197],[3,"CurrentState",390],[3,"DivisionAndBackgroundMutationsProliferation",197],[3,"DivisionMutationsProliferation",197],[6,"CloneId",270],[3,"SubClone",270],[15,"u64"],[4,"Fitness",270],[3,"ReactionRates",390],[15,"array"],[15,"f64"],[13,"Subsampling",195],[8,"Proliferation",197],[3,"Variants",270],[13,"Fixed",379],[13,"GammaSampled",379]],"b":[[225,"impl-From%3CDivisionAndBackgroundMutationsProliferation%3E-for-MutateUponDivision"],[227,"impl-From%3CDivisionMutationsProliferation%3E-for-MutateUponDivision"],[239,"impl-TryInto%3CDivisionMutationsProliferation%3E-for-MutateUponDivision"],[241,"impl-TryInto%3CDivisionAndBackgroundMutationsProliferation%3E-for-MutateUponDivision"]]},\ "iana_time_zone":{"doc":"get the IANA time zone for the current system","t":"NENNLLLLLLFLLLLLL","n":["FailedParsingString","GetTimezoneError","IoError","OsError","borrow","borrow_mut","fmt","fmt","from","from","get_timezone","into","source","to_string","try_from","try_into","type_id"],"q":[[0,"iana_time_zone"],[17,"core::fmt"],[18,"core::fmt"],[19,"std::io::error"],[20,"alloc::string"],[21,"core::error"],[22,"core::option"],[23,"core::any"]],"d":["Failed to parse","Error types","Wrapped IO error","Platform-specific error from the operating system","","","","","Returns the argument unchanged.","","Get the current IANA time zone as a string.","Calls U::from(self).","","","","",""],"i":[1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1],"f":[0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[1,2],3],[[1,2],[[6,[4,5]]]],[-1,-1,[]],[7,1],[[],[[6,[8,1]]]],[-1,-2,[],[]],[1,[[10,[9]]]],[-1,8,[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,11,[]]],"c":[],"p":[[4,"GetTimezoneError",0],[3,"Formatter",17],[6,"Result",17],[15,"tuple"],[3,"Error",17],[4,"Result",18],[3,"Error",19],[3,"String",20],[8,"Error",21],[4,"Option",22],[3,"TypeId",23]],"b":[[6,"impl-Debug-for-GetTimezoneError"],[7,"impl-Display-for-GetTimezoneError"]]},\ "indicatif":{"doc":"indicatif is a library for Rust that helps you build …","t":"NNNNDNDDDDDDDEIDDDEIDCINDNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKKKLLLLLLLLLLLLLLLLLMLLLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLKKLDIDLLLLLKLLLLLLLLLLLLLLLLLLLLKLKLLLLLLLLLLLLK","n":["Abandon","AbandonWithMessage","AndClear","AndLeave","BinaryBytes","Bottom","DecimalBytes","FormattedDuration","HumanBytes","HumanCount","HumanDuration","HumanFloatCount","MultiProgress","MultiProgressAlignment","ParallelProgressIterator","ProgressBar","ProgressBarIter","ProgressDrawTarget","ProgressFinish","ProgressIterator","ProgressState","ProgressStyle","TermLike","Top","WeakProgressBar","WithMessage","abandon","abandon_with_message","add","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clear","clear_line","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","consume","default","default","default","default","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","disable_steady_tick","downgrade","drive","drive_unindexed","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","duration","duration","elapsed","elapsed","enable_steady_tick","eta","eta","fill_buf","finish","finish_and_clear","finish_using_style","finish_with_message","flush","flush","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fraction","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","height","height","hidden","hidden","inc","inc_length","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","insert","insert_after","insert_before","insert_from_back","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_iter","into_par_iter","is_finished","is_finished","is_hidden","is_hidden","is_hidden","len","len","len","length","message","move_cursor_down","move_cursor_left","move_cursor_right","move_cursor_up","new","new","new","new_spinner","next","next_back","per_sec","per_sec","pos","position","prefix","println","println","progress","progress","progress","progress","progress","progress_count","progress_count","progress_count","progress_count","progress_with","progress_with","progress_with","progress_with","progress_with_style","progress_with_style","progress_with_style","progress_with_style","read","read_exact","read_to_string","read_vectored","remove","reset","reset_elapsed","reset_eta","seek","set_alignment","set_draw_target","set_draw_target","set_len","set_length","set_message","set_move_cursor","set_pos","set_position","set_prefix","set_style","set_tab_width","stderr","stderr_with_hz","stdout","stdout_with_hz","stream_position","style","style","suspend","suspend","term","term_like","term_like_with_hz","tick","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_progress","try_progress","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update","upgrade","width","with_draw_target","with_draw_target","with_elapsed","with_elapsed","with_finish","with_finish","with_message","with_message","with_position","with_position","with_prefix","with_prefix","with_producer","with_style","with_style","with_tab_width","wrap_iter","wrap_read","wrap_write","write","write_line","write_str","write_vectored","ProgressStyle","ProgressTracker","TemplateError","borrow","borrow","borrow_mut","borrow_mut","clone","clone_box","clone_into","default_bar","default_spinner","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","get_final_tick_str","get_tick_str","init","init","into","into","progress_chars","reset","template","tick","tick_chars","tick_strings","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","with_key","with_template","write"],"q":[[0,"indicatif"],[380,"indicatif::style"],[425,"alloc::borrow"],[426,"core::convert"],[427,"std::io::error"],[428,"std::io"],[429,"rayon::iter"],[430,"rayon::iter::plumbing"],[431,"rayon::iter"],[432,"std::io"],[433,"core::fmt"],[434,"core::iter::traits::exact_size"],[435,"alloc::string"],[436,"core::iter::traits::iterator"],[437,"core::iter::traits::double_ended"],[438,"core::convert"],[439,"console::term"],[440,"alloc::boxed"],[441,"core::result"],[442,"core::any"],[443,"rayon::iter::plumbing"],[444,"core::fmt"]],"d":["Finishes the progress bar and leaves the current message …","Finishes the progress bar and sets a message, and leaves …","Finishes the progress bar and completely clears it (this …","Finishes the progress bar and leaves the current message","Formats bytes for human readability using ISO/IEC prefixes","","Formats bytes for human readability using SI prefixes","Wraps an std duration for human basic formatting.","Formats bytes for human readability","Formats counts for human readability using commas","Wraps an std duration for human readable formatting.","Formats counts for human readability using commas for …","Manages multiple progress bars from different threads","Vertical alignment of a multi progress.","Wraps a Rayon parallel iterator.","A progress bar or spinner","Wraps an iterator to display its progress.","Target for draw operations","Behavior of a progress bar when it is finished","Wraps an iterator to display its progress.","The state of a progress bar at a moment in time.","","A trait for minimal terminal-like behavior.","","A weak reference to a ProgressBar.","Finishes the progress bar and sets a message","Finishes the progress bar and leaves the current message …","Finishes the progress bar and sets a message, and leaves …","Adds a progress bar.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Clear the current line and reset the cursor to beginning …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Undoes ProgressBar::enable_steady_tick()","Creates a new weak reference to this ProgressBar","","","","","","","","","","","","","","","","","","The expected total duration (that is, elapsed time + …","Returns the current expected duration","","Returns the current elapsed time","Spawns a background thread to tick the progress bar","The expected ETA","Returns the current ETA","","Finishes the progress bar and leaves the current message","Finishes the progress bar and completely clears it","Finishes the progress bar using the behavior stored in the …","Finishes the progress bar and sets a message","","","","","","","","","","","","","","","","","","","","","","","Returns the completion as a floating-point number between …","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Return the terminal height","Return the terminal height","A hidden draw target.","Creates a completely hidden progress bar","Advances the position of the progress bar by delta","Increase the length of the progress bar","","","","","","","","","","","","","","","","Inserts a progress bar.","Inserts a progress bar after an existing one.","Inserts a progress bar before an existing one.","Inserts a progress bar from the back.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","Indicates that the progress bar finished.","Indicates that the progress bar finished","Returns true if the draw target is hidden.","","A quick convenience check if the progress bar is hidden","","","","Returns the current length","Current message","Move the cursor down by n lines","Move the cursor left by n chars","Move the cursor right by n chars","Move the cursor up by n lines","Creates a new multi progress object.","Creates a new progress bar with a given length","Create a new WeakProgressBar that returns None when upgrade…","Creates a new spinner","","","The number of steps per second","Returns the current rate of progress","","Returns the current position","Current prefix","Print a log line above all progress bars in the …","Print a log line above the progress bar","Wrap an iterator with default styling.","Wrap an iterator with default styling.","","","","Wrap an iterator with an explicit element count.","Wrap an iterator with an explicit element count.","Wrap an iterator with an explicit element count.","Wrap an iterator with an explicit element count.","Wrap an iterator with a custom progress bar.","Wrap an iterator with a custom progress bar.","","","Wrap an iterator with a progress bar and style it.","Wrap an iterator with a progress bar and style it.","Wrap an iterator with a progress bar and style it.","Wrap an iterator with a progress bar and style it.","","","","","Removes a progress bar.","Resets all of the progress bar state","Resets elapsed time and the ETA calculation","Resets the ETA calculation","","Set alignment flag","Sets a different draw target for the multiprogress bar.","Sets a different draw target for the progress bar","","Sets the length of the progress bar","Sets the current message of the progress bar","Set whether we should try to move the cursor when possible …","","Sets the position of the progress bar","Sets the current prefix of the progress bar","Overrides the stored style","Sets the tab width (default: 8). All tabs will be expanded …","Draw to a buffered stderr terminal at a max of 20 times a …","Draw to a buffered stderr terminal at a max of refresh_rate…","Draw to a buffered stdout terminal at a max of 20 times a …","Draw to a buffered stdout terminal at a max of refresh_rate…","","","Get a clone of the current progress bar style.","Hide all progress bars temporarily, execute f, then redraw …","Hide the progress bar temporarily, execute f, then redraw …","Draw to a terminal, with a specific refresh rate.","Draw to a boxed object that implements the TermLike trait.","Draw to a boxed object that implements the TermLike trait, …","Manually ticks the spinner or progress bar","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Wrap an iterator with default styling. Uses …","Wrap an iterator with default styling. Uses …","","","","","","","","","","","","","","","","Update the ProgressBar’s inner ProgressState","Attempts to upgrade the Weak pointer to a ProgressBar, …","Return the terminal width","Creates a new multi progress object with the given draw …","Creates a new progress bar with a given length and draw …","Builder-like function for setting underlying progress bar…","A convenience builder-like function for a progress bar …","Builder-like function for setting underlying progress bar…","Sets the finish behavior for the progress bar","Builder-like function for setting underlying progress bar…","A convenience builder-like function for a progress bar …","Builder-like function for setting underlying progress bar…","A convenience builder-like function for a progress bar …","Builder-like function for setting underlying progress bar…","A convenience builder-like function for a progress bar …","","Builder-like function for setting underlying progress bar…","A convenience builder-like function for a progress bar …","A convenience builder-like function for a progress bar …","Wraps an Iterator with the progress bar","Wraps an io::Read with the progress bar","Wraps an io::Write with the progress bar","","Write a string and add a newline.","Write a string","","","Trait for defining stateful or stateless formatters","","","","","","","Creates a new instance of the progress tracker","","Returns the default progress bar style for bars","Returns the default progress bar style for spinners","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the tick string for the finished state","Returns the tick string for a given number","","","Calls U::from(self).","Calls U::from(self).","Sets the progress characters (filled, current, to do)","Notifies the progress tracker of a reset event","Sets the template string for the progress bar","Notifies the progress tracker of a tick event","Sets the tick character sequence for spinners","Sets the tick string sequence for spinners","","","","","","","","","Adds a custom key that owns a ProgressTracker to the …","Sets the template string for the progress bar","Provides access to the progress bar display buffer for …"],"i":[10,10,10,10,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,10,1,1,6,18,23,26,27,28,29,30,31,32,11,6,8,1,9,10,18,23,26,27,28,29,30,31,32,11,6,8,1,9,10,6,52,6,8,1,9,10,6,8,1,9,10,11,6,8,9,10,18,23,26,27,28,29,30,31,32,11,6,8,1,9,10,18,23,26,27,28,29,30,31,32,11,6,8,1,9,10,1,1,11,11,18,23,26,27,28,29,30,31,32,11,6,8,1,9,10,18,1,18,1,1,18,1,11,1,1,1,1,52,11,23,26,26,27,27,28,28,29,29,30,30,31,31,32,32,11,6,8,1,10,18,18,23,26,27,28,29,30,31,32,11,6,8,1,9,10,52,52,23,1,1,1,18,23,26,27,28,29,30,31,32,11,6,8,1,9,10,6,6,6,6,18,23,26,27,28,29,30,31,32,11,6,8,1,9,10,11,11,18,1,23,6,1,18,11,11,1,1,52,52,52,52,6,1,9,1,11,11,18,1,18,1,1,6,1,62,62,63,63,11,62,62,63,63,62,63,11,11,62,62,63,63,11,11,11,11,6,1,1,1,11,6,6,1,18,1,1,6,18,1,1,1,1,23,23,23,23,11,0,1,6,1,23,23,23,1,6,8,1,9,10,26,27,28,29,30,31,32,18,23,26,27,28,29,30,31,32,11,6,8,1,9,10,18,23,26,27,28,29,30,31,32,11,6,8,1,9,10,62,62,18,23,26,27,28,29,30,31,32,11,6,8,1,9,10,1,9,52,6,1,11,1,11,1,11,1,11,1,11,1,11,11,1,1,1,1,1,11,52,52,11,0,0,0,45,59,45,59,45,58,45,45,45,45,59,45,59,45,59,59,59,45,59,45,45,45,59,45,59,45,58,45,58,45,45,45,59,45,59,45,59,45,59,45,45,58],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[1,2],[[1,-1],2,[[5,[[4,[3]]]]]],[[6,1],1],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[6,[[7,[2]]]],[-1,[[7,[2]]],[]],[6,6],[8,8],[1,1],[9,9],[10,10],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[11,[-1]],12],2,13],[[],6],[[],8],[[],9],[[],10],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[1,2],[1,9],[[[11,[-1]],-2],[],14,15],[[[11,[-1]],-2],[],16,17],[12,2],[12,2],[12,2],[12,2],[12,2],[12,2],[12,2],[12,2],[12,2],[12,2],[12,2],[12,2],[12,2],[12,2],[12,2],[18,19],[1,19],[18,19],[1,19],[[1,19],2],[18,19],[1,19],[[[11,[-1]]],[[7,[[21,[20]]]]],13],[1,2],[1,2],[1,2],[[1,-1],2,[[5,[[4,[3]]]]]],[-1,[[7,[2]]],[]],[[[11,[-1]]],[[7,[2]]],22],[[23,24],25],[[26,24],25],[[26,24],25],[[27,24],25],[[27,24],25],[[28,24],25],[[28,24],25],[[29,24],25],[[29,24],25],[[30,24],25],[[30,24],25],[[31,24],25],[[31,24],25],[[32,24],25],[[32,24],25],[[[11,[-1]],24],25,33],[[6,24],25],[[8,24],25],[[1,24],25],[[10,24],25],[18,34],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,35,[]],[-1,35,[]],[[],23],[[],1],[[1,36],2],[[1,36],2],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[6,12,1],1],[[6,1,1],1],[[6,1,1],1],[[6,12,1],1],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[18,37],[1,37],[23,37],[6,37],[1,37],[18,[[38,[36]]]],[[[11,[-1]]],12,14],[[[11,[-1]]],12,39],[1,[[38,[36]]]],[1,40],[[-1,12],[[7,[2]]],[]],[[-1,12],[[7,[2]]],[]],[[-1,12],[[7,[2]]],[]],[[-1,12],[[7,[2]]],[]],[[],6],[36,1],[[],9],[[],1],[[[11,[-1]]],38,41],[[[11,[-1]]],38,42],[18,43],[1,43],[18,36],[1,36],[1,40],[[6,-1],[[7,[2]]],[[44,[3]]]],[[1,-1],2,[[44,[3]]]],[-1,[[11,[-1]]],39],[-1,[[11,[-1]]],39],[-1,[[11,[-1]]],14],[-1,[[11,[-1]]],14],0,[[-1,36],[[11,[-1]]],[]],[[-1,36],[[11,[-1]]],[]],[[-1,36],[[11,[-1]]],[]],[[-1,36],[[11,[-1]]],[]],[[-1,1],[[11,[-1]]],[]],[[-1,1],[[11,[-1]]],[]],[[-1,1],[[11,[-2]]],[],[]],[[-1,1],[[11,[-2]]],[],[]],[[-1,45],[[11,[-1]]],39],[[-1,45],[[11,[-1]]],39],[[-1,45],[[11,[-1]]],14],[[-1,45],[[11,[-1]]],14],[[[11,[-1]],[21,[20]]],[[7,[12]]],46],[[[11,[-1]],[21,[20]]],[[7,[2]]],46],[[[11,[-1]],40],[[7,[12]]],46],[[[11,[-1]],[21,[47]]],[[7,[12]]],46],[[6,1],2],[1,2],[1,2],[1,2],[[[11,[-1]],48],[[7,[36]]],49],[[6,8],2],[[6,23],2],[[1,23],2],[[18,36],2],[[1,36],2],[[1,-1],2,[[5,[[4,[3]]]]]],[[6,37],2],[[18,36],2],[[1,36],2],[[1,-1],2,[[5,[[4,[3]]]]]],[[1,45],2],[[1,12],2],[[],23],[20,23],[[],23],[20,23],[[[11,[-1]]],[[7,[36]]],49],0,[1,45],[[6,-1],-2,50,[]],[[1,-1],-2,50,[]],[[51,20],23],[[[53,[52]]],23],[[[53,[52]],20],23],[1,2],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,40,[]],[-1,40,[]],[-1,40,[]],[-1,40,[]],[-1,40,[]],[-1,40,[]],[-1,40,[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[38,[[11,[-1]]]]],[]],[-1,[[38,[[11,[-1]]]]],[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[[1,-1],2,50],[9,[[38,[1]]]],[-1,35,[]],[23,6],[[[38,[36]],23],1],[[[11,[-1]],19],[[11,[-1]]],[]],[[1,19],1],[[[11,[-1]],10],[[11,[-1]]],[]],[[1,10],1],[[[11,[-1]],-2],[[11,[-1]]],[],[[5,[[4,[3]]]]]],[[1,-1],1,[[5,[[4,[3]]]]]],[[[11,[-1]],36],[[11,[-1]]],[]],[[1,36],1],[[[11,[-1]],-2],[[11,[-1]]],[],[[5,[[4,[3]]]]]],[[1,-1],1,[[5,[[4,[3]]]]]],[[[11,[-1]],-2],[],14,56],[[[11,[-1]],45],[[11,[-1]]],[]],[[1,45],1],[[1,12],1],[[1,-1],[[11,[-1]]],41],[[1,-1],[[11,[-1]]],46],[[1,-1],[[11,[-1]]],22],[[[11,[-1]],[21,[20]]],[[7,[12]]],22],[[-1,3],[[7,[2]]],[]],[[-1,3],[[7,[2]]],[]],[[[11,[-1]],[21,[57]]],[[7,[12]]],22],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[45,45],[-1,[[53,[58]]],[]],[[-1,-2],2,[],[]],[[],45],[[],45],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,2],[12,2],[[59,24],25],[[59,24],25],[-1,-1,[]],[-1,-1,[]],[45,3],[[45,36],3],[[],12],[[],12],[-1,-2,[],[]],[-1,-2,[],[]],[[45,3],45],[[-1,18,60],2,[]],[[45,3],[[54,[45,59]]]],[[-1,18,60],2,[]],[[45,3],45],[[45,[21,[3]]],45],[-1,-2,[],[]],[-1,40,[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,[[54,[-2]]],[],[]],[-1,55,[]],[-1,55,[]],[[45,3,-1],45,58],[3,[[54,[45,59]]]],[[-1,18,61],2,[]]],"c":[],"p":[[3,"ProgressBar",0],[15,"tuple"],[15,"str"],[4,"Cow",425],[8,"Into",426],[3,"MultiProgress",0],[6,"Result",427],[4,"MultiProgressAlignment",0],[3,"WeakProgressBar",0],[4,"ProgressFinish",0],[3,"ProgressBarIter",0],[15,"usize"],[8,"BufRead",428],[8,"IndexedParallelIterator",429],[8,"Consumer",430],[8,"ParallelIterator",429],[8,"UnindexedConsumer",430],[3,"ProgressState",0],[3,"Duration",431],[15,"u8"],[15,"slice"],[8,"Write",428],[3,"ProgressDrawTarget",0],[3,"Formatter",432],[6,"Result",432],[3,"FormattedDuration",0],[3,"HumanDuration",0],[3,"HumanBytes",0],[3,"DecimalBytes",0],[3,"BinaryBytes",0],[3,"HumanCount",0],[3,"HumanFloatCount",0],[8,"Debug",432],[15,"f32"],[15,"u16"],[15,"u64"],[15,"bool"],[4,"Option",433],[8,"ExactSizeIterator",434],[3,"String",435],[8,"Iterator",436],[8,"DoubleEndedIterator",437],[15,"f64"],[8,"AsRef",426],[3,"ProgressStyle",380],[8,"Read",428],[3,"IoSliceMut",428],[4,"SeekFrom",428],[8,"Seek",428],[8,"FnOnce",438],[3,"Term",439],[8,"TermLike",0],[3,"Box",440],[4,"Result",441],[3,"TypeId",442],[8,"ProducerCallback",430],[3,"IoSlice",428],[8,"ProgressTracker",380],[3,"TemplateError",380],[3,"Instant",443],[8,"Write",432],[8,"ProgressIterator",0],[8,"ParallelProgressIterator",0]],"b":[[140,"impl-Debug-for-FormattedDuration"],[141,"impl-Display-for-FormattedDuration"],[142,"impl-Debug-for-HumanDuration"],[143,"impl-Display-for-HumanDuration"],[144,"impl-Display-for-HumanBytes"],[145,"impl-Debug-for-HumanBytes"],[146,"impl-Debug-for-DecimalBytes"],[147,"impl-Display-for-DecimalBytes"],[148,"impl-Display-for-BinaryBytes"],[149,"impl-Debug-for-BinaryBytes"],[150,"impl-Debug-for-HumanCount"],[151,"impl-Display-for-HumanCount"],[152,"impl-Display-for-HumanFloatCount"],[153,"impl-Debug-for-HumanFloatCount"],[223,"impl-IndexedParallelIterator-for-ProgressBarIter%3CT%3E"],[224,"impl-ExactSizeIterator-for-ProgressBarIter%3CT%3E"],[398,"impl-Display-for-TemplateError"],[399,"impl-Debug-for-TemplateError"]]},\ "itoa":{"doc":"github crates-io docs-rs","t":"DILLLLLLLLLLL","n":["Buffer","Integer","borrow","borrow_mut","clone","default","format","from","into","new","try_from","try_into","type_id"],"q":[[0,"itoa"],[13,"core::result"],[14,"core::any"]],"d":["A correctly sized stack allocation for the formatted …","An integer that can be written into an itoa::Buffer.","","","","","Print an integer into this buffer and return a reference …","Returns the argument unchanged.","Calls U::from(self).","This is a cheap operation; you don’t need to worry about …","","",""],"i":[0,0,1,1,1,1,1,1,1,1,1,1,1],"f":[0,0,[-1,-2,[],[]],[-1,-2,[],[]],[1,1],[[],1],[[1,-1],2,3],[-1,-1,[]],[-1,-2,[],[]],[[],1],[-1,[[4,[-2]]],[],[]],[-1,[[4,[-2]]],[],[]],[-1,5,[]]],"c":[],"p":[[3,"Buffer",0],[15,"str"],[8,"Integer",0],[4,"Result",13],[3,"TypeId",14]],"b":[]},\ diff --git a/docs/src/hsc/genotype.rs.html b/docs/src/hsc/genotype.rs.html index 947243498..594b7a062 100644 --- a/docs/src/hsc/genotype.rs.html +++ b/docs/src/hsc/genotype.rs.html @@ -304,6 +304,27 @@ 304 305 306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327
        use anyhow::{ensure, Context};
         use rand::Rng;
         use rand_distr::{Distribution, Poisson};
        @@ -332,10 +353,18 @@
         /// [Poisson point process](https://en.wikipedia.org/wiki/Poisson_point_process).
         #[derive(Debug, Clone)]
         pub struct NeutralMutationPoisson {
        -    background: f32,
        +    pub lambda_background: f32,
        +    pub lambda_division: f32,
             division: Poisson<f32>,
         }
         
        +impl PartialEq for NeutralMutationPoisson {
        +    fn eq(&self, other: &Self) -> bool {
        +        (self.lambda_division - other.lambda_division).abs() < f32::EPSILON
        +            && (self.lambda_background - other.lambda_background).abs() < f32::EPSILON
        +    }
        +}
        +
         impl Default for NeutralMutationPoisson {
             fn default() -> Self {
                 NeutralMutationPoisson::new(1., 1.).unwrap()
        @@ -351,7 +380,8 @@
                 ensure!(lambda_division > 0., "invalid value of lambda_division");
                 ensure!(lambda_background > 0., "invalid value of lambda_background");
                 Ok(Self {
        -            background: lambda_background,
        +            lambda_background,
        +            lambda_division,
                     division: Poisson::new(lambda_division)
                         .with_context(|| {
                             format!(
        @@ -383,11 +413,11 @@
                 if verbosity > 1 {
                     println!(
                         "interdivison_time = {} and background lambda {}",
        -                interdivison_time, self.background
        +                interdivison_time, self.lambda_background
                     );
                 }
        -        if interdivison_time > 0.01 {
        -            let background = Poisson::new(self.background * interdivison_time).unwrap();
        +        if interdivison_time > 0.001 {
        +            let background = Poisson::new(self.lambda_background * interdivison_time).unwrap();
                     let nb_mutations = nb_neutral_mutations(&background, rng);
                     if verbosity > 1 {
                         println!("{} background mutations", nb_mutations);
        @@ -422,7 +452,7 @@
                 //! Compute the SFS from the stem cell population.
                 if verbosity > 0 {
                     println!("computing the SFS from {} cells", cells.len());
        -            if verbosity > 0 {
        +            if verbosity > 1 {
                         println!("computing the SFS from {:#?}", &cells);
                     }
                 }
        @@ -530,6 +560,8 @@
             use rand_chacha::ChaCha8Rng;
             use rand_distr::Poisson;
         
        +    use crate::tests::LambdaFromNonZeroU8;
        +
             use super::*;
         
             #[quickcheck]
        @@ -537,7 +569,8 @@
                 let mut rng = ChaCha8Rng::seed_from_u64(seed);
                 let poisson = Poisson::new(0.0001).unwrap();
                 NeutralMutationPoisson {
        -            background: 0.0001,
        +            lambda_background: 0.0001,
        +            lambda_division: 0.0001,
                     division: poisson,
                 }
                 .new_muts_upon_division(&mut rng)
        @@ -609,5 +642,14 @@
                 assert_eq!(jcells, [1, 2, 3, 4]);
                 assert_eq!(jmuts, [3, 1, 1, 1]);
             }
        +
        +    #[quickcheck]
        +    fn partial_eq_neutral_poisson_test(
        +        lambda_division: LambdaFromNonZeroU8,
        +        lambda_background: LambdaFromNonZeroU8,
        +    ) -> bool {
        +        let poissons = NeutralMutationPoisson::new(lambda_division.0, lambda_background.0).unwrap();
        +        poissons == NeutralMutationPoisson::new(lambda_division.0, lambda_background.0).unwrap()
        +    }
         }
         
        \ No newline at end of file diff --git a/docs/src/hsc/process.rs.html b/docs/src/hsc/process.rs.html index 1b1bd6739..59c198eae 100644 --- a/docs/src/hsc/process.rs.html +++ b/docs/src/hsc/process.rs.html @@ -693,6 +693,18 @@ 693 694 695 +696 +697 +698 +699 +700 +701 +702 +703 +704 +705 +706 +707
        use crate::genotype::{MutationalBurden, Sfs};
         use crate::proliferation::{MutateUponDivision, Proliferation};
         use crate::stemcell::{assign_background_mutations, StemCell};
        @@ -794,8 +806,8 @@
                 save_population: bool,
                 rng: &mut impl Rng,
             ) -> Moran {
        -        if self.verbosity > 1 {
        -            println!("switching to Moran");
        +        if self.verbosity > 0 {
        +            println!("switching to Moran at time {}", self.time);
                 }
                 let mut moran = Moran {
                     subclones: self.subclones,
        @@ -818,7 +830,10 @@
                         // cells do not proliferate at the same rate, we need to correct and
                         // update the background mutations at the timepoint corresponding
                         // to sampling step, i.e. before saving.
        -                for stem_cell in moran.subclones.get_mut_cells() {
        +                if self.verbosity > 0 {
        +                    println!("updating the neutral background mutations for all cells");
        +                }
        +                for stem_cell in moran.subclones.get_mut_cells() {
                             assign_background_mutations(
                                 stem_cell,
                                 self.time,
        @@ -1023,6 +1038,9 @@
                 cells_with_idx: Vec<(&StemCell, usize)>,
                 save_sfs_only: bool,
             ) -> anyhow::Result<()> {
        +        if self.verbosity > 0 {
        +            println!("saving data at time {}", time);
        +        }
                 let cells: Vec<&StemCell> = cells_with_idx.iter().map(|ele| ele.0).collect();
                 let nb_cells = cells.len();
         
        @@ -1060,7 +1078,7 @@
         
                 if self.verbosity > 0 {
                     println!(
        -                "saving measurements after {} mutational events",
        +                "saved measurements after {} mutational events",
                         self.counter_divisions
                     );
                 }
        @@ -1074,6 +1092,9 @@
                 save_sfs_only: bool,
                 rng: &mut impl Rng,
             ) -> anyhow::Result<()> {
        +        if self.verbosity > 0 {
        +            println!("saving process at time {}", time);
        +        }
                 match self.proliferation {
                     MutateUponDivision::DivisionAndBackgroundMutations(_) => {
                         // this is important: we update all background mutations at this
        @@ -1082,7 +1103,10 @@
                         // cells do not proliferate at the same rate, we need to correct and
                         // update the background mutations at the timepoint corresponding
                         // to sampling step, i.e. before saving.
        -                for stem_cell in self.subclones.get_mut_cells() {
        +                if self.verbosity > 0 {
        +                    println!("updating the neutral background mutations for all cells");
        +                }
        +                for stem_cell in self.subclones.get_mut_cells() {
                             assign_background_mutations(
                                 stem_cell,
                                 self.time,
        diff --git a/docs/src/hsc/stemcell.rs.html b/docs/src/hsc/stemcell.rs.html
        index 59b99d6d8..f47d07d07 100644
        --- a/docs/src/hsc/stemcell.rs.html
        +++ b/docs/src/hsc/stemcell.rs.html
        @@ -103,6 +103,24 @@
         103
         104
         105
        +106
        +107
        +108
        +109
        +110
        +111
        +112
        +113
        +114
        +115
        +116
        +117
        +118
        +119
        +120
        +121
        +122
        +123
         
        use rand::Rng;
         
         use crate::genotype::{NeutralMutationPoisson, Variant};
        @@ -164,6 +182,8 @@
         ) {
             //! Assign background mutations to all cells in the system based on the
             //! current simulation time.
        +    //!
        +    //! This updates also the time of the last division for the cell
             let interdivison_time = time - stem_cell.last_division_t;
             // 2. draw background mutations and assign them to `c`
             if let Some(background) = neutral_poisson.new_muts_background(interdivison_time, rng, verbosity)
        @@ -184,6 +204,8 @@
         mod tests {
             use super::*;
             use quickcheck_macros::quickcheck;
        +    use rand::SeedableRng;
        +    use rand_chacha::ChaCha8Rng;
             use std::num::NonZeroU8;
             use uuid::Uuid;
         
        @@ -207,5 +229,19 @@
                 mutate(&mut cell, mutations);
                 nb_mutations.get() as usize == cell.burden()
             }
        +
        +    #[quickcheck]
        +    fn assign_background_mutations_test(seed: u64) -> bool {
        +        let rng = &mut ChaCha8Rng::seed_from_u64(seed);
        +        let mutations = vec![Variant::new_v4()];
        +        let time = 9.1;
        +        let mut stem_cell = StemCell::with_mutations(mutations.clone());
        +        let poissons = NeutralMutationPoisson::new(1.1, 12f32).unwrap();
        +
        +        assign_background_mutations(&mut stem_cell, time, &poissons, rng, 0);
        +        mutations != stem_cell.variants
        +            && mutations.len() < stem_cell.variants.len()
        +            && (stem_cell.last_division_t - time).abs() < f32::EPSILON
        +    }
         }
         
      \ No newline at end of file diff --git a/docs/src/hsc/subclone.rs.html b/docs/src/hsc/subclone.rs.html index 4559fba94..75f9a4fa9 100644 --- a/docs/src/hsc/subclone.rs.html +++ b/docs/src/hsc/subclone.rs.html @@ -547,6 +547,21 @@ 547 548 549 +550 +551 +552 +553 +554 +555 +556 +557 +558 +559 +560 +561 +562 +563 +564
      use crate::genotype::NeutralMutationPoisson;
       use crate::{stemcell::StemCell, write2file, MAX_SUBCLONES};
       use anyhow::{ensure, Context};
      @@ -569,7 +584,7 @@
       impl Distributions {
           pub fn new(u: f64, background: f32, division: f32, verbosity: u8) -> Self {
               if verbosity > 1 {
      -            println!("creating distributions with p_fitness: {}", u);
      +            println!("creating distributions with p_fitness: {}, lambda_background: {}, lambda_division: {}", u, background, division);
               }
               Self {
                   bern: Bernoulli::new(u).expect("Invalid p: p<0 or p>1"),
      @@ -994,6 +1009,8 @@
       
       #[cfg(test)]
       mod tests {
      +    use crate::tests::LambdaFromNonZeroU8;
      +
           use super::*;
           use quickcheck_macros::quickcheck;
           use rand::SeedableRng;
      @@ -1095,5 +1112,18 @@
           fn new_distribution_wrong_p_neg_test() {
               Distributions::new(-0.9, 1.1, 1.1, 0);
           }
      +
      +    #[quickcheck]
      +    fn new_distribution_test(
      +        lambda_division: LambdaFromNonZeroU8,
      +        lambda_background: LambdaFromNonZeroU8,
      +    ) -> bool {
      +        let distrs = Distributions::new(0.1, lambda_background.0, lambda_division.0, 0);
      +        distrs.neutral_poisson.eq(&NeutralMutationPoisson::new(
      +            lambda_division.0,
      +            lambda_background.0,
      +        )
      +        .unwrap())
      +    }
       }
       
      \ No newline at end of file diff --git a/docs/trait.impl/core/clone/trait.Clone.js b/docs/trait.impl/core/clone/trait.Clone.js index 2ebc74204..acd92f536 100644 --- a/docs/trait.impl/core/clone/trait.Clone.js +++ b/docs/trait.impl/core/clone/trait.Clone.js @@ -13,7 +13,7 @@ "crossbeam_utils":[["impl Clone for WaitGroup"],["impl Clone for Unparker"],["impl<T: Clone> Clone for CachePadded<T>"]], "either":[["impl<L: Clone, R: Clone> Clone for Either<L, R>"]], "getrandom":[["impl Clone for Error"]], -"hsc":[["impl Clone for SubClone"],["impl Clone for Snapshot"],["impl Clone for SavingOptions"],["impl Clone for Distributions"],["impl Clone for CellDivisionProbabilities"],["impl Clone for Fitness"],["impl Clone for Exponential"],["impl Clone for SavingCells"],["impl Clone for DivisionMutationsProliferation"],["impl Clone for MutateUponDivision"],["impl Clone for SubClones"],["impl Clone for DivisionAndBackgroundMutationsProliferation"],["impl Clone for Moran"],["impl Clone for ProcessOptions"],["impl Clone for NeutralMutationPoisson"],["impl Clone for StemCell"]], +"hsc":[["impl Clone for Exponential"],["impl Clone for DivisionMutationsProliferation"],["impl Clone for SavingCells"],["impl Clone for Moran"],["impl Clone for SubClones"],["impl Clone for StemCell"],["impl Clone for DivisionAndBackgroundMutationsProliferation"],["impl Clone for Distributions"],["impl Clone for Fitness"],["impl Clone for MutateUponDivision"],["impl Clone for CellDivisionProbabilities"],["impl Clone for SavingOptions"],["impl Clone for ProcessOptions"],["impl Clone for SubClone"],["impl Clone for NeutralMutationPoisson"],["impl Clone for Snapshot"]], "indicatif":[["impl Clone for Box<dyn ProgressTracker>"],["impl Clone for MultiProgressAlignment"],["impl Clone for MultiProgress"],["impl Clone for ProgressFinish"],["impl Clone for ProgressStyle"],["impl Clone for WeakProgressBar"],["impl Clone for ProgressBar"]], "itoa":[["impl Clone for Buffer"]], "libc":[["impl Clone for siginfo_t"],["impl Clone for __c_anonymous_ptrace_syscall_info_exit"],["impl Clone for termios2"],["impl Clone for sock_fprog"],["impl Clone for glob64_t"],["impl Clone for max_align_t"],["impl Clone for nlmsghdr"],["impl Clone for packet_mreq"],["impl Clone for uinput_setup"],["impl Clone for sockaddr_storage"],["impl Clone for pthread_rwlockattr_t"],["impl Clone for utimbuf"],["impl Clone for signalfd_siginfo"],["impl Clone for input_id"],["impl Clone for uinput_ff_erase"],["impl Clone for dl_phdr_info"],["impl Clone for itimerval"],["impl Clone for sockaddr_alg"],["impl Clone for input_absinfo"],["impl Clone for sctp_sndrcvinfo"],["impl Clone for seccomp_notif_sizes"],["impl Clone for af_alg_iv"],["impl Clone for nl_mmap_hdr"],["impl Clone for fpos64_t"],["impl Clone for if_nameindex"],["impl Clone for Elf64_Shdr"],["impl Clone for protoent"],["impl Clone for in_pktinfo"],["impl Clone for sigaction"],["impl Clone for ipc_perm"],["impl Clone for msqid_ds"],["impl Clone for servent"],["impl Clone for arpreq"],["impl Clone for Elf64_Chdr"],["impl Clone for arpd_request"],["impl Clone for sigval"],["impl Clone for genlmsghdr"],["impl Clone for cpu_set_t"],["impl Clone for mallinfo2"],["impl Clone for uinput_abs_setup"],["impl Clone for Elf64_Ehdr"],["impl Clone for pthread_condattr_t"],["impl Clone for statfs"],["impl Clone for iovec"],["impl Clone for in_addr"],["impl Clone for sockaddr_vm"],["impl Clone for dqblk"],["impl Clone for ptrace_rseq_configuration"],["impl Clone for ptrace_peeksiginfo_args"],["impl Clone for statvfs64"],["impl Clone for DIR"],["impl Clone for pthread_cond_t"],["impl Clone for sctp_initmsg"],["impl Clone for open_how"],["impl Clone for pthread_barrierattr_t"],["impl Clone for pthread_mutexattr_t"],["impl Clone for rtentry"],["impl Clone for ntptimeval"],["impl Clone for itimerspec"],["impl Clone for uinput_user_dev"],["impl Clone for pthread_attr_t"],["impl Clone for timeval"],["impl Clone for posix_spawn_file_actions_t"],["impl Clone for sockaddr_can"],["impl Clone for Elf32_Phdr"],["impl Clone for fanotify_event_metadata"],["impl Clone for nl_pktinfo"],["impl Clone for ff_trigger"],["impl Clone for _libc_xmmreg"],["impl Clone for option"],["impl Clone for msghdr"],["impl Clone for stat"],["impl Clone for ff_constant_effect"],["impl Clone for fd_set"],["impl Clone for FILE"],["impl Clone for __timeval"],["impl Clone for __c_anonymous_sockaddr_can_tp"],["impl Clone for fpos_t"],["impl Clone for sctp_sndinfo"],["impl Clone for Elf32_Chdr"],["impl Clone for pollfd"],["impl Clone for __c_anonymous_sockaddr_can_j1939"],["impl Clone for Elf64_Phdr"],["impl Clone for fsid_t"],["impl Clone for ff_condition_effect"],["impl Clone for stack_t"],["impl Clone for sockaddr_nl"],["impl Clone for __exit_status"],["impl Clone for cmsghdr"],["impl Clone for user"],["impl Clone for regmatch_t"],["impl Clone for in6_rtmsg"],["impl Clone for winsize"],["impl Clone for nlattr"],["impl Clone for Elf32_Shdr"],["impl Clone for statfs64"],["impl Clone for passwd"],["impl Clone for clone_args"],["impl Clone for statvfs"],["impl Clone for utmpx"],["impl Clone for can_frame"],["impl Clone for termios"],["impl Clone for nl_mmap_req"],["impl Clone for __c_anonymous_ptrace_syscall_info_seccomp"],["impl Clone for ff_envelope"],["impl Clone for sockaddr_ll"],["impl Clone for can_filter"],["impl Clone for sctp_authinfo"],["impl Clone for sctp_rcvinfo"],["impl Clone for nlmsgerr"],["impl Clone for rlimit64"],["impl Clone for canfd_frame"],["impl Clone for semid_ds"],["impl Clone for addrinfo"],["impl Clone for user_regs_struct"],["impl Clone for in6_pktinfo"],["impl Clone for mmsghdr"],["impl Clone for dirent"],["impl Clone for sock_txtime"],["impl Clone for statx"],["impl Clone for sock_extended_err"],["impl Clone for _libc_fpstate"],["impl Clone for __c_anonymous_ptrace_syscall_info_entry"],["impl Clone for ifaddrs"],["impl Clone for lconv"],["impl Clone for sockaddr_in"],["impl Clone for timezone"],["impl Clone for sockaddr"],["impl Clone for flock"],["impl Clone for __c_anonymous_ifr_ifru"],["impl Clone for pthread_barrier_t"],["impl Clone for ip_mreqn"],["impl Clone for sock_filter"],["impl Clone for input_mask"],["impl Clone for __c_anonymous_sockaddr_can_can_addr"],["impl Clone for ifreq"],["impl Clone for tms"],["impl Clone for sockaddr_un"],["impl Clone for sctp_nxtinfo"],["impl Clone for shmid_ds"],["impl Clone for sembuf"],["impl Clone for flock64"],["impl Clone for ucred"],["impl Clone for hwtstamp_config"],["impl Clone for file_clone_range"],["impl Clone for mq_attr"],["impl Clone for ff_replay"],["impl Clone for sigset_t"],["impl Clone for timespec"],["impl Clone for user_fpregs_struct"],["impl Clone for regex_t"],["impl Clone for group"],["impl Clone for sigevent"],["impl Clone for aiocb"],["impl Clone for ptrace_syscall_info"],["impl Clone for mcontext_t"],["impl Clone for utsname"],["impl Clone for arpreq_old"],["impl Clone for stat64"],["impl Clone for input_event"],["impl Clone for pthread_rwlock_t"],["impl Clone for uinput_ff_upload"],["impl Clone for mallinfo"],["impl Clone for posix_spawnattr_t"],["impl Clone for seccomp_data"],["impl Clone for statx_timestamp"],["impl Clone for sysinfo"],["impl Clone for in6_ifreq"],["impl Clone for rlimit"],["impl Clone for ff_rumble_effect"],["impl Clone for j1939_filter"],["impl Clone for ip_mreq_source"],["impl Clone for spwd"],["impl Clone for tm"],["impl Clone for __c_anonymous_ifru_map"],["impl Clone for Dl_info"],["impl Clone for ff_effect"],["impl Clone for timex"],["impl Clone for sched_param"],["impl Clone for sem_t"],["impl Clone for input_keymap_entry"],["impl Clone for sockaddr_in6"],["impl Clone for Elf32_Sym"],["impl Clone for _libc_fpxreg"],["impl Clone for seminfo"],["impl Clone for ipv6_mreq"],["impl Clone for ucontext_t"],["impl Clone for ff_periodic_effect"],["impl Clone for in6_addr"],["impl Clone for sctp_prinfo"],["impl Clone for inotify_event"],["impl Clone for __c_anonymous_ptrace_syscall_info_data"],["impl Clone for glob_t"],["impl Clone for ff_ramp_effect"],["impl Clone for mntent"],["impl Clone for ip_mreq"],["impl Clone for epoll_event"],["impl Clone for arphdr"],["impl Clone for msginfo"],["impl Clone for hostent"],["impl Clone for Elf32_Ehdr"],["impl Clone for dirent64"],["impl Clone for fanotify_response"],["impl Clone for pthread_mutex_t"],["impl Clone for rusage"],["impl Clone for linger"],["impl Clone for Elf64_Sym"]], diff --git a/docs/trait.impl/core/cmp/trait.PartialEq.js b/docs/trait.impl/core/cmp/trait.PartialEq.js index 193925c0d..ca34a7254 100644 --- a/docs/trait.impl/core/cmp/trait.PartialEq.js +++ b/docs/trait.impl/core/cmp/trait.PartialEq.js @@ -12,7 +12,7 @@ "crossbeam_utils":[["impl<T: PartialEq> PartialEq for CachePadded<T>"]], "either":[["impl<L: PartialEq, R: PartialEq> PartialEq for Either<L, R>"]], "getrandom":[["impl PartialEq for Error"]], -"hsc":[["impl PartialEq for Stats2Save"]], +"hsc":[["impl PartialEq for Stats2Save"],["impl PartialEq for NeutralMutationPoisson"]], "number_prefix":[["impl<F: PartialEq> PartialEq for NumberPrefix<F>"],["impl PartialEq for Prefix"]], "once_cell":[["impl<T: PartialEq> PartialEq for OnceCell<T>"],["impl<T: PartialEq> PartialEq for OnceCell<T>"]], "ppv_lite86":[["impl PartialEq for vec512_storage"],["impl PartialEq for vec128_storage"],["impl PartialEq for vec256_storage"]], diff --git a/docs/trait.impl/core/convert/trait.From.js b/docs/trait.impl/core/convert/trait.From.js index 0c9c4fa80..a35685adb 100644 --- a/docs/trait.impl/core/convert/trait.From.js +++ b/docs/trait.impl/core/convert/trait.From.js @@ -8,7 +8,7 @@ "crossbeam_utils":[["impl<T> From<T> for CachePadded<T>"],["impl<T> From<T> for AtomicCell<T>"],["impl<T> From<T> for ShardedLock<T>"]], "either":[["impl<L, R> From<Result<R, L>> for Either<L, R>"]], "getrandom":[["impl From<NonZeroU32> for Error"],["impl From<Error> for Error"]], -"hsc":[["impl From<DivisionAndBackgroundMutationsProliferation> for MutateUponDivision"],["impl From<DivisionMutationsProliferation> for MutateUponDivision"],["impl From<Vec<(StemCell, usize)>> for SubClones"]], +"hsc":[["impl From<DivisionAndBackgroundMutationsProliferation> for MutateUponDivision"],["impl From<Vec<(StemCell, usize)>> for SubClones"],["impl From<DivisionMutationsProliferation> for MutateUponDivision"]], "iana_time_zone":[["impl From<Error> for GetTimezoneError"]], "once_cell":[["impl<T> From<T> for OnceCell<T>"],["impl<T> From<T> for OnceCell<T>"]], "portable_atomic":[["impl From<u64> for AtomicU64"],["impl From<u32> for AtomicU32"],["impl From<bool> for AtomicBool"],["impl<T> From<*mut T> for AtomicPtr<T>"],["impl From<i16> for AtomicI16"],["impl From<i32> for AtomicI32"],["impl From<i8> for AtomicI8"],["impl From<u8> for AtomicU8"],["impl From<i64> for AtomicI64"],["impl From<usize> for AtomicUsize"],["impl From<u16> for AtomicU16"],["impl From<i128> for AtomicI128"],["impl From<isize> for AtomicIsize"],["impl From<u128> for AtomicU128"]], diff --git a/docs/trait.impl/core/convert/trait.TryInto.js b/docs/trait.impl/core/convert/trait.TryInto.js index 555b4f484..1b21e3175 100644 --- a/docs/trait.impl/core/convert/trait.TryInto.js +++ b/docs/trait.impl/core/convert/trait.TryInto.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hsc":[["impl TryInto<DivisionMutationsProliferation> for MutateUponDivision"],["impl TryInto<DivisionAndBackgroundMutationsProliferation> for MutateUponDivision"]] +"hsc":[["impl TryInto<DivisionAndBackgroundMutationsProliferation> for MutateUponDivision"],["impl TryInto<DivisionMutationsProliferation> for MutateUponDivision"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/default/trait.Default.js b/docs/trait.impl/core/default/trait.Default.js index 278927b29..ca3f5c23e 100644 --- a/docs/trait.impl/core/default/trait.Default.js +++ b/docs/trait.impl/core/default/trait.Default.js @@ -11,7 +11,7 @@ "crossbeam_deque":[["impl<T> Default for Injector<T>"]], "crossbeam_epoch":[["impl<T: ?Sized + Pointable> Default for Shared<'_, T>"],["impl<T: ?Sized + Pointable> Default for Atomic<T>"],["impl Default for Collector"]], "crossbeam_utils":[["impl Default for Backoff"],["impl Default for Parker"],["impl<T: Default> Default for ShardedLock<T>"],["impl<T: Default> Default for AtomicCell<T>"],["impl<T: Default> Default for CachePadded<T>"],["impl Default for WaitGroup"]], -"hsc":[["impl Default for NeutralMutationPoisson"],["impl Default for SubClones"],["impl Default for Distributions"],["impl Default for MutateUponDivision"],["impl Default for StemCell"],["impl Default for Moran"]], +"hsc":[["impl Default for MutateUponDivision"],["impl Default for StemCell"],["impl Default for SubClones"],["impl Default for Moran"],["impl Default for NeutralMutationPoisson"],["impl Default for Distributions"]], "indicatif":[["impl Default for WeakProgressBar"],["impl Default for MultiProgressAlignment"],["impl Default for ProgressFinish"],["impl Default for MultiProgress"]], "itoa":[["impl Default for Buffer"]], "once_cell":[["impl<T: Default> Default for Lazy<T>"],["impl Default for OnceNonZeroUsize"],["impl<T> Default for OnceCell<T>"],["impl<T> Default for OnceCell<T>"],["impl Default for OnceBool"],["impl<'a, T> Default for OnceRef<'a, T>"],["impl<T: Default> Default for Lazy<T>"],["impl<T> Default for OnceBox<T>"]], diff --git a/docs/trait.impl/core/fmt/trait.Debug.js b/docs/trait.impl/core/fmt/trait.Debug.js index 4be65c587..2b5162ceb 100644 --- a/docs/trait.impl/core/fmt/trait.Debug.js +++ b/docs/trait.impl/core/fmt/trait.Debug.js @@ -13,7 +13,7 @@ "crossbeam_utils":[["impl<T: Debug> Debug for ShardedLockWriteGuard<'_, T>"],["impl Debug for Backoff"],["impl Debug for WaitGroup"],["impl<T: Debug> Debug for ShardedLockReadGuard<'_, T>"],["impl Debug for Unparker"],["impl<T> Debug for ScopedJoinHandle<'_, T>"],["impl Debug for Parker"],["impl<'scope, 'env> Debug for ScopedThreadBuilder<'scope, 'env>"],["impl Debug for Scope<'_>"],["impl<T: Copy + Debug> Debug for AtomicCell<T>"],["impl<T: ?Sized + Debug> Debug for ShardedLock<T>"],["impl<T: Debug> Debug for CachePadded<T>"]], "either":[["impl<L: Debug, R: Debug> Debug for Either<L, R>"]], "getrandom":[["impl Debug for Error"]], -"hsc":[["impl Debug for Fitness"],["impl Debug for CellDivisionProbabilities"],["impl Debug for DivisionMutationsProliferation"],["impl Debug for Snapshot"],["impl Debug for Moran"],["impl Debug for Exponential"],["impl Debug for MutateUponDivision"],["impl Debug for DivisionAndBackgroundMutationsProliferation"],["impl Debug for Distributions"],["impl Debug for NeutralMutationPoisson"],["impl Debug for SubClone"],["impl Debug for StemCell"],["impl Debug for SavingOptions"],["impl Debug for SavingCells"],["impl Debug for SubClones"],["impl Debug for ProcessOptions"]], +"hsc":[["impl Debug for CellDivisionProbabilities"],["impl Debug for MutateUponDivision"],["impl Debug for Moran"],["impl Debug for ProcessOptions"],["impl Debug for SubClone"],["impl Debug for DivisionMutationsProliferation"],["impl Debug for Exponential"],["impl Debug for SavingCells"],["impl Debug for SavingOptions"],["impl Debug for Snapshot"],["impl Debug for StemCell"],["impl Debug for SubClones"],["impl Debug for DivisionAndBackgroundMutationsProliferation"],["impl Debug for Fitness"],["impl Debug for NeutralMutationPoisson"],["impl Debug for Distributions"]], "iana_time_zone":[["impl Debug for GetTimezoneError"]], "indicatif":[["impl Debug for HumanBytes"],["impl Debug for FormattedDuration"],["impl Debug for ProgressDrawTarget"],["impl Debug for DecimalBytes"],["impl Debug for HumanFloatCount"],["impl Debug for MultiProgressAlignment"],["impl<T: Debug> Debug for ProgressBarIter<T>"],["impl Debug for MultiProgress"],["impl Debug for ProgressBar"],["impl Debug for ProgressFinish"],["impl Debug for HumanDuration"],["impl Debug for HumanCount"],["impl Debug for TemplateError"],["impl Debug for BinaryBytes"]], "num_traits":[["impl Debug for FloatErrorKind"],["impl Debug for ParseFloatError"]], diff --git a/docs/trait.impl/core/marker/trait.Copy.js b/docs/trait.impl/core/marker/trait.Copy.js index 150e29c15..b5606fa48 100644 --- a/docs/trait.impl/core/marker/trait.Copy.js +++ b/docs/trait.impl/core/marker/trait.Copy.js @@ -10,7 +10,7 @@ "crossbeam_utils":[["impl<T: Copy> Copy for CachePadded<T>"]], "either":[["impl<L: Copy, R: Copy> Copy for Either<L, R>"]], "getrandom":[["impl Copy for Error"]], -"hsc":[["impl Copy for Fitness"],["impl Copy for SavingCells"]], +"hsc":[["impl Copy for SavingCells"],["impl Copy for Fitness"]], "indicatif":[["impl Copy for MultiProgressAlignment"]], "libc":[["impl Copy for ff_condition_effect"],["impl Copy for user"],["impl Copy for sigset_t"],["impl Copy for pthread_condattr_t"],["impl Copy for ip_mreq_source"],["impl Copy for ifaddrs"],["impl Copy for mq_attr"],["impl Copy for itimerval"],["impl Copy for iovec"],["impl Copy for uinput_setup"],["impl Copy for __c_anonymous_ptrace_syscall_info_data"],["impl Copy for __c_anonymous_sockaddr_can_tp"],["impl Copy for can_frame"],["impl Copy for __c_anonymous_ifr_ifru"],["impl Copy for regmatch_t"],["impl Copy for in6_ifreq"],["impl Copy for stat"],["impl Copy for statx_timestamp"],["impl Copy for packet_mreq"],["impl Copy for input_keymap_entry"],["impl Copy for dirent64"],["impl Copy for statfs"],["impl Copy for sctp_prinfo"],["impl Copy for mmsghdr"],["impl Copy for uinput_ff_erase"],["impl Copy for input_id"],["impl Copy for arphdr"],["impl Copy for sigevent"],["impl Copy for ff_replay"],["impl Copy for flock64"],["impl Copy for sock_txtime"],["impl Copy for sigaction"],["impl Copy for mallinfo2"],["impl Copy for termios2"],["impl Copy for rtentry"],["impl Copy for ff_trigger"],["impl Copy for sctp_authinfo"],["impl Copy for sockaddr_alg"],["impl Copy for pollfd"],["impl Copy for arpreq_old"],["impl Copy for msqid_ds"],["impl Copy for dirent"],["impl Copy for _libc_fpstate"],["impl Copy for canfd_frame"],["impl Copy for mntent"],["impl Copy for in_addr"],["impl Copy for uinput_user_dev"],["impl Copy for posix_spawn_file_actions_t"],["impl Copy for seccomp_data"],["impl Copy for dl_phdr_info"],["impl Copy for utmpx"],["impl Copy for Elf64_Chdr"],["impl Copy for ipc_perm"],["impl Copy for glob64_t"],["impl Copy for stack_t"],["impl Copy for __c_anonymous_ptrace_syscall_info_entry"],["impl Copy for ff_envelope"],["impl Copy for ff_periodic_effect"],["impl Copy for in6_rtmsg"],["impl Copy for nl_mmap_req"],["impl Copy for sockaddr_in6"],["impl Copy for fd_set"],["impl Copy for genlmsghdr"],["impl Copy for fsid_t"],["impl Copy for statx"],["impl Copy for pthread_rwlock_t"],["impl Copy for sctp_sndinfo"],["impl Copy for pthread_rwlockattr_t"],["impl Copy for sockaddr_nl"],["impl Copy for flock"],["impl Copy for ptrace_syscall_info"],["impl Copy for Elf64_Ehdr"],["impl Copy for ff_effect"],["impl Copy for sigval"],["impl Copy for passwd"],["impl Copy for option"],["impl Copy for Dl_info"],["impl Copy for __exit_status"],["impl Copy for nl_mmap_hdr"],["impl Copy for seminfo"],["impl Copy for timex"],["impl Copy for signalfd_siginfo"],["impl Copy for itimerspec"],["impl Copy for nlattr"],["impl Copy for uinput_abs_setup"],["impl Copy for mcontext_t"],["impl Copy for linger"],["impl Copy for pthread_mutex_t"],["impl Copy for sysinfo"],["impl Copy for tm"],["impl Copy for __c_anonymous_sockaddr_can_j1939"],["impl Copy for sock_filter"],["impl Copy for sem_t"],["impl Copy for sockaddr_ll"],["impl Copy for arpd_request"],["impl Copy for sctp_nxtinfo"],["impl Copy for pthread_barrierattr_t"],["impl Copy for cmsghdr"],["impl Copy for can_filter"],["impl Copy for Elf32_Sym"],["impl Copy for Elf32_Ehdr"],["impl Copy for hwtstamp_config"],["impl Copy for regex_t"],["impl Copy for ntptimeval"],["impl Copy for group"],["impl Copy for rusage"],["impl Copy for utsname"],["impl Copy for user_regs_struct"],["impl Copy for clone_args"],["impl Copy for timeval"],["impl Copy for sctp_initmsg"],["impl Copy for sock_extended_err"],["impl Copy for termios"],["impl Copy for ff_ramp_effect"],["impl Copy for ucontext_t"],["impl Copy for ff_rumble_effect"],["impl Copy for pthread_barrier_t"],["impl Copy for _libc_fpxreg"],["impl Copy for inotify_event"],["impl Copy for semid_ds"],["impl Copy for input_mask"],["impl Copy for pthread_mutexattr_t"],["impl Copy for tms"],["impl Copy for sembuf"],["impl Copy for ptrace_rseq_configuration"],["impl Copy for statvfs"],["impl Copy for sockaddr_in"],["impl Copy for arpreq"],["impl Copy for sctp_rcvinfo"],["impl Copy for __c_anonymous_ptrace_syscall_info_exit"],["impl Copy for fpos_t"],["impl Copy for __c_anonymous_sockaddr_can_can_addr"],["impl Copy for sockaddr_storage"],["impl Copy for uinput_ff_upload"],["impl Copy for timezone"],["impl Copy for msginfo"],["impl Copy for ip_mreq"],["impl Copy for __c_anonymous_ptrace_syscall_info_seccomp"],["impl Copy for protoent"],["impl Copy for lconv"],["impl Copy for servent"],["impl Copy for fpos64_t"],["impl Copy for fanotify_response"],["impl Copy for sctp_sndrcvinfo"],["impl Copy for rlimit"],["impl Copy for dqblk"],["impl Copy for stat64"],["impl Copy for Elf32_Phdr"],["impl Copy for statfs64"],["impl Copy for statvfs64"],["impl Copy for if_nameindex"],["impl Copy for pthread_cond_t"],["impl Copy for FILE"],["impl Copy for Elf64_Phdr"],["impl Copy for cpu_set_t"],["impl Copy for Elf64_Shdr"],["impl Copy for hostent"],["impl Copy for epoll_event"],["impl Copy for sock_fprog"],["impl Copy for input_event"],["impl Copy for open_how"],["impl Copy for siginfo_t"],["impl Copy for nl_pktinfo"],["impl Copy for ff_constant_effect"],["impl Copy for sockaddr_vm"],["impl Copy for _libc_xmmreg"],["impl Copy for nlmsghdr"],["impl Copy for shmid_ds"],["impl Copy for in_pktinfo"],["impl Copy for seccomp_notif_sizes"],["impl Copy for __c_anonymous_ifru_map"],["impl Copy for DIR"],["impl Copy for pthread_attr_t"],["impl Copy for posix_spawnattr_t"],["impl Copy for user_fpregs_struct"],["impl Copy for winsize"],["impl Copy for nlmsgerr"],["impl Copy for utimbuf"],["impl Copy for sockaddr_can"],["impl Copy for addrinfo"],["impl Copy for sockaddr_un"],["impl Copy for ip_mreqn"],["impl Copy for timespec"],["impl Copy for Elf64_Sym"],["impl Copy for rlimit64"],["impl Copy for ipv6_mreq"],["impl Copy for sockaddr"],["impl Copy for Elf32_Chdr"],["impl Copy for mallinfo"],["impl Copy for in6_addr"],["impl Copy for ifreq"],["impl Copy for input_absinfo"],["impl Copy for max_align_t"],["impl Copy for file_clone_range"],["impl Copy for sched_param"],["impl Copy for Elf32_Shdr"],["impl Copy for spwd"],["impl Copy for af_alg_iv"],["impl Copy for __timeval"],["impl Copy for ptrace_peeksiginfo_args"],["impl Copy for glob_t"],["impl Copy for j1939_filter"],["impl Copy for fanotify_event_metadata"],["impl Copy for in6_pktinfo"],["impl Copy for aiocb"],["impl Copy for ucred"],["impl Copy for msghdr"]], "number_prefix":[["impl Copy for Prefix"]], diff --git a/docs/trait.impl/sosa/trait.AdvanceStep.js b/docs/trait.impl/sosa/trait.AdvanceStep.js index 9ef7bcaa1..6d18e1c86 100644 --- a/docs/trait.impl/sosa/trait.AdvanceStep.js +++ b/docs/trait.impl/sosa/trait.AdvanceStep.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hsc":[["impl AdvanceStep<MAX_SUBCLONES> for Exponential"],["impl AdvanceStep<MAX_SUBCLONES> for Moran"]] +"hsc":[["impl AdvanceStep<MAX_SUBCLONES> for Moran"],["impl AdvanceStep<MAX_SUBCLONES> for Exponential"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/src/genotype.rs b/src/genotype.rs index 6a6e17cb7..30aa26fa2 100644 --- a/src/genotype.rs +++ b/src/genotype.rs @@ -26,10 +26,18 @@ fn nb_neutral_mutations(poisson: &Poisson, rng: &mut impl Rng) -> NbPoisson /// [Poisson point process](https://en.wikipedia.org/wiki/Poisson_point_process). #[derive(Debug, Clone)] pub struct NeutralMutationPoisson { - background: f32, + pub lambda_background: f32, + pub lambda_division: f32, division: Poisson, } +impl PartialEq for NeutralMutationPoisson { + fn eq(&self, other: &Self) -> bool { + (self.lambda_division - other.lambda_division).abs() < f32::EPSILON + && (self.lambda_background - other.lambda_background).abs() < f32::EPSILON + } +} + impl Default for NeutralMutationPoisson { fn default() -> Self { NeutralMutationPoisson::new(1., 1.).unwrap() @@ -45,7 +53,8 @@ impl NeutralMutationPoisson { ensure!(lambda_division > 0., "invalid value of lambda_division"); ensure!(lambda_background > 0., "invalid value of lambda_background"); Ok(Self { - background: lambda_background, + lambda_background, + lambda_division, division: Poisson::new(lambda_division) .with_context(|| { format!( @@ -77,11 +86,11 @@ impl NeutralMutationPoisson { if verbosity > 1 { println!( "interdivison_time = {} and background lambda {}", - interdivison_time, self.background + interdivison_time, self.lambda_background ); } - if interdivison_time > 0.01 { - let background = Poisson::new(self.background * interdivison_time).unwrap(); + if interdivison_time > 0.001 { + let background = Poisson::new(self.lambda_background * interdivison_time).unwrap(); let nb_mutations = nb_neutral_mutations(&background, rng); if verbosity > 1 { println!("{} background mutations", nb_mutations); @@ -116,7 +125,7 @@ impl Sfs { //! Compute the SFS from the stem cell population. if verbosity > 0 { println!("computing the SFS from {} cells", cells.len()); - if verbosity > 0 { + if verbosity > 1 { println!("computing the SFS from {:#?}", &cells); } } @@ -224,6 +233,8 @@ mod tests { use rand_chacha::ChaCha8Rng; use rand_distr::Poisson; + use crate::tests::LambdaFromNonZeroU8; + use super::*; #[quickcheck] @@ -231,7 +242,8 @@ mod tests { let mut rng = ChaCha8Rng::seed_from_u64(seed); let poisson = Poisson::new(0.0001).unwrap(); NeutralMutationPoisson { - background: 0.0001, + lambda_background: 0.0001, + lambda_division: 0.0001, division: poisson, } .new_muts_upon_division(&mut rng) @@ -303,4 +315,13 @@ mod tests { assert_eq!(jcells, [1, 2, 3, 4]); assert_eq!(jmuts, [3, 1, 1, 1]); } + + #[quickcheck] + fn partial_eq_neutral_poisson_test( + lambda_division: LambdaFromNonZeroU8, + lambda_background: LambdaFromNonZeroU8, + ) -> bool { + let poissons = NeutralMutationPoisson::new(lambda_division.0, lambda_background.0).unwrap(); + poissons == NeutralMutationPoisson::new(lambda_division.0, lambda_background.0).unwrap() + } } diff --git a/src/main.rs b/src/main.rs index 0403ff69b..94c5fd1f2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -130,7 +130,7 @@ fn main() { .expect("find no exp neutral rate but options_exp"); let mu_back_exp = app .neutral_rate - .mu_division_exp + .mu_background_exp .expect("find no exp neutral rate but options_exp"); // use 1 as we dont care about time during the exp growth phase let rates = subclones.gillespie_rates(&app.fitness, 1.0, rng); diff --git a/src/process.rs b/src/process.rs index d0685efd3..714fc7232 100644 --- a/src/process.rs +++ b/src/process.rs @@ -99,8 +99,8 @@ impl Exponential { save_population: bool, rng: &mut impl Rng, ) -> Moran { - if self.verbosity > 1 { - println!("switching to Moran"); + if self.verbosity > 0 { + println!("switching to Moran at time {}", self.time); } let mut moran = Moran { subclones: self.subclones, @@ -123,6 +123,9 @@ impl Exponential { // cells do not proliferate at the same rate, we need to correct and // update the background mutations at the timepoint corresponding // to sampling step, i.e. before saving. + if self.verbosity > 0 { + println!("updating the neutral background mutations for all cells"); + } for stem_cell in moran.subclones.get_mut_cells() { assign_background_mutations( stem_cell, @@ -328,6 +331,9 @@ impl Moran { cells_with_idx: Vec<(&StemCell, usize)>, save_sfs_only: bool, ) -> anyhow::Result<()> { + if self.verbosity > 0 { + println!("saving data at time {}", time); + } let cells: Vec<&StemCell> = cells_with_idx.iter().map(|ele| ele.0).collect(); let nb_cells = cells.len(); @@ -365,7 +371,7 @@ impl Moran { if self.verbosity > 0 { println!( - "saving measurements after {} mutational events", + "saved measurements after {} mutational events", self.counter_divisions ); } @@ -379,6 +385,9 @@ impl Moran { save_sfs_only: bool, rng: &mut impl Rng, ) -> anyhow::Result<()> { + if self.verbosity > 0 { + println!("saving process at time {}", time); + } match self.proliferation { MutateUponDivision::DivisionAndBackgroundMutations(_) => { // this is important: we update all background mutations at this @@ -387,6 +396,9 @@ impl Moran { // cells do not proliferate at the same rate, we need to correct and // update the background mutations at the timepoint corresponding // to sampling step, i.e. before saving. + if self.verbosity > 0 { + println!("updating the neutral background mutations for all cells"); + } for stem_cell in self.subclones.get_mut_cells() { assign_background_mutations( stem_cell, diff --git a/src/stemcell.rs b/src/stemcell.rs index 16b67761b..2dcf01599 100644 --- a/src/stemcell.rs +++ b/src/stemcell.rs @@ -59,6 +59,8 @@ pub fn assign_background_mutations( ) { //! Assign background mutations to all cells in the system based on the //! current simulation time. + //! + //! This updates also the time of the last division for the cell. let interdivison_time = time - stem_cell.last_division_t; // 2. draw background mutations and assign them to `c` if let Some(background) = neutral_poisson.new_muts_background(interdivison_time, rng, verbosity) @@ -79,6 +81,8 @@ pub fn assign_background_mutations( mod tests { use super::*; use quickcheck_macros::quickcheck; + use rand::SeedableRng; + use rand_chacha::ChaCha8Rng; use std::num::NonZeroU8; use uuid::Uuid; @@ -102,4 +106,18 @@ mod tests { mutate(&mut cell, mutations); nb_mutations.get() as usize == cell.burden() } + + #[quickcheck] + fn assign_background_mutations_test(seed: u64) -> bool { + let rng = &mut ChaCha8Rng::seed_from_u64(seed); + let mutations = vec![Variant::new_v4()]; + let time = 9.1; + let mut stem_cell = StemCell::with_mutations(mutations.clone()); + let poissons = NeutralMutationPoisson::new(1.1, 12f32).unwrap(); + + assign_background_mutations(&mut stem_cell, time, &poissons, rng, 0); + mutations != stem_cell.variants + && mutations.len() < stem_cell.variants.len() + && (stem_cell.last_division_t - time).abs() < f32::EPSILON + } } diff --git a/src/subclone.rs b/src/subclone.rs index 2af6944ff..4d539035c 100644 --- a/src/subclone.rs +++ b/src/subclone.rs @@ -20,7 +20,7 @@ pub struct Distributions { impl Distributions { pub fn new(u: f64, background: f32, division: f32, verbosity: u8) -> Self { if verbosity > 1 { - println!("creating distributions with p_fitness: {}", u); + println!("creating distributions with p_fitness: {}, lambda_background: {}, lambda_division: {}", u, background, division); } Self { bern: Bernoulli::new(u).expect("Invalid p: p<0 or p>1"), @@ -445,6 +445,8 @@ pub fn proliferating_cell( #[cfg(test)] mod tests { + use crate::tests::LambdaFromNonZeroU8; + use super::*; use quickcheck_macros::quickcheck; use rand::SeedableRng; @@ -546,4 +548,17 @@ mod tests { fn new_distribution_wrong_p_neg_test() { Distributions::new(-0.9, 1.1, 1.1, 0); } + + #[quickcheck] + fn new_distribution_test( + lambda_division: LambdaFromNonZeroU8, + lambda_background: LambdaFromNonZeroU8, + ) -> bool { + let distrs = Distributions::new(0.1, lambda_background.0, lambda_division.0, 0); + distrs.neutral_poisson.eq(&NeutralMutationPoisson::new( + lambda_division.0, + lambda_background.0, + ) + .unwrap()) + } }