LucaVirus: LucaVirus Model compatible with HuggingFace Transformers
Project description
LucaVirus
LucaVirus: a Unified Nucleotide-Protein Language Model for Virus
LucaVirus is a Unified Nucleotide-Protein Language Model for predicting the Evolutionary and Functional Landscapes of Viruses. This repository provides the refactored implementation that is fully compatible with the Hugging Face transformers ecosystem, supporting seamless integration for various viral downstream bioinformatics tasks.
Key Features
- Hugging Face Native: Full support for
AutoModel,AutoModelForMaskedLM,AutoModelForSequenceClassification,AutoModelForTokenClassification,AutoConfig, andAutoTokenizer. - Unified Architecture: Single model architecture handling multiple biological modalities.
- Task-Specific Heads:
LucaVirusModel: For sequences embedding.LucaVirusForMaskedLM: For pre-training and sequence recovery.LucaVirusForSequenceClassification: For sequence-level tasks (e.g., protein family, solubility, RdRP identity, or promoter prediction).LucaVirusForTokenClassification: For residue-level tasks (e.g., secondary structure, binding sites, or post-translational modifications).
- Extensible: Easily adaptable to custom downstream tasks using the standard
transformersAPI.
Installation
pip install lucavirus==1.1.0
pip install tokenizers==0.19.1
pip install transformers==4.41.2
You can install LucaVirus directly from source:
git clone -b huggingface https://github.com/LucaOne/LucaVirus.git
cd LucaVirus
pip install .
For development mode:
pip install -e .
🚀Quick Start
1. Feature Extraction/Embedding
Extract high-dimensional embeddings for downstream analysis or training downstream tasks using LucaVirus-Embedding.
Please refer to the code in test/test_lucavirus_embedding.py.
2. MLM Pre-training and Sequence Recovery
Continue to perform MLM pre-training or sequence recovery.
Please refer to the code in test/test_lucavirus_mlm.py.
3. Sequence Classification
Predict properties for the entire sequence (e.g., RdRP vs. Non-RdRP):
Supports multi-class classification, binary classification, multi-label classification, and regression tasks.
Please refer to the code in test/test_lucavirus_seq_classification.py.
4. Token Classification
Predict properties for each residue/nucleotide (e.g., Secondary Structure, Binding Sites, Post-Translational Modifications):
Supports multi-class classification, binary classification, multi-label classification, and regression tasks.
Please refer to the code in test/test_lucavirus_token_classification.py.
Model Configuration
| Parameter | Description | Default Value |
|---|---|---|
vocab_size |
Size of the dictionary | 39 |
hidden_size |
Dimension of the hidden layers | 2560 |
num_hidden_layers |
Number of Transformer layers | 12 |
num_attention_heads |
Number of attention heads | 20 |
position_embeddings |
- | ROPE |
alphabet |
Type of sequences (e.g., gene, prot, or gene_prot) |
DNA, RNA, and Protein |
Weights Conversion
If you have legacy weights in .pth format, use the provided conversion script to migrate them to the Hugging Face format. This script maps the original state dictionary to the new lucavirus. prefixed structure.
python scripts/convert_weights.py
Citation
If you use LucaVirus in your research, please cite:
@article{lucavirus2025,
title={Predicting the Evolutionary and Functional Landscapes of Viruses with a Unified Nucleotide-Protein Language Model: LucaVirus.},
author={Pan, Yuan-Fei* and He, Yong*. et al.},
journal={bioRxiv},
year={2025},
url={https://www.biorxiv.org/content/early/2025/06/20/2025.06.14.659722}
}
License
This project is licensed under the MIT License - see the LICENSE file for details.
For more information or issues, please open a GitHub issue or contact the maintainers at [sanyuan.hy@alibaba-inc.com/heyongcsat@gmail.com].
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lucavirus-1.1.1.tar.gz.
File metadata
- Download URL: lucavirus-1.1.1.tar.gz
- Upload date:
- Size: 20.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
970bdaa8cba9ba4d75392fc50baa6fbf5e06e3983c649e1be70fd2d8ee5de94b
|
|
| MD5 |
d83dd393d0301d975dbeaab01a015c9f
|
|
| BLAKE2b-256 |
8efa961f5bbde281a8eb0b656edaff208592335c00732f59deb34a32330e70de
|
File details
Details for the file lucavirus-1.1.1-py3-none-any.whl.
File metadata
- Download URL: lucavirus-1.1.1-py3-none-any.whl
- Upload date:
- Size: 19.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69986566e9d98ea981f84355eed86a89d2551daf919c67fc69a03256c711256a
|
|
| MD5 |
12915b48b3bd31c939224042dcb59b14
|
|
| BLAKE2b-256 |
8d624f3cf2b3fb34ff05522400ccad01f46c19e904e2fd6b7ff1aba402a75457
|