Downloads · 30 days
0
hyejong/genomeocean-main-classifier
genomeocean-main-classifier is a text classification model from hyejong. Use it when you need a label for a piece of text. The card lists the license as mit.
A GenomeOcean 100M v1.2 fine-tuned sequence classifier that splits genomic FASTA contigs into three broad biological categories:
Downloads · 30 days
0
Access
Public
Updated Jul 30, 2026
Repo size
2.3 GB
Likes
1
Public
Click a slice to open those files.
.safetensors2.3 GB · 100%
From the Hugging Face model README
A GenomeOcean 100M v1.2 fine-tuned sequence classifier that splits genomic FASTA contigs into three broad biological categories:
| Label | Meaning |
|---|---|
Cellular | Sequences derived from cellular organisms (eukaryotic, bacterial, archaeal, mitochondrial, plastid) |
NCLDV/Mirus | Candidate Nucleocytoviricota (giant virus) or Mirus sequences |
Other Viruses | Phages and other viral sequences outside NCLDV/Mirus |
This model is the first stage of a two-stage hierarchical Giant Virus
classifier. Contigs predicted as NCLDV/Mirus here are meant to be passed
to the companion hyejong/genomeocean-sub-classifier
model, which further splits them into NCLDV and Mirus. Full pipeline
code, preprocessing details, and CLI tooling are available at
Genomeocean_Giant_Virus_Classifier
on GitHub.
MistralForSequenceClassification).modeling_mistral.py, configuration_mistral.py) is
included in each fold folder, so loading requires trust_remote_code=True.This repository hosts five independently fine-tuned folds
(fold1 – fold5), each in its own subfolder with a full set of model,
tokenizer, and config files. The recommended way to use this model is to
run all five folds on the same input and average (soft-vote) the softmax
probabilities — this is what the reference pipeline below does
automatically. A single fold can also be used on its own, at the cost of
losing the variance/agreement signal the ensemble provides.
Inputs are 5,000 bp genomic chunks derived from FASTA contigs, preprocessed as follows before tokenization:
A/C/G/T/N.N.Tokenization uses the fold's own tokenizer with max_length=1250.
The GitHub repository ships an installable CLI (genomeocean-main) that
handles FASTA parsing, chunking, batching, 5-fold ensembling, and result
aggregation for you:
git clone https://github.com/hyej0ng/Genomeocean_Giant_Virus_Classifier.git
cd Genomeocean_Giant_Virus_Classifier
python -m pip install -r requirements.txt
python -m pip install ./genomeocean-main-classifier
genomeocean-main predict \
--input /path/to/input.fasta \
--output-dir /path/to/results \
--model-id hyejong/genomeocean-main-classifier \
--subfolder fold1 --subfolder fold2 --subfolder fold3 \
--subfolder fold4 --subfolder fold5 \
--device cuda
See the Main Classifier README
for the full CLI reference, or the
Integrated Pipeline README
to run Main and Sub together and get final Cellular / NCLDV / Mirus /
Other Viruses labels in one command.
transformers usage (single fold)import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer
model_id = "hyejong/genomeocean-main-classifier"
fold = "fold1"
tokenizer = AutoTokenizer.from_pretrained(model_id, subfolder=fold, trust_remote_code=True)
model = AutoModelForSequenceClassification.from_pretrained(
model_id, subfolder=fold, trust_remote_code=True
)
model.eval()
id2label = {0: "Cellular", 1: "NCLDV/Mirus", 2: "Other Viruses"}
sequence = "ACGT..." # a single, already-preprocessed 5,000 bp chunk
inputs = tokenizer(sequence, return_tensors="pt", truncation=True, max_length=1250)
with torch.inference_mode():
probs = torch.softmax(model(**inputs).logits, dim=-1)[0]
predicted = id2label[int(probs.argmax())]
print(predicted, probs.tolist())
To reproduce the full 5-fold ensemble manually, repeat the above for
fold1 – fold5 and average the resulting probability vectors before
taking the argmax.
Trained on metagenome-derived genomic contigs/fragments:
| Label | Scope |
|---|---|
Cellular | Eukaryotic, bacterial, archaeal, mitochondrial, and plastid sequences |
NCLDV/Mirus | Full NCLDV and full Mirus sequences |
Other Viruses | Phages and other viruses |
ensemble_agreement, confidence_std in the reference pipeline output)
should be checked for low-confidence or borderline calls.MIT