RecurrenceSignalGateChecker

Recurrence Signal Gate

Liquid Biopsy жидкостная биопсия cfDNA ctDNA CTC exosomes NGS qPCR
Открыть подборку

Описание утилиты: Recurrence Signal Gate

Recurrence Signal Gate Checker — Многоуровневая валидация сигналов молекулярного рецидива

ℹ️  Утилита выполняет каскадную верификацию MRD-сигналов согласно ESMO MRD Guidelines, NCCN Surveillance, CAP/CLIA и TRACERx:

     ТЕХНИЧЕСКАЯ ДОСТОВЕРНОСТЬ:
     • Above LOD: Сигнал достоверно выше предела обнаружения.
     • Signal-to-LOD Ratio ≥ 3.0: Достаточный запас над шумом.
     • Supporting Reads ≥ 3: Минимальная поддержка прочтениями.
     • UMI Families ≥ 3: Подтверждение независимыми молекулами.

     ИСКЛЮЧЕНИЕ АРТЕФАКТОВ:
     • CHIP Filter: Варианты DNMT3A, TET2, ASXL1, JAK2 и др. — частые CHIP-маркеры.
     • Germline Exclusion: Подтверждение соматического происхождения.
     • Index Hopping Filtered: Исключение межобразцовой контаминации.
     • Strand Bias / Homopolymer / PoN: Технические артефакты секвенирования.
     • Background Noise: Локальный шум в позиции варианта.

     ПОДТВЕРЖДЕНИЕ (КРИТИЧЕСКИЙ УРОВЕНЬ):
     • Repeat Test Concordant: Повторный тест через 2-4 недели подтверждает сигнал.
     • Orthogonal Method: Независимый метод (ddPCR, Sanger, другая панель).
     • Consecutive Positives ≥ 2: Устойчивая детекция во времени.
     • ⚠ ЕДИНИЧНАЯ ДЕТЕКЦИЯ БЕЗ ПОДТВЕРЖДЕНИЯ ≠ РЕЦИДИВ.

     КИНЕТИКА И ТРЕНД:
     • Rising Trend: Восходящая динамика VAF.
     • Doubling Time: Биологически правдоподобный диапазон (14–365 дней для солидных опухолей).
     • Implausible kinetics может указывать на технический артефакт.

     БИОЛОГИЧЕСКАЯ ПРАВДОПОДОБНОСТЬ:
     • Matches Primary Tumor: Тот же вариант, что в первичной опухоли.
     • New Clone Annotation: Если вариант новый — аннотация как возможная эволюция клона.
     • Tissue of Origin Plausible: Согласованность с типом первичной опухоли.

     КОРРЕЛЯЦИЯ С ВИЗУАЛИЗАЦИЕЙ:
     • Molecular Lead Time: MRD+ при NED на КТ — ожидаемо, но требует осторожности.
     • Unscheduled Imaging PD: Радиологическое подтверждение = автоматический CONFIRMED.
     • Symptoms: Наличие симптомов повышает вероятность истинного рецидива.

⚠️  ВАЖНО:
     • Цена FP в скрининге рецидива = ненужная токсичная терапия + психологическая травма.
     • Цена FN = упущенное окно курабельности.
     • Единичная детекция без подтверждения НЕ ЯВЛЯЕТСЯ основанием для клинического действия.
     • CHIP-варианты составляют до 30% ложноположительных MRD-сигналов у пациентов >60 лет.
     • Молекулярный lead time (MRD+ / Imaging-) составляет 2-6 месяцев в среднем.
     • Решение о действии принимается МУЛЬТИДИСЦИПЛИНАРНОЙ КОМАНДОЙ, не автоматически.
     • Для асимптоматических пациентов с MRD+ рекомендуется подтверждение ДО начала терапии.

Использование:
  RecurrenceSignalGateChecker.exe                            → демо-режим (вывод в консоль)
  RecurrenceSignalGateChecker.exe input.csv output.json      → оценка ваших данных

📍 Область применения:
     • Пост-терапевтический MRD-мониторинг: Валидация сигналов рецидива.
     • Мультидисциплинарные консилиумы: Структурированный отчет для принятия решений.
     • Клинические испытания MRD-guided терапии: Стратификация пациентов.
     • Онкологические клиники: Стандартизация подхода к молекулярному рецидиву.

💡 Советы:
1. Confirmation Protocol: Заранее определите алгоритм подтверждения (повтор ± ортогональный метод).
2. CHIP Database: Ведите актуальный список CHIP-вариантов; обновляйте по мере публикации данных.
3. Kinetics Reference: Установьте tumor-type-specific диапазоны doubling time.
4. Imaging Integration: Всегда коррелируйте MRD с последней визуализацией.
5. Patient Communication: Разработайте протокол информирования о значении MRD+ результата.

⚠️ Примечание: Утилита предоставляет СТРУКТУРИРОВАННУЮ ОЦЕНКУ достоверности сигнала. Окончательное решение о клиническом действии принимается лечащей командой с учетом всех факторов. Статус CONFIRMED_RECURRENCE означает высокую вероятность, но не абсолютную certeza. Статус SUSPICIOUS требует дополнительных данных, не игнорирования.

input.csv

PatientID,PrimaryTumorType,AssayName,ClinicalContext,LastCurativeTreatment_Date,MonthsSinceTreatment,DetectedVariant,CurrentVAF_Percent,AssayLOD_Percent,SignalToLOD_Ratio,SupportingReads,MinSupportingReads,UniqueMolecularFamilies,MinUniqueFamilies,RepeatTest_Performed,RepeatTest_Concordant,RepeatTest_VAF_Percent,DaysBetweenTests,OrthogonalMethod_Confirmation,OrthogonalMethod_Concordant,PriorNegativeResults_Count,PriorBaseline_VAF_Percent,RisingTrend_Detected,DoublingTime_Days,MinDoublingTime_Plusible_Days,MaxDoublingTime_Plusible_Days,ConsecutivePositive_Count,IsKnownCHIP_Variant,CHIP_Filter_Applied,GermlineVariant_Excluded,IndexHopping_Filtered,StrandBias_Detected,HomopolymerRegion_Variant,InPanelOfNormals,BackgroundNoise_AtPosition_VAF,MaxBackgroundNoise_VAF,VariantMatches_PrimaryTumor,TissueOfOrigin_Plausible,NewVariant_NotInPrimary,LastImaging_Date,LastImaging_Result,DaysSinceLastImaging,UnscheduledImaging_Performed,UnscheduledImaging_Result,Symptoms_Present,ECOG_Status,ActionableTherapy_Available
REC-PAT-001,NSCLC,Signatera_NSCLC,Post_Curative_Treatment,2025-08-15,10,EGFR_L858R,0.08,0.01,8.0,45,3,12,3,true,true,0.12,14,false,false,3,12.5,true,35,14,365,2,false,true,true,true,false,false,false,0.0002,0.005,true,true,,2026-05-20,NED,25,false,,false,0,true
REC-PAT-002,CRC,Guardant_Reveal,Adjuvant_Monitoring,2025-12-01,6,DNMT3A_R882H,0.03,0.01,3.0,8,3,4,3,true,false,0.0,21,false,false,2,0,false,0,14,365,1,true,false,true,true,false,false,false,0.001,0.005,false,false,DNMT3A_R882H,2026-05-15,NED,30,false,,false,0,false
REC-PAT-003,Breast,RaDaR_Breast,Active_Surveillance,2025-06-20,12,PIK3CA_H1047R,0.02,0.01,2.0,5,3,3,3,false,false,0,0,false,false,4,8.0,false,0,14,365,1,false,true,true,true,false,false,false,0.0003,0.005,true,true,,2026-06-01,NED,14,false,,false,0,true

URS & FS — спецификация пользователя и функциональная спецификация

Документ описывает контролируемый интерфейс и поведение утилиты RecurrenceSignalGateChecker для сценария Recurrence Signal Gate Checker.

Предметные ограничения и критические параметры

Ниже приведены ключевые фрагменты исходного описания. Перед продуктивным применением пределы должны быть сверены с утверждённой спецификацией, регистрационным досье и локальными SOP.
  • • Above LOD: Сигнал достоверно выше предела обнаружения.
  • • Signal-to-LOD Ratio ≥ 3.0: Достаточный запас над шумом.
  • • Supporting Reads ≥ 3: Минимальная поддержка прочтениями.
  • • UMI Families ≥ 3: Подтверждение независимыми молекулами.
  • ПОДТВЕРЖДЕНИЕ (КРИТИЧЕСКИЙ УРОВЕНЬ):
  • • Consecutive Positives ≥ 2: Устойчивая детекция во времени.
  • ⚠️ ВАЖНО:
  • • CHIP-варианты составляют до 30% ложноположительных MRD-сигналов у пациентов >60 лет.
  • 1. Confirmation Protocol: Заранее определите алгоритм подтверждения (повтор ± ортогональный метод).
  • ⚠️ Примечание: Утилита предоставляет СТРУКТУРИРОВАННУЮ ОЦЕНКУ достоверности сигнала. Окончательное решение о клиническом действии принимается лечащей командой с учетом всех факторов. Статус CONFIRMED_RECURRENCE означает высокую вероятность, но не абсолютную certeza. Статус SUSPICIOUS требует дополнительных данных, не игнорирования.

URS — пользовательские требования

IDТребованиеКритичностьКритерий приемки
URS-001Утилита должна принимать файл input.csv для Recurrence Signal Gate Checker с заголовками, определёнными в контракте данных.HighФайл обрабатывается без ручного изменения заголовков.
URS-002Утилита должна выполнять детерминированную оценку QC/ОКК без машинного обучения и без вероятностного принятия решения о соответствии.HighПри одинаковых входных данных, версии правил и конфигурации результат полностью воспроизводим.
URS-003Утилита должна валидировать обязательные поля, типы данных, диапазоны, единицы измерения и предметную правдоподобность значений.HighОшибки схемы, преобразования и диапазона явно отражаются в результате.
URS-004Утилита должна применять предметные пределы и правила из описания, утверждённой спецификации, регистрационного досье и локальных SOP.HighКаждая проверка имеет результат PASS/WARNING/FAIL и понятное сообщение.
URS-005Утилита должна формировать output.json с машинно-читаемыми результатами, исходными значениями, предупреждениями, отказами и критическими находками.HighJSON пригоден для LIMS/ELN/MES-интеграции и QA/QC review.
URS-006Утилита должна сохранять трассируемость между серией/образцом, входным файлом, применёнными правилами и итоговым статусом.HighВыход содержит идентификаторы, список параметров и audit metadata.
URS-007Документация должна поддерживать подготовку IQ/OQ/PQ, CSV/CSA и обсуждение с инспекторами или внутренним QA.MediumURS, FS, контракт input/output и тестовые сценарии поставляются вместе с утилитой.
URS-008Утилита должна использоваться как decision-support инструмент QC, а не как замена утверждённым спецификациям и выпускному решению Qualified Person/QA.MediumВ документации указан контроль change control и необходимость сверки пределов.

Контракт input.csv

#ПолеТипПримерНазначение
1PatientIDstring / controlled vocabularyREC-PAT-001Контролируемый входной параметр для детерминированных QC-правил.
2PrimaryTumorTypestring / controlled vocabularyNSCLCКонтролируемый входной параметр для детерминированных QC-правил.
3AssayNamestring / controlled vocabularySignatera_NSCLCКонтролируемый входной параметр для детерминированных QC-правил.
4ClinicalContextstring / controlled vocabularyPost_Curative_TreatmentКонтролируемый входной параметр для детерминированных QC-правил.
5LastCurativeTreatment_Datestring / controlled vocabulary2025-08-15Контролируемый входной параметр для детерминированных QC-правил.
6MonthsSinceTreatmentdecimal10Контролируемый входной параметр для детерминированных QC-правил.
7DetectedVariantstring / controlled vocabularyEGFR_L858RКонтролируемый входной параметр для детерминированных QC-правил.
8CurrentVAF_Percentdecimal0.08Контролируемый входной параметр для детерминированных QC-правил.
9AssayLOD_Percentdecimal0.01Контролируемый входной параметр для детерминированных QC-правил.
10SignalToLOD_Ratiodecimal8.0Отношение компонентов; структурный или рецептурный CQA.
11SupportingReadsdecimal45Контролируемый входной параметр для детерминированных QC-правил.
12MinSupportingReadsdecimal3Контролируемый входной параметр для детерминированных QC-правил.
13UniqueMolecularFamiliesdecimal12Контролируемый входной параметр для детерминированных QC-правил.
14MinUniqueFamiliesdecimal3Контролируемый входной параметр для детерминированных QC-правил.
15RepeatTest_Performedstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
16RepeatTest_Concordantstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
17RepeatTest_VAF_Percentdecimal0.12Контролируемый входной параметр для детерминированных QC-правил.
18DaysBetweenTestsinteger / decimal14Временной параметр процесса, инкубации, хранения или анализа.
19OrthogonalMethod_Confirmationstring / controlled vocabularyfalseМетод или технологический подход; контролируемое справочное значение.
20OrthogonalMethod_Concordantstring / controlled vocabularyfalseМетод или технологический подход; контролируемое справочное значение.
21PriorNegativeResults_Countinteger / decimal3Счётный показатель; используется для микробиологического, частичного или клеточного контроля.
22PriorBaseline_VAF_Percentdecimal12.5Контролируемый входной параметр для детерминированных QC-правил.
23RisingTrend_Detectedstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
24DoublingTime_Daysinteger / decimal35Временной параметр процесса, инкубации, хранения или анализа.
25MinDoublingTime_Plusible_Daysinteger / decimal14Временной параметр процесса, инкубации, хранения или анализа.
26MaxDoublingTime_Plusible_Daysinteger / decimal365Временной параметр процесса, инкубации, хранения или анализа.
27ConsecutivePositive_Countinteger / decimal2Счётный показатель; используется для микробиологического, частичного или клеточного контроля.
28IsKnownCHIP_Variantstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
29CHIP_Filter_Appliedstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
30GermlineVariant_Excludedstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
31IndexHopping_Filteredstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
32StrandBias_Detectedstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
33HomopolymerRegion_Variantstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
34InPanelOfNormalsstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
35BackgroundNoise_AtPosition_VAFdecimal0.0002Контролируемый входной параметр для детерминированных QC-правил.
36MaxBackgroundNoise_VAFdecimal0.005Контролируемый входной параметр для детерминированных QC-правил.
37VariantMatches_PrimaryTumorstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
38TissueOfOrigin_Plausiblestring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
39NewVariant_NotInPrimarystring / controlled vocabularyКонтролируемый входной параметр для детерминированных QC-правил.
40LastImaging_Datestring / controlled vocabulary2026-05-20Контролируемый входной параметр для детерминированных QC-правил.
41LastImaging_Resultstring / controlled vocabularyNEDРезультат или статус, применяемый в итоговой классификации.
42DaysSinceLastImaginginteger / decimal25Временной параметр процесса, инкубации, хранения или анализа.
43UnscheduledImaging_Performedstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
44UnscheduledImaging_Resultstring / controlled vocabularyРезультат или статус, применяемый в итоговой классификации.
45Symptoms_Presentstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
46ECOG_Statusstring / controlled vocabulary0Результат или статус, применяемый в итоговой классификации.
47ActionableTherapy_Availablestring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
PatientID,PrimaryTumorType,AssayName,ClinicalContext,LastCurativeTreatment_Date,MonthsSinceTreatment,DetectedVariant,CurrentVAF_Percent,AssayLOD_Percent,SignalToLOD_Ratio,SupportingReads,MinSupportingReads,UniqueMolecularFamilies,MinUniqueFamilies,RepeatTest_Performed,RepeatTest_Concordant,RepeatTest_VAF_Percent,DaysBetweenTests,OrthogonalMethod_Confirmation,OrthogonalMethod_Concordant,PriorNegativeResults_Count,PriorBaseline_VAF_Percent,RisingTrend_Detected,DoublingTime_Days,MinDoublingTime_Plusible_Days,MaxDoublingTime_Plusible_Days,ConsecutivePositive_Count,IsKnownCHIP_Variant,CHIP_Filter_Applied,GermlineVariant_Excluded,IndexHopping_Filtered,StrandBias_Detected,HomopolymerRegion_Variant,InPanelOfNormals,BackgroundNoise_AtPosition_VAF,MaxBackgroundNoise_VAF,VariantMatches_PrimaryTumor,TissueOfOrigin_Plausible,NewVariant_NotInPrimary,LastImaging_Date,LastImaging_Result,DaysSinceLastImaging,UnscheduledImaging_Performed,UnscheduledImaging_Result,Symptoms_Present,ECOG_Status,ActionableTherapy_Available
REC-PAT-001,NSCLC,Signatera_NSCLC,Post_Curative_Treatment,2025-08-15,10,EGFR_L858R,0.08,0.01,8.0,45,3,12,3,true,true,0.12,14,false,false,3,12.5,true,35,14,365,2,false,true,true,true,false,false,false,0.0002,0.005,true,true,,2026-05-20,NED,25,false,,false,0,true
REC-PAT-002,CRC,Guardant_Reveal,Adjuvant_Monitoring,2025-12-01,6,DNMT3A_R882H,0.03,0.01,3.0,8,3,4,3,true,false,0.0,21,false,false,2,0,false,0,14,365,1,true,false,true,true,false,false,false,0.001,0.005,false,false,DNMT3A_R882H,2026-05-15,NED,30,false,,false,0,false
REC-PAT-003,Breast,RaDaR_Breast,Active_Surveillance,2025-06-20,12,PIK3CA_H1047R,0.02,0.01,2.0,5,3,3,3,false,false,0,0,false,false,4,8.0,false,0,14,365,1,false,true,true,true,false,false,false,0.0003,0.005,true,true,,2026-06-01,NED,14,false,,false,0,true

Правила валидации входных данных

IDПолеПравилоКритичность
VR-001PatientIDПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-002PrimaryTumorTypeПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-003AssayNameПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-004ClinicalContextПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-005LastCurativeTreatment_DateПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-006MonthsSinceTreatmentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-007DetectedVariantПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-008CurrentVAF_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-009AssayLOD_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-010SignalToLOD_RatioПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-011SupportingReadsПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-012MinSupportingReadsПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-013UniqueMolecularFamiliesПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-014MinUniqueFamiliesПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-015RepeatTest_PerformedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-016RepeatTest_ConcordantПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-017RepeatTest_VAF_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-018DaysBetweenTestsПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-019OrthogonalMethod_ConfirmationПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-020OrthogonalMethod_ConcordantПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-021PriorNegativeResults_CountПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-022PriorBaseline_VAF_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-023RisingTrend_DetectedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-024DoublingTime_DaysПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-025MinDoublingTime_Plusible_DaysПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-026MaxDoublingTime_Plusible_DaysПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-027ConsecutivePositive_CountПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-028IsKnownCHIP_VariantПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-029CHIP_Filter_AppliedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-030GermlineVariant_ExcludedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-031IndexHopping_FilteredПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-032StrandBias_DetectedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-033HomopolymerRegion_VariantПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-034InPanelOfNormalsПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-035BackgroundNoise_AtPosition_VAFПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-036MaxBackgroundNoise_VAFПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-037VariantMatches_PrimaryTumorПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-038TissueOfOrigin_PlausibleПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-039NewVariant_NotInPrimaryПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-040LastImaging_DateПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-041LastImaging_ResultПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-042DaysSinceLastImagingПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-043UnscheduledImaging_PerformedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-044UnscheduledImaging_ResultПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-045Symptoms_PresentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-046ECOG_StatusПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-047ActionableTherapy_AvailableПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium

FS — функциональная спецификация

IDФункцияРеализация
FS-001CLI executionПоддержать режимы запуска: demo mode без аргументов и production mode input.csv output.json.
FS-002CSV importПрочитать input.csv в UTF-8/CSV-совместимом формате, проверить наличие заголовка и ожидаемых колонок.
FS-003Schema validationПроверить обязательные поля, количество колонок, неизвестные ключевые поля и пустые обязательные значения.
FS-004Type conversionПреобразовать числовые, флаговые и текстовые значения; некорректный формат фиксировать как ошибку строки.
FS-005Domain rule engineПрименить правила для Recurrence Signal Gate Checker, включая критические пределы из описания и утверждённой спецификации.
FS-006Status aggregationСформировать итоговый статус: FAIL при критическом отказе, WARNING при некритическом отклонении, PASS при соответствии.
FS-007JSON exportЗаписать output.json с детализацией проверок, исходными значениями, предупреждениями, отказами и critical findings.
FS-008Audit supportСохранять структуру результата пригодной для review, расследования отклонений и воспроизведения расчёта.
FS-009Integration contractПоддержать сценарий LIMS/ELN/MES → input.csv → utility → output.json → portal/admin review.
FS-010Error handlingВозвращать явные сообщения для отсутствующего файла, пустого CSV, неверной схемы, ошибки записи output.json и некорректного формата.

Пример output.json

{
  "utilityId": "recurrencesignalgatechecker",
  "utilityFolder": "RecurrenceSignalGateChecker",
  "package": "LiquidBiopsy",
  "overallStatus": "PASS|WARNING|FAIL",
  "sourceFile": "input.csv",
  "processedAtUtc": "2026-06-10T00:00:00Z",
  "checks": [
    {
      "parameter": "PatientID",
      "value": "REC-PAT-001",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-001"
    },
    {
      "parameter": "PrimaryTumorType",
      "value": "NSCLC",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-002"
    },
    {
      "parameter": "AssayName",
      "value": "Signatera_NSCLC",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-003"
    },
    {
      "parameter": "ClinicalContext",
      "value": "Post_Curative_Treatment",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-004"
    },
    {
      "parameter": "LastCurativeTreatment_Date",
      "value": "2025-08-15",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-005"
    },
    {
      "parameter": "MonthsSinceTreatment",
      "value": "10",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-006"
    },
    {
      "parameter": "DetectedVariant",
      "value": "EGFR_L858R",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-007"
    },
    {
      "parameter": "CurrentVAF_Percent",
      "value": "0.08",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-008"
    },
    {
      "parameter": "AssayLOD_Percent",
      "value": "0.01",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-009"
    },
    {
      "parameter": "SignalToLOD_Ratio",
      "value": "8.0",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-010"
    },
    {
      "parameter": "SupportingReads",
      "value": "45",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-011"
    },
    {
      "parameter": "MinSupportingReads",
      "value": "3",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-012"
    }
  ],
  "criticalFindings": [],
  "warnings": [],
  "audit": {
    "inputHash": "sha256:<calculated at runtime>",
    "rulesVersion": "<utility executable version>",
    "documentation": "RecurrenceSignalGateChecker.documentation.html"
  }
}

Матрица трассируемости

URSFSТестПодтверждение
URS-001FS-001, FS-002OQ-001Проверить запуск и импорт валидного input.csv.
URS-002FS-005, FS-006OQ-004Повторить один и тот же набор данных и сравнить output.json.
URS-003FS-003, FS-004, FS-010OQ-002, OQ-003Проверить отсутствующие колонки и неверные типы.
URS-004FS-005, FS-006OQ-004, PQ-001Проверить критические отклонения по реальным/граничным данным.
URS-005FS-007, FS-009OQ-005Проверить JSON schema и пригодность для downstream-систем.
URS-006FS-008OQ-006Проверить наличие идентификаторов и audit metadata.
URS-007FS-008, FS-010IQ-001, OQ-007Проверить комплектность документации и control evidence.
URS-008FS-005, FS-008PQ-002Проверить review workflow и запрет автоматической замены QA-решения.

IQ/OQ/PQ тестовые сценарии

IDСценарийОжидаемый результат
IQ-001Проверить наличие executable, input.csv, документации и контрольной суммы.Комплект поставки полон; версия зафиксирована.
OQ-001Валидная строка из примера input.csv.PASS или допустимый WARNING согласно правилам.
OQ-002Удалить обязательную колонку из CSV.Ошибка схемы или FAIL с указанием отсутствующей колонки.
OQ-003Внести нечисловое значение в числовое поле.Ошибка преобразования типа с указанием строки/поля.
OQ-004Значение критического параметра вывести за предел.FAIL и critical finding.
OQ-005Проверить структуру output.json.Все обязательные секции присутствуют, JSON валиден.
OQ-006Проверить трассируемость серии/образца.Идентификаторы входа и результатов совпадают.
PQ-001Проверить 3–5 реальных партий/образцов пользователя.Результат подтверждён QC/QA review.
PQ-002Проверить workflow отклонения и ручного QA-решения.Утилита поддерживает review, но не заменяет утверждённое решение.

QA/QC и change control

  • Не менять имена колонок без обновления валидатора, документации и тестового набора.
  • Хранить input.csv, output.json, версию исполняемого файла и контрольную сумму.
  • Перед продуктивным использованием провести IQ/OQ/PQ или эквивалентную CSV/CSA-проверку.
  • Критические пределы должны быть сверены с утверждённой спецификацией, регистрационным досье и локальными SOP.
  • Утилита предоставляет формализованный QC decision support, но окончательное решение выпуска остаётся за QA/QP и утверждёнными процедурами.

Входит в пакеты

Жидкостная биопсия

Пакет для QC и преданалитического контроля жидкостной биопсии: cfDNA/ctDNA, CTC, EV/exosomes, метилирование, NGS/qPCR/ddPCR, контроль образцов, контаминации, чувствительности и отчётности.

Открыть