https://github.com/cbg-ethz/pyggdrasil

Inference and analysis of mutation trees in Python

https://github.com/cbg-ethz/pyggdrasil

Science Score: 33.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: pubmed.ncbi, ncbi.nlm.nih.gov
  • Committers with academic emails
    1 of 2 committers (50.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.3%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Inference and analysis of mutation trees in Python

Basic Info
Statistics
  • Stars: 6
  • Watchers: 2
  • Forks: 0
  • Open Issues: 4
  • Releases: 1
Created over 3 years ago · Last pushed over 2 years ago
Metadata Files
Readme Contributing License

README.md

Project Status: proof-of-concept – repository is only intended to be a limited example, demo, or proof-of-concept. build Ruff Code style: black

PYggdrasil

Python package for inference and analysis of mutation trees.

PYggdrasil implements the Single Cell Inference of Tumor Evolution (SCITE) algorithm by Kuipers J et al. (2015).

It was designed to quantify the MCMC exploration of tumour progression tree spaces, in particular to investigate Initialisation Strategies, Convergence Diagnostics, & Multi-modalities.

Usage

python import pyggdrasil as yg

Contributing

See Contributing Guidelines.

Setting up the repository

We recommend creating a Conda environment for isolation:

bash $ conda create -n pyggdrasil python=3.10 $ conda activate pyggdrasil and to a simple install with $ pip install -e .

If you just want to rerun workflows just:

bash $ poetry install

Quick Run: to run an example workflow, further install snakemake and run a simple MCMC bash $ conda install snakemake $ cd workflows $ snakemake -c 2 mark00

To build the package and maintain dependencies, we use Poetry. In particular, it's good to install it and become familiar with its basic functionalities by reading the documentation.

To set up the environment (together with development tools), run: bash $ poetry install --with dev $ poetry run pre-commit install

Then, you will be able to run tests: bash $ poetry run pytest ... or check the types: bash $ poetry run pyright

Alternatively, you may prefer to work with the right Python environment using: bash $ poetry shell $ pytest

Existing code quality checks

The code quality checks run on GitHub can be seen in .github/workflows/test.yml.

We are using:

Workflow

We use 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.

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 Conda environment in workflows/README.md

Origin & Authorship

This package originates from Gordon J Köhn's MSc Thesis: Quantifying MCMC Exploration of Tumour Progression Tree Spaces in 2023 at ETH Zürich. Paweł Czyż and Prof. Dr Niko Beerenwinkel supervised this project as part of the Computational Biology Group at the Department of Biosystems Science and Engineering.

Owner

  • Name: Computational Biology Group (CBG)
  • Login: cbg-ethz
  • Kind: organization
  • Location: Basel, Switzerland

Beerenwinkel Lab at ETH Zurich

GitHub Events

Total
  • Watch event: 2
  • Delete event: 1
  • Issue comment event: 2
  • Push event: 4
  • Pull request review event: 3
  • Pull request review comment event: 1
  • Pull request event: 5
  • Create event: 2
Last Year
  • Watch event: 2
  • Delete event: 1
  • Issue comment event: 2
  • Push event: 4
  • Pull request review event: 3
  • Pull request review comment event: 1
  • Pull request event: 5
  • Create event: 2

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 105
  • Total Committers: 2
  • Avg Commits per committer: 52.5
  • Development Distribution Score (DDS): 0.105
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Gordon Julian Koehn g****n@k****t 94
Paweł Czyż p****z@a****h 11
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: about 1 year ago

All Time
  • Total issues: 85
  • Total pull requests: 104
  • Average time to close issues: 21 days
  • Average time to close pull requests: 4 days
  • Total issue authors: 2
  • Total pull request authors: 2
  • Average comments per issue: 1.28
  • Average comments per pull request: 0.79
  • Merged pull requests: 92
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • gordonkoehn (72)
  • pawel-czyz (13)
Pull Request Authors
  • gordonkoehn (95)
  • pawel-czyz (11)
Top Labels
Issue Labels
🦾 action: enhancement (38) 🧩 in sprint (26) ⏰ time estimate: S (20) ❗priority: high (19) ❗priority: medium (18) ⏰ time estimate: M (18) ❗priority: low (15) 🕮 action: documentation (10) action: refactor (10) 🐛 bug (9) ⏰ time estimate: L (7) 🧪 action: experiment (7) 🏃sprint plan (2)
Pull Request Labels
🦾 action: enhancement (50) ⏰ time estimate: S (28) ❗priority: high (26) 🐛 bug (24) 🧩 in sprint (18) ❗priority: medium (17) ⏰ time estimate: M (16) 🕮 action: documentation (14) ❗priority: low (11) action: refactor (8) 🧪 action: experiment (6) ⏰ time estimate: L (3) help wanted (1)