--- license: apache-2.0 language: - en tags: - protein - gene-ontology - function-prediction - biology - bioinformatics pipeline_tag: text-generation datasets: - wanglab/cafa5 --- # GO-GPT: Gene Ontology Prediction from Protein Sequences GO-GPT is a decoder-only transformer model for predicting Gene Ontology (GO) terms from protein sequences. It combines ESM2 protein language model embeddings with an autoregressive decoder to generate GO term annotations across all three ontology aspects: Molecular Function (MF), Biological Process (BP), and Cellular Component (CC). ## Quick Start 1. Clone the repository: ```bash git clone https://github.com/YOUR_ORG/gogpt cd gogpt ``` 2. Run the inference notebook or use Python directly: ```python import sys sys.path.insert(0, "src") from gogpt import GOGPTPredictor # Load from HuggingFace (downloads ~4GB on first run) predictor = GOGPTPredictor.from_pretrained("armansa1/gogpt-dev") # Predict GO terms predictions = predictor.predict( sequence="MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQAPILSRVGDGTQDNLSGAEKAVQVKVKALPDAQFEVVHSLAKWKRQQIAAALEHHHHHH", organism="Homo sapiens" ) print(predictions) # {'MF': ['GO:0003674', 'GO:0005488', ...], # 'BP': ['GO:0008150', 'GO:0008152', ...], # 'CC': ['GO:0005575', 'GO:0110165', ...]} ``` ## Model Architecture | Component | Description | |-----------|-------------| | Protein Encoder | ESM2-3B (`facebook/esm2_t36_3B_UR50D`) | | Decoder | 12-layer GPT with prefix causal attention | | Embedding Dim | 900 | | Attention Heads | 12 | | Total Parameters | ~3.2B (3B ESM2 + 200M decoder) | ## Supported Organisms GO-GPT supports organism-conditioned prediction for 200 organisms plus an `` category (201 total). See `organism_list.txt` for the full list. Common organisms include: - Homo sapiens - Mus musculus - Escherichia coli (various strains) - Saccharomyces cerevisiae - Arabidopsis thaliana - Drosophila melanogaster For organisms not in the training set, predictions will use the `` embedding. ## Files in This Repository | File | Description | |------|-------------| | `model.ckpt` | Model weights (PyTorch Lightning checkpoint) | | `config.yaml` | Model architecture configuration | | `tokenizer_info.json` | Token vocabulary metadata | | `go_tokenizer.json` | GO term to token ID mapping | | `organism_mapper.json` | Organism name to ID mapping | | `organism_list.txt` | Human-readable list of 201 supported organisms |