À propos du projet

AssaySentinel.jl est un paquet Julia destiné aux scientifiques, développeurs de tests, chercheurs en laboratoire clinique, biostatisticiens et médecins qui travaillent sur la qualité des mesures plutôt que sur le diagnostic des patients. Sa question affichée est de savoir si le processus de mesure a changé, quand, dans quelle direction, avec quelle incertitude, et si cette conclusion peut être reconstruite ultérieurement. Portée et points d'entrée - Dérive et points de changement : detect_drift, detect_changes, avec un mode :auto qui indique pourquoi une méthode a été sélectionnée. Les détecteurs mentionnés incluent CUSUM, PELT, les points de changement bayésiens par partition de produit, le CQ de type Westgard, les événements de calibration et les comparaisons de lots/instruments. - CQ : monitor, westgard_rules, une macro @qcrule et les données de carte de contrôle de Levey-Jennings. - Calibration : calibrate et compare_calibrations. - Lots : detect_batch_effects et un correct_batch_effects optionnel. - Comparaisons : compare_methods, compare_instruments, compare_lots, compare_sites. - Limites de référence : reference_interval, assess_partitions, reference_curve. - Études multi-sites : hierarchical_sites, analyze(study, streams), StudySentinel, avec des étiquettes de partage (:global, :site_specific, :mixed, :stable) et l'I-carré décrivant la concordance statistique entre sites. - Panneaux multi-analytes : AssayPanel et analyze(panel) renvoyant un PanelReport ; les unités ne sont pas regroupées entre analytes. - Flux : Sentinel, update!, onalert. - Simulation et évaluation : simulate_assay, evaluate_detector, showcase_dataset. - Provenance et sortie : explain, save, report. Utilisation Le README montre un court flux de travail : charger le paquet, appeler showcase_dataset(), exécuter analyze sur le flux de données, imprimer le résultat, appeler explain et écrire un rapport HTML. Une source Tables.jl peut être analysée en passant une définition Assay plus des mappages de colonnes pour la valeur, le temps, le lot et l'instrument. Les historiques multi-sites utilisent analyze(study, Dict(...)) et produisent un graphique en forêt avec des graphiques par site. Les panneaux sont construits en poussant des flux dans un AssayPanel et en l'analysant. Une CLI est fournie sous bin/assaysentinel avec les sous-commandes analyze, study, panel et version, plus une option de sortie --json. Reproductibilité et provenance Le README présente chaque appel analyze comme reproductible (la graine rng et l'empreinte des entrées accompagnent la conclusion), conscient de l'incertitude (SD combinée, RMS(u), moyenne pondérée, erreur standard de magnitude), tracé (carte de contrôle, chronologie de reconstruction, bandes de lot/instrument, provenance) et complet en provenance (ingestion, valeurs aberrantes, point de changement, dérive, reconstruction, chacun étiqueté comme observé, statistique, algorithmique ou annotation). Les principes de conception listés incluent : les mesures sont des systèmes et non de simples nombres ; préférer des statistiques explicables aux scores de type boîte noire ; la détection et la correction sont séparées ; les valeurs aberrantes sont annotées plutôt que supprimées silencieusement ; les valeurs manquantes et NaN ne sont jamais forcées à zéro ; les unités incompatibles ne sont jamais comparées sans conversion explicite ; l'association temporelle n'est pas une causalité ; et chaque conclusion doit être reproductible. Installation et dépendances Julia 1.10 ou plus récent est requis. Jusqu'à l'achèvement de l'enregistrement dans le registre General, l'installation se fait via Pkg.add(url=...). Le paquet principal est décrit comme n'utilisant que la bibliothèque standard, avec Makie, Unitful, Measurements, OnlineStats et Turing comme extensions optionnelles qui ne sont jamais requises pour analyser, expliquer ou produire un rapport. Frontière de sécurité et licence Le README indique que le logiciel est destiné à la recherche, à l'évaluation de la qualité analytique, au développement de méthodes et à l'aide à la décision scientifique, qu'il n'est pas un dispositif médical de diagnostic et qu'il ne doit pas déterminer de manière indépendante le diagnostic ou le traitement d'un patient. Les étiquettes de gravité et le Sentinel Score décrivent le processus analytique, non le risque clinique. La licence est décrite comme propriétaire à code source disponible, avec évaluation sous LICENSE et un usage commercial ou en production nécessitant une licence commerciale ou une acquisition ; les documents associés incluent COMMERCIAL.md, ACQUISITION.md, LICENSE_TRANSITION_NOTICE.md et NOTICE. La documentation, les méthodes statistiques, les notes de validation et un journal des modifications sont liés depuis le dépôt.