--- license: cc-by-nc-sa-4.0 tasks: - protein-complex-structure-prediction frameworks: - jax language: - en - zh tags: - OneScience - Life Sciences - Protein Structure Prediction - Biomolecular Interactions - Complex Structure Prediction - AlphaFold3 datasets: - OneScience-Sugon/AlphaFold3_dataset ---
AlphaFold3
# Model Introduction AlphaFold 3 is a biomolecular structure prediction model developed by Google DeepMind and Isomorphic Labs. It predicts the three-dimensional structures and interactions of proteins, DNA, RNA, small-molecule ligands, and their complexes. Paper: Accurate structure prediction of biomolecular interactions with AlphaFold 3 https://www.nature.com/articles/s41586-024-07487-w # Model Description AlphaFold 3 uses a Pairformer and a diffusion model to predict biomolecular complex structures. This model package provides a JAX / Flax inference implementation and database-search scripts, together with the accompanying Hugging Face dataset `OneScience-Sugon/AlphaFold3_dataset`. # Use Cases | Scenario | Description | | :---: | :--- | | Direct inference from existing features | Takes an AlphaFold 3 JSON file containing precomputed features such as MSAs and templates as input and produces structure predictions | | Protein structure prediction | Takes a protein sequence as input, generates features by searching databases, and predicts its structure | | Biomolecular complex modeling | Takes multicomponent systems comprising proteins, DNA, RNA, ligands, and other molecules as input and predicts their 3D structures | | Database-search pipeline validation | Uses Jackhmmer / Nhmmer or MMseqs pipelines to verify database paths and the availability of search tools | | Hugging Face / OneCode execution | After downloading the model project and complete dataset, quickly verifies that the scripts run correctly in a life-sciences runtime environment | # Usage Instructions ## 1. OneCode Try one-click AI4S development in the OneCode online environment: [Try one-click AI4S development](https://web-2069360198568017922-iaaj.ksai.scnet.cn:58043/home) ## 2. Manual Installation **Hardware Requirements** - GPU or DCU is recommended. - A CPU can be used for import checks and lightweight configuration tests; full training and inference will be slow. - DCU users must install DTK in advance. DTK 25.04.2 or later is recommended, or a OneScience-recommended version matching the current cluster. **Environment Check** - NVIDIA GPU: ```bash nvidia-smi ``` - Hygon DCU: ```bash hy-smi ``` ### Download the Model Package ```bash hf download --model OneScience-Sugon/AlphaFold3 --local-dir ./AlphaFold3 cd AlphaFold3 ``` ### Install the Runtime Environment **DCU Environment** ```bash # Activate DTK and CONDA first conda create -n onescience311 python=3.11 -y conda activate onescience311 # uv installation supported pip install onescience[bio-dcu] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai ``` After installation, return to the model package directory: ```bash cd ./AlphaFold3 ``` If the AlphaFold 3 C++ extension and runtime data files have not yet been built in the current environment, run: ```bash python -m onescience.flax_model.alphafold3.build_extension python -m onescience.flax_models.alphafold3.build_data ``` ### Training and Inference Data Overview The OneScience community has uploaded the complete data required for AlphaFold 3 inference and database searches to Hugging Face: [OneScience-Sugon/AlphaFold3_dataset](https://huggingface.co/datasets/OneScience-Sugon/AlphaFold3_dataset). This model package does not include a training entry point; the dataset is primarily used to construct MSA / template features and perform database searches before inference. ```bash hf download --dataset OneScience-Sugon/AlphaFold3_dataset --local-dir ./data/alphafold3 ``` ### Model Weights Model weights will be available soon. ### Preparing Weights Place the AlphaFold 3 model weights in the following directory, or specify them via environment variables: ```text weight/ AlphaFold3/ ... ``` Default lookup order: - `ALPHAFOLD3_MODEL_DIR` - `${ONESCIENCE_MODELS_DIR}/AlphaFold3` - `weight/AlphaFold3` Example: ```bash export ALPHAFOLD3_MODEL_DIR=/path/to/AlphaFold3 ``` ### Direct Inference When the input JSON already contains features such as MSA and templates, you can run inference directly: ```bash bash scripts/infer.sh ``` Equivalent Python command example: ```bash python scripts/run_alphafold.py \ --json_path inputs/7r6r_data.json \ --model_dir weight/AlphaFold3 \ --output_dir outputs \ --run_data_pipeline=false \ --flash_attention_implementation=triton ``` Output is written to `outputs/` and includes the top-ranked structure, structures generated from different seed / sample combinations, a CSV file containing ranking scores, and a copy of the input JSON. ### Jackhmmer / Nhmmer Database Search When the input JSON contains only sequences and requires a local database search, use: ```bash bash scripts/infer_jackhmmer.sh ``` Common environment variables: ```bash export ALPHAFOLD3_DATASET_ROOT=/path/to/alphafold3 export ALPHAFOLD3_MODEL_DIR=/path/to/AlphaFold3 export ALPHAFOLD3_JSON_PATH=inputs/t1119_search.json export ALPHAFOLD3_OUTPUT_DIR=outputs export ALPHAFOLD3_RUN_INFERENCE=false ``` `ALPHAFOLD3_DATASET_ROOT` is expected to contain directories such as `public_databases/`, `jackhmmer_split/`, and `mmseqsDB/`. ### MMseqs Database Search If the runtime environment provides the MMseqs executable and the required MMseqs databases, use: ```bash bash scripts/infer_mmseqs.sh ``` Common environment variables: ```bash export ALPHAFOLD3_MMSEQS_HOME=/path/to/mmseqs export ALPHAFOLD3_DATASET_ROOT=/path/to/alphafold3 export ALPHAFOLD3_MMSEQS_DB_DIR=/path/to/alphafold3/mmseqsDB export ALPHAFOLD3_RUN_INFERENCE=false ``` To proceed with inference after the database search, set `ALPHAFOLD3_RUN_INFERENCE` to `true` and ensure that the weights directory is available. # Data Format AlphaFold 3 inputs are provided in JSON format with the following basic structure: ```json { "dialect": "alphafold3", "version": 1, "name": "example", "sequences": [ { "protein": { "id": "A", "sequence": "..." } } ], "modelSeeds": [100], "bondedAtomPairs": null, "userCCD": null } ``` This repository provides two examples: - `inputs/7r6r_data.json`: contains sequence, MSA, and template information; suitable for direct inference. - `inputs/t1119_search.json`: contains only sequences; suitable for database-search pipeline validation. It is recommended to download the full Hugging Face dataset `OneScience-Sugon/AlphaFold3_dataset` to `data/alphafold3/` under the model package. The relative directory structure expected by the database-search pipeline is as follows: ```text data/ alphafold3/ public_databases/ mmcif_files/ pdb_seqres_2022_09_28.fasta ... jackhmmer_split/ bfd-first_non_consensus_sequences.fasta@64 mgy_clusters_2022_05.fa@512 uniprot_cluster_annot_2021_04.fa@256 uniref90_2022_05.fa@128 mmseqsDB/ small_bfd_db mgnify_db uniprot_cluster_annot_db uniref90_db ``` # Verification Static import check: ```bash python tests/check_import_boundaries.py ``` # OneScience Official Information | Platform | OneScience Main Repository | Skills Repository | | --- | --- | --- | | Gitee | https://gitee.com/onescience-ai/onescience | https://gitee.com/onescience-ai/oneskills | | GitHub | https://github.com/onescience-ai/OneScience | https://github.com/onescience-ai/oneskills | # Citation & License - This repository is adapted from the open-source AlphaFold 3 model to support DCUs. - The AlphaFold 3 source code is licensed under CC BY-NC-SA 4.0; model parameters are subject to separate usage terms. - For scientific use, please cite the original paper: [Accurate structure prediction of biomolecular interactions with AlphaFold 3](https://www.nature.com/articles/s41586-024-07487-w).