MrdLongitudinalTrendChecker

MRD Longitudinal Trend

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

Описание утилиты: MRD Longitudinal Trend

MRD Longitudinal Trend Checker — Специализированный анализ динамики минимальной остаточной болезни

ℹ️  Утилита выполняет MRD-специфичный лонгитюдный анализ согласно ESMO/ASCO MRD guidelines, TRACERx и FDA surrogate endpoint standards:

     КЛАССИФИКАЦИЯ MRD-ТРЕНДА:
     • SUSTAINED MRD NEGATIVE: Все точки ниже LOD. Благоприятный прогноз.
     • CLEARANCE ACHIEVED: ≥N последовательных негативных после начальной позитивности. Молекулярная ремиссия.
     • MOLECULAR RELAPSE: Восходящий тренд или конверсия neg→pos с ростом. Опережает визуализацию.
     • PERSISTENT MRD POSITIVE: Стабильная детекция без клиренса. Остаточная болезнь.
     • INDETERMINATE: Недостаточно данных или единичная детекция. Требуется повтор.

     СПЕЦИФИКА MRD-АНАЛИЗА:
     • Цензурированные данные: «Не обнаружено» ≠ 0. Это значение ниже LOD, а не отсутствие сигнала.
     • Молекулярный lead time: MRD+ при NED на КТ = окно возможности для превентивного вмешательства.
     • Конфирмация клиренса: Требует ≥2 последовательных негативных результатов (не единичного).
     • Early relapse detection: Переход neg→pos с последующим ростом = высокий риск рецидива.

     ИНТЕГРАЦИЯ С ВИЗУАЛИЗАЦИЕЙ:
     • CONCORDANT: MRD и imaging согласованы.
     • DISCORDANT (MRD+/Imaging−): Молекулярный lead time. Рекомендовать внеплановую визуализацию.
     • DISCORDANT (MRD−/Imaging+): Проблема чувствительности или sampling. Пересмотреть assay.

⚠️  ВАЖНО:
     • MRD-мониторинг работает на ПРЕДЕЛЕ ЧУВСТВИТЕЛЬНОСТИ ассая.
     • Единичная детекция после негативных НЕ является рецидивом — требуется подтверждение.
     • Молекулярный рецидив опережает радиологический на 2-6 месяцев (TRACERx, IMvigor010).
     • Клиренс MRD коррелирует с улучшением DFS/OS в多个 солидных опухолях.
     • Персистентный MRD+ после куративного лечения = кандидат на адъювантную терапию.
     • Решения на основе MRD должны приниматься МУЛЬТИДИСЦИПЛИНАРНОЙ КОМАНДОЙ.

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

📍 Область применения:
     • Пост-терапевтический мониторинг: Ранняя детекция рецидива.
     • Адъювантные trials: Стратификация по MRD-статусу.
     • Ответ на терапию: Оценка глубины молекулярного ответа.
     • Мультидисциплинарные консилиумы: Объективная основа для обсуждения.

💡 Советы:
1. Частота мониторинга: Каждые 3-4 месяца в первые 2 года, затем каждые 6 месяцев.
2. Подтверждение: Любое изменение MRD-статуса подтверждайте повторным тестом через 4-6 недель.
3. Imaging correlation: Всегда сопоставляйте MRD с последней визуализацией.
4. Assay consistency: Используйте ОДИН И ТОТ ЖЕ assay на протяжении всего мониторинга.
5. Clinical action protocol: Заранее определите алгоритмы действий для каждого MRD-статуса.

⚠️ Примечание: Утилита предоставляет АНАЛИТИЧЕСКУЮ КЛАССИФИКАЦИЮ MRD-тренда. Клинические решения (смена терапии, дополнительная визуализация, прекращение мониторинга) принимаются лечащей командой с учетом всей совокупности данных. MRD — прогностический биомаркер, а не диагностический тест.

input.csv

PatientID,AssayName,ClinicalContext,TimepointData,AssayLOD_Percent,AssayLOQ_Percent,TreatmentEndDate,LastImagingDate,LastImagingResult,MinTimepointsForTrend,RisingTrend_FoldChange_Threshold,ConsecutiveNegative_ForClearance
MRD-PAT-001,Signatera_NSCLC,Post_Curative_Treatment,"2026-01-15:0.008:true;2026-02-20:0.002:true;2026-03-25:0:false;2026-05-01:0:false;2026-06-10:0:false",0.001,0.005,2026-01-10,2026-06-05,NED,3,2.0,2
MRD-PAT-002,Signatera_CRC,Adjuvant_Monitoring,"2026-01-10:0:false;2026-02-15:0:false;2026-03-20:0.003:true;2026-04-25:0.012:true;2026-06-01:0.045:true",0.001,0.005,2025-12-20,2026-05-28,NED,3,2.0,2
MRD-PAT-003,RaDaR_Breast,Post_Curative_Treatment,"2026-02-01:0.015:true;2026-03-10:0.010:true;2026-04-15:0.008:true;2026-05-20:0.012:true",0.001,0.005,2026-01-25,2026-05-15,NED,3,2.0,2
MRD-PAT-004,Signatera_NSCLC,Adjuvant_Monitoring,"2026-05-01:0:false;2026-06-10:0:false",0.001,0.005,2026-04-15,2026-06-05,NED,3,2.0,2

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

Документ описывает контролируемый интерфейс и поведение утилиты MrdLongitudinalTrendChecker для сценария MRD Longitudinal Trend Checker.

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

Ниже приведены ключевые фрагменты исходного описания. Перед продуктивным применением пределы должны быть сверены с утверждённой спецификацией, регистрационным досье и локальными SOP.
  • • CLEARANCE ACHIEVED: ≥N последовательных негативных после начальной позитивности. Молекулярная ремиссия.
  • • Конфирмация клиренса: Требует ≥2 последовательных негативных результатов (не единичного).
  • ⚠️ ВАЖНО:
  • • MRD-мониторинг работает на ПРЕДЕЛЕ ЧУВСТВИТЕЛЬНОСТИ ассая.
  • 5. Clinical action protocol: Заранее определите алгоритмы действий для каждого MRD-статуса.

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

IDТребованиеКритичностьКритерий приемки
URS-001Утилита должна принимать файл input.csv для MRD Longitudinal Trend 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 vocabularyMRD-PAT-001Контролируемый входной параметр для детерминированных QC-правил.
2AssayNamestring / controlled vocabularySignatera_NSCLCКонтролируемый входной параметр для детерминированных QC-правил.
3ClinicalContextstring / controlled vocabularyPost_Curative_TreatmentКонтролируемый входной параметр для детерминированных QC-правил.
4TimepointDatastring / controlled vocabulary2026-01-15:0.008:true;2026-02-20:0.002:true;2026-03-25:0:false;2026-05-01:0:false;2026-06-10:0:falseВременной параметр процесса, инкубации, хранения или анализа.
5AssayLOD_Percentdecimal0.001Контролируемый входной параметр для детерминированных QC-правил.
6AssayLOQ_Percentdecimal0.005Контролируемый входной параметр для детерминированных QC-правил.
7TreatmentEndDatestring / controlled vocabulary2026-01-10Контролируемый входной параметр для детерминированных QC-правил.
8LastImagingDatestring / controlled vocabulary2026-06-05Контролируемый входной параметр для детерминированных QC-правил.
9LastImagingResultstring / controlled vocabularyNEDРезультат или статус, применяемый в итоговой классификации.
10MinTimepointsForTrenddecimal3Временной параметр процесса, инкубации, хранения или анализа.
11RisingTrend_FoldChange_Thresholddecimal2.0Контролируемый входной параметр для детерминированных QC-правил.
12ConsecutiveNegative_ForClearancedecimal2Контролируемый входной параметр для детерминированных QC-правил.
PatientID,AssayName,ClinicalContext,TimepointData,AssayLOD_Percent,AssayLOQ_Percent,TreatmentEndDate,LastImagingDate,LastImagingResult,MinTimepointsForTrend,RisingTrend_FoldChange_Threshold,ConsecutiveNegative_ForClearance
MRD-PAT-001,Signatera_NSCLC,Post_Curative_Treatment,2026-01-15:0.008:true;2026-02-20:0.002:true;2026-03-25:0:false;2026-05-01:0:false;2026-06-10:0:false,0.001,0.005,2026-01-10,2026-06-05,NED,3,2.0,2
MRD-PAT-002,Signatera_CRC,Adjuvant_Monitoring,2026-01-10:0:false;2026-02-15:0:false;2026-03-20:0.003:true;2026-04-25:0.012:true;2026-06-01:0.045:true,0.001,0.005,2025-12-20,2026-05-28,NED,3,2.0,2
MRD-PAT-003,RaDaR_Breast,Post_Curative_Treatment,2026-02-01:0.015:true;2026-03-10:0.010:true;2026-04-15:0.008:true;2026-05-20:0.012:true,0.001,0.005,2026-01-25,2026-05-15,NED,3,2.0,2

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

IDПолеПравилоКритичность
VR-001PatientIDПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-002AssayNameПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-003ClinicalContextПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-004TimepointDataПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-005AssayLOD_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-006AssayLOQ_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-007TreatmentEndDateПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-008LastImagingDateПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-009LastImagingResultПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-010MinTimepointsForTrendПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-011RisingTrend_FoldChange_ThresholdПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-012ConsecutiveNegative_ForClearanceПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.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Применить правила для MRD Longitudinal Trend 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": "mrdlongitudinaltrendchecker",
  "utilityFolder": "MrdLongitudinalTrendChecker",
  "package": "LiquidBiopsy",
  "overallStatus": "PASS|WARNING|FAIL",
  "sourceFile": "input.csv",
  "processedAtUtc": "2026-06-10T00:00:00Z",
  "checks": [
    {
      "parameter": "PatientID",
      "value": "MRD-PAT-001",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-001"
    },
    {
      "parameter": "AssayName",
      "value": "Signatera_NSCLC",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-002"
    },
    {
      "parameter": "ClinicalContext",
      "value": "Post_Curative_Treatment",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-003"
    },
    {
      "parameter": "TimepointData",
      "value": "2026-01-15:0.008:true;2026-02-20:0.002:true;2026-03-25:0:false;2026-05-01:0:false;2026-06-10:0:false",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-004"
    },
    {
      "parameter": "AssayLOD_Percent",
      "value": "0.001",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-005"
    },
    {
      "parameter": "AssayLOQ_Percent",
      "value": "0.005",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-006"
    },
    {
      "parameter": "TreatmentEndDate",
      "value": "2026-01-10",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-007"
    },
    {
      "parameter": "LastImagingDate",
      "value": "2026-06-05",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-008"
    },
    {
      "parameter": "LastImagingResult",
      "value": "NED",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-009"
    },
    {
      "parameter": "MinTimepointsForTrend",
      "value": "3",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-010"
    },
    {
      "parameter": "RisingTrend_FoldChange_Threshold",
      "value": "2.0",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-011"
    },
    {
      "parameter": "ConsecutiveNegative_ForClearance",
      "value": "2",
      "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": "MrdLongitudinalTrendChecker.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, контроль образцов, контаминации, чувствительности и отчётности.

Открыть