Installation¶
Not yet on PyPI — install from a checkout of the repo:
git clone https://github.com/npechl/pandora.git
cd pandora
# base install
pip install -e .
# install full toolkit
pip install -e ".[full]"
# install multiple components
pip install -e ".[similarity,export]"
# install development
pip install -e ".[dev]"
The base install includes pydantic, pyyaml, and gemmi — enough to parse mmCIF files you already have, canonicalise them, collect metadata, and run annotations. Everything else below is an add-on for one specific capability.
Components¶
pandora/ is one package per component (see the Overview diagram), but most stages need nothing beyond the base install — only ingestion, export, and similarity pull in extra dependencies. Rows below with no pip install command aren't real pyproject.toml extras; running pip install -e ".[parsing]" (for example) would just error with "extra not found".
| Install | Description | Adds |
|---|---|---|
pip install -e . |
parsing — turn a raw mmCIF file into Pandora's typed Structure, via mmcif_to_structure() |
nothing — gemmi is a base dependency |
pip install -e ".[ingestion]" |
ingestion — fetch mmCIF files from PDBe/RCSB myself | httpx, for fetch_mmcif() / fetch_list_mmcif() |
pip install -e . |
canonicalisation — apply a policy to normalize chain IDs, altlocs, entities, ligands, etc. via canonicalise_structure() |
nothing |
pip install -e . |
metadata — collect source-backed entry/quality/taxonomy/entity/ligand/UniProt-mapping records via collect_metadata() |
nothing |
pip install -e . |
annotations — derived per-entry/pairwise layers: structure counts, ligand contacts, chain interfaces, sequence identity | nothing |
pip install -e . |
datasets — reshape a canonical Structure into Chain/Residue/Interface records via extract_*_records(), and curate/deduplicate a dataset via curate_structure() / deduplicate_structures() |
nothing |
pip install -e ".[similarity]" + mmseqs2/foldseek on PATH |
similarity — compute sequence/structure similarity | nothing pip-managed — see below |
pip install -e . |
provenance — build a per-structure ProvenanceBundle (ingestion/canonicalisation/metadata/annotation provenance) via build_provenance_bundle() |
nothing |
pip install -e . |
schemas — the typed Pydantic models (Structure, policies, records, ...) every other package builds on; not something you install on its own |
nothing — always included |
pip install -e . |
cli — the pandora command, exposing each component as a subcommand (fetch, ingest, canonicalise, curate, dedup, similarity, cluster, partition, annotate, manifest, reproduce, export) |
nothing to install the CLI itself — fetch/reproduce need the ingestion extra, similarity needs mmseqs2/foldseek on PATH |
pip install -e ".[export]" |
export — write datasets to Parquet | pandas + pyarrow, for write_records(..., "*.parquet"). Exporting to mmCIF/JSON needs no extra |
pip install -e ".[dev]" |
Run the test suite / lint | pytest, pytest-cov, ruff |
pip install -e ".[full]" |
All extras combined | ingestion + export + dev + docs |
If you're not fetching files over the network, computing similarity, or exporting to Parquet, the base install is all you need — parsing, canonicalisation, metadata, annotations, dataset records, and provenance bundles all work with no extras.
External binaries¶
Similarity¶
pandora.similarity.sequence (MMseqs2) and pandora.similarity.structure (Foldseek) shell out to command-line tools that aren't distributed on PyPI. Install them separately and make sure they're on PATH, e.g. via conda:
Nothing in the test suite exercises these two modules, so a missing binary only breaks the specific call that needs it — the rest of Pandora is unaffected.