Communitygithub.com

BioTender-max/awesome-bio-agent-skills

Eine kuratierte Sammlung von KI-Agentenfähigkeiten für die biomedizinische Forschung, die Genomik, Proteomik, Einzelzellanalyse, klinische KI und Proteindesign abdeckt.

Was ist awesome-bio-agent-skills?

Diese Sammlung bietet spezialisierte Fähigkeiten für KI-Agenten, um biomedizinische Forschungsaufgaben wie Genomik, Proteomik, Einzelzellanalyse, klinische KI und Proteindesign durchzuführen. Sie enthält detaillierte Anleitungen zur Nutzung von Modellen wie dem ESM2-Proteinsprachmodell, mit klaren Schritten zur Installation, Ausführung und Interpretation der Ergebnisse. Die Fähigkeiten unterstützen sowohl die Ausführung über Modal als auch über direkte Python-APIs und bieten Entscheidungsbäume sowie Fehlerbehebungshinweise. Die Sammlung ist als „awesome“-Repository strukturiert und zielt darauf ab, die Arbeit von Forschern und Entwicklern im biomedizinischen Bereich zu beschleunigen, indem sie bewährte Praktiken und vorgefertigte Workflows bereitstellt.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add BioTender-max/awesome-bio-agent-skills

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

ESM2-Proteinsprachmodell

Voraussetzungen

AnforderungMinimumEmpfohlen
Python3.8+3.10
PyTorch1.10+2.0+
CUDA11.0+11.7+
GPU VRAM8GB24GB (A10G)
Arbeitsspeicher16GB32GB

So führen Sie es aus

Zum ersten Mal? Siehe Installationsanleitung zum Einrichten von Modal und biomodals.

Option 1: Modal

cd biomodals
modal run modal_esm2_predict_masked.py \
  --input-faa sequences.fasta \
  --out-dir embeddings/

GPU: A10G (24GB) | Timeout: 300s Standard

Option 2: Python-API (empfohlen)

import torch
import esm

# Modell laden
model, alphabet = esm.pretrained.esm2_t33_650M_UR50D()
batch_converter = alphabet.get_batch_converter()
model = model.eval().cuda()

# Sequenzen verarbeiten
data = [("seq1", "MKTAYIAKQRQISFVK...")]
batch_labels, batch_strs, batch_tokens = batch_converter(data)

with torch.no_grad():
    results = model(batch_tokens.cuda(), repr_layers=[33])

# Einbettungen abrufen
embeddings = results["representations"][33]

Wichtige Parameter

ESM2-Modelle

ModellParameterGeschwindigkeitQualität
esm2_t6_8M8MAm schnellstenSchnelles Screening
esm2_t12_35M35MSchnellGut
esm2_t33_650M650MMittelBesser
esm2_t36_3B3BLangsamAm besten

Ausgabeformat

embeddings/
├── embeddings.npy       # (N, 1280) Array
├── pll_scores.csv       # PLL für jede Sequenz
└── metadata.json        # Sequenzinformationen

Beispielausgabe

Erfolgreiche Ausführung

$ modal run modal_esm2_predict_masked.py --input-faa designs.fasta
[INFO] Lade ESM2-650M-Modell...
[INFO] Verarbeite 100 Sequenzen...
[INFO] Berechne Pseudolog-Likelihood...

embeddings/pll_scores.csv:
sequence_id,pll,pll_normalized,length
design_0,-0.82,0.15,78
design_1,-0.95,0.08,85
design_2,-1.23,-0.12,72
...

Zusammenfassung:
  Mittlerer PLL: -0.91
  Sequenzen mit PLL > 0: 42/100 (42%)

So sieht eine gute Ausgabe aus:

  • PLL_normalized: > 0.0 (natürlicher wirkend)
  • Einbettungsform: (N, 1280) für 650M-Modell
  • Höherer PLL = natürlichere Sequenz

Entscheidungsbaum

Sollte ich ESM2 verwenden?
│
├─ Was wird benötigt?
│  ├─ Sequenzplausibilitätswert → ESM2 PLL ✓
│  ├─ Einbettungen für Clustering → ESM2 ✓
│  ├─ Vorhersage von Varianteneffekten → ESM2 ✓
│  └─ Strukturvorhersage → ESMFold verwenden
│
├─ Welche Modellgröße?
│  ├─ Schnelles Screening → esm2_t12_35M
│  ├─ Standardnutzung → esm2_t33_650M ✓
│  └─ Beste Qualität → esm2_t36_3B
│
└─ Anwendungsfall?
   ├─ QC-Filterung → PLL > 0.0 Schwellenwert
   ├─ Diversitätsanalyse → Mittelwert-gepoolte Einbettungen
   └─ Mutationsscanning → Log-Odds pro Position

PLL-Interpretation

Normalisierter PLLInterpretation
> 0.2Sehr natürliche Sequenz
0.0 - 0.2Gut, natürlich wirkend
-0.5 - 0.0Akzeptabel
< -0.5Möglicherweise unnatürlich

Typische Leistung

KampagnengrößeZeit (A10G)Kosten (Modal)Anmerkungen
100 Sequenzen5-10 Min~1 $Schnelles Screening
1000 Sequenzen30-60 Min~5 $Standard
5000 Sequenzen2-3 Std~20 $Große Charge

Durchsatz: ~100-200 Sequenzen/Minute mit 650M-Modell.


Überprüfen

wc -l embeddings/pll_scores.csv  # Sollte mit Eingabe + 1 (Kopfzeile) übereinstimmen

Fehlerbehebung

OOM-Fehler: Kleineres Modell verwenden oder Sequenzen bündeln Langsame Verarbeitung: esm2_t12_35M für Geschwindigkeit verwenden Niedrige PLL-Werte: Kann auf ungewöhnliche/designte Sequenzen hindeuten

Fehlerinterpretation

FehlerUrsacheBehebung
RuntimeError: CUDA out of memorySequenz zu lang oder große ChargeBatch-Größe reduzieren
KeyError: DarstellungFalsche Schicht angefordertSchicht 33 für 650M-Modell verwenden
ValueError: SequenzUngültige AminosäureAuf nicht standardmäßige AS prüfen

Nächster Schritt: Strukturvorhersage mit chai oder boltz → protein-qc für Filterung.

Verwandte Skills