Skip to main content

LucaVirus: LucaVirus Model compatible with HuggingFace Transformers

Project description

LucaVirus


LucaVirus: a Unified Nucleotide-Protein Language Model for Virus

PyPI version Hugging Face Model License: MIT

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, and AutoTokenizer.
  • 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 transformers API.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lucavirus-1.1.0.tar.gz (20.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lucavirus-1.1.0-py3-none-any.whl (19.4 kB view details)

Uploaded Python 3

File details

Details for the file lucavirus-1.1.0.tar.gz.

File metadata

  • Download URL: lucavirus-1.1.0.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

Hashes for lucavirus-1.1.0.tar.gz
Algorithm Hash digest
SHA256 768c86a0d4cbff98d7bc6bdb31f26d88ed8a93fb1b85f24823afb7d8e3301f45
MD5 06d86f4e938e1687a659cbcb0fe24daa
BLAKE2b-256 f5c7b162fb3c6e5d3e35ade0e45b26dedd07b592b916a5aa23fd448bcec3a361

See more details on using hashes here.

File details

Details for the file lucavirus-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: lucavirus-1.1.0-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

Hashes for lucavirus-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 39bea4f98c9fb2787e35e7a1cfcf92d281cb463facf8e53c536f6ac82227ba26
MD5 8996521fba4a2ca0004372048ccf1988
BLAKE2b-256 fcef7c763da02a32bbe19ef1e16e10f8faff3a5b360450a10d43b8adef0703ca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page