From f311eb3e493f69766b5ec15f06d45ceeb4bbcbc1 Mon Sep 17 00:00:00 2001 From: gordonkoehn Date: Fri, 13 Oct 2023 11:55:11 +0200 Subject: [PATCH 01/19] add copied docs workflow --- .github/workflows/docs.yml | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .github/workflows/docs.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 00000000..063831e3 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,39 @@ +# This pipeline builds the documentation. +name: docs + +on: + push: + branches: [ main ] + +permissions: + contents: write + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: "3.9" + cache: "pip" + - name: Install Poetry + uses: snok/install-poetry@v1 + with: + virtualenvs-create: true + virtualenvs-in-project: true + version: "1.3.2" + - name: Cache dependencies + id: cache-deps + uses: actions/cache@v2 + with: + path: .venv + key: pydeps-${{ hashFiles('**/poetry.lock') }} + - name: Install the dependencies + run: poetry install --no-interaction --no-root --with dev + if: steps.cache-deps.outputs.cache-hit != 'true' + - name: Install the module + run: poetry install --with dev --no-interaction + - name: Generate the documentation + run: poetry run mkdocs gh-deploy --force From d43488a5bc81a2dff12cb21d9a6d940c611a1011 Mon Sep 17 00:00:00 2001 From: gordonkoehn Date: Fri, 13 Oct 2023 13:41:23 +0200 Subject: [PATCH 02/19] add mkdoscs to poetry + steal config file --- mkdocs.yml | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++ pyproject.toml | 1 + 2 files changed, 76 insertions(+) create mode 100644 mkdocs.yml diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 00000000..bc283c1d --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,75 @@ +site_name: PYggdrasil +theme: + name: material + features: + - navigation.tabs + - navigation.sections + - toc.integrate + - search.suggest + - search.highlight + - content.tabs.link + - content.code.annotation + - content.code.copy + language: en + palette: + - scheme: default + toggle: + icon: material/toggle-switch-off-outline + name: Switch to dark mode + primary: teal + accent: purple + - scheme: slate + toggle: + icon: material/toggle-switch + name: Switch to light mode + primary: teal + accent: lime + +repo_name: PYggdrasil +repo_url: https://github.com/cbg-ethz/PYggdrasil + +plugins: + - search + - mkdocstrings: + default_handler: python + handlers: + python: + options: + show_source: false + show_root_heading: true + +nav: + - Home: index.md + - Contributing: contributing.md + - API: api/index.md + +watch: + - src/pyggdrasil + +extra: + social: + - icon: fontawesome/brands/github-alt + link: https://github.com/cbg-ethz/PYggdrasil + +markdown_extensions: + - pymdownx.highlight: + anchor_linenums: true + - pymdownx.inlinehilite + - pymdownx.snippets + - admonition + - pymdownx.arithmatex: + generic: true + - footnotes + - pymdownx.details + - pymdownx.superfences + - pymdownx.mark + - attr_list + - pymdownx.emoji: + emoji_index: !!python/name:materialx.emoji.twemoji + emoji_generator: !!python/name:materialx.emoji.to_svg + + +extra_javascript: + - javascripts/mathjax.js + - https://polyfill.io/v3/polyfill.min.js?features=es6 + - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js diff --git a/pyproject.toml b/pyproject.toml index ef38dc2f..b6e7d72f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,6 +26,7 @@ tqdm = "^4.65.0" networkx = "^3.0" arviz = "^0.16.1" seaborn = "^0.12.2" +mkdocs = "^1.5.3" [tool.poetry.group.dev.dependencies] From cd8ebb99068e8a2505c8a393981a06e3a922848d Mon Sep 17 00:00:00 2001 From: gordonkoehn Date: Fri, 13 Oct 2023 14:39:57 +0200 Subject: [PATCH 03/19] add correct project depend + update description --- pyproject.toml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index b6e7d72f..2f84802e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,7 +26,7 @@ tqdm = "^4.65.0" networkx = "^3.0" arviz = "^0.16.1" seaborn = "^0.12.2" -mkdocs = "^1.5.3" + [tool.poetry.group.dev.dependencies] @@ -38,6 +38,10 @@ pytest-xdist = "^3.2.0" pre-commit = "^3.1.0" interrogate = "^1.5.0" pyright = "^1.1.309" +mkdocs-material = "^9.1.6" +mkdocstrings = {extras = ["python"], version = "^0.21.2"} +mkdocs-gen-files = "^0.4.0" +mkdocs-literate-nav = "^0.6.0" [tool.coverage.report] fail_under = 85.0 From 75d16b2d0721544f2c535e998c7b7f7a337ba72b Mon Sep 17 00:00:00 2001 From: gordonkoehn Date: Fri, 13 Oct 2023 14:43:56 +0200 Subject: [PATCH 04/19] add correct project depend + update description --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 2f84802e..dab796e8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,8 +1,8 @@ [tool.poetry] name = "pyggdrasil" version = "0.1.0" -description = "" -authors = ["Computational Biology Group"] +description = "Inference and analysis of mutation trees in Python with SCITE" +authors = ["Gordon J. Köhn ", "Paweł Czyż ",] readme = "README.md" packages = [{include = "pyggdrasil", from = "src"}] From bc34f0509d8e0d2d60b0063cada21ad32aeb7693 Mon Sep 17 00:00:00 2001 From: gordonkoehn Date: Fri, 13 Oct 2023 15:05:49 +0200 Subject: [PATCH 05/19] remove problematic emoji usage --- mkdocs.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index bc283c1d..b13e8cdd 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -64,9 +64,10 @@ markdown_extensions: - pymdownx.superfences - pymdownx.mark - attr_list - - pymdownx.emoji: - emoji_index: !!python/name:materialx.emoji.twemoji - emoji_generator: !!python/name:materialx.emoji.to_svg + # TODO (Gordon): cannot get this packages to be found my mkdocs + # - pymdownx.emoji: + # emoji_index: !!python/name:materialx.emoji.twemoji + # emoji_generator: !!python/name:materialx.emoji.to_svg extra_javascript: From 05e9ec8b84d87512e1ee844d66181b965060adc4 Mon Sep 17 00:00:00 2001 From: gordonkoehn Date: Fri, 13 Oct 2023 15:15:28 +0200 Subject: [PATCH 06/19] add soft link to readme --- docs/index.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/index.md diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..32d46ee8 --- /dev/null +++ b/docs/index.md @@ -0,0 +1 @@ +../README.md \ No newline at end of file From 152e3cd4cb1a1ec29102b245a68dd384a78ea879 Mon Sep 17 00:00:00 2001 From: gordonkoehn Date: Fri, 13 Oct 2023 15:22:48 +0200 Subject: [PATCH 07/19] add softlink --- docs/index.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 120000 docs/index.md diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index 32d46ee8..00000000 --- a/docs/index.md +++ /dev/null @@ -1 +0,0 @@ -../README.md \ No newline at end of file diff --git a/docs/index.md b/docs/index.md new file mode 120000 index 00000000..32d46ee8 --- /dev/null +++ b/docs/index.md @@ -0,0 +1 @@ +../README.md \ No newline at end of file From ead56b7b859dd727f62eec81ea3c4fc6207e331a Mon Sep 17 00:00:00 2001 From: gordonkoehn Date: Fri, 13 Oct 2023 15:41:21 +0200 Subject: [PATCH 08/19] add minimal example api --- docs/api/analyze.md | 3 +++ docs/api/index.md | 4 ++++ 2 files changed, 7 insertions(+) create mode 100644 docs/api/analyze.md create mode 100644 docs/api/index.md diff --git a/docs/api/analyze.md b/docs/api/analyze.md new file mode 100644 index 00000000..b324399c --- /dev/null +++ b/docs/api/analyze.md @@ -0,0 +1,3 @@ +# Analyze + +::: pyggdrasil.analyze._rhat.rhats diff --git a/docs/api/index.md b/docs/api/index.md new file mode 100644 index 00000000..372a0a7e --- /dev/null +++ b/docs/api/index.md @@ -0,0 +1,4 @@ +# API + +- [Analyze](analyze.md) provides analysis tools of tree samples and inference runs. + From 75fdb1a60c1b07e068d400f1d104b66cce0a2af8 Mon Sep 17 00:00:00 2001 From: gordonkoehn Date: Fri, 13 Oct 2023 15:54:20 +0200 Subject: [PATCH 09/19] update gitignore --- .gitignore | 1 + docs/api/analyze.md | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/.gitignore b/.gitignore index 2ff6c3cc..94f6decf 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ poetry.lock # Notebooks are disallowed by default *.nb *.ipynb +/notebooks # Environmental files .idea/ diff --git a/docs/api/analyze.md b/docs/api/analyze.md index b324399c..aec5c92f 100644 --- a/docs/api/analyze.md +++ b/docs/api/analyze.md @@ -1,3 +1,13 @@ # Analyze ::: pyggdrasil.analyze._rhat.rhats + +::: pyggdrasil.analyze._ess.ess + +::: pyggdrasil.analyze._metrics.Metrics + +::: pyggdrasil.analyze._utils.to_pure_mcmc_data + +::: pyggdrasil.analyze._calculation.check_run_for_tree + +::: pyggdrasil.analyze._calculation.analyze_mcmc_run \ No newline at end of file From 873bc033c0ea6076329a73b7c69beb8e590babfd Mon Sep 17 00:00:00 2001 From: gordonkoehn Date: Sat, 14 Oct 2023 13:30:30 +0200 Subject: [PATCH 10/19] enhance docs --- src/pyggdrasil/analyze/_metrics.py | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/pyggdrasil/analyze/_metrics.py b/src/pyggdrasil/analyze/_metrics.py index 9df47927..936c439b 100644 --- a/src/pyggdrasil/analyze/_metrics.py +++ b/src/pyggdrasil/analyze/_metrics.py @@ -7,11 +7,32 @@ class Metrics: - """Metrics for comparing trees.""" + """Metrics for comparing trees. + + Attributes: + _METRICS: Dictionary of metrics. + """ @staticmethod def get(metric: str) -> Callable[[TreeNode, TreeNode], float]: - """Return metric function.""" + """Return metric function. + + Args: + metric: Name of metric. + + Returns: + - AD: Ancestor-Descendant Similarity; + pyggdrasil.distances.AncestorDescendantSimilarity().calculate, + - MP3: MP3 Similarity; + pyggdrasil.distances.MP3Similarity().calculate, + - TrueTree: True Tree Similarity; + pyggdrasil.compare_trees + - DL: Different Lineage Similarity; + pyggdrasil.distances.DifferentLineageSimilarity().calculate, + - MLTD: MLTD Similarity; + pyggdrasil.distances.MLTDSimilarity().calculate, + + """ return Metrics._METRICS[metric] _METRICS: Dict[str, Callable[[TreeNode, TreeNode], float]] = { # type: ignore From 2caed6647045bf7fefe2e15159472dfadc17b115 Mon Sep 17 00:00:00 2001 From: gordonkoehn Date: Sat, 14 Oct 2023 14:24:04 +0200 Subject: [PATCH 11/19] add remaining packages --- docs/api/analyze.md | 12 ++++----- docs/api/distances.md | 21 +++++++++++++++ docs/api/index.md | 12 +++++++++ docs/api/interface.md | 7 +++++ docs/api/serialize.md | 18 +++++++++++++ docs/api/tree_inference.md | 52 ++++++++++++++++++++++++++++++++++++++ docs/api/visualize.md | 11 ++++++++ 7 files changed, 127 insertions(+), 6 deletions(-) create mode 100644 docs/api/distances.md create mode 100644 docs/api/interface.md create mode 100644 docs/api/serialize.md create mode 100644 docs/api/tree_inference.md create mode 100644 docs/api/visualize.md diff --git a/docs/api/analyze.md b/docs/api/analyze.md index aec5c92f..57d53c55 100644 --- a/docs/api/analyze.md +++ b/docs/api/analyze.md @@ -1,13 +1,13 @@ # Analyze -::: pyggdrasil.analyze._rhat.rhats +::: pyggdrasil.analyze.rhats -::: pyggdrasil.analyze._ess.ess +::: pyggdrasil.analyze.ess -::: pyggdrasil.analyze._metrics.Metrics +::: pyggdrasil.analyze.Metrics -::: pyggdrasil.analyze._utils.to_pure_mcmc_data +::: pyggdrasil.analyze.to_pure_mcmc_data -::: pyggdrasil.analyze._calculation.check_run_for_tree +::: pyggdrasil.analyze.check_run_for_tree -::: pyggdrasil.analyze._calculation.analyze_mcmc_run \ No newline at end of file +::: pyggdrasil.analyze.analyze_mcmc_run \ No newline at end of file diff --git a/docs/api/distances.md b/docs/api/distances.md new file mode 100644 index 00000000..8e9f117e --- /dev/null +++ b/docs/api/distances.md @@ -0,0 +1,21 @@ +# Distances + +::: pyggdrasil.distances.TreeDistance + +::: pyggdrasil.distances.TreeSimilarity + +::: pyggdrasil.distances.TreeSimilarityMeasure + +::: pyggdrasil.distances.calculate_distance_matrix + +::: pyggdrasil.distances.AncestorDescendantSimilarity + +::: pyggdrasil.distances.MP3Similarity + +::: pyggdrasil.distances.AncestorDescendantSimilarityInclRoot + +::: pyggdrasil.distances.DifferentLineageSimilarity + +::: pyggdrasil.distances.MLTDSimilarity + + diff --git a/docs/api/index.md b/docs/api/index.md index 372a0a7e..4633483a 100644 --- a/docs/api/index.md +++ b/docs/api/index.md @@ -1,4 +1,16 @@ # API - [Analyze](analyze.md) provides analysis tools of tree samples and inference runs. +- [Distances](distances.md) provides tree-tree distance and similarity measures. +- [Interface](interface.md) provides dataclasses for processing MCMC data. +- [Serialize](serialize.md) contains utilities for serialization and deserialization of trees, MCMC rus and analysis. +- [Tree Inference](tree_inference.md) implements the mutation tree infernce; scDNA mutation profiles synthesis. +- [Visualize](visualize.md) implements visualization of trees and MCMC runs and diagostics theirof. + +This package handels trees with _Anytree_, see our adaption in the class _TreeNode_ below. For the inference we convert trees to binary adjacency matrices see [Tree Inference](tree_inference.md), for reasons of performance. + +::: pyggdrasil.TreeNode + +::: pyggdrasil.compare_trees + diff --git a/docs/api/interface.md b/docs/api/interface.md new file mode 100644 index 00000000..cafb00f3 --- /dev/null +++ b/docs/api/interface.md @@ -0,0 +1,7 @@ +# Interface + +::: pyggdrasil.interface.PureMcmcData + + + + diff --git a/docs/api/serialize.md b/docs/api/serialize.md new file mode 100644 index 00000000..14b2d7f9 --- /dev/null +++ b/docs/api/serialize.md @@ -0,0 +1,18 @@ +# Serialize + +::: pyggdrasil.serialize.serialize_tree_to_dict + +::: pyggdrasil.serialize.deserialize_tree_from_dict + +::: pyggdrasil.serialize.read_mcmc_samples + +::: pyggdrasil.serialize.save_mcmc_sample + +::: pyggdrasil.serialize.read_tree_node + +::: pyggdrasil.serialize.save_tree_node + +::: pyggdrasil.serialize.save_metric_result + +::: pyggdrasil.serialize.read_metric_result + diff --git a/docs/api/tree_inference.md b/docs/api/tree_inference.md new file mode 100644 index 00000000..6572722d --- /dev/null +++ b/docs/api/tree_inference.md @@ -0,0 +1,52 @@ +# Tree Inference + +::: pyggdrasil.tree_inference.CellAttachmentStrategy + +::: pyggdrasil.tree_inference.CellSimulationData + +::: pyggdrasil.tree_inference.CellSimulationId + +::: pyggdrasil.tree_inference.CellSimulationModel + +::: pyggdrasil.tree_inference.ErrorCombinations + +::: pyggdrasil.tree_inference.ErrorRates + +::: pyggdrasil.tree_inference.evolve_tree_mcmc + +::: pyggdrasil.tree_inference.evolve_tree_mcmc_all + +::: pyggdrasil.tree_inference.gen_sim_data + +::: pyggdrasil.tree_inference.get_descendants + +::: pyggdrasil.tree_inference.get_simulation_data + +::: pyggdrasil.tree_inference.huntress_tree_inference + +::: pyggdrasil.tree_inference.make_tree + +::: pyggdrasil.tree_inference.McmcConfig + +::: pyggdrasil.tree_inference.McmcConfigOptions + +::: pyggdrasil.tree_inference.McmcRunId + +::: pyggdrasil.tree_inference.mcmc_sampler + +::: pyggdrasil.tree_inference.MoveProbabilities + +::: pyggdrasil.tree_inference.MoveProbConfig + +::: pyggdrasil.tree_inference.MoveProbConfigOptions + +::: pyggdrasil.tree_inference.MutationDataId + +::: pyggdrasil.tree_inference.MutationMatrix + +::: pyggdrasil.tree_inference.Tree + +::: pyggdrasil.tree_inference.TreeId + +::: pyggdrasil.tree_inference.TreeType + diff --git a/docs/api/visualize.md b/docs/api/visualize.md new file mode 100644 index 00000000..1d57527c --- /dev/null +++ b/docs/api/visualize.md @@ -0,0 +1,11 @@ +# Visualize + +::: pyggdrasil.visualize.plot_tree +::: pyggdrasil.visualize.save_metric_iteration +::: pyggdrasil.visualize.save_log_p_iteration +::: pyggdrasil.visualize.plot_tree_mcmc_sample +::: pyggdrasil.visualize.plot_tree_no_print +::: pyggdrasil.visualize.save_top_trees_plots +::: pyggdrasil.visualize.save_rhat_iteration +::: pyggdrasil.visualize.save_rhat_iteration_AD_DL +::: pyggdrasil.visualize.save_ess_iteration_AD_DL \ No newline at end of file From 2ca228141dc416aa2331541232cfe353460342ad Mon Sep 17 00:00:00 2001 From: gordonkoehn Date: Mon, 16 Oct 2023 10:11:04 +0200 Subject: [PATCH 12/19] add contributing --- docs/api/contributing.md | 52 ++++++++++++++++++++++++++++++++++++++++ mkdocs.yml | 1 + 2 files changed, 53 insertions(+) create mode 100644 docs/api/contributing.md diff --git a/docs/api/contributing.md b/docs/api/contributing.md new file mode 100644 index 00000000..46a50788 --- /dev/null +++ b/docs/api/contributing.md @@ -0,0 +1,52 @@ +# Contributing + +Thank you for your time to contribute to this project! +Below we present some guidelines. + +## Reporting a bug + +If you find a bug, please [submit a new issue](https://github.com/cbg-ethz/PYggdrasil/issues). + +To be able to reproduce a bug, we will usually need the following information: + + - Versions of Python packages used (in particular version of this library). + - A minimal code snippet allowing us to reproduce the bug. + - What is the desired behaviour in the reported case? + - What is the actual behaviour? + + +## Submitting a pull request + +**Do:** + + - Do use [Google Style Guide](https://google.github.io/styleguide/pyguide.html). We use [black](https://github.com/psf/black) for code formatting. + - Do write unit tests. We use [pytest](https://docs.pytest.org/). + - Do write docstrings. We use [Material for Mkdocs](https://squidfunk.github.io/mkdocs-material/) to generate the documentation. + - Do write high-level documentation as examples and tutorials, illustrating introduced features. + - Do consider submitting a *draft* pull request with a description of proposed changes. + - Do check the [Development section](#development). + +**Don't:** + + - Don't include license information. This project is MIT licensed and by submitting your pull request you implicitly and irrevocably agree to use this. + - Don't implement too many ideas in a single pull request. Multiple features should be implemented in separate pull requests. + + +## Development + +### Installation & dependencies +To install the repository together with the dependencies run: +``` +$ git clone git@github.com:cbg-ethz/PYggdrasil.git # Clone the repository +$ poetry add install -G dev # Install the dependencies +$ poetry run pre-commit install # Install pre-commit hooks +$ poetry run pytest # Check if unit tests are passing +``` + +### Building documentation locally +You can build the documentation on your machine using: +``` +$ poetry run mkdocs serve +``` +and opening the generated link using web browser. + diff --git a/mkdocs.yml b/mkdocs.yml index b13e8cdd..6f084c5f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -41,6 +41,7 @@ plugins: nav: - Home: index.md - Contributing: contributing.md + - Tutorial: tutorial/index.md - API: api/index.md watch: From c12eecb93e692fde420eb484489bb42035d18172 Mon Sep 17 00:00:00 2001 From: gordonkoehn Date: Mon, 16 Oct 2023 10:21:49 +0200 Subject: [PATCH 13/19] refine contributing --- docs/api/contributing.md | 52 ---------------------------------------- 1 file changed, 52 deletions(-) delete mode 100644 docs/api/contributing.md diff --git a/docs/api/contributing.md b/docs/api/contributing.md deleted file mode 100644 index 46a50788..00000000 --- a/docs/api/contributing.md +++ /dev/null @@ -1,52 +0,0 @@ -# Contributing - -Thank you for your time to contribute to this project! -Below we present some guidelines. - -## Reporting a bug - -If you find a bug, please [submit a new issue](https://github.com/cbg-ethz/PYggdrasil/issues). - -To be able to reproduce a bug, we will usually need the following information: - - - Versions of Python packages used (in particular version of this library). - - A minimal code snippet allowing us to reproduce the bug. - - What is the desired behaviour in the reported case? - - What is the actual behaviour? - - -## Submitting a pull request - -**Do:** - - - Do use [Google Style Guide](https://google.github.io/styleguide/pyguide.html). We use [black](https://github.com/psf/black) for code formatting. - - Do write unit tests. We use [pytest](https://docs.pytest.org/). - - Do write docstrings. We use [Material for Mkdocs](https://squidfunk.github.io/mkdocs-material/) to generate the documentation. - - Do write high-level documentation as examples and tutorials, illustrating introduced features. - - Do consider submitting a *draft* pull request with a description of proposed changes. - - Do check the [Development section](#development). - -**Don't:** - - - Don't include license information. This project is MIT licensed and by submitting your pull request you implicitly and irrevocably agree to use this. - - Don't implement too many ideas in a single pull request. Multiple features should be implemented in separate pull requests. - - -## Development - -### Installation & dependencies -To install the repository together with the dependencies run: -``` -$ git clone git@github.com:cbg-ethz/PYggdrasil.git # Clone the repository -$ poetry add install -G dev # Install the dependencies -$ poetry run pre-commit install # Install pre-commit hooks -$ poetry run pytest # Check if unit tests are passing -``` - -### Building documentation locally -You can build the documentation on your machine using: -``` -$ poetry run mkdocs serve -``` -and opening the generated link using web browser. - From e75be7a254674d86ba818bf4653dd343d22d8130 Mon Sep 17 00:00:00 2001 From: gordonkoehn Date: Mon, 16 Oct 2023 11:47:48 +0200 Subject: [PATCH 14/19] enhance contributing --- docs/contributing.md | 93 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 docs/contributing.md diff --git a/docs/contributing.md b/docs/contributing.md new file mode 100644 index 00000000..720debd7 --- /dev/null +++ b/docs/contributing.md @@ -0,0 +1,93 @@ +# Contributing + +Thank you for your time to contribute to this project! +Below we present some guidelines. + +## Reporting a bug + +If you find a bug, please [submit a new issue](https://github.com/cbg-ethz/PYggdrasil/issues). + +To be able to reproduce a bug, we will usually need the following information: + + - Versions of Python packages used (in particular version of this library). + - A minimal code snippet allowing us to reproduce the bug. + - What is the desired behaviour in the reported case? + - What is the actual behaviour? + + +## Submitting a pull request + +**Do:** + + - Do use [Google Style Guide](https://google.github.io/styleguide/pyguide.html). We use [black](https://github.com/psf/black) for code formatting. + - Do write unit tests. We use [pytest](https://docs.pytest.org/). + - Do write docstrings. We use [Material for Mkdocs](https://squidfunk.github.io/mkdocs-material/) to generate the documentation. + - Do write high-level documentation as examples and tutorials, illustrating introduced features. + - Do consider submitting a *draft* pull request with a description of proposed changes. + - Do check the [Development section](#development). + +**Don't:** + + - Don't include license information. This project is MIT licensed and by submitting your pull request you implicitly and irrevocably agree to use this. + - Don't implement too many ideas in a single pull request. Multiple features should be implemented in separate pull requests. + + +## Development + +### Workflow + +We use [Feature Branch Workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow), +in which modifications of the code should happen via small pull requests. + +We recommend submitting small pull requests and starting with drafts outlining proposed changes. + +### Installation & dependencies +To install the repository together with the dependencies run: +``` +$ git clone git@github.com:cbg-ethz/PYggdrasil.git # Clone the repository +$ poetry install --with dev # Install the dependencies +$ poetry run pre-commit install # Install pre-commit hooks +$ poetry run pytest # Check if unit tests are passing +``` + + +### Testing & Checking + +Then, you will be able to run tests: +```bash +$ poetry run pytest +``` +... or check the types: +```bash +$ poetry run pyright +``` + +### Existing code quality checks +The code quality checks run during on GitHub can be seen in ``.github/workflows/test.yml``. + +We are using: + - [Ruff](https://github.com/charliermarsh/ruff) to lint the code. + - [Black](https://github.com/psf/black) to format the code. + - [Pyright](https://github.com/microsoft/pyright) to check the types. + - [Pytest](https://docs.pytest.org/) to run the unit tests. + - [Interrogate](https://interrogate.readthedocs.io/) to check the documentation. + +Alternatively, you may prefer to work with the right Python environment using: +```bash +$ poetry shell +$ pytest +``` + +### Building documentation locally +You can build the documentation on your machine using: +``` +$ poetry run mkdocs serve +``` +and opening the generated link using web browser. + +### Code organisation + +- The package code is in ``src/pyggdrasil/`` and is partitioned into subpackages. +- The unit tests are in ``tests/`` and the structure of this directory should reflect the one of the package. +- Experimental workflows are in ``workflows/``, with a description of how to set up the environment in ``workflows/README.md`` + From 31b721b1ca32b4c31ed6c31c2eb56462e55e697e Mon Sep 17 00:00:00 2001 From: gordonkoehn Date: Mon, 16 Oct 2023 11:53:12 +0200 Subject: [PATCH 15/19] first test notebook with quarto --- docs/tutorial/index.md | 9 + docs/tutorial/mcmc_test.json | 100 +++++ docs/tutorial/singleMCMC.md | 372 ++++++++++++++++++ docs/tutorial/singleMCMC.qmd | 143 +++++++ .../log-prob-iter-output-1.png | Bin 0 -> 15399 bytes 5 files changed, 624 insertions(+) create mode 100644 docs/tutorial/index.md create mode 100644 docs/tutorial/mcmc_test.json create mode 100644 docs/tutorial/singleMCMC.md create mode 100644 docs/tutorial/singleMCMC.qmd create mode 100644 docs/tutorial/singleMCMC_files/figure-commonmark/log-prob-iter-output-1.png diff --git a/docs/tutorial/index.md b/docs/tutorial/index.md new file mode 100644 index 00000000..3a06640d --- /dev/null +++ b/docs/tutorial/index.md @@ -0,0 +1,9 @@ +# Tutorials + +We'd love to see you built upon PYggdrasil. Below we provide some tutorials to help you get started. + +## Functional Usage + +- [Single MCMC Run](singleMCMC.md) demonstrated how to run a single MCMC chain. + +## Experimental Workflows \ No newline at end of file diff --git a/docs/tutorial/mcmc_test.json b/docs/tutorial/mcmc_test.json new file mode 100644 index 00000000..8e27da89 --- /dev/null +++ b/docs/tutorial/mcmc_test.json @@ -0,0 +1,100 @@ +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 1}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[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, 0.0, 0.0], [1.0, 0.0, 1.0, 0.0, 0.0], [0.0, 1.0, 0.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -9988.392578125}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 2}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[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, 0.0, 0.0], [1.0, 0.0, 1.0, 0.0, 0.0], [0.0, 1.0, 0.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -9988.392578125}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 3}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 1.0, 0.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -9851.9365234375}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 4}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 1.0, 0.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -9851.9365234375}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 5}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 1.0, 0.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -9851.9365234375}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 6}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 0.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3563.146484375}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 7}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 0.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3563.146484375}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 8}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 0.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3563.146484375}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 9}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 0.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3563.146484375}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 10}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 0.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3563.146484375}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 11}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 0.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3563.146484375}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 12}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 0.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3563.146484375}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 13}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 14}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 15}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 16}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 17}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 18}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 19}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 20}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 21}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 22}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 23}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 24}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 25}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 26}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 27}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 28}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 29}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 30}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 31}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 32}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 33}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 34}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 35}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 36}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 37}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 38}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 39}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 40}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 41}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 42}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 43}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 44}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 45}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 46}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 47}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 48}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 49}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 50}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 51}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 52}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 53}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 54}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 55}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 56}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 57}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 58}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 59}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 60}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 61}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 62}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 63}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 64}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 65}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 66}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 67}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 68}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 69}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 70}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 71}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 72}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 73}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 74}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 75}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 76}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 77}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 78}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 79}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 80}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 81}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 82}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 83}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 84}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 85}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 86}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 87}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 88}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 89}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 90}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 91}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 92}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 93}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 94}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 95}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 96}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 97}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 98}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 99}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} +{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 100}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} diff --git a/docs/tutorial/singleMCMC.md b/docs/tutorial/singleMCMC.md new file mode 100644 index 00000000..642024cc --- /dev/null +++ b/docs/tutorial/singleMCMC.md @@ -0,0 +1,372 @@ +# Single MCMC Run + +This tutorial shows how to run a single MCMC chain of SCITE using +PYggdrasil. - We will generate our own ground-truth mutation histroy and +generate a noisy single-cell mutation profile from it. - We will then +run a single MCMC chain to infer the mutation history from the noisy +single-cell mutation profile. - Visualize the results. The trees and the +evolution of the MCMC. + +## 0) Imports + +``` python +## imports +import pyggdrasil as yg +import jax.numpy as jnp +import jax.random as random +from pathlib import Path +import matplotlib.pyplot as plt + +# matplotlib inline +%matplotlib inline +``` + +## 1) Generate a ground-truth mutation history and a noisy single-cell mutation profile + +The below cell generates a random tree with 4 mutations, plus root. For +debugging we may use the *print_topo* to plot its topology. + +``` python +# make true tree +tree_type = yg.tree_inference.TreeType.RANDOM +mutations = 4 +nodes = mutations + 1 +tree_seed = 42 +true_tree = yg.tree_inference.make_tree(nodes, tree_type, tree_seed) + +true_tree.print_topo() +``` + + 4 + ├── 0 + ├── 2 + │ └── 1 + └── 3 + +## 2) Generate an initial tree to start the Markov Chain from + +We also choose a random tree here. + +``` python +# make random starting tree +tree_type = yg.tree_inference.TreeType.RANDOM +tree_seed = 487 +starting_tree = yg.tree_inference.make_tree(nodes, tree_type, tree_seed) +starting_tree.print_topo() +``` + + 4 + ├── 1 + └── 3 + ├── 0 + └── 2 + +## 3) Generate a noisy single-cell mutation profile from the ground-truth tree + +``` python +## generate some little nois data +# Set up the simulation model +csm = yg.tree_inference.CellSimulationModel( + n_cells=1000, + n_mutations=mutations, + fpr=0.01, + fnr=0.01, + na_rate=0.0, + observe_homozygous=False, + strategy=yg.tree_inference.CellAttachmentStrategy.UNIFORM_EXCLUDE_ROOT, +) + + +# Generate Data +seed = 42 +rng = random.PRNGKey(seed) +data = yg.tree_inference.gen_sim_data( + csm, + rng, + true_tree + ) + +mut_mat = jnp.array(data['noisy_mutation_mat']) +print(mut_mat) +``` + + [[0 0 0 ... 0 0 1] + [1 0 0 ... 0 0 0] + [1 1 1 ... 0 0 0] + [0 0 0 ... 1 1 0]] + +## 4) Run the Markov Monte Carlo Chain + +The below cell runs a single MCMC chain. We initialize ti with the +initial tree from before. We configure the move probabilities and error +rates and run the MCMC chain for 100 iterations. The sampels are saved +to disk and loaded back into memory as chains may be very long. + +``` python +## Run MCMC +# converting initial tree from TreeNode to Tree format +init_tree_t = yg.tree_inference.Tree.tree_from_tree_node(starting_tree) + +## file handling +# set up save location +save_dir = Path("") +# make directory if it doesn't exist +save_dir.mkdir(parents=True, exist_ok=True) +save_name = "mcmc_test" +full_save_name = save_dir / f"{save_name}.json" +# make file / empty it if it exists +with open(full_save_name, "w") as f: + f.write("") + +# set the move probabilities and error rates +move_probs = yg.tree_inference.MoveProbabilities() +error_rates = yg.tree_inference.ErrorCombinations.IDEAL.value + +# run mcmc sampler +yg.tree_inference.mcmc_sampler( + rng_key=rng, + data=mut_mat, + error_rates=(error_rates.fpr, error_rates.fnr), + move_probs=move_probs, + num_samples=100, + num_burn_in=0, + out_fp=full_save_name, + thinning=1, + init_tree=init_tree_t, +) + +# load the data from disk +mcmc_data = yg.serialize.read_mcmc_samples(save_dir / f"{save_name}.json") +``` + + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Accepted + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc:Move Rejected + INFO:pyggdrasil.tree_inference._mcmc_sampler:Finished MCMC sampler. + +## 5) Visualize the results + +In the following we would like to plot the evolution of the MCMC chain +and the trees that were sampled. First we convert the data from the +serialized format to a *pureMCMCdata* format. This is a simple dataclass +that contains the trees and the log probabilities of the trees. + +``` python +# unpack the data - reads in the serialized trees to Tree objects +# takes some time as tree objects are built and checked for validity +mcmc_samples = yg.analyze.to_pure_mcmc_data(mcmc_data) +``` + + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 0 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 1 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 2 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 3 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 4 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 5 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 6 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 7 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 8 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 9 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 10 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 11 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 12 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 13 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 14 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 15 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 16 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 17 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 18 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 19 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 20 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 21 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 22 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 23 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 24 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 25 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 26 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 27 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 28 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 29 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 30 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 31 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 32 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 33 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 34 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 35 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 36 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 37 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 38 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 39 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 40 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 41 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 42 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 43 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 44 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 45 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 46 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 47 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 48 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 49 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 50 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 51 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 52 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 53 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 54 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 55 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 56 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 57 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 58 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 59 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 60 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 61 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 62 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 63 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 64 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 65 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 66 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 67 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 68 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 69 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 70 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 71 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 72 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 73 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 74 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 75 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 76 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 77 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 78 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 79 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 80 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 81 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 82 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 83 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 84 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 85 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 86 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 87 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 88 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 89 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 90 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 91 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 92 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 93 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 94 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 95 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 96 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 97 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 98 + DEBUG:pyggdrasil.analyze._utils:converting sample of index: 99 + +Now, we may plot it. + +``` python +plt.plot(mcmc_samples.iterations, mcmc_samples.log_probabilities) +plt.xlabel("Iteration") +plt.ylabel("Log-probability") +plt.grid() +plt.show() +``` + + + +This log-probability quickly improved for such a small tree - SCITE +works. diff --git a/docs/tutorial/singleMCMC.qmd b/docs/tutorial/singleMCMC.qmd new file mode 100644 index 00000000..cc6be621 --- /dev/null +++ b/docs/tutorial/singleMCMC.qmd @@ -0,0 +1,143 @@ +--- +title: "Single MCMC Run" +format: gfm +jupyter: python3 +--- + +This tutorial shows how to run a single MCMC chain of SCITE using PYggdrasil. +- We will generate our own ground-truth mutation histroy and generate a noisy single-cell mutation profile from it. +- We will then run a single MCMC chain to infer the mutation history from the noisy single-cell mutation profile. +- Visualize the results. The trees and the evolution of the MCMC. + +## 0) Imports +```{python} +## imports +import pyggdrasil as yg +import jax.numpy as jnp +import jax.random as random +from pathlib import Path +import matplotlib.pyplot as plt + +# matplotlib inline +%matplotlib inline +``` + +## 1) Generate a ground-truth mutation history and a noisy single-cell mutation profile +The below cell generates a random tree with 4 mutations, plus root. For debugging we may use the _print_topo_ to plot its topology. +```{python} +# make true tree +tree_type = yg.tree_inference.TreeType.RANDOM +mutations = 4 +nodes = mutations + 1 +tree_seed = 42 +true_tree = yg.tree_inference.make_tree(nodes, tree_type, tree_seed) + +true_tree.print_topo() +``` + +## 2) Generate an initial tree to start the Markov Chain from +We also choose a random tree here. + +```{python} +# make random starting tree +tree_type = yg.tree_inference.TreeType.RANDOM +tree_seed = 487 +starting_tree = yg.tree_inference.make_tree(nodes, tree_type, tree_seed) +starting_tree.print_topo() +``` + +## 3) Generate a noisy single-cell mutation profile from the ground-truth tree + +```{python} +## generate some little nois data +# Set up the simulation model +csm = yg.tree_inference.CellSimulationModel( + n_cells=1000, + n_mutations=mutations, + fpr=0.01, + fnr=0.01, + na_rate=0.0, + observe_homozygous=False, + strategy=yg.tree_inference.CellAttachmentStrategy.UNIFORM_EXCLUDE_ROOT, +) + + +# Generate Data +seed = 42 +rng = random.PRNGKey(seed) +data = yg.tree_inference.gen_sim_data( + csm, + rng, + true_tree + ) + +mut_mat = jnp.array(data['noisy_mutation_mat']) +print(mut_mat) +``` + +## 4) Run the Markov Monte Carlo Chain +The below cell runs a single MCMC chain. We initialize ti with the initial tree from before. +We configure the move probabilities and error rates and run the MCMC chain for 100 iterations. +The sampels are saved to disk and loaded back into memory as chains may be very long. + +```{python} +## Run MCMC +# converting initial tree from TreeNode to Tree format +init_tree_t = yg.tree_inference.Tree.tree_from_tree_node(starting_tree) + +## file handling +# set up save location +save_dir = Path("") +# make directory if it doesn't exist +save_dir.mkdir(parents=True, exist_ok=True) +save_name = "mcmc_test" +full_save_name = save_dir / f"{save_name}.json" +# make file / empty it if it exists +with open(full_save_name, "w") as f: + f.write("") + +# set the move probabilities and error rates +move_probs = yg.tree_inference.MoveProbabilities() +error_rates = yg.tree_inference.ErrorCombinations.IDEAL.value + +# run mcmc sampler +yg.tree_inference.mcmc_sampler( + rng_key=rng, + data=mut_mat, + error_rates=(error_rates.fpr, error_rates.fnr), + move_probs=move_probs, + num_samples=100, + num_burn_in=0, + out_fp=full_save_name, + thinning=1, + init_tree=init_tree_t, +) + +# load the data from disk +mcmc_data = yg.serialize.read_mcmc_samples(save_dir / f"{save_name}.json") +``` + +## 5) Visualize the results +In the following we would like to plot the evolution of the MCMC chain and the trees that were sampled. +First we convert the data from the serialized format to a _pureMCMCdata_ format. This is a simple dataclass that contains the trees and the log probabilities of the trees. + +```{python} +# unpack the data - reads in the serialized trees to Tree objects +# takes some time as tree objects are built and checked for validity +mcmc_samples = yg.analyze.to_pure_mcmc_data(mcmc_data) +``` + +Now, we may plot it. + +```{python} +#| label: log-prob-iter +#| fig-cap: "The evolution of the log-probability of the trees over the MCMC iterations." +plt.plot(mcmc_samples.iterations, mcmc_samples.log_probabilities) +plt.xlabel("Iteration") +plt.ylabel("Log-probability") +plt.grid() +plt.show() +``` + +This log-probability quickly improved for such a small tree - SCITE works. + diff --git a/docs/tutorial/singleMCMC_files/figure-commonmark/log-prob-iter-output-1.png b/docs/tutorial/singleMCMC_files/figure-commonmark/log-prob-iter-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..135f25f531662f303e9a3371b5556657415458a7 GIT binary patch literal 15399 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 Date: Mon, 16 Oct 2023 11:59:26 +0200 Subject: [PATCH 16/19] remove .json raw data --- .gitignore | 1 - docs/tutorial/mcmc_test.json | 100 ----------------------------------- docs/tutorial/singleMCMC.md | 2 + docs/tutorial/singleMCMC.qmd | 2 + 4 files changed, 4 insertions(+), 101 deletions(-) delete mode 100644 docs/tutorial/mcmc_test.json diff --git a/.gitignore b/.gitignore index 94f6decf..2ff6c3cc 100644 --- a/.gitignore +++ b/.gitignore @@ -12,7 +12,6 @@ poetry.lock # Notebooks are disallowed by default *.nb *.ipynb -/notebooks # Environmental files .idea/ diff --git a/docs/tutorial/mcmc_test.json b/docs/tutorial/mcmc_test.json deleted file mode 100644 index 8e27da89..00000000 --- a/docs/tutorial/mcmc_test.json +++ /dev/null @@ -1,100 +0,0 @@ -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 1}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[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, 0.0, 0.0], [1.0, 0.0, 1.0, 0.0, 0.0], [0.0, 1.0, 0.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -9988.392578125}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 2}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[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, 0.0, 0.0], [1.0, 0.0, 1.0, 0.0, 0.0], [0.0, 1.0, 0.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -9988.392578125}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 3}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 1.0, 0.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -9851.9365234375}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 4}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 1.0, 0.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -9851.9365234375}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 5}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 1.0, 0.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -9851.9365234375}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 6}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 0.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3563.146484375}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 7}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 0.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3563.146484375}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 8}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 0.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3563.146484375}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 9}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 0.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3563.146484375}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 10}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 0.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3563.146484375}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 11}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 0.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3563.146484375}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 12}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 0.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3563.146484375}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 13}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 14}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 15}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 16}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 17}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 18}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 19}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 20}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 21}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 22}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 23}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 24}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 25}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 26}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 27}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 28}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 29}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 30}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 31}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 32}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 33}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 34}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 35}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 36}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -3487.01513671875}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 37}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 38}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 39}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 40}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 41}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 42}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 43}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 44}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 45}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 46}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 47}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 48}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 49}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 50}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 51}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 52}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 53}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 54}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 55}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 56}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 57}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 58}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 59}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 60}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 61}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 62}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 63}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 64}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 65}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 66}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 67}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 68}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 69}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 70}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 71}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 72}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 73}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 74}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 75}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 76}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 77}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 78}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 79}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 80}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 81}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 82}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 83}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 84}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 85}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 86}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 87}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 88}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 89}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 90}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 91}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 92}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 93}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 94}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 95}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 96}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 97}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 98}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 99}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} -{"coords": {"from_node_k": {"dims": ["from_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}, "to_node_k": {"dims": ["to_node_k"], "attrs": {}, "data": [0, 1, 2, 3, 4]}}, "attrs": {}, "dims": {"from_node_k": 5, "to_node_k": 5}, "data_vars": {"iteration": {"dims": [], "attrs": {}, "data": 100}, "tree": {"dims": ["from_node_k", "to_node_k"], "attrs": {}, "data": [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 1.0, 1.0, 0.0]]}, "log-probability": {"dims": [], "attrs": {}, "data": -468.29644775390625}}} diff --git a/docs/tutorial/singleMCMC.md b/docs/tutorial/singleMCMC.md index 642024cc..fac1ce42 100644 --- a/docs/tutorial/singleMCMC.md +++ b/docs/tutorial/singleMCMC.md @@ -137,6 +137,8 @@ yg.tree_inference.mcmc_sampler( # load the data from disk mcmc_data = yg.serialize.read_mcmc_samples(save_dir / f"{save_name}.json") +#delete file +(full_save_name).unlink() ``` INFO:pyggdrasil.tree_inference._mcmc:Move Accepted diff --git a/docs/tutorial/singleMCMC.qmd b/docs/tutorial/singleMCMC.qmd index cc6be621..b51803a4 100644 --- a/docs/tutorial/singleMCMC.qmd +++ b/docs/tutorial/singleMCMC.qmd @@ -115,6 +115,8 @@ yg.tree_inference.mcmc_sampler( # load the data from disk mcmc_data = yg.serialize.read_mcmc_samples(save_dir / f"{save_name}.json") +#delete file +(full_save_name).unlink() ``` ## 5) Visualize the results From 203e7ef139517469a5aca86af3c62972dc87438f Mon Sep 17 00:00:00 2001 From: gordonkoehn Date: Mon, 16 Oct 2023 12:03:46 +0200 Subject: [PATCH 17/19] remove whitespace --- docs/api/analyze.md | 5 ----- docs/api/distances.md | 8 -------- docs/api/index.md | 1 - docs/api/tree_inference.md | 24 ------------------------ 4 files changed, 38 deletions(-) diff --git a/docs/api/analyze.md b/docs/api/analyze.md index 57d53c55..20e5c492 100644 --- a/docs/api/analyze.md +++ b/docs/api/analyze.md @@ -1,13 +1,8 @@ # Analyze ::: pyggdrasil.analyze.rhats - ::: pyggdrasil.analyze.ess - ::: pyggdrasil.analyze.Metrics - ::: pyggdrasil.analyze.to_pure_mcmc_data - ::: pyggdrasil.analyze.check_run_for_tree - ::: pyggdrasil.analyze.analyze_mcmc_run \ No newline at end of file diff --git a/docs/api/distances.md b/docs/api/distances.md index 8e9f117e..4116acbf 100644 --- a/docs/api/distances.md +++ b/docs/api/distances.md @@ -1,21 +1,13 @@ # Distances ::: pyggdrasil.distances.TreeDistance - ::: pyggdrasil.distances.TreeSimilarity - ::: pyggdrasil.distances.TreeSimilarityMeasure - ::: pyggdrasil.distances.calculate_distance_matrix - ::: pyggdrasil.distances.AncestorDescendantSimilarity - ::: pyggdrasil.distances.MP3Similarity - ::: pyggdrasil.distances.AncestorDescendantSimilarityInclRoot - ::: pyggdrasil.distances.DifferentLineageSimilarity - ::: pyggdrasil.distances.MLTDSimilarity diff --git a/docs/api/index.md b/docs/api/index.md index 4633483a..6298e98a 100644 --- a/docs/api/index.md +++ b/docs/api/index.md @@ -10,7 +10,6 @@ This package handels trees with _Anytree_, see our adaption in the class _TreeNode_ below. For the inference we convert trees to binary adjacency matrices see [Tree Inference](tree_inference.md), for reasons of performance. ::: pyggdrasil.TreeNode - ::: pyggdrasil.compare_trees diff --git a/docs/api/tree_inference.md b/docs/api/tree_inference.md index 6572722d..61eaf21e 100644 --- a/docs/api/tree_inference.md +++ b/docs/api/tree_inference.md @@ -1,52 +1,28 @@ # Tree Inference ::: pyggdrasil.tree_inference.CellAttachmentStrategy - ::: pyggdrasil.tree_inference.CellSimulationData - ::: pyggdrasil.tree_inference.CellSimulationId - ::: pyggdrasil.tree_inference.CellSimulationModel - ::: pyggdrasil.tree_inference.ErrorCombinations - ::: pyggdrasil.tree_inference.ErrorRates - ::: pyggdrasil.tree_inference.evolve_tree_mcmc - ::: pyggdrasil.tree_inference.evolve_tree_mcmc_all - ::: pyggdrasil.tree_inference.gen_sim_data - ::: pyggdrasil.tree_inference.get_descendants - ::: pyggdrasil.tree_inference.get_simulation_data - ::: pyggdrasil.tree_inference.huntress_tree_inference - ::: pyggdrasil.tree_inference.make_tree - ::: pyggdrasil.tree_inference.McmcConfig - ::: pyggdrasil.tree_inference.McmcConfigOptions - ::: pyggdrasil.tree_inference.McmcRunId - ::: pyggdrasil.tree_inference.mcmc_sampler - ::: pyggdrasil.tree_inference.MoveProbabilities - ::: pyggdrasil.tree_inference.MoveProbConfig - ::: pyggdrasil.tree_inference.MoveProbConfigOptions - ::: pyggdrasil.tree_inference.MutationDataId - ::: pyggdrasil.tree_inference.MutationMatrix - ::: pyggdrasil.tree_inference.Tree - ::: pyggdrasil.tree_inference.TreeId - ::: pyggdrasil.tree_inference.TreeType From 7f9aa4cef16b6082c2a37e18b2f1094c8ed2f24e Mon Sep 17 00:00:00 2001 From: gordonkoehn Date: Mon, 16 Oct 2023 12:05:56 +0200 Subject: [PATCH 18/19] remove whitespace --- docs/api/serialize.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/docs/api/serialize.md b/docs/api/serialize.md index 14b2d7f9..65a99c24 100644 --- a/docs/api/serialize.md +++ b/docs/api/serialize.md @@ -1,18 +1,11 @@ # Serialize ::: pyggdrasil.serialize.serialize_tree_to_dict - ::: pyggdrasil.serialize.deserialize_tree_from_dict - ::: pyggdrasil.serialize.read_mcmc_samples - ::: pyggdrasil.serialize.save_mcmc_sample - ::: pyggdrasil.serialize.read_tree_node - ::: pyggdrasil.serialize.save_tree_node - ::: pyggdrasil.serialize.save_metric_result - ::: pyggdrasil.serialize.read_metric_result From fdc7ccdbda20d42414b068ab8fd88be177e99410 Mon Sep 17 00:00:00 2001 From: gordonkoehn Date: Mon, 16 Oct 2023 12:15:39 +0200 Subject: [PATCH 19/19] remove long outputs --- docs/tutorial/singleMCMC.md | 204 +---------------------------------- docs/tutorial/singleMCMC.qmd | 2 + 2 files changed, 4 insertions(+), 202 deletions(-) diff --git a/docs/tutorial/singleMCMC.md b/docs/tutorial/singleMCMC.md index fac1ce42..ee70442a 100644 --- a/docs/tutorial/singleMCMC.md +++ b/docs/tutorial/singleMCMC.md @@ -90,6 +90,8 @@ mut_mat = jnp.array(data['noisy_mutation_mat']) print(mut_mat) ``` + INFO:pyggdrasil.tree_inference._simulate:Generated cell-mutation data. + [[0 0 0 ... 0 0 1] [1 0 0 ... 0 0 0] [1 1 1 ... 0 0 0] @@ -141,107 +143,6 @@ mcmc_data = yg.serialize.read_mcmc_samples(save_dir / f"{save_name}.json") (full_save_name).unlink() ``` - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Accepted - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc:Move Rejected - INFO:pyggdrasil.tree_inference._mcmc_sampler:Finished MCMC sampler. - ## 5) Visualize the results In the following we would like to plot the evolution of the MCMC chain @@ -255,107 +156,6 @@ that contains the trees and the log probabilities of the trees. mcmc_samples = yg.analyze.to_pure_mcmc_data(mcmc_data) ``` - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 0 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 1 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 2 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 3 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 4 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 5 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 6 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 7 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 8 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 9 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 10 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 11 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 12 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 13 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 14 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 15 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 16 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 17 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 18 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 19 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 20 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 21 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 22 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 23 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 24 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 25 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 26 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 27 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 28 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 29 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 30 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 31 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 32 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 33 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 34 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 35 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 36 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 37 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 38 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 39 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 40 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 41 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 42 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 43 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 44 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 45 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 46 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 47 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 48 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 49 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 50 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 51 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 52 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 53 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 54 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 55 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 56 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 57 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 58 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 59 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 60 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 61 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 62 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 63 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 64 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 65 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 66 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 67 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 68 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 69 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 70 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 71 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 72 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 73 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 74 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 75 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 76 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 77 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 78 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 79 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 80 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 81 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 82 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 83 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 84 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 85 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 86 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 87 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 88 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 89 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 90 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 91 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 92 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 93 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 94 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 95 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 96 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 97 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 98 - DEBUG:pyggdrasil.analyze._utils:converting sample of index: 99 - Now, we may plot it. ``` python diff --git a/docs/tutorial/singleMCMC.qmd b/docs/tutorial/singleMCMC.qmd index b51803a4..1f45dd9f 100644 --- a/docs/tutorial/singleMCMC.qmd +++ b/docs/tutorial/singleMCMC.qmd @@ -81,6 +81,7 @@ We configure the move probabilities and error rates and run the MCMC chain for 1 The sampels are saved to disk and loaded back into memory as chains may be very long. ```{python} +#| warning: false ## Run MCMC # converting initial tree from TreeNode to Tree format init_tree_t = yg.tree_inference.Tree.tree_from_tree_node(starting_tree) @@ -124,6 +125,7 @@ In the following we would like to plot the evolution of the MCMC chain and the t First we convert the data from the serialized format to a _pureMCMCdata_ format. This is a simple dataclass that contains the trees and the log probabilities of the trees. ```{python} +#| warning: false # unpack the data - reads in the serialized trees to Tree objects # takes some time as tree objects are built and checked for validity mcmc_samples = yg.analyze.to_pure_mcmc_data(mcmc_data)