{"id":31977593,"url":"https://github.com/bytedance/Protenix","last_synced_at":"2025-10-14T21:49:01.543Z","repository":{"id":261824263,"uuid":"885346783","full_name":"bytedance/Protenix","owner":"bytedance","description":"A trainable PyTorch reproduction of AlphaFold 3.","archived":false,"fork":false,"pushed_at":"2025-09-19T05:37:21.000Z","size":89970,"stargazers_count":1319,"open_issues_count":62,"forks_count":191,"subscribers_count":25,"default_branch":"main","last_synced_at":"2025-09-19T07:35:46.513Z","etag":null,"topics":["ai4science","research"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bytedance.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-08T12:12:52.000Z","updated_at":"2025-09-19T05:37:25.000Z","dependencies_parsed_at":"2025-02-19T06:01:51.849Z","dependency_job_id":"0750cc22-311a-41de-872b-d3a88cdc5921","html_url":"https://github.com/bytedance/Protenix","commit_stats":null,"previous_names":["bytedance/protenix"],"tags_count":28,"template":false,"template_full_name":null,"purl":"pkg:github/bytedance/Protenix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytedance%2FProtenix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytedance%2FProtenix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytedance%2FProtenix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytedance%2FProtenix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bytedance","download_url":"https://codeload.github.com/bytedance/Protenix/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytedance%2FProtenix/sbom","scorecard":{"id":1237310,"data":{"date":"2025-09-09T07:44:42Z","repo":{"name":"github.com/bytedance/Protenix","commit":"ec292e3a53e64f33afc8b8217cabcbca50f4a55a"},"scorecard":{"version":"v4.13.1","commit":"49c0eed3a423f00c872b5c3c9f1bbca9e8aae799"},"score":4.7,"checks":[{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#binary-artifacts"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#branch-protection"}},{"name":"CI-Tests","score":10,"reason":"9 out of 9 merged PRs checked by a CI test -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project runs tests before pull requests are merged.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#ci-tests"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#cii-best-practices"}},{"name":"Code-Review","score":4,"reason":"found 12 unreviewed changesets out of 21 -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#code-review"}},{"name":"Contributors","score":10,"reason":"4 different organizations found -- score normalized to 10","details":["Info: contributors work for bytedance,georgia institute of technology,ml4bio,shenyang pharmaceutical university"],"documentation":{"short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies).","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#contributors"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#dangerous-workflow"}},{"name":"Dependency-Update-Tool","score":0,"reason":"no update tool detected","details":["Warn: tool 'RenovateBot' is not used: Follow the instructions from https://docs.renovatebot.com/configuration-options/. (Low effort)","Warn: tool 'Dependabot' is not used: Follow the instructions from https://docs.github.com/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates. (Low effort)","Warn: tool 'PyUp' is not used: Follow the instructions from https://docs.pyup.io/docs. (Low effort)","Warn: tool 'Sonatype Lift' is not used: Follow the instructions from https://help.sonatype.com/lift/getting-started. (Low effort)"],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#dependency-update-tool"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no OSSFuzz integration found: Follow the steps in https://github.com/google/oss-fuzz to integrate fuzzing for your project.\nOver time, try to add fuzzing for more functionalities of your project. (High effort)","Warn: no OneFuzz integration found: Follow the steps in https://github.com/microsoft/onefuzz to start fuzzing for your project.\nOver time, try to add fuzzing for more functionalities of your project. (High effort)","Warn: no GoBuiltInFuzzer integration found: Follow the steps in https://go.dev/doc/fuzz/ to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)","Warn: no PythonAtherisFuzzer integration found: Follow the steps in https://github.com/google/atheris to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)","Warn: no CLibFuzzer integration found: Follow the steps in https://llvm.org/docs/LibFuzzer.html to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)","Warn: no CppLibFuzzer integration found: Follow the steps in https://llvm.org/docs/LibFuzzer.html to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)","Warn: no SwiftLibFuzzer integration found: Follow the steps in https://google.github.io/oss-fuzz/getting-started/new-project-guide/swift-lang/ to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)","Warn: no RustCargoFuzzer integration found: Follow the steps in https://rust-fuzz.github.io/book/cargo-fuzz.html to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)","Warn: no JavaJazzerFuzzer integration found: Follow the steps in https://github.com/CodeIntelligenceTesting/jazzer to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)","Warn: no ClusterFuzzLite integration found: Follow the steps in https://github.com/google/clusterfuzzlite to integrate fuzzing as part of CI.\nOver time, try to add fuzzing for more functionalities of your project. (High effort)","Warn: no HaskellPropertyBasedTesting integration found: Use one of the following frameworks to fuzz your project:\nQuickCheck: https://hackage.haskell.org/package/QuickCheck\nhedgehog: https://hedgehog.qa/\nvalidity: https://github.com/NorfairKing/validity\nsmallcheck: https://hackage.haskell.org/package/smallcheck\nhspec: https://hspec.github.io/\ntasty: https://hackage.haskell.org/package/tasty (High effort)","Warn: no TypeScriptPropertyBasedTesting integration found: Use fast-check: https://github.com/dubzzz/fast-check (High effort)","Warn: no JavaScriptPropertyBasedTesting integration found: Use fast-check: https://github.com/dubzzz/fast-check (High effort)"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#license"}},{"name":"Maintained","score":10,"reason":"30 commit(s) out of 30 and 21 issue activity out of 30 found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#maintained"}},{"name":"Packaging","score":10,"reason":"publishing workflow detected","details":["Info: GitHub/GitLab publishing workflow used in run https://api.github.com/repos/bytedance/Protenix/actions/runs/17089851412: .github/workflows/publish_to_pypi.yml:9"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/bytedance/Protenix/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/bytedance/Protenix/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish_to_pypi.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/bytedance/Protenix/publish_to_pypi.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish_to_pypi.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/bytedance/Protenix/publish_to_pypi.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish_to_pypi.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/bytedance/Protenix/publish_to_pypi.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/scorecard.yml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/bytedance/Protenix/scorecard.yml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating vemlp-cn-beijing.cr.volces.com/preset-images/pytorch:2.7.1-cu12.6.3-py3.11-ubuntu22.04 to vemlp-cn-beijing.cr.volces.com/preset-images/pytorch:2.7.1-cu12.6.3-py3.11-ubuntu22.04@sha256:710807a55a596f85568525eedb328b82749c42e3a4382a472ea4fccd5f191118","Warn: pipCommand not pinned by hash: Dockerfile:18-21","Warn: pipCommand not pinned by hash: Dockerfile:23-25","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:33","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:34","Warn: pipCommand not pinned by hash: .github/workflows/publish_to_pypi.yml:22","Warn: pipCommand not pinned by hash: .github/workflows/publish_to_pypi.yml:23","Info:   1 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   1 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   7 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 18 are checked with a SAST tool","Warn: CodeQL tool not detected"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#sast"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected: On GitHub:\nEnable private vulnerability disclosure in your repository settings https://docs.github.com/en/code-security/security-advisories/repository-security-advisories/configuring-private-vulnerability-reporting-for-a-repository\nAdd a section in your SECURITY.md indicating you have enabled private reporting, and tell them to follow the steps in https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability to report vulnerabilities.\nOn GitLab:\nAdd a section in your SECURITY.md indicating the process to disclose vulnerabilities for your project.\nExamples: https://github.com/ossf/scorecard/blob/main/SECURITY.md, https://github.com/slsa-framework/slsa-github-generator/blob/main/SECURITY.md, https://github.com/sigstore/.github/blob/main/SECURITY.md.\nFor additional information on vulnerability disclosure, see https://github.com/ossf/oss-vulnerability-guide/blob/main/maintainer-guide.md. (Medium effort)","Warn: no security file to analyze: On GitHub:\nEnable private vulnerability disclosure in your repository settings https://docs.github.com/en/code-security/security-advisories/repository-security-advisories/configuring-private-vulnerability-reporting-for-a-repository\nAdd a section in your SECURITY.md indicating you have enabled private reporting, and tell them to follow the steps in https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability to report vulnerabilities.\nOn GitLab:\nProvide a point of contact in your SECURITY.md.\nExamples: https://github.com/ossf/scorecard/blob/main/SECURITY.md, https://github.com/slsa-framework/slsa-github-generator/blob/main/SECURITY.md, https://github.com/sigstore/.github/blob/main/SECURITY.md. (Low effort)","Warn: no security file to analyze: On GitHub:\nEnable private vulnerability disclosure in your repository settings https://docs.github.com/en/code-security/security-advisories/repository-security-advisories/configuring-private-vulnerability-reporting-for-a-repository\nAdd a section in your SECURITY.md indicating you have enabled private reporting, and tell them to follow the steps in https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability to report vulnerabilities.\nOn GitLab:\nAdd a section in your SECURITY.md indicating the process to disclose vulnerabilities for your project.\nExamples: https://github.com/ossf/scorecard/blob/main/SECURITY.md, https://github.com/slsa-framework/slsa-github-generator/blob/main/SECURITY.md, https://github.com/sigstore/.github/blob/main/SECURITY.md. (Low effort)","Warn: no security file to analyze: On GitHub:\nEnable private vulnerability disclosure in your repository settings https://docs.github.com/en/code-security/security-advisories/repository-security-advisories/configuring-private-vulnerability-reporting-for-a-repository\nAdd a section in your SECURITY.md indicating you have enabled private reporting, and tell them to follow the steps in https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability to report vulnerabilities.\nOn GitLab:\nAdd a section in your SECURITY.md indicating the process to disclose vulnerabilities for your project.\nExamples: https://github.com/ossf/scorecard/blob/main/SECURITY.md, https://github.com/slsa-framework/slsa-github-generator/blob/main/SECURITY.md, https://github.com/sigstore/.github/blob/main/SECURITY.md. (Low effort)"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#security-policy"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":["Warn: no GitHub releases found"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#signed-releases"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: topLevel permissions set to 'read-all': .github/workflows/ci.yml:13","Warn: no topLevel permission defined: .github/workflows/publish_to_pypi.yml:1: Visit https://app.stepsecurity.io/secureworkflow/bytedance/Protenix/publish_to_pypi.yml/main?enable=permissions\nTick the 'Restrict permissions for GITHUB_TOKEN'\nUntick other options\nNOTE: If you want to resolve multiple issues at once, you can visit https://app.stepsecurity.io/securerepo instead. (Low effort)","Info: topLevel permissions set to 'read-all': .github/workflows/scorecard.yml:18","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#token-permissions"}},{"name":"Vulnerabilities","score":7,"reason":"3 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-mr82-8j83-vxmv","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: GHSA-887c-mr87-cxwp"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-09-09T09:24:54.441Z","repository_id":261824263,"created_at":"2025-09-09T09:24:54.453Z","updated_at":"2025-09-09T09:24:54.453Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279021374,"owners_count":26087023,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai4science","research"],"created_at":"2025-10-14T21:48:33.947Z","updated_at":"2025-10-14T21:49:01.531Z","avatar_url":"https://github.com/bytedance.png","language":"Python","funding_links":[],"categories":["3. End-to-End Structural Modeling \u003ca name=\"3\"\u003e\u003c/a\u003e","🔬 Domain-Specific Applications","11. Specialized Domains"],"sub_categories":["3.2 Generative modeling of protein–ligand complexes and equilibrium ensembles \u003ca name=\"3.2\"\u003e\u003c/a\u003e","🧬 Biology \u0026 Medicine"],"readme":"# Protenix: Protein + X\n\n\n\u003e 📣📣📣 **We're hiring!** \\\n\u003e Positions in **_Beijing, China_** and **_Seattle, US_** ! \\\n\u003e Interested in machine learning, computational chemistry/biology, structural biology, or drug discovery?  \\\n\u003e 👉 [**Join us »**](#join-us)\n\n\n\n\u003cdiv align=\"center\" style=\"margin: 20px 0;\"\u003e\n  \u003cspan style=\"margin: 0 10px;\"\u003e⚡ \u003ca href=\"https://protenix-server.com\"\u003eProtenix Web Server\u003c/a\u003e\u003c/span\u003e\n  \u0026bull; \u003cspan style=\"margin: 0 10px;\"\u003e📄 \u003ca href=\"https://www.biorxiv.org/content/10.1101/2025.01.08.631967v1\"\u003eTechnical Report\u003c/a\u003e\u003c/span\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Twitter](https://img.shields.io/badge/Twitter-Follow-blue?logo=x)](https://x.com/ai4s_protenix)\n[![Slack](https://img.shields.io/badge/Slack-Join-yellow?logo=slack)](https://join.slack.com/t/protenixworkspace/shared_invite/zt-3drypwagk-zRnDF2VtOQhpWJqMrIveMw)\n[![Wechat](https://img.shields.io/badge/Wechat-Join-brightgreen?logo=wechat)](https://github.com/bytedance/Protenix/issues/52)\n[![Email](https://img.shields.io/badge/Email-Contact-lightgrey?logo=gmail)](#contact-us)\n\u003c/div\u003e\n\nWe’re excited to introduce **Protenix** — a trainable, open-source PyTorch reproduction of [AlphaFold 3](https://www.nature.com/articles/s41586-024-07487-w).\n\nProtenix is built for high-accuracy structure prediction. It serves as an initial step in our journey toward advancing accessible and extensible research tools for the computational biology community.\n\n\n\n![Protenix predictions](assets/protenix_predictions.gif)\n\n## 🌟 Related Projects\n- **[PXMeter](https://github.com/bytedance/PXMeter/)** is an open-source toolkit designed for reproducible evaluation of structure prediction models, released with high-quality benchmark dataset that has been manually reviewed to remove experimental artifacts and non-biological interactions. The associated study presents an in-depth comparative analysis of state-of-the-art models, drawing insights from extensive metric data and detailed case studies. The evaluation of Protenix is based on PXMeter.\n- **[Protenix-Dock](https://github.com/bytedance/Protenix-Dock)**: Our implementation of a classical protein-ligand docking framework that leverages empirical scoring functions. Without using deep neural networks, Protenix-Dock delivers competitive performance in rigid docking tasks.\n\n## 🎉 Updates\n- 2025-07-17: **Protenix-Mini released!**: Lightweight model variants with significantly reduced inference cost are now available. Users can choose from multiple configurations to balance speed and accuracy based on deployment needs. See our [paper](https://arxiv.org/abs/2507.11839) and [model configs](./configs/configs_model_type.py) for more information. \n- 2025-07-17: [***New constraint feature***](docs/infer_json_format.md#constraint) is released! Now supports **atom-level contact** and **pocket** constraints, significantly improving performance in our evaluations.\n- 2025-05-30: **Protenix-v0.5.0** is now available! You may try Protenix-v0.5.0 by accessing the [server](https://protenix-server.com), or upgrade to the latest version using pip.\n- 2025-01-16: The preview version of **constraint feature** is released to branch [`constraint_esm`](https://github.com/bytedance/Protenix/tree/constraint_esm).\n- 2025-01-16: The [training data pipeline](./docs/prepare_training_data.md) is released.\n- 2025-01-16: The [MSA pipeline](./docs/msa_pipeline.md) is released.\n- 2025-01-16: Use [local colabfold_search](./docs/colabfold_compatible_msa.md) to generate protenix-compatible MSA.\n\n### 📊 Benchmark\nWe benchmarked the performance of Protenix-v0.5.0 against [Boltz-1](https://github.com/jwohlwend/boltz/releases/tag/v0.4.1) and [Chai-1](https://github.com/chaidiscovery/chai-lab/releases/tag/v0.6.1) across multiple datasets, including [PoseBusters v2](https://arxiv.org/abs/2308.05777), [AF3 Nucleic Acid Complexes](https://www.nature.com/articles/s41586-024-07487-w), [AF3 Antibody Set](https://github.com/google-deepmind/alphafold3/blob/20ad0a21eb49febcaad4a6f5d71aa6b701512e5b/docs/metadata_antibody_antigen.csv), and our curated Recent PDB set.\n\u003c!-- 1️⃣ [PoseBusters v2](https://arxiv.org/abs/2308.05777)\\\n2️⃣ [AF3 Nucleic Acid Complexes](https://www.nature.com/articles/s41586-024-07487-w)\\\n3️⃣ [AF3 Antibody Set](https://github.com/google-deepmind/alphafold3/blob/20ad0a21eb49febcaad4a6f5d71aa6b701512e5b/docs/metadata_antibody_antigen.csv)\\\n4️⃣ Our curated Recent PDB set --\u003e\n\nProtenix-v0.5.0 was trained using a PDB cut-off date of September 30, 2021. For the comparative analysis, we adhered to AF3’s inference protocol, generating 25 predictions by employing 5 model seeds, with each seed yielding 5 diffusion samples. The predictions were subsequently ranked based on their respective ranking scores.\n\n\n![V0.5.0 model Metrics](assets/v0.5.0_metrics.png)\n\nWe will soon release the benchmarking toolkit, including the evaluation datasets, data curation pipeline, and metric calculators, to support transparent and reproducible benchmarking.\n\n\n## 🛠 Installation\n\n### PyPI\n\n```bash\npip3 install protenix\n```\n\nFor development on a CPU-only machine, it is convenient to install with the `--cpu` flag in editable mode:\n```\npython3 setup.py develop --cpu\n```\n\n### Docker (Recommended for Training)\n\nCheck the detailed guide: [\u003cu\u003e Docker Installation\u003c/u\u003e](docs/docker_installation.md).\n\n\n## 🚀 Inference\n\n### Expected Input \u0026 Output Format\nFor details on the input JSON format and expected outputs, please refer to the [Input/Output Documentation](docs/infer_json_format.md).\n\n\n### Prepare Inputs\n\n#### Convert PDB/CIF File to Input JSON\n\nIf your input is a `.pdb` or `.cif` file, you can convert it into a JSON file for inference.\n\n\n```bash\n# ensure `release_data/ccd_cache/components.cif` or run:\npython scripts/gen_ccd_cache.py -c release_data/ccd_cache/ -n [num_cpu]\n\n# for PDB\n# download pdb file\nwget https://files.rcsb.org/download/7pzb.pdb\n# run with pdb/cif file, and convert it to json file for inference.\nprotenix tojson --input examples/7pzb.pdb --out_dir ./output\n\n# for CIF (same process)\n# download cif file\nwget https://files.rcsb.org/download/7pzb.cif\n# run with pdb/cif file, and convert it to json file for inference.\nprotenix tojson --input examples/7pzb.cif --out_dir ./output\n```\n\n\n#### (Optional) Prepare MSA Files\n\nWe provide an independent MSA search utility. You can run it using either a JSON file or a protein FASTA file.\n```bash\n# run msa search with json file, it will write precomputed msa dir info to a new json file.\nprotenix msa --input examples/example_without_msa.json --out_dir ./output\n\n# run msa search with fasta file which only contains protein.\nprotenix msa --input examples/prot.fasta --out_dir ./output\n\n# use colabfold-like server\nexport MMSEQS_SERVICE_HOST_URL=https://api.colabfold.com # or other in-house host url\nprotenix msa --input examples/example_without_msa.json --out_dir ./output --msa_server_mode colabfold\n```\n\n### Inference via Command Line\n\nIf you installed `Protenix` via `pip`, you can run the following command to perform model inference:\n\n\n```bash\n# 1. The default model_name is protenix_base_default_v0.5.0, you can modify it by passing --model_name xxxx\n# 2. We provide recommended default configuration parameters for each model. To customize cycle/step/use_msa settings, you must set --use_default_params false\n# 3. You can modify cycle/step/use_msa by passing --cycle x1 --step x2 --use_msa false\n\n# run with example.json, which contains precomputed msa dir.\nprotenix predict --input examples/example.json --out_dir  ./output --seeds 101 --model_name \"protenix_base_default_v0.5.0\"\n\n# run with example.json, we use only esm feature.\nprotenix predict --input examples/example.json --out_dir  ./output --seeds 101 --model_name \"protenix_mini_esm_v0.5.0\" --use_msa false\n\n# run with multiple json files, the default seed is 101.\nprotenix predict --input ./jsons_dir/ --out_dir  ./output\n\n# if the json do not contain precomputed msa dir,\n# add --use_msa (default: true) to search msa and then predict.\n# if mutiple seeds are provided, split them by comma.\nprotenix predict --input examples/example_without_msa.json --out_dir ./output --seeds 101,102 --use_msa true\n```\n\n### Inference via Bash Script\nAlternatively you can run inference by:\nAlternatively, run inference via script:\n\n```bash\nbash inference_demo.sh\n```\n\nThe script accepts the following arguments:\n* `model_name`: Name of the model to use for inference.\n* `input_json_path`: Path to a JSON file that fully specifies the input structure.\n* `dump_dir`: Directory where inference results will be saved.\n* `dtype`: Data type used during inference. Supported options: `bf16` and `fp32`.\n* `use_msa`: Whether to enable MSA features (default: true).\n\n\n\u003e **Note**: By default, layernorm and EvoformerAttention kernels are disabled for simplicity.\n\u003e To enable them and speed up inference, see the [**Kernels Setup Guide**](docs/kernels.md).\n\n\n## 🧬 Training\n\nRefer to the [Training Documentation](docs/training.md) for setup and details.\n\n## Model Features\n###  📌 Constraint\n\nProtenix supports specifying ***contacts*** (at both residue and atom levels) and ***pocket constraints*** as extra guidance. Our benchmark results demonstrate that constraint-guided predictions are significantly more accurate.See our [doc](docs/infer_json_format.md#constraint) for input format details.\n\n![Constraint Metrics](assets/constraint_metrics.png)\n\n###  📌 Mini-Models\nWe introduce Protenix-Mini, a lightweight variant of Protenix that uses reduced network blocks and few ODE steps (even as few as one or two steps) to enable efficient prediction of biomolecular complex structures. Experimental results show that Protenix-Mini achieves a favorable balance between efficiency and accuracy, with only a marginal 1–5% drop in evaluation metrics such as interface LDDT, complex LDDT, and ligand RMSD success rate. Protenix-Mini enables accurate structure prediction in high-throughput and resource-limited scenarios, making it well-suited for practical applications at scale. The following comparisons were performed on a subset of the RecentPDB dataset comprising sequences with fewer than 768 tokens.\n\n![Mini/Tiny Metrics](assets/mini_performance.png)\n\n\n## Training and Inference Cost\n\nFor details on memory usage and runtime during training and inference, refer to the [Training \u0026 Inference Cost Documentation](docs/model_train_inference_cost.md).\n\n\n## Citing Protenix\n\nIf you use Protenix in your research, please cite the following:\n\n```\n@article{bytedance2025protenix,\n  title={Protenix - Advancing Structure Prediction Through a Comprehensive AlphaFold3 Reproduction},\n  author={ByteDance AML AI4Science Team and Chen, Xinshi and Zhang, Yuxuan and Lu, Chan and Ma, Wenzhi and Guan, Jiaqi and Gong, Chengyue and Yang, Jincai and Zhang, Hanyu and Zhang, Ke and Wu, Shenghao and Zhou, Kuangqi and Yang, Yanping and Liu, Zhenyu and Wang, Lan and Shi, Bo and Shi, Shaochen and Xiao, Wenzhi},\n  year={2025},\n  journal={bioRxiv},\n  publisher={Cold Spring Harbor Laboratory},\n  doi={10.1101/2025.01.08.631967},\n  URL={https://www.biorxiv.org/content/early/2025/01/11/2025.01.08.631967},\n  elocation-id={2025.01.08.631967},\n  eprint={https://www.biorxiv.org/content/early/2025/01/11/2025.01.08.631967.full.pdf},\n}\n```\n\n### 📚 Citing Related Work\nProtenix is built upon and inspired by several influential projects. If you use Protenix in your research, we also encourage citing the following foundational works where appropriate:\n```\n@article{abramson2024accurate,\n  title={Accurate structure prediction of biomolecular interactions with AlphaFold 3},\n  author={Abramson, Josh and Adler, Jonas and Dunger, Jack and Evans, Richard and Green, Tim and Pritzel, Alexander and Ronneberger, Olaf and Willmore, Lindsay and Ballard, Andrew J and Bambrick, Joshua and others},\n  journal={Nature},\n  volume={630},\n  number={8016},\n  pages={493--500},\n  year={2024},\n  publisher={Nature Publishing Group UK London}\n}\n@article{ahdritz2024openfold,\n  title={OpenFold: Retraining AlphaFold2 yields new insights into its learning mechanisms and capacity for generalization},\n  author={Ahdritz, Gustaf and Bouatta, Nazim and Floristean, Christina and Kadyan, Sachin and Xia, Qinghui and Gerecke, William and O’Donnell, Timothy J and Berenberg, Daniel and Fisk, Ian and Zanichelli, Niccol{\\`o} and others},\n  journal={Nature Methods},\n  volume={21},\n  number={8},\n  pages={1514--1524},\n  year={2024},\n  publisher={Nature Publishing Group US New York}\n}\n@article{mirdita2022colabfold,\n  title={ColabFold: making protein folding accessible to all},\n  author={Mirdita, Milot and Sch{\\\"u}tze, Konstantin and Moriwaki, Yoshitaka and Heo, Lim and Ovchinnikov, Sergey and Steinegger, Martin},\n  journal={Nature methods},\n  volume={19},\n  number={6},\n  pages={679--682},\n  year={2022},\n  publisher={Nature Publishing Group US New York}\n}\n```\n\n## Contributing to Protenix\n\nWe welcome contributions from the community to help improve Protenix!\n\n📄 Check out the [Contributing Guide](CONTRIBUTING.md) to get started.\n\n✅ Code Quality: \nWe use `pre-commit` hooks to ensure consistency and code quality. Please install them before making commits:\n\n```bash\npip install pre-commit\npre-commit install\n```\n\n🐞 Found a bug or have a feature request? [Open an issue](https://github.com/bytedance/Protenix/issues).\n\n\n\n## Acknowledgements\n\n\nThe implementation of LayerNorm operators refers to both [OneFlow](https://github.com/Oneflow-Inc/oneflow) and [FastFold](https://github.com/hpcaitech/FastFold).\nWe also adopted several [module](protenix/openfold_local/) implementations from [OpenFold](https://github.com/aqlaboratory/openfold), except for [`LayerNorm`](protenix/model/layer_norm/), which is implemented independently.\n\n\n## Code of Conduct\n\nWe are committed to fostering a welcoming and inclusive environment.\nPlease review our [Code of Conduct](CODE_OF_CONDUCT.md) for guidelines on how to participate respectfully.\n\n\n## Security\n\nIf you discover a potential security issue in this project, or think you may\nhave discovered a security issue, we ask that you notify Bytedance Security via our [security center](https://security.bytedance.com/src) or [vulnerability reporting email](sec@bytedance.com).\n\nPlease do **not** create a public GitHub issue.\n\n## License\n\nThe Protenix project including both code and model parameters is released under the [Apache 2.0 License](./LICENSE). It is free for both academic research and commercial use.\n\n## Contact Us\n\nWe welcome inquiries and collaboration opportunities for advanced applications of our model, such as developing new features, fine-tuning for specific use cases, and more. Please feel free to contact us at ai4s-bio@bytedance.com.\n\n## Join Us\n\nWe're expanding the **Protenix team** at ByteDance Seed-AI for Science! \\\nWe’re looking for talented individuals in **machine learning** and **computational biology/chemistry**. Opportunities are available in both **Beijing** and **Seattle**, across internships, new grad roles, and experienced full-time positions. \\\n*“Computational Biology/Chemistry” covers structural biology, computational biology, computational chemistry, drug discovery, and more.*\n\n\n### 📍 Beijing, China\n| Type       | Expertise                          | Apply Link |\n|------------|------------------------------------|------------|\n| Full-Time  | Computational Biology / Chemistry       | [Experienced \u0026 New Grad](https://jobs.bytedance.com/society/position/detail/7505998274429421842) |\n| Full-Time  | Machine Learning                   | [Experienced \u0026 New Grad](https://jobs.bytedance.com/society/position/detail/7505999453133015314) |\n| Internship | Computational Biology / Chemistry       | [Internship](https://jobs.bytedance.com/campus/position/7509005072577546504/detail) |\n| Internship | Machine Learning                   | [Internship](https://jobs.bytedance.com/campus/position/7509005074018961672/detail) |\n\n\n### 📍 Seattle, US\n\n| Type       | Expertise                          | Apply Link |\n|------------|------------------------------------|------------|\n| Full-Time  | Computational Biology / Chemistry       | [Experienced](https://jobs.bytedance.com/en/position/7270666468370614585/detail), [New Grad](https://jobs.bytedance.com/en/position/7515465250054211847/detail) |\n| Full-Time  | Machine Learning                   | [Experienced](https://jobs.bytedance.com/en/position/7270665658072926521/detail), [New Grad](https://jobs.bytedance.com/en/position/7515908698011601159/detail) |\n| Internship | Computational Biology / Chemistry       | Internship (opening ~August) |\n| Internship | Machine Learning                   | Internship (opening ~August) |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbytedance%2FProtenix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbytedance%2FProtenix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbytedance%2FProtenix/lists"}