--- library_name: transformers base_model: duttaprat/HViLM-base datasets: - duttaprat/HVUE-v2 pipeline_tag: text-classification tags: - genomics - virology - dna - virus - transmissibility - r0 - hvue-v2 license: apache-2.0 --- # HViLM-R0 **HViLM-R0** is the official HViLM model for binary virus transmissibility classification using the threshold R₀ < 1 versus R₀ ≥ 1. - **Fine-tuned from:** [duttaprat/HViLM-base](https://huggingface.co/duttaprat/HViLM-base) - **Benchmark:** [duttaprat/HVUE-v2](https://huggingface.co/datasets/duttaprat/HVUE-v2) - **HVUE v2 configuration:** `Transmissibility/standard_capped_1000bp` - **Checkpoint selection:** best validation F1 (`checkpoint-21000`) - **Input:** virus nucleotide sequence - **Output:** R₀ < 1 vs. R₀ ≥ 1 class This repository contains a **standalone full fine-tuned checkpoint**, so users can load `duttaprat/HViLM-R0` directly without separately loading `HViLM-base`. ## Label Mapping | ID | Label | |---:|---| | 0 | `R0_LT_1` | | 1 | `R0_GE_1` | ## Performance Held-out HVUE v2 test set, standard 1000-nt configuration: | Metric | Score | |---|---:| | Accuracy | 87.50 | | F1 | 86.16 | | MCC | 72.66 | | Precision | 86.79 | | Recall | 85.64 | ## Training Details - **Fine-tuning method:** LoRA - **LoRA rank:** 8 - **LoRA alpha:** 16 - **Target modules:** query and value projections across all 12 transformer layers - **Approximate trainable LoRA parameters:** ~0.3M - **Learning rate:** 3e-5 - **Maximum input length:** 250 BPE tokens (approximately 1000 nt) - **Early stopping:** patience 3, monitored using validation F1 - **Hardware:** NVIDIA A40 GPU The released repository contains the full task-specific model weights rather than only the LoRA adapter. ## Usage ```python import torch from transformers import AutoTokenizer, AutoModelForSequenceClassification model_id = "duttaprat/HViLM-R0" tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True) model = AutoModelForSequenceClassification.from_pretrained( model_id, trust_remote_code=True, ) sequence = "ATGCGTACGTTAGCCGATCGATTACGCGTACGTAGCTAGC" inputs = tokenizer( sequence, return_tensors="pt", truncation=True, max_length=250, ) with torch.no_grad(): logits = model(**inputs).logits prediction_id = logits.argmax(dim=-1).item() print(model.config.id2label[prediction_id]) ``` Possible outputs are `R0_LT_1` and `R0_GE_1`. ## Intended Use HViLM-R0 is intended for research and benchmarking of sequence-based transmissibility classification. The benchmark classes should not be interpreted as direct estimates of a virus's reproduction number in a specific population or outbreak. ## Related Resources - [HViLM-base](https://huggingface.co/duttaprat/HViLM-base) - [HViLM-Patho](https://huggingface.co/duttaprat/HViLM-Patho) - [HViLM-Tropism](https://huggingface.co/duttaprat/HViLM-Tropism) - [HVUE-v2](https://huggingface.co/datasets/duttaprat/HVUE-v2) - [HViLM GitHub repository](https://github.com/duttaprat/HViLM) ## Citation ```bibtex @article{dutta2026hvilm, title={HViLM: A foundation model for viral genomics enables multi-task prediction of pathogenicity, transmissibility, and host tropism}, author={Dutta, Pratik and Vaska, Jack and Surana, Pallavi and Sathian, Rekha and Chao, Max and Zhou, Zhihan and Liu, Han and Davuluri, Ramana V}, journal={bioRxiv}, pages={2026--03}, year={2026}, publisher={Cold Spring Harbor Laboratory} } ```