diff --git a/doc/src/learn.md b/doc/src/learn.md index d3b09af8d0011019928dfd2cc659a6a3b22a4928..8628cb59b7367280d965c1bbe3fb86ae1d1a104f 100644 --- a/doc/src/learn.md +++ b/doc/src/learn.md @@ -4,6 +4,8 @@ This chapter describes how the [global parameters](./likelihood.md#global) space is explored to maximize aphid likelihood. +## Heuristic starting point { #init } + ## Reparametrization { #transform } Exploring a constrained space is more difficult diff --git a/doc/src/likelihood.md b/doc/src/likelihood.md index 7dfd6a999ec0343a1939722e9596707b8463c546..369693431afda2fa7761dc5697749e166e3eb906 100644 --- a/doc/src/likelihood.md +++ b/doc/src/likelihood.md @@ -303,10 +303,10 @@ then only the scenarios whose topology match \\(T_g\\) are taken into account: \\[ - ℙ(g) = \sum_{s \in S}{𝟙_{T(s) = T_g} × ℙ(s) × ℙ(g | s)} + ℙ(g) = \sum_{s \in S}{𝟙(T(s) = T_g) × ℙ(s) × ℙ(g | s)} \\] -where \\(𝟙_{\text{condition}}\\) is the indicator function +where \\(𝟙(\text{condition})\\) is the indicator function (neutral if the condition is true, null if false). If the parameter is set, @@ -317,7 +317,7 @@ All considered scenarios contribute to the likelihood of unresolved trees, even if their topologies don't match. \\[ - ℙ(g) = \sum_{s \in S}{𝟙_{d_g ⩽ ul\ \cup\ T(s) = T_g} × ℙ(s) × ℙ(g | s)} + ℙ(g) = \sum_{s \in S}{𝟙(d_g ⩽ ul\ \cup\ T(s) = T_g) × ℙ(s) × ℙ(g | s)} \\] ### Total likelihood { #total } diff --git a/doc/src/preprocess.md b/doc/src/preprocess.md index c425b2fdec8aa69c75ffcf4536b7e3deba2d4ccd..819a00ff3817d16ca31c443839843af1f5a02b11 100644 --- a/doc/src/preprocess.md +++ b/doc/src/preprocess.md @@ -12,7 +12,7 @@ refers to the single last common ancestor of these species in the tree, Every gene tree is first pruned so that only species of interest are kept. -Species of interest and species occuring in either +Species of interest are species occuring in either the [`triplet`](./use.md#triplet), the [`outgroup`](./use.md#outgroup) or the [`other`](./use.md#other) diff --git a/doc/src/use.md b/doc/src/use.md index 4fd5604b39c9044b677088964446f78a9094f72c..7125d5cc4a66622404975670dac3f3d1d60c0479 100644 --- a/doc/src/use.md +++ b/doc/src/use.md @@ -76,17 +76,17 @@ TODO: clarify ### The `[filters]` table <!-- cmdrun ./doc config::raw::Config::filters --> -See the [filtering process](preprocess.md). +(see the [filtering process](preprocess.md)) #### `triplet_other_monophyly` { #tom } <!-- cmdrun ./doc config::raw::Filters::triplet_other_monophyly --> -See the [topology filter](preprocess.md#topology). +(see the [topology filter](preprocess.md#topology)) #### `max_clock_ratio` { #mcr } <!-- cmdrun ./doc config::raw::Filters::max_clock_ratio --> -See the [geometry filter](preprocess.md#geometry). +(see the [geometry filter](preprocess.md#geometry)) ### The `[init]` table @@ -95,11 +95,11 @@ starting point(s) for likelihood exploration. Provide several values to run several independent optimisation procedures and explore different areas of the likelihood surface. Missing parameters will be assigned a default value -based on the data at hand according to aphid's [internal heuristic], +based on the data at hand according to aphid's [internal +heuristic](learn.md#init), for which only `theta` value is necessary. Defaults to: -<!-- cmdrun ./doc config::defaults::DEFAULT_INIT_THETAS --> - +<!-- cmdrun rg 'DEFAULT_INIT_THETAS' ../../src | head -1 | sed 's/.*= &\(.*\);/`\1`./' --> For example: @@ -128,4 +128,4 @@ p_ac = [0.1, 0.2, 0.3] # Force (one value for each run). ### The `[search]` table <!-- cmdrun ./doc config::raw::Config::search --> -See the [learning method](`learn.md`). +(see the [learning method](`learn.md`)) diff --git a/src/bin/doc.rs b/src/bin/doc.rs index 0562466bca590a18a9dd602cc5be1020a13dcc4f..0005a3a515ed8d0572b7337e79efd56ae6111b81 100644 --- a/src/bin/doc.rs +++ b/src/bin/doc.rs @@ -65,7 +65,7 @@ fn run() -> Result<(), Error> { // Read and parse. let json = fs::read_to_string(&file).with_context(|_| IoErr { file })?; - let aphid: Crate = serde_json::from_str(&json)?; + let aphid: Crate = serde_json::from_str(&json).with_context(|_| ParseErr)?; // Now the whole crate information is available as 'aphid'. // Extract root module. @@ -213,7 +213,7 @@ enum Error { file: PathBuf, source: std::io::Error, }, - #[snafu(transparent)] + #[snafu(display("Parse error: {source}"))] Parse { source: serde_json::Error }, #[snafu(display("Inconsistent program behaviour: {e}"))] Inconsistent { e: String }, diff --git a/src/config.rs b/src/config.rs index 1207781cb0a77258a09cc25e29ba8f0f05553b30..2cf20c8bdf4eea8db9a74b86045be22626b30307 100644 --- a/src/config.rs +++ b/src/config.rs @@ -15,7 +15,7 @@ use crate::{ BranchLength, Parameters, }; -pub(crate) mod defaults; +pub mod defaults; pub mod expand; pub mod raw;