Sobre el proyecto

AssaySentinel.jl es un paquete de Julia dirigido a científicos, desarrolladores de ensayos, investigadores de laboratorios clínicos, bioestadísticos y médicos que trabajan en la calidad de las mediciones en lugar del diagnóstico de pacientes. Su pregunta declarada es si el proceso de medición cambió, cuándo, en qué dirección, con qué incertidumbre y si esa conclusión puede reconstruirse posteriormente. Alcance y puntos de entrada - Deriva y puntos de cambio: detect_drift, detect_changes, con un modo :auto que informa por qué se seleccionó un método. Los detectores mencionados incluyen CUSUM, PELT, puntos de cambio bayesianos de partición de producto, control de calidad estilo Westgard, eventos de calibración y comparaciones de lote/instrumento. - QC: monitor, westgard_rules, una macro @qcrule y datos de gráficos de control Levey-Jennings. - Calibración: calibrate y compare_calibrations. - Lotes: detect_batch_effects y un correct_batch_effects opcional. - Comparaciones: compare_methods, compare_instruments, compare_lots, compare_sites. - Límites de referencia: reference_interval, assess_partitions, reference_curve. - Estudios multi-sitio: hierarchical_sites, analyze(study, streams), StudySentinel, con etiquetas de compartición (:global, :site_specific, :mixed, :stable) e I-cuadrado que describe la concordancia estadística entre sitios. - Paneles multi-analito: AssayPanel y analyze(panel) que devuelve un PanelReport; las unidades no se agrupan entre analitos. - Streaming: Sentinel, update!, onalert. - Simulación y evaluación: simulate_assay, evaluate_detector, showcase_dataset. - Procedencia y salida: explain, save, report. Uso El README muestra un flujo de trabajo breve: cargar el paquete, llamar a showcase_dataset(), ejecutar analyze en el flujo de datos, imprimir el resultado, llamar a explain y escribir un informe HTML. Una fuente de Tables.jl puede analizarse pasando una definición de Assay más mapeos de columnas para valor, tiempo, lote e instrumento. Los historiales multi-sitio usan analyze(study, Dict(...)) y producen un gráfico de bosque con gráficos por sitio. Los paneles se construyen insertando flujos en un AssayPanel y analizándolo. Se proporciona una CLI en bin/assaysentinel con subcomandos analyze, study, panel y version, además de una opción de salida --json. Reproducibilidad y procedencia El README enmarca cada llamada a analyze como reproducible (la semilla rng y la huella de entrada viajan con la conclusión), consciente de la incertidumbre (SD combinada, RMS(u), media ponderada, error estándar de magnitud), graficada (gráfico de control, línea de tiempo de reconstrucción, tiras de lote/instrumento, procedencia) y completa en procedencia (ingest, outliers, change-point, drift, reconstruct, cada uno etiquetado como observed, statistical, algorithmic o annotation). Los principios de diseño enumerados incluyen: las mediciones son sistemas, no números desnudos; preferir estadísticas explicables sobre puntuaciones de caja negra; la detección y la corrección son separadas; los valores atípicos se anotan en lugar de eliminarse silenciosamente; los valores faltantes y NaN nunca se convierten a cero; las unidades incompatibles nunca se comparan sin conversión explícita; la asociación temporal no es causalidad; y toda conclusión debe ser reproducible. Instalación y dependencias Se requiere Julia 1.10 o posterior. Hasta que se complete el registro en el registro General, la instalación es mediante Pkg.add(url=...). El paquete principal se describe como solo stdlib, con Makie, Unitful, Measurements, OnlineStats y Turing como extensiones opcionales que nunca se requieren para analizar, explicar o informar. Límite de seguridad y licencia El README declara que el software es para investigación, evaluación de calidad analítica, desarrollo de métodos y apoyo a decisiones científicas, no es un dispositivo médico de diagnóstico y no debe determinar de forma independiente el diagnóstico o tratamiento de pacientes. Las etiquetas de severidad y el Sentinel Score describen el proceso analítico, no el riesgo clínico. La licencia se describe como propietaria de código disponible, con evaluación bajo LICENSE y uso comercial o de producción que requiere una licencia comercial o adquisición; los documentos relacionados incluyen COMMERCIAL.md, ACQUISITION.md, LICENSE_TRANSITION_NOTICE.md y NOTICE. La documentación, los métodos estadísticos, las notas de validación y un registro de cambios están enlazados desde el repositorio.