Sobre el proyecto

## Qué es AlleleForge es un marco de diseño orientado a la investigación para la edición genómica CRISPR que comienza a partir de un alelo roto en lugar de un guía. Usted proporciona una variante —entrada de ClinVar, rsID, HGVS, VCF o coordenadas brutas— y el pipeline la resuelve, la dirige a las químicas de edición elegibles, enumera los guías/pegRNAs candidatos, los califica y devuelve un menú clasificado de ediciones candidatas. Se cubren tres químicas: la nucleasa SpCas9, editores de bases (ABE/CBE) y edición prime, que el proyecto trata como su modalidad insignia. Cada candidato conlleva un resultado de edición predicho, un intervalo de incertidumbre y un informe de off-target. Todo se expone a través de tres capas sobre un núcleo: una librería de Python, una interfaz de línea de comandos `aforge` y una interfaz web (backend FastAPI con frontend Next.js). ## Informes de incertidumbre y seguridad Las predicciones nunca son floats simples. Cada resultado numérico se entrega con un intervalo, el método que lo produjo y una bandera `calibrated` que indica si el intervalo fue ajustado contra una cobertura reservada. Por defecto, los valores predeterminados sin peso son heurísticas y reportan `calibrated=False`. La recalibración de intervalos utiliza métodos conformes divididos y la calibración de probabilidad utiliza regresión isotónica, mostrando `empirical_coverage`/ECE cuando cualquiera de los dos es necesario. El análisis de off-target es consciente de la población y el haplotipo, pero es explícitamente opcional: el proyecto no suministra datos de gnomAD, por lo que un escaneo estratificado por ancestría requiere que el usuario proporcione una fuente de frecuencia (`--gnomad`, `--haplotypes`, `--patient-vcf`). Sin una fuente, el escaneo es solo de referencia y el resultado así lo indica. El riesgo de ancestría se reporta como la población más afectada en lugar de un promedio, con un umbral de transporte aplicado idénticamente en las rutas de población y haplotipo. La nominación combina dos modelos de especificidad (CFD y MIT), registrando ambas puntuaciones por sitio. Un caché de off-target entre ejecuciones está restringido por seguridad a búsquedas de solo referencia y calificadores predeterminados. ## Reproducibilidad y postura de ingeniería Las decisiones de diseño documentadas en el README enfatizan la reproducibilidad: resultados direccionados por contenido, divisiones y cachés (con reverificación de integridad), entornos anclados, semillas deterministas y checkpoints con hash de contenido. Un hash de artefacto `null` bloquea una descarga por diseño. Los modelos se cargan a través de una puerta de consentimiento/licencia/checksum; el backbone predeterminado (Nucleotide Transformer v2 500M) es CC-BY-NC-SA-4.0 y se rechaza para uso comercial al momento de la carga, sin pesos reales suministrados. Existe una ruta de exportación ONNX para el backbone. Un crate de Rust/PyO3 (`aforge_native`) proporciona kernels de aceleración opcionales —búsqueda BWT de FM-index, seeding de k-mer, recorrido de haplotipos y alineación bulged— cada uno con un respaldo en Python puro idéntico byte a byte y pruebas de paridad; la librería se instala y funciona sin el crate. Notablemente, el benchmarking llevó al proyecto a dejar el prefiltro de FM-index y k-mer seed como opcional en lugar de predeterminado, ya que ambos fueron medidos como un costo neto a nivel de escaneo. ## Benchmark y estado Un benchmark público, CRISPR-Bench, proporciona tareas, divisiones congeladas, métricas, un ejecutor y una tabla de clasificación; un script de estudio de calibración/generalización regenera el ECE por tarea, la brecha de generalización entre tipos celulares y los informes de recalibración. Un renderizador sin dependencias genera figuras SVG reproducibles. Las quince fases de la hoja de ruta v0.1.0 están marcadas como completas (tipos núcleo, acceso al genoma, registro de datos, resolutor de variantes, motor de off-target, zoo de modelos/calificación, las tres químicas, diseñador, reportes, CLI, web, benchmark, docs). Las rutas post-v0.1.0 hacia la v1.0 figuran como en progreso o no iniciadas, incluyendo el anclaje de hashes de artefactos reales y un estudio de validación/calibración. ## Estructura de instalación La instalación del núcleo es deliberadamente ligera (modelos tipados, configuración, análisis de tarjetas de modelo) con extras opcionales para `core`, `genome`, `variant`, `cli`, `web`, `ml`, `cas9-rs3`, `docs` y `dev`. Se requiere Python ≥ 3.11. El extra `variant` necesita encabezados de cliente de PostgreSQL porque `hgvs` depende de `psycopg2`; el README señala que esto anteriormente hacía que un comando de instalación documentado fuera imposible de ejecutar. El proyecto establece claramente que es una herramienta de investigación, no un dispositivo médico, y que las nominaciones de off-target son computacionales y deben ser validadas experimentalmente.