|
Download README.md from OneScience-Group/VenusREM: direct link, hf CLI and curl.
- Browser
- Download file 11.6 kB
-
https://huggingface.co/OneScience-Group/VenusREM/resolve/main/README.md
- Command line
-
hf download hf://OneScience-Group/VenusREM/README.md
-
curl -L -o README.md https://huggingface.co/OneScience-Group/VenusREM/resolve/main/README.md
11.6 kB
| frameworks: | |
| - PyTorch | |
| language: | |
| - en | |
| license: cc-by-nc-nd-4.0 | |
| tags: | |
| - OneScience | |
| - bioscience | |
| - protein-mutation-effect-prediction | |
| - protein-engineering | |
| - VenusREM | |
| - ProSST | |
| tasks: [] | |
| datasets: | |
| - ICML2022/ProteinGym | |
| <p align="center"> | |
| <strong> | |
| <span style="font-size: 30px;">VenusREM</span> | |
| </strong> | |
| </p> | |
| # Model Introduction | |
| VenusREM is a zero-shot model for protein mutation effect prediction. It builds on sequence-structure language model logits from ProSST and incorporates evolutionary information derived from homologous sequence alignments. Candidate mutation fitness scores are calculated through retrieval-based logits fusion. | |
| VenusREM can score both single substitutions and mutations containing multiple amino acid substitutions. | |
| The output score represents the model's relative preference for a candidate mutation compared with the wild-type sequence. It should not be interpreted as an experimental measurement with a universal physical unit. | |
| Paper: [From high-throughput evaluation to wet-lab studies: advancing mutation effect prediction with a retrieval-enhanced model](https://academic.oup.com/bioinformatics/article/41/Supplement_1/i401/8199372) | |
| # Model Description | |
| VenusREM uses ProSST-2048 as its base model: | |
| - Represents the primary structure of a protein using its amino acid sequence; | |
| - Quantizes the local three-dimensional environment of each residue into one of 2048 structural tokens; | |
| - Jointly models sequence and structural information to generate amino acid logits at each residue position; | |
| - Estimates evolutionary distributions from homologous sequence alignments in A2M, A3M, or FASTA format; | |
| - Uses the `alpha` parameter to fuse language-model logits with retrieved evolutionary logits; | |
| - Calculates mutation scores from the log-probability difference between the mutant and wild-type amino acids. | |
| # Use Cases | |
| | Use Case | Description | | |
| | :---: | :--- | | |
| | Zero-shot mutation ranking | Rank candidate amino acid substitutions without target-protein-specific supervised labels. | | |
| | ProteinGym evaluation | Generate per-protein mutation scores and summarize Spearman correlations on ProteinGym substitution datasets. | | |
| | MSA-enhanced prediction | Integrate evolutionary information from homologous sequence alignments to improve context-aware mutation scoring. | | |
| | ProSST baseline prediction | Set `alpha=0` to use only sequence-structure language model logits. | | |
| | Structural token generation | Optionally generate ProSST structural tokens when only PDB structures are available. | | |
| # Usage | |
| ## 1. OneCode | |
| You can use the OneCode online environment for an intelligent one-click AI4S programming experience: | |
| [Try OneCode for AI4S Programming](https://web-2069360198568017922-iaaj.ksai.scnet.cn:58043/home) | |
| ## 2. Manual Installation | |
| **Hardware Requirements** | |
| - Supports both CPU and DCU execution in the OneScience DTK environment; | |
| - DCU is recommended for full ProteinGym inference and PDB-to-structural-token preprocessing; | |
| - CPU execution can be used for basic validation, but full-dataset inference and structural preprocessing are significantly slower. | |
| ### Download the Model Package | |
| Install the Hugging Face command-line tool and download the model repository: | |
| ```bash | |
| python -m pip install -U huggingface_hub | |
| hf download OneScience-Group/VenusREM --local-dir ./VenusREM | |
| cd VenusREM | |
| ``` | |
| ### Install the Runtime Environment | |
| **DCU Environment** | |
| ```bash | |
| conda create -n onescience311 python=3.11 -y | |
| conda activate onescience311 | |
| python -m pip install "onescience[bio-dcu]" \ | |
| -i http://mirrors.onescience.ai:3141/pypi/simple/ \ | |
| --trusted-host mirrors.onescience.ai | |
| ``` | |
| Install the additional VenusREM dependencies on top of the OneScience base environment: | |
| ```bash | |
| python -m pip install --no-deps -r requirements.txt | |
| ``` | |
| ### Weights and Data Preparation | |
| The official ProSST-2048 assets required for inference are located at: | |
| | Asset | Relative Path | Purpose | | |
| | --- | --- | --- | | |
| | Model weights | `weight/ProSST-2048/model.safetensors` | ProSST-2048 parameters | | |
| | Model configuration | `weight/ProSST-2048/config.json` | Network architecture and vocabulary configuration | | |
| | Model implementation | `weight/ProSST-2048/modeling_prosst.py` | Custom Transformers model implementation | | |
| | Configuration implementation | `weight/ProSST-2048/configuration_prosst.py` | Custom Transformers configuration implementation | | |
| | Amino acid vocabulary | `weight/ProSST-2048/vocab.txt` | Sequence tokenization | | |
| | Tokenizer configuration | `weight/ProSST-2048/tokenizer_config.json` | Tokenizer parameters | | |
| Inference datasets use the following relative directory structure: | |
| ```text | |
| conf/data/<dataset_name>/ | |
| βββ aa_seq/ | |
| β βββ protein1.fasta | |
| βββ aa_seq_aln_a2m/ | |
| β βββ protein1.a2m | |
| βββ struc_seq/ | |
| β βββ 2048/ | |
| β βββ protein1.fasta | |
| βββ substitutions/ | |
| βββ protein1.csv | |
| ``` | |
| The base filenames must match across the corresponding files. For example: | |
| ```text | |
| protein1.fasta | |
| protein1.a2m | |
| protein1.csv | |
| ``` | |
| must all refer to the same protein. | |
| Each file under `substitutions/*.csv` must contain at least: | |
| - `mutant`: mutation notation such as `A10V`; multiple substitutions are separated by colons, for example `A10V:G25D`; | |
| - `DMS_score`: experimental score used to calculate Spearman correlation during evaluation. If no experimental label is available, this field can be set to `0`, but the resulting correlation metric will not have evaluation significance. | |
| Structural tokens are part of the required base-model input. | |
| Even when `alpha=0` is used to disable MSA-based retrieval enhancement, the following structural-token files are still required: | |
| ```text | |
| struc_seq/2048/*.fasta | |
| ``` | |
| ### Quick Inference | |
| **Purpose:** Fuse ProSST-2048 sequence-structure logits with evolutionary information from residue-sequence MSAs. | |
| This mode is suitable for full ProteinGym evaluation and formal mutation ranking when precomputed A2M/A3M alignments are available. | |
| Run VenusREM inference on DCU using the ProSST-2048 weights and precomputed residue-sequence MSA: | |
| ```bash | |
| export HIP_VISIBLE_DEVICES=0 | |
| export CUDA_VISIBLE_DEVICES=0 | |
| python scripts/compute_fitness.py \ | |
| --model_name weight/ProSST-2048 \ | |
| --model_out_name VenusREM_DCU \ | |
| --base_dir conf/data/proteingym_v1 \ | |
| --out_scores_dir output/proteingym_v1 \ | |
| --logit_mode aa_seq_aln \ | |
| --alpha 0.8 | |
| ``` | |
| The output structure is: | |
| ```text | |
| output/proteingym_v1/ | |
| βββ scores/ | |
| β βββ <protein_name>.csv | |
| βββ summary_performance.csv | |
| ``` | |
| Each per-protein CSV file contains an additional `VenusREM_DCU` score column. | |
| `summary_performance.csv` records the Spearman correlation for each protein dataset. | |
| ### ProSST Inference Without MSA | |
| **Purpose:** Run the ProSST-2048 baseline without retrieval enhancement. | |
| This mode can be used to: | |
| - Compare mutation scores before and after MSA fusion; | |
| - Perform ablation analysis; | |
| - Run basic sequence-structure mutation scoring when homologous sequence alignments are unavailable. | |
| Set `alpha=0` to disable residue-sequence and structural-alignment logit fusion. | |
| Amino acid sequences, structural tokens, and substitution files are still required: | |
| ```bash | |
| python scripts/compute_fitness.py \ | |
| --model_name weight/ProSST-2048 \ | |
| --model_out_name ProSST-2048 \ | |
| --base_dir conf/data/proteingym_v1 \ | |
| --out_scores_dir output/prosst_2048 \ | |
| --alpha 0 | |
| ``` | |
| ### Structural Sequence Alignment | |
| **Purpose:** Use structural homolog information generated by Foldseek to enhance ProSST logits. | |
| This mode is suitable when structural-alignment results have already been prepared and can be used to evaluate the contribution of structure-based retrieval or compare it with residue-sequence MSA retrieval. | |
| If Foldseek structural-sequence alignments are available, run: | |
| ```bash | |
| python scripts/compute_fitness.py \ | |
| --model_name weight/ProSST-2048 \ | |
| --model_out_name VenusREM_struc \ | |
| --base_dir conf/data/proteingym_v1 \ | |
| --out_scores_dir output/proteingym_v1_struc \ | |
| --logit_mode struc_seq_aln \ | |
| --alpha 0.8 | |
| ``` | |
| The corresponding alignment files should be located at: | |
| ```text | |
| conf/data/proteingym_v1/struc_seq_aln_foldseek/<protein_name>.fasta | |
| ``` | |
| ### Convert PDB Structures to Structural Tokens | |
| **Purpose:** Quantize the local three-dimensional environment of each residue in a protein PDB structure into structural tokens that can be processed by ProSST-2048. | |
| The generated structural tokens are required inputs for the inference modes described above. This preprocessing step does not directly generate mutation fitness scores. | |
| Run this step only when PDB structures are available but precomputed files under: | |
| ```text | |
| struc_seq/2048/*.fasta | |
| ``` | |
| are not available. | |
| If official precomputed structural tokens are already provided, this step can be skipped. | |
| For a single PDB file: | |
| ```bash | |
| python model/data/get_struc_seq.py \ | |
| --pdb_file conf/data/proteingym_v1/pdbs/protein1.pdb \ | |
| --output_dir conf/data/proteingym_v1/struc_seq \ | |
| --vocab_size 2048 \ | |
| --overwrite | |
| ``` | |
| For multiple PDB files: | |
| ```bash | |
| python model/data/get_struc_seq.py \ | |
| --pdb_dir conf/data/proteingym_v1/pdbs \ | |
| --output_dir conf/data/proteingym_v1/struc_seq \ | |
| --vocab_size 2048 \ | |
| --overwrite | |
| ``` | |
| ### Custom Data Inference | |
| **Purpose:** Perform zero-shot fitness scoring for user-provided proteins and candidate mutations. | |
| This workflow can be used for: | |
| - Candidate prioritization before wet-lab experiments; | |
| - Initial screening in protein engineering; | |
| - Evaluation on custom mutation datasets. | |
| Filenames must remain consistent across the amino acid sequence, MSA, structural-token, and substitution directories. | |
| Create a relative directory structure such as: | |
| ```text | |
| conf/data/my_proteins/ | |
| βββ aa_seq/ | |
| βββ aa_seq_aln_a2m/ | |
| βββ struc_seq/2048/ | |
| βββ substitutions/ | |
| ``` | |
| Then run: | |
| ```bash | |
| python scripts/compute_fitness.py \ | |
| --model_name weight/ProSST-2048 \ | |
| --model_out_name VenusREM \ | |
| --base_dir conf/data/my_proteins \ | |
| --out_scores_dir output/my_proteins \ | |
| --logit_mode aa_seq_aln \ | |
| --alpha 0.8 | |
| ``` | |
| If no substitution file is available, the provided helper script can be used to generate all possible single-amino-acid substitutions before further filtering: | |
| ```bash | |
| python model/data/get_sav.py \ | |
| --fasta_file conf/data/my_proteins/aa_seq/protein1.fasta \ | |
| --output_csv conf/data/my_proteins/substitutions/protein1.csv | |
| ``` | |
| ### Training | |
| The official VenusREM repository does not provide a directly executable training entry point, Dataset implementation, optimizer configuration, or complete training loop. | |
| Therefore, this Hugging Face model package does not provide training scripts. | |
| # OneScience Official Resources | |
| | 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 and License | |
| - VenusREM paper: [From high-throughput evaluation to wet-lab studies: advancing mutation effect prediction with a retrieval-enhanced model](https://academic.oup.com/bioinformatics/article/41/Supplement_1/i401/8199372) | |
| - Official implementation: https://github.com/ai4protein/VenusREM | |
| - Base model: https://github.com/ai4protein/ProSST | |
| - This project is provided under the `CC-BY-NC-ND-4.0` license. | |
| - Model weights, source code, datasets, and third-party assets remain subject to their respective original licenses, copyright notices, and terms of use. |