EnzymeHunter
Overview
EnzymeHunter: Achieving fine-grained enzyme function prediction with a hierarchically-aware contrastive learning framework. This source code was developed and tested on Linux (CentOS) with Python 3.9.
EnzymeHunter Architecture
Architecture and workflow of the EnzymeHunter model:
Installation & Setup
1. Install from PyPI
The project provides both a Python API and a command-line interface for convenient programmatic and command-line use.
conda create -n enzymehunter python=3.9 -y
conda activate enzymehunter
pip install enzymehunter
The package requires NumPy 1.x (numpy<2) because the current Biotite
extension used by the pipeline is not compatible with NumPy 2.x.
The PyPI package does not embed the large pretrained weights or reference database. Run the command below to download the model and reference data automatically, or download them manually from Hugging Face:
enzymehunter download-hf-assets \
--model-dir /data/enzymehunter
This downloads the model/ and data/ trees. The --model-dir value is the assets directory, and the downloader creates model/ and data/ inside it. The downloader first tests the official Hugging Face endpoint, falls back to hf-mirror.com if necessary, and displays file download progress. Then run a prediction without changing directories:
enzymehunter predict input.fasta \
--model-dir /data/enzymehunter \
-o results.csv
Use a specific device when needed:
# Automatically choose CUDA when available, otherwise CPU
enzymehunter predict input.fasta --device auto -o results.csv
# Force CPU
enzymehunter predict input.fasta --device cpu -o results.csv
# Use physical GPU 1
enzymehunter predict input.fasta --device cuda:1 -o results.csv
# Model stored outside the default locations
enzymehunter predict input.fasta --model-dir /data/enzymehunter \
--device cuda:1 -o results.csv
The same operation is available from Python:
from enzymehunter import predict
# Uses ./model by default
predict("input.fasta", "results.csv")
# Use this only when the model is stored elsewhere
predict("input.fasta", "results.csv", model_dir="/data/enzymehunter")
2. Install from source for development
Clone the repository
git clone https://github.com/cgxbio/EnzymeHunter.git
cd EnzymeHunter
Create and activate the virtual environment
conda env create -f environment.yml
conda activate EnzymeHunter
Data and Model Download
Please download the pretrained data and model files from Zenodo or Hugging Face:
After downloading, place the contents into the following directories:
EnzymeHunter/
├── data/ # Place dataset files here
│ └── pdb/ # (PDB mode) Place PDB files here, named {UNIPROT_ID}.pdb
├── model/ # Place model files here
├── EnzymeHunter.py
├── ...
Usage Example
Here are the common examples of using the EnzymeHunter, corresponding to different running modes:
Normal Mode (Default Mode)
Use this mode when you need the program to automatically distinguish between enzymes and non-enzymes, and only predict EC numbers for proteins classified as enzymes:
# Example: run prediction on a dataset where not all proteins are enzymes
python EnzymeHunter.py --dataset example_test --all_are_enzymes False
Explanation:
- --example_test is your test dataset name (without the .fasta extension)
- --The program will first perform enzyme/non-enzyme classification prediction
- --Only proteins predicted as enzymes (pred_label=1) will undergo subsequent EC number prediction
- --Non-enzyme proteins will be marked with EC number 0.0.0.0
All-Enzymes Mode
Use this mode when you know all proteins in the dataset are enzymes and want to skip the enzyme/non-enzyme classification step, proceeding directly to EC number prediction:
# Example: run prediction assuming all proteins are enzymes
python EnzymeHunter.py --dataset example_test --all_are_enzymes True
Explanation:
- --example_test is your enzyme dataset name (without the .fasta extension)
- --The --all_are_enzymes flag forces the program to treat all proteins as enzymes
- --Skips the enzyme/non-enzyme classification step and proceeds directly to EC number prediction
- --All proteins will have pred_label set to 1 and pred_prob set to 1.0
PDB-Based Contact Map Mode
By default, EnzymeHunter uses ESM2-predicted contact maps. You can switch to PDB-based contact maps (computed from AlphaFold or ESMFold 3D structures) by setting --contact_map_source pdb:
- Place your PDB structure files (named
{UNIPROT_ID}.pdb) into./data/pdb/ - Run the pipeline with
--contact_map_source pdb:
In this mode, EnzymeHunter will use the model trained with PDB-derived contact maps.
# Normal mode with PDB contact maps
python EnzymeHunter.py --dataset example_test --all_are_enzymes False --contact_map_source pdb
# All-enzymes mode with PDB contact maps
python EnzymeHunter.py --dataset example_test --all_are_enzymes True --contact_map_source pdb
Output
After running, the prediction results will be saved to:
./results/example_test_final_pred_results.csv
Metadata
Release files for enzymehunter 0.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| enzymehunter-0.1.7.tar.gz | 32.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| enzymehunter-0.1.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 68.4 kB
Release files / enzymehunter-0.1.7.tar.gz
| Download URL | enzymehunter-0.1.7.tar.gz |
|---|---|
| Size | 32.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b64d38eb842fc9d3715b1e72b515d57c7674233e00e5397eca60e340d98187a6
|
|
BLAKE2b-256 checksum How to use checksums |
07b0d2c041311603e6ff60d5b00c411195429f65d039ed6c879436fd388f192f
|
| 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 Aug 27, 2026.
Transparency logRelease files / enzymehunter-0.1.7-py3-none-any.whl
| Download URL | enzymehunter-0.1.7-py3-none-any.whl |
|---|---|
| Size | 35.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
94058633257ed73bb5fa7633fc463310be67e17aecd5074d396b0bf9b29f7add
|
|
BLAKE2b-256 checksum How to use checksums |
1c09fe8b6c69a2827889c01ce001f761379d0103cdce5345314197788a79194b
|
| 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 Aug 27, 2026.
Transparency log