Necesidad: (1) Modelo de fundamento para ADN con zero-shot variant effect prediction, (2) modelo de proteínas para embeddings y scoring de mutaciones missense, (3) dataset masivo de interacciones proteína-ligando para fine-tuning de modelo de afinidad.
Paso 1 — Dominios identificados
genomics
›
biology
›
chemistry
›
medicine
Paso 3 — Recursos seleccionados del catálogo
3 recursos recomendados
Seleccionados de huggingscience.co · Filtrados por licencia open-source y fit con A100 80 GB
✦1
arcinstitute/evo2_7b
ARC Institute · DNA Foundation Model · 7B parámetros
Modelo
Genómica
Biología
Apache 2.0
A100 40–80 GB
Modelo de lenguaje de ADN de 7B parámetros preentrenado sobre 9.3T nucleótidos (prokaryotic + eukaryotic). Soporta zero-shot variant effect prediction (log-ratio scoring), generación de secuencias sintéticas y clasificación de elementos genómicos. La variante 7B instruction-tuned cabe cómoda en un A100 80GB en fp16; la 40B requiere InferenceProviders.
Por qué este primero: Necesidad #1 del cliente (variant effect prediction sin fine-tuning). El log-likelihood ratio entre alelo ref y alt es la señal directa. La variante 7B sacrifica algo de precisión vs 40B pero evita Inference API de pago y encaja con el A100 disponible. Requiere
trust_remote_code=True por arquitectura Hyena custom.
# Carga y scoring de variante missense — Evo-2 7B
from dotenv import load_dotenv; load_dotenv()
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model = AutoModelForCausalLM.from_pretrained(
"arcinstitute/evo2_7b",
trust_remote_code=True,
torch_dtype=torch.float16,
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(
"arcinstitute/evo2_7b", trust_remote_code=True
)
# log-likelihood ratio: ref vs alt (variant effect score)
def score_variant(ref_seq: str, alt_seq: str) -> float:
def ll(seq):
ids = tokenizer(seq, return_tensors="pt").input_ids.cuda()
with torch.no_grad():
return model(ids, labels=ids).loss.item() * -len(ids[0])
return ll(alt_seq) - ll(ref_seq) # positivo = mutación beneficiosa
✦2
facebook/esm2_t33_650M_UR50D
Meta AI (FAIR) · Protein Language Model · 650M parámetros
Modelo
Biología
MIT
CPU/GPU
ESM2 es el estándar de facto para embeddings de proteínas y scoring de mutaciones. La variante t33-650M ofrece el mejor equilibrio calidad/coste: embeddings de alta calidad, mutation effect scoring via masked marginal probabilities, y base para fine-tuning de clasificadores de estructura/función. Versiones menores (35M, 150M) para CPU; mayor (3B) si se necesita máxima precisión en estructura.
Por qué este segundo: Necesidad #2 del cliente (protein embeddings + missense mutation scoring). El masked marginal scoring de ESM2 es benchmarked en ProteinGym. Se puede correr en CPU para producción de embeddings batch; el scoring de mutaciones en A100 es muy rápido (<1s/mutación).
# ESM2 650M — embeddings + mutation scoring
from dotenv import load_dotenv; load_dotenv()
from transformers import EsmModel, EsmTokenizer, EsmForMaskedLM
import torch
tokenizer = EsmTokenizer.from_pretrained("facebook/esm2_t33_650M_UR50D")
model_lm = EsmForMaskedLM.from_pretrained("facebook/esm2_t33_650M_UR50D")
# Masked marginal: score de mutación P→Q en posición 42
def mutation_score(wt_seq: str, pos: int, wt_aa: str, mut_aa: str) -> float:
masked = wt_seq[:pos] + tokenizer.mask_token + wt_seq[pos+1:]
ids = tokenizer(masked, return_tensors="pt")
with torch.no_grad():
logits = model_lm(**ids).logits[0, pos+1] # +1 por [CLS]
vocab = {v: k for k, v in tokenizer.get_vocab().items()}
return (logits[tokenizer.convert_tokens_to_ids(mut_aa)]
- logits[tokenizer.convert_tokens_to_ids(wt_aa)]).item()
✦3
SandboxAQ/AQAffinity + SAIR Dataset
SandboxAQ · Drug-Target Affinity · 1M+ estructuras proteína-ligando
Modelo
Dataset
Química
Biología
Apache 2.0
A100 recomendado
AQAffinity es un modelo de predicción de afinidad fármaco-proteína (pKd/pKi) de SandboxAQ basado en embeddings conjuntos. Se distribuye junto al dataset SAIR con más de 1M co-estructuras proteína-ligando (formato HF Dataset), ideal para fine-tuning. Los datos incluyen pares (secuencia proteína, SMILES ligando, ΔG experimental) con splits de train/val/test.
Por qué este tercero: Necesidad #3 del cliente (fine-tuning de modelo de afinidad con datos masivos). SAIR es el dataset más grande de la categoría disponible en HF con licencia open-source; evita PDBbind Pro que es de pago. Cargar en streaming por tamaño (>50 GB). Ver blog methodology de SandboxAQ en el catálogo.
# SAIR — carga en streaming (evitar OOM)
from dotenv import load_dotenv; load_dotenv()
from datasets import load_dataset
sair = load_dataset(
"SandboxAQ/SAIR",
split="train",
streaming=True # CRÍTICO: dataset > 50 GB
)
# Inspeccionar schema antes de asumir columnas
sample = next(iter(sair))
print(sample.keys()) # → ['smiles', 'sequence', 'pKd', 'split', ...]
# Fine-tuning con AQAffinity — cargar modelo base
from transformers import AutoModel
affinity_model = AutoModel.from_pretrained("SandboxAQ/AQAffinity")
Comparativa de candidatos evaluados
Por qué descartamos alternativas
Candidatos considerados del catálogo — 4 dominios consultados
| Recurso | Dominio | Tarea | Zero-shot | A100 OK | Licencia open | Veredicto |
|---|---|---|---|---|---|---|
arcinstitute/evo2_7b |
Genómica | Variant effect | ✓ | ✓ | ✓ Apache 2.0 | ✦ SELECCIONADO |
arcinstitute/evo2_40b |
Genómica | Variant effect | ✓ | ✗ requiere multi-GPU | ✓ | ⚠ descartado (VRAM) |
facebook/esm2_t33_650M_UR50D |
Biología | Protein embeddings | ✓ | ✓ | ✓ MIT | ✦ SELECCIONADO |
facebook/esm2_t36_3B_UR50D |
Biología | Protein embeddings | ✓ | ⚠ ajustado en fp16 | ✓ | ⚠ reserva si 650M insuficiente |
SandboxAQ/AQAffinity + SAIR |
Química | Drug-target affinity | ✓ | ✓ | ✓ Apache 2.0 | ✦ SELECCIONADO |
arcinstitute/Stack-Large |
Genómica | Single-cell / transcriptomics | ✓ | ✓ | ✓ | ⚠ fuera de scope (no scRNA-seq) |
hugging-science/breast-cancer-detector-2 |
Medicina | Pathology classification | ✓ | ✓ | ✓ | ⚠ fuera de scope (imagen, no secuencia) |
Pipeline recomendado para GenomEdge — 6 semanas POC
Semana 1–2
Variant Screening
evo2_7b
Scoring log-ratio sobre VCF de variantes candidatas en genes target (enf. rara monogénica)
→
Semana 2–3
Protein Impact
esm2_650M
Masked marginal scoring de mutaciones missense; clustering embeddings para agrupación funcional
→
Semana 3–5
Affinity Fine-Tune
AQAffinity
Fine-tuning con SAIR (streaming) sobre estructuras de proteínas target de la enfermedad
→
Semana 5–6
Candidate Ranking
pipeline integrado
Ranking final de candidatos terapéuticos combinando score genómico + afinidad predicha
Notas técnicas críticas
trust_remote_code=True es obligatorio en Evo-2. La arquitectura Hyena no está en el core de transformers. Informar al equipo de seguridad de GenomEdge antes de integrar en producción: el código remoto se descarga del repo de ARC Institute (Apache 2.0, auditado).
Streaming en SAIR es mandatorio. El dataset supera los 50 GB. Usar
load_dataset(..., streaming=True) y nunca .download() completo en el nodo A100 de GCP. Configurar HF_DATASETS_CACHE a disco de alta capacidad si se necesita caché parcial.
Columnas de SAIR no son estándar. Inspectar schema con
next(iter(sair)).keys() antes de asumir nombres. El catálogo registra columnas smiles, sequence, pKd pero pueden haber cambiado en versiones posteriores del dataset.
Los tres recursos tienen licencia Apache 2.0 / MIT. Compatible con uso comercial y redistribución. No hay restricciones para el modelo de negocio de GenomEdge. Verificar la model card individual antes del release — las licencias de datasets derivados (p. ej. PDB) pueden imponer restricciones upstream.
Demo interactivo disponible: Para diseño de binders de proteínas objetivo (futura fase),
hugging-science/boltzgen-demo en HF Spaces permite pruebas rápidas via gradio_client sin costes GPU. Ver references/using-spaces.md para el patrón de código.
Referencias metodológicas del catálogo
• Evo-2: Nguyen et al. 2024 — "Sequence modeling and design from molecular to genome scale with Evo 2" (ver blog post en topic genomics)
• ESM2: Lin et al. 2023 — "Evolutionary-scale prediction of atomic-level protein structure with a language model", Science 379 (ver entrada type:blog en topic biology)
• SAIR: SandboxAQ blog 2024 — "SAIR: the largest open protein-ligand co-structure dataset" (ver topic chemistry, sección blog posts)