Skip to main content

Basic GUTS model implementation in pymob

Project description

CASE_STUDY:

Short summary of the case study

Instructions

Prerequisites

Install git (https://git-scm.com/downloads), conda (https://docs.anaconda.com/free/miniconda/) and datalad (https://handbook.datalad.org/en/latest/intro/installation.html)

Development

If pymob is installed as editable, stub packages need also to be isntalled. This is important! Otherwise nothing will work.

pip uninstall types-pymob-guts-base

While test files are shipped (data/testing/*nc), it is recommended to generate them, when the observations datasets (.nc files) that are expected by GutsBase change. This can be done with the command

python tests/_create_fixtures.py

Installation

Prerequisites

If the case study was not already installed as a submodule with a meta package, you can install the package as follows.

Open a command line utility (cmd, bash, ...) and execute

git clone git@github.com:flo-schu/CASE_STUDY
cd CASE_STUDY

Create environment, activate it and install model package.

conda create -n CASE_STUDY
conda activate guts
conda install python=3.11
pip install -r requirements.txt

In order to install additional inference backends, use:

pip install pymob[numpyro]

For the available backends see https://pymob.readthedocs.io/en/latest/

Download or start tracking datasets

Download potentially existing results datasets

datalad clone git@gin.g-node.org:/flo-schu/CASE_STUDY__results.git results

if this is not possible create a new dataset (see section below)

datalad create -c text2git results
datalad create -c text2git data

Case study layout

This is the layout of your folder. Files like README, requirements, LICENSE and .gitignore are not shown, because they are not strictly necessary for the case study but contain important metadata

└─ test_case_study
    ├─ data
    │   └─ ...
    ├─ results
    │   └─ ...
    ├─ scenarios
    │   ├─ test_scenario
    │   └─ test_scenario_2
    ├─ scripts
    │   └─ ...
    ├─ __init__.py
    ├─ data.py
    ├─ mod.py
    ├─ plot.py
    ├─ prob.py
    ├─ sim.py
    ├─ ...

Usage

The case studies should now be ready to use. To get started, see: https://pymob.readthedocs.io/en/latest/

Command line

there is a command line script provided by the pymob package which will directly run inference accroding to the scenario settings.cfg file provided in the scenario folder of the respective case study. For details see https://pymob.readthedocs.io/en/latest/case_studies.html

pymob-infer --case_study CASE_STUDY --scenario SCENARIO --inference_backend numpyro

The options in the settings.cfg are the same as used when preparing the publication

The results will be stored in the results directory of the respective case study unless otherwise specified in the settings.cfg

Tracking results and data with datalad and gin

  1. create a new results dataset in the root of the repository

datalad create -c text2git results

if the directory already exists, use the -f flag:

datalad create -f -c text2git results

  1. save the results as they come in in order to keep a version history.

datalad save -m "Computed posterior with nuts"

Upload the dataset to gin.

  1. Create a new repository on gin https://gin.g-node.org/

  2. add the repository as a remote for the dataset

datalad siblings add -d . --name gin --url git@gin.g-node.org:/flo-schu/CASE_STUDY__results.git

The remote is now connected to the sibling gin.

  1. Push new results to gin datalad push --to gin

Using a case study as a foundation for building new models

You may have noticed an __init__.py file. This file makes the case study a package. This way, the package can be installed as a submodule in any other package.

This means, case-studies can be stacked on top of each other. This way, only the changes need to be captured in the new case study and can be transferred into the next project.

The downside is that pymob versions need to be compatible for this use case.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

guts_base-2.2.1.tar.gz (137.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

guts_base-2.2.1-py3-none-any.whl (125.0 kB view details)

Uploaded Python 3

File details

Details for the file guts_base-2.2.1.tar.gz.

File metadata

  • Download URL: guts_base-2.2.1.tar.gz
  • Upload date:
  • Size: 137.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for guts_base-2.2.1.tar.gz
Algorithm Hash digest
SHA256 115f7eea11e67611233af1921f3dee4a3f2a7ed777ca5fb2bc51ec8d67601b74
MD5 392ba40610dafb102dab3d7333ab0a35
BLAKE2b-256 61368260f00cd1243e15d69acdf69af1ba57cd37d59da175550201d7dd7fbb8f

See more details on using hashes here.

File details

Details for the file guts_base-2.2.1-py3-none-any.whl.

File metadata

  • Download URL: guts_base-2.2.1-py3-none-any.whl
  • Upload date:
  • Size: 125.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for guts_base-2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a68e3f6987dc3f14a42cb1ca6b958b0f68874d2a8e3484a7ac6c3b88f1e49b45
MD5 dba6ebb15ac93d67bde56481b8e44696
BLAKE2b-256 4e0ddffd43c27fd7413d2d041d9c435cc70734104ca8c7c6130d78a7a779252a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page