Skip to main content
Yanked

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-phi 0.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 is dyno-phi 1.0 and later, published from dynotx/phi-api under the same package name: run pip install --upgrade dyno-phi (or uv tool install "dyno-phi[cli]"; Python 3.12+), set PHI_API_KEY and PHI_API in place of DYNO_API_KEY and DYNO_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

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)

Source distribution for dyno-phi 0.2.4
File Size Uploaded
dyno_phi-0.2.4.tar.gz 414.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dyno-phi 0.2.4
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

0.3.1

2 release files

0.3.0

2 release files

This release

0.2.4 This release

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.0

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page