LowVafSignalGateChecker

Low VAF Signal Gate

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

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

Low VAF Signal Gate Checker — Многофакторная валидация вызовов с VAF < 1%

ℹ️  Утилита выполняет строгую проверку low-VAF вызовов согласно CAP/CLIA, FDA NGS guidance для liquid biopsy и стандартам SEQC2:

     UMI ПОДДЕРЖКА:
     • Min UMI Families ≥ 3: Минимум 3 независимых молекулярных семейства для подтверждения.
     • Mean Family Size ≥ 3.0: Достаточный размер семейства для консенсусного подавления ошибок.
     • Без UMI-поддержки low-VAF вызов = технический артефакт.

     БАЛАНС ЦЕПЕЙ:
     • Strand Balance Ratio ≥ 0.3: Отношение min(F,R)/max(F,R). Ниже = односторонний артефакт.
     • Истинные варианты представлены на обеих цепях; PCR/sequencing ошибки — обычно на одной.

     СТАТИСТИЧЕСКАЯ ЗНАЧИМОСТЬ:
     • Binomial P-Value ≤ 0.01: Вероятность наблюдения alt reads при нулевой гипотезе (шум).
     • Учитывает глубину покрытия и ожидаемый уровень ошибок.

     КАЧЕСТВО ДАННЫХ:
     • Mapping Quality ≥ 40: Однозначное выравнивание прочтений.
     • Base Quality ≥ 25: Достоверность определения основания.

     ФОН И КОНТРОЛИ:
     • Not in Panel of Normals: Рекуррентные артефакты должны быть отфильтрованы.
     • Not in NTC: Контаминация или index hopping.
     • Background Noise at Position ≤ 0.1% VAF: Локальный шум не должен превышать сигнал.

     КОНТЕКСТУАЛЬНАЯ ПРОВЕРКА:
     • Known Hotspot Rescue: Известные драйверные мутации получают послабление при пограничных метриках.
     • Homopolymer/Repeat Warning: Indels в гомополимерах и повторах требуют особого внимания.
     • gnomAD Filter: AF > 1% = вероятный герминальный полиморфизм.

⚠️  ВАЖНО:
     • При VAF < 1% НЕ СУЩЕСТВУЕТ надежных вызовов без UMI.
     • Strand bias — самый частый индикатор ложноположительного low-VAF вызова.
     • Вариант в PoN = артефакт независимо от других метрик.
     • Hotspot rescue ≠ автоматический accept. Это downgrade до REVIEW_REQUIRED.
     • Binomial p-value не заменяет UMI-подтверждение; оба критерия обязательны.

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

📍 Область применения:
     • Жидкая биопсия: Валидация соматических вызовов при VAF 0.01–1%.
     • MRD-мониторинг: Подтверждение минимальных остаточных сигналов.
     • Клинические испытания: QC молекулярных конечных точек.
     • Разработчики панелей: Настройка и валидация low-VAF фильтров.

💡 Советы:
1. UMI Design: Используйте UMI ≥ 8 nt и двойные UMI для минимизации коллизий.
2. PoN Construction: Стройте PoN из ≥ 40 нормальных образцов, обработанных идентично.
3. Threshold Tuning: Настраивайте пороги на основе ROC-анализа с известными позитивами/негативами.
4. Manual Review Protocol: Определите четкие критерии для REVIEW_REQUIRED случаев.
5. Orthogonal Confirmation: Для клинически значимых вызовов при VAF < 0.5% подтверждайте ddPCR.

⚠️ Примечание: Утилита выполняет ТЕХНИЧЕСКУЮ ВАЛИДАЦИЮ low-VAF вызовов. Биологическая и клиническая интерпретация выполняется downstream (VariantClassificationGateChecker, VariantReportabilityRulesChecker).

input.csv

SampleID,VariantID,Gene,VariantType,ObservedVAF_Percent,TotalDepth,AltReads,ForwardAltReads,ReverseAltReads,UniqueMolecularFamilies,MinUMIFamilies,MeanFamilySize,MinMeanFamilySize,MappingQuality,MinMappingQuality,BaseQuality,MinBaseQuality,StrandBalanceRatio,MinStrandBalance,BinomialPValue,MaxBinomialPValue,FoundInPanelOfNormals,FoundInNTC,BackgroundNoiseAtPosition_VAF,MaxBackgroundNoise_VAF,IsKnownHotspot,IsInHomopolymerRegion,IsInRepeatRegion,GnomAD_AF,AssayLOD_Percent
LB-2026-001,EGFR:c.2573T>G,EGFR,SNV,0.35,18500,65,30,35,12,3,5.4,3.0,60,40,34,25,0.86,0.3,2.1E-15,0.01,false,false,0.0001,0.001,true,false,false,0,0.1
LB-2026-001,TP53:c.743G>A,TP53,SNV,0.22,15000,33,31,2,2,3,16.5,3.0,35,40,28,25,0.06,0.3,0.003,0.01,true,false,0.0018,0.001,false,false,false,0.0002,0.1
LB-2026-002,KRAS:c.35G>A,KRAS,SNV,0.18,22000,40,18,22,4,3,10.0,3.0,58,40,32,25,0.82,0.3,8.5E-10,0.01,false,false,0.0008,0.001,true,false,false,0,0.1

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

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

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

Ниже приведены ключевые фрагменты исходного описания. Перед продуктивным применением пределы должны быть сверены с утверждённой спецификацией, регистрационным досье и локальными SOP.
  • Low VAF Signal Gate Checker — Многофакторная валидация вызовов с VAF < 1%
  • • Min UMI Families ≥ 3: Минимум 3 независимых молекулярных семейства для подтверждения.
  • • Mean Family Size ≥ 3.0: Достаточный размер семейства для консенсусного подавления ошибок.
  • • Strand Balance Ratio ≥ 0.3: Отношение min(F,R)/max(F,R). Ниже = односторонний артефакт.
  • • Binomial P-Value ≤ 0.01: Вероятность наблюдения alt reads при нулевой гипотезе (шум).
  • • Mapping Quality ≥ 40: Однозначное выравнивание прочтений.
  • • Base Quality ≥ 25: Достоверность определения основания.
  • • Background Noise at Position ≤ 0.1% VAF: Локальный шум не должен превышать сигнал.
  • • gnomAD Filter: AF > 1% = вероятный герминальный полиморфизм.
  • ⚠️ ВАЖНО:
  • • При VAF < 1% НЕ СУЩЕСТВУЕТ надежных вызовов без UMI.
  • • Binomial p-value не заменяет UMI-подтверждение; оба критерия обязательны.
  • 1. UMI Design: Используйте UMI ≥ 8 nt и двойные UMI для минимизации коллизий.
  • 2. PoN Construction: Стройте PoN из ≥ 40 нормальных образцов, обработанных идентично.
  • 4. Manual Review Protocol: Определите четкие критерии для REVIEW_REQUIRED случаев.
  • 5. Orthogonal Confirmation: Для клинически значимых вызовов при VAF < 0.5% подтверждайте ddPCR.

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

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

#ПолеТипПримерНазначение
1SampleIDstring / controlled vocabularyLB-2026-001Идентификатор образца или лабораторной пробы.
2VariantIDstring / controlled vocabularyEGFR:c.2573T>GКонтролируемый входной параметр для детерминированных QC-правил.
3Genestring / controlled vocabularyEGFRКонтролируемый входной параметр для детерминированных QC-правил.
4VariantTypestring / controlled vocabularySNVКонтролируемый входной параметр для детерминированных QC-правил.
5ObservedVAF_Percentdecimal0.35Контролируемый входной параметр для детерминированных QC-правил.
6TotalDepthdecimal18500Контролируемый входной параметр для детерминированных QC-правил.
7AltReadsdecimal65Контролируемый входной параметр для детерминированных QC-правил.
8ForwardAltReadsdecimal30Контролируемый входной параметр для детерминированных QC-правил.
9ReverseAltReadsdecimal35Контролируемый входной параметр для детерминированных QC-правил.
10UniqueMolecularFamiliesdecimal12Контролируемый входной параметр для детерминированных QC-правил.
11MinUMIFamiliesdecimal3Контролируемый входной параметр для детерминированных QC-правил.
12MeanFamilySizedecimal5.4Контролируемый входной параметр для детерминированных QC-правил.
13MinMeanFamilySizedecimal3.0Контролируемый входной параметр для детерминированных QC-правил.
14MappingQualitydecimal60Контролируемый входной параметр для детерминированных QC-правил.
15MinMappingQualitydecimal40Контролируемый входной параметр для детерминированных QC-правил.
16BaseQualitydecimal34Контролируемый входной параметр для детерминированных QC-правил.
17MinBaseQualitydecimal25Контролируемый входной параметр для детерминированных QC-правил.
18StrandBalanceRatiodecimal0.86Отношение компонентов; структурный или рецептурный CQA.
19MinStrandBalancedecimal0.3Контролируемый входной параметр для детерминированных QC-правил.
20BinomialPValuedecimal2.1E-15Контролируемый входной параметр для детерминированных QC-правил.
21MaxBinomialPValuedecimal0.01Контролируемый входной параметр для детерминированных QC-правил.
22FoundInPanelOfNormalsstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
23FoundInNTCstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
24BackgroundNoiseAtPosition_VAFdecimal0.0001Контролируемый входной параметр для детерминированных QC-правил.
25MaxBackgroundNoise_VAFdecimal0.001Контролируемый входной параметр для детерминированных QC-правил.
26IsKnownHotspotstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
27IsInHomopolymerRegionstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
28IsInRepeatRegionstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
29GnomAD_AFdecimal0Контролируемый входной параметр для детерминированных QC-правил.
30AssayLOD_Percentdecimal0.1Контролируемый входной параметр для детерминированных QC-правил.
SampleID,VariantID,Gene,VariantType,ObservedVAF_Percent,TotalDepth,AltReads,ForwardAltReads,ReverseAltReads,UniqueMolecularFamilies,MinUMIFamilies,MeanFamilySize,MinMeanFamilySize,MappingQuality,MinMappingQuality,BaseQuality,MinBaseQuality,StrandBalanceRatio,MinStrandBalance,BinomialPValue,MaxBinomialPValue,FoundInPanelOfNormals,FoundInNTC,BackgroundNoiseAtPosition_VAF,MaxBackgroundNoise_VAF,IsKnownHotspot,IsInHomopolymerRegion,IsInRepeatRegion,GnomAD_AF,AssayLOD_Percent
LB-2026-001,EGFR:c.2573T>G,EGFR,SNV,0.35,18500,65,30,35,12,3,5.4,3.0,60,40,34,25,0.86,0.3,2.1E-15,0.01,false,false,0.0001,0.001,true,false,false,0,0.1
LB-2026-001,TP53:c.743G>A,TP53,SNV,0.22,15000,33,31,2,2,3,16.5,3.0,35,40,28,25,0.06,0.3,0.003,0.01,true,false,0.0018,0.001,false,false,false,0.0002,0.1
LB-2026-002,KRAS:c.35G>A,KRAS,SNV,0.18,22000,40,18,22,4,3,10.0,3.0,58,40,32,25,0.82,0.3,8.5E-10,0.01,false,false,0.0008,0.001,true,false,false,0,0.1

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

IDПолеПравилоКритичность
VR-001SampleIDПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-002VariantIDПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-003GeneПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-004VariantTypeПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-005ObservedVAF_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-006TotalDepthПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-007AltReadsПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-008ForwardAltReadsПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-009ReverseAltReadsПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-010UniqueMolecularFamiliesПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-011MinUMIFamiliesПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-012MeanFamilySizeПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-013MinMeanFamilySizeПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-014MappingQualityПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-015MinMappingQualityПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-016BaseQualityПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-017MinBaseQualityПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-018StrandBalanceRatioПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-019MinStrandBalanceПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-020BinomialPValueПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-021MaxBinomialPValueПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-022FoundInPanelOfNormalsПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-023FoundInNTCПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-024BackgroundNoiseAtPosition_VAFПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-025MaxBackgroundNoise_VAFПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-026IsKnownHotspotПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-027IsInHomopolymerRegionПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-028IsInRepeatRegionПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-029GnomAD_AFПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-030AssayLOD_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.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Применить правила для Low VAF 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": "lowvafsignalgatechecker",
  "utilityFolder": "LowVafSignalGateChecker",
  "package": "LiquidBiopsy",
  "overallStatus": "PASS|WARNING|FAIL",
  "sourceFile": "input.csv",
  "processedAtUtc": "2026-06-10T00:00:00Z",
  "checks": [
    {
      "parameter": "SampleID",
      "value": "LB-2026-001",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-001"
    },
    {
      "parameter": "VariantID",
      "value": "EGFR:c.2573T>G",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-002"
    },
    {
      "parameter": "Gene",
      "value": "EGFR",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-003"
    },
    {
      "parameter": "VariantType",
      "value": "SNV",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-004"
    },
    {
      "parameter": "ObservedVAF_Percent",
      "value": "0.35",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-005"
    },
    {
      "parameter": "TotalDepth",
      "value": "18500",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-006"
    },
    {
      "parameter": "AltReads",
      "value": "65",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-007"
    },
    {
      "parameter": "ForwardAltReads",
      "value": "30",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-008"
    },
    {
      "parameter": "ReverseAltReads",
      "value": "35",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-009"
    },
    {
      "parameter": "UniqueMolecularFamilies",
      "value": "12",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-010"
    },
    {
      "parameter": "MinUMIFamilies",
      "value": "3",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-011"
    },
    {
      "parameter": "MeanFamilySize",
      "value": "5.4",
      "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": "LowVafSignalGateChecker.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, контроль образцов, контаминации, чувствительности и отчётности.

Открыть