LucaOne: LucaGPLM Model compatible with HuggingFace Transformers
Project description
LucaOne(LucaGPLM)
LucaOne: a Foundation Model for Genomic and Protein Sequences
LucaOne is a foundation model based on the LucaGPLM architecture, specifically engineered for biological sequences including DNA, Proteins, and RNA. This repository provides the refactored implementation that is fully compatible with the Hugging Face transformers ecosystem, supporting seamless integration for various 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:
LucaGPLMModel: For sequences embedding.LucaGPLMForMaskedLM: For pre-training and sequence recovery.LucaGPLMForSequenceClassification: For sequence-level tasks (e.g., protein family, solubility, or promoter prediction).LucaGPLMForTokenClassification: 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 lucaone==1.1.0
pip install tokenizers==0.19.1
pip install transformers==4.41.2
You can install LucaOne directly from source:
git clone -b huggingface https://github.com/LucaOne/LucaOne.git
cd lucaone
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 LucaOne-Embedding:
Please refer to the code in test/test_lucaone_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_lucaone_mlm.py.
3. Sequence Classification
Predict properties for the entire sequence (e.g., Enzyme vs. Non-Enzyme).
Supports multi-class classification, binary classification, multi-label classification, and regression tasks.
Please refer to the code in test/test_lucaone_seq_classification.py.
4. Token Classification
Predict properties for each residue/nucleotide (e.g., Secondary Structure, Binding Sites, and , Post-Translational Modifications).
Supports multi-class classification, binary classification, multi-label classification, and regression tasks.
Please refer to the code in test/test_lucaone_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 | 20 |
num_attention_heads |
Number of attention heads | 40 |
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 lucaone. prefixed structure.
python scripts/convert_weights.py
Citation
If you use LucaOne in your research, please cite:
@article{lucaone2024,
title={Generalized biological foundation model with unified nucleic acid and protein language.},
author={He, Yong, Fang, P., Shan, Y. et al.},
journal={Nat Mach Intell},
year={2025},
url={https://doi.org/10.1038/s42256-025-01044-4}
}
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 lucaone-1.1.1.tar.gz.
File metadata
- Download URL: lucaone-1.1.1.tar.gz
- Upload date:
- Size: 20.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88e3159b827cf09b0f1e5d659114c4413d1253f9cd01d0a6049c5a6f7c90e810
|
|
| MD5 |
ddf600ba564f78ecbecd6e2101e156a2
|
|
| BLAKE2b-256 |
4ed628ba36bc31d396d5bc086e71b1a3510d5ad939c2bede3818525dd6b06f7e
|
File details
Details for the file lucaone-1.1.1-py3-none-any.whl.
File metadata
- Download URL: lucaone-1.1.1-py3-none-any.whl
- Upload date:
- Size: 19.7 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 |
89db6eb585171d8baf5f2c2fc0eb9f280b14c0c7fc04a9d57c923f5cb0cdbeb5
|
|
| MD5 |
736852f7bb1de4ba9c5b318df4f00dea
|
|
| BLAKE2b-256 |
c18e6f8ac8e827c033e97485db54695348bf7d7e6dc4731287da0325520e9eb6
|