Skip to content

monarch-initiative/phenopacket-store-toolkit

Repository files navigation

Phenopacket Store Toolkit

Phenopacket Store Toolkit is a Python package and CLI for managing Phenopacket Store, a collection of GA4GH Phenopacket cohorts that represent individuals with Mendelian diseases.

The toolkit aids the release and Q/C processes, and simplifies access to the Phenopacket Store data from the downstream applications.

Availability

Phenopacket Store Toolkit can be installed from Python Package Index (PyPi):

python3 -m pip install phenopacket-store-toolkit

Examples

Access Phenopacket Store

The toolkit simplifies download and loading the cohort data. The PhenopacketStoreRegistry API caches the release ZIP files locally (in $HOME/.phenopacket-store by default) and simplifies the loading:

from ppktstore.registry import configure_phenopacket_registry

registry = configure_phenopacket_registry()

with registry.open_phenopacket_store(release="0.1.18") as ps:
   phenopackets = list(ps.iter_cohort_phenopackets("SUOX"))

assert len(phenopackets) == 35

The code checks if the release ZIP of Phenopacket Store version 0.1.18 is already available locally, and downloads the release ZIP file if necessary. This is followed by opening the store as ps and loading all phenopackets of the SUOX cohort.

We use Python context manager to ensure proper closing of the ZIP file handle. ps cannot be used outside of the context manager block.

As an alternative to using a specific Phenopacket Store release, the latest release will be used if release argument is omitted.

Make Phenopacket Store release

The release is handled by the Command Line Interface (CLI) of the toolkit.

The release functionality requires additional dependencies, which are installed automatically by adding release profile:

python3 -m pip install phenopacket-store-toolkit[release]

Now, we can Q/C the phenopackets in the notebooks directory. The Q/C uses HPO hierarchy, hence HPO must be provided either as path to a hp.json file via --hpo option or as a release tag via --hpo-release:

python3 -m ppktstore qc --hpo-release v2024-04-26 --notebook-dir notebooks

and we can create the release archive by running:

python3 -m ppktstore package --notebook-dir notebooks --release-tag 0.1.18 --output all_phenopackets

This will find all phenopackets in the notebooks folder, copy them into a top-level directory called 0.1.18, and ZIP the directory into all_phenopackets.zip.

Learn more

Find more info in our detailed documentation:

About

Toolkit for accessing, Q/C, and maintenance of Phenopacket Store

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •