PlasmaDnaRnaProfilingQcChecker

Plasma DNA/RNA Profiling QC

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

Описание утилиты: Plasma DNA/RNA Profiling QC

Plasma DNA/RNA Profiling QC Checker — Комплексный QC совместного профилирования cfDNA и cfRNA из плазмы

ℹ️  Утилита выполняет дуальную оценку качества обоих аналитов согласно CAP/CLIA, FDA NGS guidance для liquid biopsy и SEQC2:

     cfDNA МЕТРИКИ:
     • Yield ≥ 5 ng: Достаточность материала для библиотеки.
     • Fragment Peak 167 ± 15 bp: Характерный нуклеосомный профиль cfDNA.
     • DIN Score ≥ 2.0: Целостность cfDNA.
     • High-MW Fraction ≤ 10%: Отсутствие контаминации геномной ДНК.
     • Library Concentration ≥ 2 nM: Пригодность для секвенирования.
     • On-Target Rate ≥ 60%, Mean Depth ≥ 5000×: Качество секвенирования.

     cfRNA МЕТРИКИ:
     • Yield ≥ 1 ng: Достаточность для RT и библиотеки.
     • DV200 ≥ 30%: Доля фрагментов >200 nt (стандарт для деградированной cfRNA).
     • RT Efficiency Score ≥ 0.5: Эффективность обратной транскрипции.
     • Ribosomal RNA ≤ 20%: Эффективность rRNA depletion.
     • Library Concentration ≥ 1 nM: Пригодность для секвенирования.
     • Mapped Reads ≥ 10M, Gene Body Coverage ≥ 50%: Качество RNA-seq.

     CROSS-ANALYTE QC:
     • DNA/RNA Yield Ratio 1–50: Баланс экстракции обоих аналитов.
     • Residual DNA in RNA ≤ 5%: Эффективность DNase обработки.
     • RT Inhibition Detection: Гепарин или гем могут ингибировать RT.
     • DNase Treatment Verified: Подтверждение отсутствия ДНК в РНК-фракции.

     КОНКОРДАНТНОСТЬ:
     • Mutation-Transcript Concordance: Мутация в cfDNA должна коррелировать с наличием мутантного транскрипта.
     • Дискордантность может быть биологической (аллель-специфичная экспрессия) или технической.

     КОНТРОЛИ (ВСЕ 4 ОБЯЗАТЕЛЬНЫ):
     • DNA Positive Control, RNA Positive Control, Negative Control, Extraction Blank.

⚠️  ВАЖНО:
     • RT ингибирование делает ВСЕ данные cfRNA невалидными, даже при нормальном выходе.
     • cfRNA значительно более лабильна, чем cfDNA; время до обработки критично (<4ч).
     • Гемолиз влияет на оба аналита: gDNA контаминация для ДНК, RT ингибиторы для РНК.
     • Высокий rRNA% (>20%) снижает эффективную глубину mRNA-seq.
     • DNA/RNA ratio вне диапазона указывает на проблему экстракционного кита.
     • Статус DNA_ONLY или RNA_ONLY допустим, если второй аналит не является клинической целью.

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

📍 Область применения:
     • Мультиомиксная жидкая биопсия: QC перед интегрированным анализом.
     • Исследования экспрессии фузий: Верификация RNA-компонента.
     • Мониторинг ответа: Одновременная оценка мутаций (DNA) и экспрессии (RNA).
     • Разработка dual-extraction протоколов: Оптимизация баланса аналитов.

💡 Советы:
1. Extraction Kit Selection: Выбирайте киты, валидированные для ОБОИХ аналитов одновременно.
2. Spike-in Controls: Используйте экзогенные RNA spike-ins для мониторинга RT efficiency.
3. DNase Verification: Всегда включайте no-RT контроль для проверки остаточной ДНК.
4. Hemolysis Threshold: При индексе >50 рассмотрите отказ от RNA-компонента.
5. Concordance Protocol: Определите заранее алгоритм действий при дискордантности.

⚠️ Примечание: Утилита оценивает ТЕХНИЧЕСКОЕ КАЧЕСТВО обоих аналитов. Биологическая интерпретация дискордантных находок требует экспертизы. Статус DNA_ONLY/RNA_ONLY не означает брак — это информативное решение о частичной пригодности пробы.

input.csv

SampleID,PatientID,ExtractionKit,PlasmaVolume_mL,CfDNA_Yield_ng,MinCfDNA_Yield_ng,CfDNA_FragmentPeak_bp,CfDNA_TargetFragmentPeak_bp,CfDNA_FragmentTolerance_bp,CfDNA_DIN_Score,MinCfDNA_DIN,CfDNA_HighMW_Fraction_Percent,MaxCfDNA_HighMW_Fraction_Percent,CfDNA_Library_Concentration_nM,MinCfDNA_LibConc_nM,CfRNA_Yield_ng,MinCfRNA_Yield_ng,CfRNA_RIN_Equivalent,MinCfRNA_RIN_Equivalent,CfRNA_DV200_Percent,MinCfRNA_DV200_Percent,CfRNA_RT_Efficiency_Score,MinCfRNA_RT_Efficiency,CfRNA_Library_Concentration_nM,MinCfRNA_LibConc_nM,CfRNA_RibosomalRNA_Percent,MaxCfRNA_RibosomalRNA_Percent,DNA_RNA_YieldRatio,MinAcceptable_DNA_RNA_Ratio,MaxAcceptable_DNA_RNA_Ratio,RT_Inhibition_Detected,DNase_Treatment_Verified,ResidualDNA_InRNA_Fraction_Percent,MaxResidualDNA_Percent,CfDNA_OnTargetRate_Percent,MinCfDNA_OnTarget_Percent,CfDNA_MeanDepth_X,MinCfDNA_MeanDepth_X,CfRNA_MappedReads_Million,MinCfRNA_MappedReads_Million,CfRNA_GeneBodyCoverage_Percent,MinCfRNA_GeneBodyCoverage_Percent,MutationTranscript_Concordance_Checked,MutationTranscript_Concordant,DiscordantFindings,DNA_PositiveControl_Pass,RNA_PositiveControl_Pass,NegativeControl_Pass,ExtractionBlank_Clean,HemolysisIndex,MaxHemolysisIndex,TimeToProcessing_Hours,MaxTimeToProcessing_Hours
PL-DNARNA-2026-001,PAT-LUNG-042,Qiagen_circulating_NA,4.0,28.5,5,168,167,15,3.2,2.0,3.5,10,12.5,2.0,8.2,1,2.8,2.0,62.0,30,0.78,0.5,5.8,1.0,8.5,20,3.5,1.0,50.0,false,true,1.2,5.0,82.0,60,15000,5000,25.0,10,72.0,50,true,true,,true,true,true,true,6,50,2.0,4
PL-DNARNA-2026-002,PAT-CRC-055,MagMAX_cfDNA_RNA,3.5,22.0,5,166,167,15,3.0,2.0,4.0,10,10.2,2.0,0.4,1,1.5,2.0,18.0,30,0.25,0.5,0.3,1.0,35.0,20,55.0,1.0,50.0,true,true,2.0,5.0,78.0,60,12000,5000,2.5,10,28.0,50,false,false,RNA_insufficient_for_concordance,true,false,true,true,45,50,3.5,4

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

Документ описывает контролируемый интерфейс и поведение утилиты PlasmaDnaRnaProfilingQcChecker для сценария Plasma DNA/RNA Profiling QC Checker.

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

Ниже приведены ключевые фрагменты исходного описания. Перед продуктивным применением пределы должны быть сверены с утверждённой спецификацией, регистрационным досье и локальными SOP.
  • • Yield ≥ 5 ng: Достаточность материала для библиотеки.
  • • DIN Score ≥ 2.0: Целостность cfDNA.
  • • High-MW Fraction ≤ 10%: Отсутствие контаминации геномной ДНК.
  • • Library Concentration ≥ 2 nM: Пригодность для секвенирования.
  • • On-Target Rate ≥ 60%, Mean Depth ≥ 5000×: Качество секвенирования.
  • • Yield ≥ 1 ng: Достаточность для RT и библиотеки.
  • • DV200 ≥ 30%: Доля фрагментов >200 nt (стандарт для деградированной cfRNA).
  • • RT Efficiency Score ≥ 0.5: Эффективность обратной транскрипции.
  • • Ribosomal RNA ≤ 20%: Эффективность rRNA depletion.
  • • Library Concentration ≥ 1 nM: Пригодность для секвенирования.
  • • Mapped Reads ≥ 10M, Gene Body Coverage ≥ 50%: Качество RNA-seq.
  • • Residual DNA in RNA ≤ 5%: Эффективность DNase обработки.
  • ⚠️ ВАЖНО:
  • • RT ингибирование делает ВСЕ данные cfRNA невалидными, даже при нормальном выходе.
  • • cfRNA значительно более лабильна, чем cfDNA; время до обработки критично (<4ч).
  • • Высокий rRNA% (>20%) снижает эффективную глубину mRNA-seq.
  • 4. Hemolysis Threshold: При индексе >50 рассмотрите отказ от RNA-компонента.
  • 5. Concordance Protocol: Определите заранее алгоритм действий при дискордантности.

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

IDТребованиеКритичностьКритерий приемки
URS-001Утилита должна принимать файл input.csv для Plasma DNA/RNA Profiling QC 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 vocabularyPL-DNARNA-2026-001Идентификатор образца или лабораторной пробы.
2PatientIDstring / controlled vocabularyPAT-LUNG-042Контролируемый входной параметр для детерминированных QC-правил.
3ExtractionKitstring / controlled vocabularyQiagen_circulating_NAКонтролируемый входной параметр для детерминированных QC-правил.
4PlasmaVolume_mLdecimal4.0Объём/доза; используется для расчёта нагрузки, предела или выпуска.
5CfDNA_Yield_ngdecimal28.5Биологический/молекулярный компонент, контролируемый как CQA.
6MinCfDNA_Yield_ngdecimal5Биологический/молекулярный компонент, контролируемый как CQA.
7CfDNA_FragmentPeak_bpdecimal168Биологический/молекулярный компонент, контролируемый как CQA.
8CfDNA_TargetFragmentPeak_bpstring / controlled vocabulary167Биологический/молекулярный компонент, контролируемый как CQA.
9CfDNA_FragmentTolerance_bpdecimal15Биологический/молекулярный компонент, контролируемый как CQA.
10CfDNA_DIN_Scoredecimal3.2Биологический/молекулярный компонент, контролируемый как CQA.
11MinCfDNA_DINinteger / decimal2.0Биологический/молекулярный компонент, контролируемый как CQA.
12CfDNA_HighMW_Fraction_Percentdecimal3.5Биологический/молекулярный компонент, контролируемый как CQA.
13MaxCfDNA_HighMW_Fraction_Percentdecimal10Биологический/молекулярный компонент, контролируемый как CQA.
14CfDNA_Library_Concentration_nMdecimal12.5Отношение компонентов; структурный или рецептурный CQA.
15MinCfDNA_LibConc_nMdecimal2.0Биологический/молекулярный компонент, контролируемый как CQA.
16CfRNA_Yield_ngdecimal8.2Биологический/молекулярный компонент, контролируемый как CQA.
17MinCfRNA_Yield_ngdecimal1Биологический/молекулярный компонент, контролируемый как CQA.
18CfRNA_RIN_Equivalentdecimal2.8Биологический/молекулярный компонент, контролируемый как CQA.
19MinCfRNA_RIN_Equivalentdecimal2.0Биологический/молекулярный компонент, контролируемый как CQA.
20CfRNA_DV200_Percentdecimal62.0Биологический/молекулярный компонент, контролируемый как CQA.
21MinCfRNA_DV200_Percentdecimal30Биологический/молекулярный компонент, контролируемый как CQA.
22CfRNA_RT_Efficiency_Scoredecimal0.78Биологический/молекулярный компонент, контролируемый как CQA.
23MinCfRNA_RT_Efficiencydecimal0.5Биологический/молекулярный компонент, контролируемый как CQA.
24CfRNA_Library_Concentration_nMdecimal5.8Отношение компонентов; структурный или рецептурный CQA.
25MinCfRNA_LibConc_nMdecimal1.0Биологический/молекулярный компонент, контролируемый как CQA.
26CfRNA_RibosomalRNA_Percentdecimal8.5Биологический/молекулярный компонент, контролируемый как CQA.
27MaxCfRNA_RibosomalRNA_Percentdecimal20Биологический/молекулярный компонент, контролируемый как CQA.
28DNA_RNA_YieldRatiodecimal3.5Отношение компонентов; структурный или рецептурный CQA.
29MinAcceptable_DNA_RNA_Ratiodecimal1.0Отношение компонентов; структурный или рецептурный CQA.
30MaxAcceptable_DNA_RNA_Ratiodecimal50.0Отношение компонентов; структурный или рецептурный CQA.
31RT_Inhibition_Detectedstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
32DNase_Treatment_Verifiedstring / controlled vocabularytrueБиологический/молекулярный компонент, контролируемый как CQA.
33ResidualDNA_InRNA_Fraction_Percentdecimal1.2Примесь/остаточный компонент; используется для оценки соответствия спецификации.
34MaxResidualDNA_Percentdecimal5.0Примесь/остаточный компонент; используется для оценки соответствия спецификации.
35CfDNA_OnTargetRate_Percentdecimal82.0Биологический/молекулярный компонент, контролируемый как CQA.
36MinCfDNA_OnTarget_Percentdecimal60Биологический/молекулярный компонент, контролируемый как CQA.
37CfDNA_MeanDepth_Xdecimal15000Биологический/молекулярный компонент, контролируемый как CQA.
38MinCfDNA_MeanDepth_Xdecimal5000Биологический/молекулярный компонент, контролируемый как CQA.
39CfRNA_MappedReads_Millioninteger / decimal25.0Биологический/молекулярный компонент, контролируемый как CQA.
40MinCfRNA_MappedReads_Millioninteger / decimal10Биологический/молекулярный компонент, контролируемый как CQA.
41CfRNA_GeneBodyCoverage_Percentdecimal72.0Биологический/молекулярный компонент, контролируемый как CQA.
42MinCfRNA_GeneBodyCoverage_Percentdecimal50Биологический/молекулярный компонент, контролируемый как CQA.
43MutationTranscript_Concordance_Checkedstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
44MutationTranscript_Concordantstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
45DiscordantFindingsstring / controlled vocabularyКонтролируемый входной параметр для детерминированных QC-правил.
46DNA_PositiveControl_Passstring / controlled vocabularytrueБиологический/молекулярный компонент, контролируемый как CQA.
47RNA_PositiveControl_Passstring / controlled vocabularytrueБиологический/молекулярный компонент, контролируемый как CQA.
48NegativeControl_Passstring / controlled vocabularytrueКонтрольная точка/контрольный образец для валидности серии анализа.
49ExtractionBlank_Cleanstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
50HemolysisIndexdecimal6Контролируемый входной параметр для детерминированных QC-правил.
51MaxHemolysisIndexdecimal50Контролируемый входной параметр для детерминированных QC-правил.
52TimeToProcessing_Hoursinteger / decimal2.0Временной параметр процесса, инкубации, хранения или анализа.
53MaxTimeToProcessing_Hoursinteger / decimal4Временной параметр процесса, инкубации, хранения или анализа.
SampleID,PatientID,ExtractionKit,PlasmaVolume_mL,CfDNA_Yield_ng,MinCfDNA_Yield_ng,CfDNA_FragmentPeak_bp,CfDNA_TargetFragmentPeak_bp,CfDNA_FragmentTolerance_bp,CfDNA_DIN_Score,MinCfDNA_DIN,CfDNA_HighMW_Fraction_Percent,MaxCfDNA_HighMW_Fraction_Percent,CfDNA_Library_Concentration_nM,MinCfDNA_LibConc_nM,CfRNA_Yield_ng,MinCfRNA_Yield_ng,CfRNA_RIN_Equivalent,MinCfRNA_RIN_Equivalent,CfRNA_DV200_Percent,MinCfRNA_DV200_Percent,CfRNA_RT_Efficiency_Score,MinCfRNA_RT_Efficiency,CfRNA_Library_Concentration_nM,MinCfRNA_LibConc_nM,CfRNA_RibosomalRNA_Percent,MaxCfRNA_RibosomalRNA_Percent,DNA_RNA_YieldRatio,MinAcceptable_DNA_RNA_Ratio,MaxAcceptable_DNA_RNA_Ratio,RT_Inhibition_Detected,DNase_Treatment_Verified,ResidualDNA_InRNA_Fraction_Percent,MaxResidualDNA_Percent,CfDNA_OnTargetRate_Percent,MinCfDNA_OnTarget_Percent,CfDNA_MeanDepth_X,MinCfDNA_MeanDepth_X,CfRNA_MappedReads_Million,MinCfRNA_MappedReads_Million,CfRNA_GeneBodyCoverage_Percent,MinCfRNA_GeneBodyCoverage_Percent,MutationTranscript_Concordance_Checked,MutationTranscript_Concordant,DiscordantFindings,DNA_PositiveControl_Pass,RNA_PositiveControl_Pass,NegativeControl_Pass,ExtractionBlank_Clean,HemolysisIndex,MaxHemolysisIndex,TimeToProcessing_Hours,MaxTimeToProcessing_Hours
PL-DNARNA-2026-001,PAT-LUNG-042,Qiagen_circulating_NA,4.0,28.5,5,168,167,15,3.2,2.0,3.5,10,12.5,2.0,8.2,1,2.8,2.0,62.0,30,0.78,0.5,5.8,1.0,8.5,20,3.5,1.0,50.0,false,true,1.2,5.0,82.0,60,15000,5000,25.0,10,72.0,50,true,true,,true,true,true,true,6,50,2.0,4
PL-DNARNA-2026-002,PAT-CRC-055,MagMAX_cfDNA_RNA,3.5,22.0,5,166,167,15,3.0,2.0,4.0,10,10.2,2.0,0.4,1,1.5,2.0,18.0,30,0.25,0.5,0.3,1.0,35.0,20,55.0,1.0,50.0,true,true,2.0,5.0,78.0,60,12000,5000,2.5,10,28.0,50,false,false,RNA_insufficient_for_concordance,true,false,true,true,45,50,3.5,4

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

IDПолеПравилоКритичность
VR-001SampleIDПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-002PatientIDПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-003ExtractionKitПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-004PlasmaVolume_mLПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-005CfDNA_Yield_ngПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-006MinCfDNA_Yield_ngПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-007CfDNA_FragmentPeak_bpПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-008CfDNA_TargetFragmentPeak_bpПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-009CfDNA_FragmentTolerance_bpПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-010CfDNA_DIN_ScoreПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-011MinCfDNA_DINПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-012CfDNA_HighMW_Fraction_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-013MaxCfDNA_HighMW_Fraction_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-014CfDNA_Library_Concentration_nMПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-015MinCfDNA_LibConc_nMПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-016CfRNA_Yield_ngПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-017MinCfRNA_Yield_ngПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-018CfRNA_RIN_EquivalentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-019MinCfRNA_RIN_EquivalentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-020CfRNA_DV200_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-021MinCfRNA_DV200_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-022CfRNA_RT_Efficiency_ScoreПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-023MinCfRNA_RT_EfficiencyПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-024CfRNA_Library_Concentration_nMПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-025MinCfRNA_LibConc_nMПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-026CfRNA_RibosomalRNA_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-027MaxCfRNA_RibosomalRNA_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-028DNA_RNA_YieldRatioПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-029MinAcceptable_DNA_RNA_RatioПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-030MaxAcceptable_DNA_RNA_RatioПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-031RT_Inhibition_DetectedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-032DNase_Treatment_VerifiedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-033ResidualDNA_InRNA_Fraction_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-034MaxResidualDNA_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-035CfDNA_OnTargetRate_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-036MinCfDNA_OnTarget_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-037CfDNA_MeanDepth_XПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-038MinCfDNA_MeanDepth_XПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-039CfRNA_MappedReads_MillionПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-040MinCfRNA_MappedReads_MillionПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-041CfRNA_GeneBodyCoverage_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-042MinCfRNA_GeneBodyCoverage_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-043MutationTranscript_Concordance_CheckedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-044MutationTranscript_ConcordantПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-045DiscordantFindingsПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-046DNA_PositiveControl_PassПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-047RNA_PositiveControl_PassПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-048NegativeControl_PassПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-049ExtractionBlank_CleanПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-050HemolysisIndexПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-051MaxHemolysisIndexПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-052TimeToProcessing_HoursПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-053MaxTimeToProcessing_HoursПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.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Применить правила для Plasma DNA/RNA Profiling QC 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": "plasmadnarnaprofilingqcchecker",
  "utilityFolder": "PlasmaDnaRnaProfilingQcChecker",
  "package": "LiquidBiopsy",
  "overallStatus": "PASS|WARNING|FAIL",
  "sourceFile": "input.csv",
  "processedAtUtc": "2026-06-10T00:00:00Z",
  "checks": [
    {
      "parameter": "SampleID",
      "value": "PL-DNARNA-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": "ExtractionKit",
      "value": "Qiagen_circulating_NA",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-003"
    },
    {
      "parameter": "PlasmaVolume_mL",
      "value": "4.0",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-004"
    },
    {
      "parameter": "CfDNA_Yield_ng",
      "value": "28.5",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-005"
    },
    {
      "parameter": "MinCfDNA_Yield_ng",
      "value": "5",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-006"
    },
    {
      "parameter": "CfDNA_FragmentPeak_bp",
      "value": "168",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-007"
    },
    {
      "parameter": "CfDNA_TargetFragmentPeak_bp",
      "value": "167",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-008"
    },
    {
      "parameter": "CfDNA_FragmentTolerance_bp",
      "value": "15",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-009"
    },
    {
      "parameter": "CfDNA_DIN_Score",
      "value": "3.2",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-010"
    },
    {
      "parameter": "MinCfDNA_DIN",
      "value": "2.0",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-011"
    },
    {
      "parameter": "CfDNA_HighMW_Fraction_Percent",
      "value": "3.5",
      "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": "PlasmaDnaRnaProfilingQcChecker.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, контроль образцов, контаминации, чувствительности и отчётности.

Открыть