LoDLoQVerificationChecker

LoD/LoQ Verification

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

Описание утилиты: LoD/LoQ Verification

LoD/LoQ Verification Checker — Независимая верификация пределов обнаружения и количественного определения

ℹ️  Утилита выполняет статистическую верификацию заявленных LoD и LoQ согласно CLSI EP17-A3, FDA Bioanalytical Method Validation Guidance и ICH Q2(R2):

     ВЕРИФИКАЦИЯ LoD:
     • Detection Rate: Наблюдаемая частота детекции на уровне заявленного LoD должна быть ≥ целевой (обычно ≥95%).
     • Binomial 95% CI: Нижняя граница доверительного интервала должна превышать минимальную приемлемую частоту.
     • Test Concentration: Тестирование должно проводиться СТРОГО на концентрации, равной заявленному LoD (допуск ±10%).
     • Minimum Measurements: ≥20 суммарных измерений для статистической мощности.

     ВЕРИФИКАЦИЯ LoQ:
     • Precision (CV%): Наблюдаемый CV на уровне LoQ ≤ целевого порога (обычно ≤20%).
     • Accuracy (Bias%): Наблюдаемое смещение на уровне LoQ ≤ целевого порога (обычно ≤±20%).
     • Replicates: ≥20 репликатов для надежной оценки прецизионности.
     • True Value: Использование образца с известной концентрацией для расчета bias.

     КОНТЕКСТЫ ВЕРИФИКАЦИИ:
     • Method Transfer: Перенос метода на новую платформу или сайт.
     • Reagent Change: Смена партии или поставщика реагентов.
     • Instrument Change: Замена или капитальный ремонт оборудования.
     • Annual Requalification: Плановая ежегодная переквалификация.

⚠️  ВАЖНО:
     • Верификация ≠ первичное установление. Для верификации тестируется ОДНА концентрация (заявленный предел).
     • Если наблюдаемая частота детекции <95%, это НЕ означает, что истинный LoD выше — возможно, недостаточно измерений.
     • Биномиальный CI критически важен: 19/20 = 95%, но 95% CI = [75.1%-99.9%]. Нижняя граница <90%!
     • LoQ без подтверждения И CV, И bias = неверифицированный предел.
     • Тестовая концентрация должна совпадать с заявленным пределом (±10%). Иначе верификация невалидна.

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

📍 Область применения (Usage Where):
     • Трансфер методов: Подтверждение сохранения чувствительности при переносе.
     • Смена реагентов: Верификация после смены партии/поставщика.
     • Ежегодная реквалификация: Плановое подтверждение пределов.
     • Регуляторные инспекции: Документирование ongoing verification.
     • Жидкая биопсия/MRD: Критически важно для ultrasensitive assays.

— ЗАЧЕМ ЭТО НУЖНО?
Заявленные пределы могут деградировать со временем из-за дрейфа реагентов, износа оборудования или изменений в пробоподготовке.
Периодическая верификация обеспечивает непрерывное соответствие теста заявленным характеристикам.
Без верификации лаборатория может выдавать результаты ниже реального LoD, не зная об этом.
Это требование EU IVDR Annex I §1.6.2 и FDA QSR 820.30.

⚠️  КРИТИЧЕСКИ ВАЖНО:
• LoD Detection Rate ≥ Min Acceptable (обычно ≥90%): Ниже = NOT VERIFIED.
• LoD Binomial CI Lower Bound ≥ Min Rate: Статистическое подтверждение.
• LoQ CV ≤ Max%: Превышение = количественная отчетность невозможна.
• LoQ |Bias| ≤ Max%: Превышение = систематическая ошибка.
• Total LoD Measurements ≥ 20: Меньше = INSUFFICIENT EVIDENCE.
• LoQ Replicates ≥ 20: Меньше = оценка ненадежна.
• Test Concentration ≈ Declared Limit (±10%): Иначе верификация невалидна.

Ключевые особенности утилиты:
• Автоматический расчет биномиального 95% CI (Wilson score)
• Проверка дизайна эксперимента (достаточность N)
• Верификация соответствия тестовой концентрации
• Оценка И прецизионности, И правильности на LoQ
• Трёхуровневая классификация (Verified / Not Verified / Insufficient Evidence)
• Поддержка всех контекстов верификации

💡 Советы по использованию:
1. Планирование N: Для подтверждения 95% детекции с нижней границей CI ≥90% нужно минимум 29/30 или 57/60.
2. Образцы: Используйте коммутационные матричные материалы, а не водные растворы.
3. Блок-дизайн: Распределяйте репликаты по нескольким дням/операторам для учета вариабельности.
4. Протокол: Фиксируйте критерии приемки ДО начала эксперимента.
5. Действия при NOT VERIFIED: Не увеличивайте N постфактум. Пересмотрите предел или устраните причину деградации.

⚠️ Примечание: Данная утилита предназначена для ВЕРИФИКАЦИИ ранее установленных пределов. Для первичного установления LoD/LoQ используйте LoBLoDLoQVerificationChecker или специализированное ПО (MedCalc, Analyse-it). Верификация требует меньшего N, но более строгих критериев соответствия.

input.csv

AssayName,Analyte,VerificationContext,DeclaredLoD,DeclaredLoQ,Units,LoD_NumSamples,LoD_NumReplicates,LoD_TestConcentration,LoD_DetectedCount,LoD_TargetDetectionRate,LoD_MinAcceptableDetectionRate,LoQ_NumReplicates,LoQ_TestConcentration,LoQ_ObservedCV_Percent,LoQ_MaxCV_Percent,LoQ_ObservedBias_Percent,LoQ_MaxBias_Percent,LoQ_TrueValue,ConfidenceLevel
OncoLiquid_cfDNA,EGFR_L858R,Reagent_Change,0.005,0.01,% VAF,5,6,0.005,29,0.95,0.90,25,0.01,14.2,20.0,6.5,20.0,0.01,0.95
MRD_Panel_v3,TP53_ctDNA,Method_Transfer,0.001,0.003,% VAF,4,5,0.001,15,0.95,0.90,20,0.003,28.5,20.0,18.0,20.0,0.003,0.95

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

Документ описывает контролируемый интерфейс и поведение утилиты LoDLoQVerificationChecker для сценария LoD/LoQ Verification Checker.

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

Ниже приведены ключевые фрагменты исходного описания. Перед продуктивным применением пределы должны быть сверены с утверждённой спецификацией, регистрационным досье и локальными SOP.
  • LoD/LoQ Verification Checker — Независимая верификация пределов обнаружения и количественного определения
  • ℹ️ Утилита выполняет статистическую верификацию заявленных LoD и LoQ согласно CLSI EP17-A3, FDA Bioanalytical Method Validation Guidance и ICH Q2(R2):
  • • Detection Rate: Наблюдаемая частота детекции на уровне заявленного LoD должна быть ≥ целевой (обычно ≥95%).
  • • Minimum Measurements: ≥20 суммарных измерений для статистической мощности.
  • • Precision (CV%): Наблюдаемый CV на уровне LoQ ≤ целевого порога (обычно ≤20%).
  • • Accuracy (Bias%): Наблюдаемое смещение на уровне LoQ ≤ целевого порога (обычно ≤±20%).
  • • Replicates: ≥20 репликатов для надежной оценки прецизионности.
  • ⚠️ ВАЖНО:
  • • Верификация ≠ первичное установление. Для верификации тестируется ОДНА концентрация (заявленный предел).
  • • Если наблюдаемая частота детекции <95%, это НЕ означает, что истинный LoD выше — возможно, недостаточно измерений.
  • • Биномиальный CI критически важен: 19/20 = 95%, но 95% CI = [75.1%-99.9%]. Нижняя граница <90%!
  • • LoQ без подтверждения И CV, И bias = неверифицированный предел.
  • • Тестовая концентрация должна совпадать с заявленным пределом (±10%). Иначе верификация невалидна.
  • • Ежегодная реквалификация: Плановое подтверждение пределов.
  • • Жидкая биопсия/MRD: Критически важно для ultrasensitive assays.
  • Заявленные пределы могут деградировать со временем из-за дрейфа реагентов, износа оборудования или изменений в пробоподготовке.
  • ⚠️ КРИТИЧЕСКИ ВАЖНО:
  • • LoD Detection Rate ≥ Min Acceptable (обычно ≥90%): Ниже = NOT VERIFIED.

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

IDТребованиеКритичностьКритерий приемки
URS-001Утилита должна принимать файл input.csv для LoD/LoQ Verification 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

#ПолеТипПримерНазначение
1AssayNamestring / controlled vocabularyOncoLiquid_cfDNAКонтролируемый входной параметр для детерминированных QC-правил.
2Analytestring / controlled vocabularyEGFR_L858RКонтролируемый входной параметр для детерминированных QC-правил.
3VerificationContextstring / controlled vocabularyReagent_ChangeКонтролируемый входной параметр для детерминированных QC-правил.
4DeclaredLoDdecimal0.005Контролируемый входной параметр для детерминированных QC-правил.
5DeclaredLoQdecimal0.01Контролируемый входной параметр для детерминированных QC-правил.
6Unitsstring / controlled vocabulary% VAFКонтролируемый входной параметр для детерминированных QC-правил.
7LoD_NumSamplesstring / controlled vocabulary5Идентификатор образца или лабораторной пробы.
8LoD_NumReplicatesinteger / decimal6Контролируемый входной параметр для детерминированных QC-правил.
9LoD_TestConcentrationinteger / decimal0.005Отношение компонентов; структурный или рецептурный CQA.
10LoD_DetectedCountinteger / decimal29Счётный показатель; используется для микробиологического, частичного или клеточного контроля.
11LoD_TargetDetectionRatedecimal0.95Контролируемый входной параметр для детерминированных QC-правил.
12LoD_MinAcceptableDetectionRatedecimal0.90Контролируемый входной параметр для детерминированных QC-правил.
13LoQ_NumReplicatesinteger / decimal25Контролируемый входной параметр для детерминированных QC-правил.
14LoQ_TestConcentrationinteger / decimal0.01Отношение компонентов; структурный или рецептурный CQA.
15LoQ_ObservedCV_Percentdecimal14.2Контролируемый входной параметр для детерминированных QC-правил.
16LoQ_MaxCV_Percentdecimal20.0Контролируемый входной параметр для детерминированных QC-правил.
17LoQ_ObservedBias_Percentdecimal6.5Контролируемый входной параметр для детерминированных QC-правил.
18LoQ_MaxBias_Percentdecimal20.0Контролируемый входной параметр для детерминированных QC-правил.
19LoQ_TrueValuedecimal0.01Контролируемый входной параметр для детерминированных QC-правил.
20ConfidenceLevelstring / controlled vocabulary0.95Контролируемый входной параметр для детерминированных QC-правил.
AssayName,Analyte,VerificationContext,DeclaredLoD,DeclaredLoQ,Units,LoD_NumSamples,LoD_NumReplicates,LoD_TestConcentration,LoD_DetectedCount,LoD_TargetDetectionRate,LoD_MinAcceptableDetectionRate,LoQ_NumReplicates,LoQ_TestConcentration,LoQ_ObservedCV_Percent,LoQ_MaxCV_Percent,LoQ_ObservedBias_Percent,LoQ_MaxBias_Percent,LoQ_TrueValue,ConfidenceLevel
OncoLiquid_cfDNA,EGFR_L858R,Reagent_Change,0.005,0.01,% VAF,5,6,0.005,29,0.95,0.90,25,0.01,14.2,20.0,6.5,20.0,0.01,0.95
MRD_Panel_v3,TP53_ctDNA,Method_Transfer,0.001,0.003,% VAF,4,5,0.001,15,0.95,0.90,20,0.003,28.5,20.0,18.0,20.0,0.003,0.95

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

IDПолеПравилоКритичность
VR-001AssayNameПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-002AnalyteПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-003VerificationContextПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-004DeclaredLoDПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-005DeclaredLoQПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-006UnitsПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-007LoD_NumSamplesПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-008LoD_NumReplicatesПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-009LoD_TestConcentrationПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-010LoD_DetectedCountПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-011LoD_TargetDetectionRateПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-012LoD_MinAcceptableDetectionRateПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-013LoQ_NumReplicatesПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-014LoQ_TestConcentrationПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-015LoQ_ObservedCV_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-016LoQ_MaxCV_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-017LoQ_ObservedBias_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-018LoQ_MaxBias_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-019LoQ_TrueValueПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-020ConfidenceLevelПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.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Применить правила для LoD/LoQ Verification 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": "lodloqverificationchecker",
  "utilityFolder": "LoDLoQVerificationChecker",
  "package": "LiquidBiopsy",
  "overallStatus": "PASS|WARNING|FAIL",
  "sourceFile": "input.csv",
  "processedAtUtc": "2026-06-10T00:00:00Z",
  "checks": [
    {
      "parameter": "AssayName",
      "value": "OncoLiquid_cfDNA",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-001"
    },
    {
      "parameter": "Analyte",
      "value": "EGFR_L858R",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-002"
    },
    {
      "parameter": "VerificationContext",
      "value": "Reagent_Change",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-003"
    },
    {
      "parameter": "DeclaredLoD",
      "value": "0.005",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-004"
    },
    {
      "parameter": "DeclaredLoQ",
      "value": "0.01",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-005"
    },
    {
      "parameter": "Units",
      "value": "% VAF",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-006"
    },
    {
      "parameter": "LoD_NumSamples",
      "value": "5",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-007"
    },
    {
      "parameter": "LoD_NumReplicates",
      "value": "6",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-008"
    },
    {
      "parameter": "LoD_TestConcentration",
      "value": "0.005",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-009"
    },
    {
      "parameter": "LoD_DetectedCount",
      "value": "29",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-010"
    },
    {
      "parameter": "LoD_TargetDetectionRate",
      "value": "0.95",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-011"
    },
    {
      "parameter": "LoD_MinAcceptableDetectionRate",
      "value": "0.90",
      "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": "LoDLoQVerificationChecker.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, контроль образцов, контаминации, чувствительности и отчётности.

Открыть