Skip to main content

Intermediate representation and converters for protein folding model inputs

Project description

tests

SPIR

SPIR (Structure Prediction Intermediate Representation) exists to make it practical to compare and iterate across multiple structure prediction models without constantly rewriting inputs by hand. Different predictors (AlphaFold3 Server/non-Server, Chai-1, Boltz-2, Protenix) can yield meaningfully different structures, confidence metrics, and binding/interface hypotheses on the same biological system; being able to run the same job across models is essential for validating conclusions, spotting model-specific artifacts, and choosing the best tool for a given target or constraint set.

In practice, such comparisons are hindered by the format fragmentation across different models, especially for glycans, where representations range from compact tree strings with implicit chemistry (e.g., AF3 Server) to fully specified multi-component ligands with explicitly specified bonded atom pairs. Reliably converting between formats requires more than renaming fields: it necessitates an intermediate graph-like representation that preserves residue identity, connectivity, attachment sites, and (when needed) explicit linkage atoms/positions, while also handling cases where a target format omits or infers chemistry. SPIR provides that IR together with model-specific converters so scientific questions, not input wrangling, drive the workflow.

Installation

The easiest way to install SPIR is to use pip:

pip install spir

If you want to build from source, you can clone the repository and run:

git clone https://github.com/briney/spir
cd spir
pip install -e .

Usage

SPIR provides a CLI for converting between different structure prediction model inputs.

spir convert --from DIALECT INPUT_FILE --to DIALECT OUTPUT_PREFIX

For example, to convert an AlphaFold3 Server input to an AlphaFold3 (non-Server) output, you can run:

spir convert --from alphafold3server path/to/input.json --to alphafold3 path/to/output

[!NOTE] The output_prefix should only contain the prefix for the output files (no extension). The correct extension will be added automatically.

If your input is Chai-1 formatted and includes restraints, you can specify the restraints file with the --restraints option:

spir convert --from chai1 input.fasta --to protenix output --restraints restraints.csv

Supported Models

SPIR supports the following structure prediction models:

model dialect
AlphaFold3 Server alphafold3server
AlphaFold3 (non-Server) alphafold3
Boltz-2 boltz2
Chai-1 chai1
Protenix protenix

License

SPIR is licensed under the MIT License. See the LICENSE file for details.

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

spir-0.1.0.tar.gz (4.4 MB view details)

Uploaded Source

Built Distribution

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

spir-0.1.0-py3-none-any.whl (4.3 MB view details)

Uploaded Python 3

File details

Details for the file spir-0.1.0.tar.gz.

File metadata

  • Download URL: spir-0.1.0.tar.gz
  • Upload date:
  • Size: 4.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for spir-0.1.0.tar.gz
Algorithm Hash digest
SHA256 645fe20d0ee27572d228a879cf55d62ffabdff0d87d944513fb9b4e4b26d037c
MD5 b8f20385d9868bfaded7af73e3fe0f80
BLAKE2b-256 4bb5daa7516314577dff86593fa22dab9d585eba5500a4730cdf17c007822758

See more details on using hashes here.

Provenance

The following attestation bundles were made for spir-0.1.0.tar.gz:

Publisher: python-publish.yaml on briney/spir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spir-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: spir-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for spir-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4f61012e7b9166bb57bda7e9c1e0a5bf0c2d1e9e04d68bc6ed744bbb2c44f297
MD5 441c7802c0c007e018d4d5b75e1254ad
BLAKE2b-256 e2a108587ad43cf18b50db3be894fdc928b3d77a7d66942f8359192dbf498608

See more details on using hashes here.

Provenance

The following attestation bundles were made for spir-0.1.0-py3-none-any.whl:

Publisher: python-publish.yaml on briney/spir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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