This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 0.3.1 instead.
Reason given by maintainers: dead
dyno-phi
Retired.
dyno-phi0.2.x is the earlier Phi client and 0.2.4 is its last release; the API it talks to has been shut down, and every 0.2.x release on PyPI is yanked. The current Phi client isdyno-phi1.0 and later, published fromdynotx/phi-apiunder the same package name: runpip install --upgrade dyno-phi(oruv tool install "dyno-phi[cli]"; Python 3.12+), setPHI_API_KEYandPHI_APIin place ofDYNO_API_KEYandDYNO_API_BASE_URL, and read the new command tree at design.dynotx.com/docs. This repository is archived. The text below describes 0.2.x as it was.
Phi CLI for the dyno protein structure analysis platform.
phi is the command-line interface for uploading protein structures, running
structure prediction and inverse-folding pipelines, filtering and scoring
candidates, and downloading results from the dyno API.
Results and scores are viewable in the web dashboard at
design.dynotx.com/dashboard/datasets/<dataset_id>.
Table of contents
- Installation
- Authentication
- Quick start
- Command reference
- Filter presets
- State caching
- Claude Code skill
- Development
Installation
pip install dyno-phi
Requires Python ≥ 3.9.
Authentication
Create an API key at Settings → API keys in the dyno web app
(https://design.dynotx.com/dashboard/settings), then export it:
export DYNO_API_KEY=ak_...
The key is cached to .phi/state.json on first use so you don't need to
re-export it in future sessions.
Verify your connection:
phi login
Quick start
Try the tutorial
The fastest way to get started — downloads five example PD-L1 binder structures and walks you through the full pipeline:
phi tutorial
This fetches the example files, prints step-by-step instructions, and leaves
you ready to run phi filter.
Scoring your own structures
# 1. Upload PDB/CIF files
phi upload ./designs/
# 2. Run the full filter pipeline
phi filter --preset default --wait
# 3. View scores and download results
phi scores
phi download --out ./results/
After each command, phi prints the active dataset and a link to the
dashboard:
Active: dataset [d7c3a1b2-...] · job [cb4553f5-...]
Dashboard: https://design.dynotx.com/dashboard/datasets/d7c3a1b2-...
Command reference
| Command | Alias | Description |
|---|---|---|
phi tutorial |
— | Download example structures and print a step-by-step walkthrough |
phi login |
— | Verify API key and print identity |
phi upload |
— | Upload PDB/CIF files or a directory |
phi fetch |
— | Download a structure from RCSB PDB or AlphaFold DB, crop, and optionally upload |
phi datasets |
— | List datasets |
phi dataset |
— | Show dataset details |
phi use <dataset_id> |
— | Set active dataset (cached to .phi/state.json) |
phi folding |
esmfold |
Single-sequence structure prediction (ESMFold) |
phi complex_folding |
alphafold |
Multi-chain complex prediction (AlphaFold2 multimer) |
phi inverse_folding |
proteinmpnn |
Sequence design via inverse folding (ProteinMPNN) |
phi esm2 |
— | Sequence embedding and scoring (ESM2) |
phi boltz |
— | Structure prediction (Boltz-1) |
phi filter |
— | Full filter pipeline: inverse folding → folding → complex folding → score |
phi status <job_id> |
— | Poll job status |
phi jobs |
— | List recent jobs |
phi logs <job_id> |
— | Stream job logs |
phi cancel <job_id> |
— | Cancel a running job |
phi scores |
— | Display scores table for a completed filter job |
phi download |
— | Download job artifacts (structures, scores, raw JSONs) |
phi research |
— | Run a research query against the platform |
phi notes |
— | Manage dataset research notes |
Common flags
| Flag | Commands | Description |
|---|---|---|
--dataset-id ID |
most | Target dataset (omit to use cached) |
--wait |
most | Poll until job completes, then print summary |
--out DIR |
download, scores |
Output directory (default: ./results) |
--preset default|relaxed |
filter |
Filter threshold preset |
--num-sequences N |
inverse_folding |
Sequences per design (default: 4) |
--models 1,2 |
complex_folding |
AlphaFold2 model numbers (default: 1,2,3) |
--poll-interval S |
global | Seconds between status polls (default: 5) |
Filter presets
phi filter applies a multi-stage quality-control pipeline and scores each
design against configurable thresholds.
| Metric | default |
relaxed |
Description |
|---|---|---|---|
| pLDDT | ≥ 0.80 | ≥ 0.80 | ESMFold per-residue confidence |
| pTM | ≥ 0.55 | ≥ 0.45 | Global TM-score proxy (ESMFold) |
| ipTM | ≥ 0.50 | ≥ 0.50 | Interface pTM (AF2 multimer) |
| iPAE | ≤ 10.85 Å | ≤ 12.4 Å | AF2 interface PAE in Å |
| RMSD | ≤ 3.5 Å | ≤ 4.5 Å | Backbone RMSD vs. reference |
Override any threshold with an explicit flag:
phi filter --dataset-id ... --plddt 0.75 --iptm 0.45
State caching
phi caches the most recently used dataset ID, job ID, and API key in
.phi/state.json so you don't need to pass --dataset-id or re-export your
key repeatedly:
phi use d7c3a1b2-... # set active dataset
phi filter --preset default # uses cached dataset
phi scores # uses cached job
phi download --out ./results # uses cached job
The dashboard URL for the active dataset is printed after every command:
Dashboard: https://design.dynotx.com/dashboard/datasets/d7c3a1b2-...
Claude Code skill
The phi skill is bundled at skills/phi/SKILL.md and is automatically
available when you open this repo in Claude Code (Cursor or the claude CLI).
No installation needed — just open the project and ask naturally:
Upload the PDB files in ./examples/ and run the default filter pipeline.
To make the skill available in all your projects (outside this repo):
mkdir -p ~/.claude/skills/phi
cp skills/phi/SKILL.md ~/.claude/skills/phi/SKILL.md
Development
git clone https://github.com/dynotx/phi-cli
cd phi-cli
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
# Lint
ruff check src/
# Type check
mypy src/phi/
# Run tests
pytest tests/
Releasing to PyPI
Releases are published via GitHub Actions. Push a version tag to trigger the workflow:
# Bump src/phi/_version.py, update CHANGELOG.md, then:
git tag v0.1.0
git push origin main --tags
The workflow publishes to TestPyPI automatically, then waits for manual
approval before publishing to the real PyPI. See
.github/workflows/publish.yml for details.
Metadata
Release files for dyno-phi 0.2.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dyno_phi-0.2.4.tar.gz | 414.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dyno_phi-0.2.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 573.3 kB
Release files / dyno_phi-0.2.4.tar.gz
| Download URL | dyno_phi-0.2.4.tar.gz |
|---|---|
| Size | 414.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2384623096e4b14e2ac35b5d29e4e8475d4524c5d9e9a4425c7dec44af8de542
|
|
BLAKE2b-256 checksum How to use checksums |
a65307ab2cb076903895a74194ca08bfb337e1518dc4d55c0dd4623f6f3cdb58
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency logRelease files / dyno_phi-0.2.4-py3-none-any.whl
| Download URL | dyno_phi-0.2.4-py3-none-any.whl |
|---|---|
| Size | 158.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
03d8dff0f6043fb0d9ee42eb06e2af21a3e3c677c7f362581b13b2f5709bb126
|
|
BLAKE2b-256 checksum How to use checksums |
bbf9145b2b1ea4fcd1a09d637e6a1fb4c2652b4d5239f0d61a0eb4b16725236a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency log