OncologyCfdnaCgpChecker

Oncology cfDNA CGP

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

Описание утилиты: Oncology cfDNA CGP

Oncology cfDNA CGP Checker — Комплексный QC панелей CGP на основе cfDNA в онкологии

ℹ️  Утилита выполняет сквозную проверку качества cfDNA CGP-панелей согласно NCCN, ESMO Precision Medicine, CAP/CLIA, FDA CDx guidance и AMP/ASCO/CAP Tiering:

     ПРЕАНАЛИТИКА cfDNA:
     • cfDNA Yield ≥ 10 ng: Достаточность материала для чувствительного анализа.
     • Fragment Profile Valid: Пик ~167 bp, отсутствие высокомолекулярной ДНК.
     • Hemolysis Index ≤ 50: Гемолиз увеличивает фон gDNA от лейкоцитов.

     АНАЛИТИЧЕСКИЕ МЕТРИКИ:
     • Mean Target Depth ≥ 10,000×: Общая глубина для детекции VAF <0.5%.
     • Unique Molecular Depth ≥ 1,000×: Глубина после UMI-дедупликации — определяет реальную чувствительность.
     • On-Target Rate ≥ 60%: Эффективность обогащения.
     • Uniformity ≥ 80%: Равномерность покрытия целевых регионов.
     • Duplication Rate ≤ 60%: Уровень дупликатов (выше ожидаемого для cfDNA из-за низкой сложности).

     ПОКРЫТИЕ КРИТИЧЕСКИХ ГЕНОВ (12/12 ОБЯЗАТЕЛЬНЫ):
     • EGFR, ALK, ROS1, BRAF, MET exon14, RET, NTRK, KRAS G12C, ERBB2, PIK3CA, BRCA1/2.
     • MSI Status: Обязательная оценка для иммунотерапии.
     • TMB: Оценка для пембролизумаба в определенных типах опухолей.

     ЧУВСТВИТЕЛЬНОСТЬ И СПЕЦИФИЧНОСТЬ:
     • LOD SNV ≤ 0.1%, Indel ≤ 0.2%, Fusion ≤ 0.5%, CNV ≥ 2.0× fold change.
     • Background Noise ≤ 0.001% VAF: Фон не должен превышать целевой LOD.
     • Germline Filter: Отфильтрация герминальных вариантов.
     • CHIP Filter: Отфильтрация вариантов клонального гемопоэза.
     • Index Hopping Filter: Предотвращение межобразцовой контаминации.

     КОНТРОЛИ (ВСЕ 4 ОБЯЗАТЕЛЬНЫ):
     • Positive Control: Подтверждение чувствительности.
     • Negative Control: Подтверждение специфичности.
     • NTC: Чистота реагентов.
     • Internal Amplification Control: Отсутствие ингибирования ПЦР.

⚠️  ВАЖНО:
     • Отсутствие покрытия ЛЮБОГО из 12 критических генов = INVALID для терапевтических решений.
     • UMI depth < 1,000× делает детекцию VAF <0.5% ненадежной.
     • Без CHIP-фильтра варианты DNMT3A/TET2/ASXL1 могут быть ложно атрибутированы опухоли.
     • MSI-H/TMB-H имеют прямые терапевтические импликации; их отсутствие в отчете недопустимо.
     • Отрицательный результат cfDNA CGP НЕ исключает наличие действующих вариантов (тканевая биопсия может быть необходима).
     • Результат должен включать AMP Tier классификацию и конкретные терапевтические рекомендации.

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

📍 Область применения:
     • Клинические лаборатории: Финальный QC перед выдачей cfDNA CGP-отчета.
     • Молекулярные консилиумы: Стандартизированный отчет для обсуждения тактики.
     • Фармацевтические trials: Стратификация пациентов по биомаркерам.
     • Регуляторные инспекции: Документирование соответствия FDA CDx/NCCN требованиям.

💡 Советы:
1. Gene Coverage Matrix: Ведите матрицу покрытия для каждой панели; обновляйте при каждом изменении дизайна.
2. CHIP Database: Используйте актуальные базы CHIP-вариантов (dbCHIP, CHASM) для фильтрации.
3. Tissue Fallback: Всегда указывайте рекомендацию тканевой биопсии при отрицательном cfDNA результате.
4. Therapy Mapping: Интегрируйте с OncoKB/CIViC для автоматического маппинга вариантов на терапии.
5. Trend Monitoring: Отслеживайте дрейф UMI depth и background noise для предиктивного обслуживания.

⚠️ Примечание: Утилита оценивает ТЕХНИЧЕСКОЕ КАЧЕСТВО и ПОЛНОТУ cfDNA CGP-анализа. Окончательная терапевтическая интерпретация принимается молекулярным консилиумом с учетом типа опухоли, стадии, предыдущих линий терапии и общего состояния пациента. cfDNA CGP дополняет, но не заменяет тканевое тестирование во всех случаях.

input.csv

SampleID,PatientID,PrimaryTumorType,PanelName,ClinicalContext,CfDNA_Yield_ng,MinCfDNA_Yield_ng,FragmentSize_Peak_bp,FragmentProfile_Valid,HemolysisIndex,MaxHemolysisIndex,MeanTargetDepth_X,MinMeanTargetDepth_X,UniqueMolecularDepth_X,MinUniqueMolecularDepth_X,OnTargetRate_Percent,MinOnTargetRate_Percent,Uniformity_Percent,MinUniformity_Percent,DuplicationRate_Percent,MaxDuplicationRate_Percent,AssayLOD_SNv_Percent,AssayLOD_Indel_Percent,AssayLOD_Fusion_Percent,AssayLOD_CNV_FoldChange,BackgroundNoise_VAF,MaxBackgroundNoise_VAF,CriticalGenes_Total,CriticalGenes_Covered,EGFR_Covered,ALK_Covered,ROS1_Covered,BRAF_Covered,MET_Exon14_Covered,RET_Covered,NTRK_Covered,KRAS_G12C_Covered,ERBB2_Covered,PIK3CA_Covered,BRCA1_2_Covered,MSI_Status_Assessed,TMB_Assessed,PositiveControl_Pass,NegativeControl_Pass,NoTemplateControl_Pass,InternalAmplification_Control_Pass,ActionableVariants_Detected,DetectedVariants_Summary,TherapyRecommendations,AmpTier_Level,MSiHigh,TMB_Score,TMB_High,GermlineFilter_Applied,ClonalHematopoiesis_Filter_Applied,IndexHopping_Filter_Applied
CFDNA-CGP-2026-001,PAT-LUNG-042,NSCLC,FoundationOne_Liquid,Resistance,32.0,10,167,true,8,50,22000,10000,4800,1000,78.0,60,91.0,80,28.0,60,0.1,0.2,0.5,2.0,0.0003,0.001,12,12,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,2,EGFR:L858R;MET:amplification,Osimertinib+Capmatinib;Clinical_Trial_NCT05123456,Tier I,false,8.5,false,true,true,true
CFDNA-CGP-2026-002,PAT-CRC-055,CRC,Guardant360,First_Line,6.0,10,165,true,62,50,5500,10000,450,1000,52.0,60,68.0,80,72.0,60,0.1,0.2,0.5,2.0,0.0025,0.001,12,9,true,true,true,true,false,true,false,true,true,true,false,true,false,true,true,true,1,KRAS:G12C,Sotorasib (if confirmed),Tier I,false,0,false,true,false,true
CFDNA-CGP-2026-003,PAT-BRCA-061,Breast,Tempus_xF,Screening,25.0,10,168,true,5,50,18000,10000,3500,1000,82.0,60,89.0,80,22.0,60,0.1,0.2,0.5,2.0,0.0002,0.001,12,12,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,0,None,Consider tissue biopsy if clinically indicated,N/A,false,4.2,false,true,true,true

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

Документ описывает контролируемый интерфейс и поведение утилиты OncologyCfdnaCgpChecker для сценария Oncology cfDNA CGP Checker.

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

Ниже приведены ключевые фрагменты исходного описания. Перед продуктивным применением пределы должны быть сверены с утверждённой спецификацией, регистрационным досье и локальными SOP.
  • • cfDNA Yield ≥ 10 ng: Достаточность материала для чувствительного анализа.
  • • Hemolysis Index ≤ 50: Гемолиз увеличивает фон gDNA от лейкоцитов.
  • • Mean Target Depth ≥ 10,000×: Общая глубина для детекции VAF <0.5%.
  • • Unique Molecular Depth ≥ 1,000×: Глубина после UMI-дедупликации — определяет реальную чувствительность.
  • • On-Target Rate ≥ 60%: Эффективность обогащения.
  • • Uniformity ≥ 80%: Равномерность покрытия целевых регионов.
  • • Duplication Rate ≤ 60%: Уровень дупликатов (выше ожидаемого для cfDNA из-за низкой сложности).
  • ПОКРЫТИЕ КРИТИЧЕСКИХ ГЕНОВ (12/12 ОБЯЗАТЕЛЬНЫ):
  • • TMB: Оценка для пембролизумаба в определенных типах опухолей.
  • • LOD SNV ≤ 0.1%, Indel ≤ 0.2%, Fusion ≤ 0.5%, CNV ≥ 2.0× fold change.
  • • Background Noise ≤ 0.001% VAF: Фон не должен превышать целевой LOD.
  • ⚠️ ВАЖНО:
  • • Отсутствие покрытия ЛЮБОГО из 12 критических генов = INVALID для терапевтических решений.
  • • UMI depth < 1,000× делает детекцию VAF <0.5% ненадежной.

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

IDТребованиеКритичностьКритерий приемки
URS-001Утилита должна принимать файл input.csv для Oncology cfDNA CGP 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 vocabularyCFDNA-CGP-2026-001Идентификатор образца или лабораторной пробы.
2PatientIDstring / controlled vocabularyPAT-LUNG-042Контролируемый входной параметр для детерминированных QC-правил.
3PrimaryTumorTypestring / controlled vocabularyNSCLCКонтролируемый входной параметр для детерминированных QC-правил.
4PanelNamestring / controlled vocabularyFoundationOne_LiquidКонтролируемый входной параметр для детерминированных QC-правил.
5ClinicalContextstring / controlled vocabularyResistanceКонтролируемый входной параметр для детерминированных QC-правил.
6CfDNA_Yield_ngdecimal32.0Биологический/молекулярный компонент, контролируемый как CQA.
7MinCfDNA_Yield_ngdecimal10Биологический/молекулярный компонент, контролируемый как CQA.
8FragmentSize_Peak_bpdecimal167Контролируемый входной параметр для детерминированных QC-правил.
9FragmentProfile_Validstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
10HemolysisIndexdecimal8Контролируемый входной параметр для детерминированных QC-правил.
11MaxHemolysisIndexdecimal50Контролируемый входной параметр для детерминированных QC-правил.
12MeanTargetDepth_Xstring / controlled vocabulary22000Контролируемый входной параметр для детерминированных QC-правил.
13MinMeanTargetDepth_Xstring / controlled vocabulary10000Контролируемый входной параметр для детерминированных QC-правил.
14UniqueMolecularDepth_Xdecimal4800Контролируемый входной параметр для детерминированных QC-правил.
15MinUniqueMolecularDepth_Xdecimal1000Контролируемый входной параметр для детерминированных QC-правил.
16OnTargetRate_Percentdecimal78.0Контролируемый входной параметр для детерминированных QC-правил.
17MinOnTargetRate_Percentdecimal60Контролируемый входной параметр для детерминированных QC-правил.
18Uniformity_Percentdecimal91.0Контролируемый входной параметр для детерминированных QC-правил.
19MinUniformity_Percentdecimal80Контролируемый входной параметр для детерминированных QC-правил.
20DuplicationRate_Percentdecimal28.0Контролируемый входной параметр для детерминированных QC-правил.
21MaxDuplicationRate_Percentdecimal60Контролируемый входной параметр для детерминированных QC-правил.
22AssayLOD_SNv_Percentdecimal0.1Контролируемый входной параметр для детерминированных QC-правил.
23AssayLOD_Indel_Percentdecimal0.2Контролируемый входной параметр для детерминированных QC-правил.
24AssayLOD_Fusion_Percentdecimal0.5Контролируемый входной параметр для детерминированных QC-правил.
25AssayLOD_CNV_FoldChangedecimal2.0Контролируемый входной параметр для детерминированных QC-правил.
26BackgroundNoise_VAFdecimal0.0003Контролируемый входной параметр для детерминированных QC-правил.
27MaxBackgroundNoise_VAFdecimal0.001Контролируемый входной параметр для детерминированных QC-правил.
28CriticalGenes_Totaldecimal12Контролируемый входной параметр для детерминированных QC-правил.
29CriticalGenes_Covereddecimal12Контролируемый входной параметр для детерминированных QC-правил.
30EGFR_Coveredstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
31ALK_Coveredstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
32ROS1_Coveredstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
33BRAF_Coveredstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
34MET_Exon14_Coveredstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
35RET_Coveredstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
36NTRK_Coveredstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
37KRAS_G12C_Coveredstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
38ERBB2_Coveredstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
39PIK3CA_Coveredstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
40BRCA1_2_Coveredstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
41MSI_Status_Assessedstring / controlled vocabularytrueРезультат или статус, применяемый в итоговой классификации.
42TMB_Assessedstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
43PositiveControl_Passstring / controlled vocabularytrueКонтрольная точка/контрольный образец для валидности серии анализа.
44NegativeControl_Passstring / controlled vocabularytrueКонтрольная точка/контрольный образец для валидности серии анализа.
45NoTemplateControl_Passstring / controlled vocabularytrueТемпературный профиль/MKT; параметр хранения, перевозки и стабильности.
46InternalAmplification_Control_Passstring / controlled vocabulary2Биологический/молекулярный компонент, контролируемый как CQA.
47ActionableVariants_Detectedstring / controlled vocabularyEGFR:L858R;MET:amplificationКонтролируемый входной параметр для детерминированных QC-правил.
48DetectedVariants_Summarystring / controlled vocabularyOsimertinib+Capmatinib;Clinical_Trial_NCT05123456Контролируемый входной параметр для детерминированных QC-правил.
49TherapyRecommendationsstring / controlled vocabularyTier IКонтролируемый входной параметр для детерминированных QC-правил.
50AmpTier_Levelstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
51MSiHighdecimal8.5Контролируемый входной параметр для детерминированных QC-правил.
52TMB_Scorestring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
53TMB_Highstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
54GermlineFilter_Appliedstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
55ClonalHematopoiesis_Filter_Appliedstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
56IndexHopping_Filter_Appliedstring / controlled vocabularyКонтролируемый входной параметр для детерминированных QC-правил.
SampleID,PatientID,PrimaryTumorType,PanelName,ClinicalContext,CfDNA_Yield_ng,MinCfDNA_Yield_ng,FragmentSize_Peak_bp,FragmentProfile_Valid,HemolysisIndex,MaxHemolysisIndex,MeanTargetDepth_X,MinMeanTargetDepth_X,UniqueMolecularDepth_X,MinUniqueMolecularDepth_X,OnTargetRate_Percent,MinOnTargetRate_Percent,Uniformity_Percent,MinUniformity_Percent,DuplicationRate_Percent,MaxDuplicationRate_Percent,AssayLOD_SNv_Percent,AssayLOD_Indel_Percent,AssayLOD_Fusion_Percent,AssayLOD_CNV_FoldChange,BackgroundNoise_VAF,MaxBackgroundNoise_VAF,CriticalGenes_Total,CriticalGenes_Covered,EGFR_Covered,ALK_Covered,ROS1_Covered,BRAF_Covered,MET_Exon14_Covered,RET_Covered,NTRK_Covered,KRAS_G12C_Covered,ERBB2_Covered,PIK3CA_Covered,BRCA1_2_Covered,MSI_Status_Assessed,TMB_Assessed,PositiveControl_Pass,NegativeControl_Pass,NoTemplateControl_Pass,InternalAmplification_Control_Pass,ActionableVariants_Detected,DetectedVariants_Summary,TherapyRecommendations,AmpTier_Level,MSiHigh,TMB_Score,TMB_High,GermlineFilter_Applied,ClonalHematopoiesis_Filter_Applied,IndexHopping_Filter_Applied
CFDNA-CGP-2026-001,PAT-LUNG-042,NSCLC,FoundationOne_Liquid,Resistance,32.0,10,167,true,8,50,22000,10000,4800,1000,78.0,60,91.0,80,28.0,60,0.1,0.2,0.5,2.0,0.0003,0.001,12,12,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,2,EGFR:L858R;MET:amplification,Osimertinib+Capmatinib;Clinical_Trial_NCT05123456,Tier I,false,8.5,false,true,true,true
CFDNA-CGP-2026-002,PAT-CRC-055,CRC,Guardant360,First_Line,6.0,10,165,true,62,50,5500,10000,450,1000,52.0,60,68.0,80,72.0,60,0.1,0.2,0.5,2.0,0.0025,0.001,12,9,true,true,true,true,false,true,false,true,true,true,false,true,false,true,true,true,1,KRAS:G12C,Sotorasib (if confirmed),Tier I,false,0,false,true,false,true
CFDNA-CGP-2026-003,PAT-BRCA-061,Breast,Tempus_xF,Screening,25.0,10,168,true,5,50,18000,10000,3500,1000,82.0,60,89.0,80,22.0,60,0.1,0.2,0.5,2.0,0.0002,0.001,12,12,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,0,None,Consider tissue biopsy if clinically indicated,N/A,false,4.2,false,true,true,true

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

IDПолеПравилоКритичность
VR-001SampleIDПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-002PatientIDПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-003PrimaryTumorTypeПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-004PanelNameПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-005ClinicalContextПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-006CfDNA_Yield_ngПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-007MinCfDNA_Yield_ngПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-008FragmentSize_Peak_bpПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-009FragmentProfile_ValidПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-010HemolysisIndexПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-011MaxHemolysisIndexПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-012MeanTargetDepth_XПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-013MinMeanTargetDepth_XПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-014UniqueMolecularDepth_XПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-015MinUniqueMolecularDepth_XПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-016OnTargetRate_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-017MinOnTargetRate_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-018Uniformity_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-019MinUniformity_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-020DuplicationRate_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-021MaxDuplicationRate_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-022AssayLOD_SNv_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-023AssayLOD_Indel_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-024AssayLOD_Fusion_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-025AssayLOD_CNV_FoldChangeПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-026BackgroundNoise_VAFПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-027MaxBackgroundNoise_VAFПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-028CriticalGenes_TotalПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-029CriticalGenes_CoveredПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-030EGFR_CoveredПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-031ALK_CoveredПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-032ROS1_CoveredПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-033BRAF_CoveredПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-034MET_Exon14_CoveredПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-035RET_CoveredПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-036NTRK_CoveredПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-037KRAS_G12C_CoveredПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-038ERBB2_CoveredПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-039PIK3CA_CoveredПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-040BRCA1_2_CoveredПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-041MSI_Status_AssessedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-042TMB_AssessedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-043PositiveControl_PassПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-044NegativeControl_PassПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-045NoTemplateControl_PassПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-046InternalAmplification_Control_PassПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-047ActionableVariants_DetectedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-048DetectedVariants_SummaryПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-049TherapyRecommendationsПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-050AmpTier_LevelПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-051MSiHighПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-052TMB_ScoreПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-053TMB_HighПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-054GermlineFilter_AppliedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-055ClonalHematopoiesis_Filter_AppliedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-056IndexHopping_Filter_AppliedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.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Применить правила для Oncology cfDNA CGP 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": "oncologycfdnacgpchecker",
  "utilityFolder": "OncologyCfdnaCgpChecker",
  "package": "LiquidBiopsy",
  "overallStatus": "PASS|WARNING|FAIL",
  "sourceFile": "input.csv",
  "processedAtUtc": "2026-06-10T00:00:00Z",
  "checks": [
    {
      "parameter": "SampleID",
      "value": "CFDNA-CGP-2026-001",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-001"
    },
    {
      "parameter": "PatientID",
      "value": "PAT-LUNG-042",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-002"
    },
    {
      "parameter": "PrimaryTumorType",
      "value": "NSCLC",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-003"
    },
    {
      "parameter": "PanelName",
      "value": "FoundationOne_Liquid",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-004"
    },
    {
      "parameter": "ClinicalContext",
      "value": "Resistance",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-005"
    },
    {
      "parameter": "CfDNA_Yield_ng",
      "value": "32.0",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-006"
    },
    {
      "parameter": "MinCfDNA_Yield_ng",
      "value": "10",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-007"
    },
    {
      "parameter": "FragmentSize_Peak_bp",
      "value": "167",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-008"
    },
    {
      "parameter": "FragmentProfile_Valid",
      "value": "true",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-009"
    },
    {
      "parameter": "HemolysisIndex",
      "value": "8",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-010"
    },
    {
      "parameter": "MaxHemolysisIndex",
      "value": "50",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-011"
    },
    {
      "parameter": "MeanTargetDepth_X",
      "value": "22000",
      "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": "OncologyCfdnaCgpChecker.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, контроль образцов, контаминации, чувствительности и отчётности.

Открыть