Protein and RNA sequence annotation that also names the residues driving each label, learned from sequence-level supervision alone.
No providers recorded yet. Browse all providers
Sequence-level annotations are abundant — a protein carries Gene Ontology terms, an EC number, a subcellular location — while residue-level annotations are scarce, because determining which residues confer a function usually requires structures or mutagenesis. Methods built on biological language models generally average the per-residue embeddings into one vector and train a classifier on that, discarding exactly the information a protein engineer wants: where in the sequence the function lives.
OPUS-GO, from Jianpeng Ma's group at Fudan University with Shanghai AI Laboratory, recovers that information without needing residue-level supervision. It reframes annotation as multiple instance learning: the sequence is a bag, each residue is an instance, and only the bag carries a label. A modified MIL objective then trains a residue-level classifier that can be read two ways — pooled for the sequence-level prediction, or inspected per position to see which residues the model considers responsible. Because the classifier operates on frozen language-model features, the framework is backbone-agnostic; the authors run it on ESM-2 for protein tasks and on RiNALMo and ProtRNA for RNA tasks.
The artifact has since been renamed. The repository the preprint cites, thuxugang/opus_go, now redirects to thuxugang/opus_resinsight, and the method is presented as OPUS-ResInsight in the current README and in the ICLR 2025 GEM workshop version. OPUS-GO is the name under which the December 2024 preprint introduced it.
OPUS-GO trains one lightweight classifier per downstream task on top of frozen language-model representations. Eight protein benchmarks are reported: the three DeepFRI Gene Ontology sets (biological process, 1,943 labels; molecular function, 489; cellular component, 320), binary and 10-way subcellular localization from DeepLoc, metal ion binding, a 538-label EC benchmark, and the 5,106-label GraphEC benchmark with its NEW-392 and Price-149 test sets. Against an ESM-2 baseline that mean-pools all residues, OPUS-GO improves GO-BP from 0.365 to 0.377 AUPR and GO-MF from 0.659 to 0.678, lifts subcellular localization accuracy from 0.802 to 0.837 and ion binding from 0.776 to 0.818, and reaches top-1 accuracies of 0.566 on NEW-392 and 0.423 on Price-149, ahead of CLEAN (0.541 and 0.403) and GraphEC (0.402 and 0.195).
Interpretability is evaluated directly rather than by inspection. Using BioLip residue annotations for DNA binding, calcium ion binding and heme binding, OPUS-GO reaches AUCs of 0.719, 0.826 and 0.689, against 0.613, 0.716 and 0.595 for Grad-CAM applied to ESM-2 and 0.618, 0.470 and 0.544 for GGN-GO. The released implementation targets TensorFlow 2.4 on Python 3.7, and per-task checkpoints are distributed through Google Drive with no license stated.
The immediate use is enzyme mining: given a target reaction, the server ranks UniRef50 candidates by similarity over the residues OPUS-GO ties to the enzymatic annotation, surfacing functionally analogous enzymes that whole-sequence alignment would rank poorly. The residue maps also serve as design input — enzymes sharing an EC number split into a few conserved residue patterns near their binding sites, a starting point for choosing which positions to hold fixed during engineering.
OPUS-GO's contribution is methodological rather than architectural: it shows that weak, sequence-level supervision is sufficient to localize function, and that doing so improves sequence-level accuracy rather than trading against it. Because the head is thin and backbone-agnostic, the same treatment transfers to RNA language models, which have far less residue-level annotation available than proteins do. The limitations are practical. The work remains a preprint outside the workshop track; residue attribution identifies label-associated positions that need not coincide with catalytic active sites, and the paper is explicit about cases where they do not; and the pinned TensorFlow 2.4 / Python 3.7 stack plus Google Drive-hosted checkpoints make reproduction fragile.
Much of this page is generated or calculated automatically. Flag anything that looks off and we will re-run it.