SequencerRunQcChecker

Sequencer Run QC

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

Описание утилиты: Sequencer Run QC

Sequencer Run QC Checker — Комплексный контроль качества запусков NGS-секвенаторов

ℹ️  Утилита выполняет проверку технических метрик запуска согласно CAP/CLIA §GEN.48800, ISO 15189 §7.3.4, FDA NGS guidance и спецификациям производителей:

     КЛАСТЕРИЗАЦИЯ / ЗАГРУЗКА:
     • Cluster Density: В диапазоне для конкретного типа flow cell. Overclustering = снижение Q-scores.
     • Percent PF ≥ 75%: Доля кластеров, прошедших фильтр качества. Низкий PF = проблема библиотеки или генерации.
     • Phasing/Prephasing ≤ 1.0%: Синхронизация синтеза. Высокие значения = деградация химии или флюидики.
     • Occupancy ≥ 70%: Для паттернированных flow cells (NovaSeq, NextSeq). Эффективность загрузки нанолунок.

     КАЧЕСТВО БАЗ:
     • Q30 Read1/Read2 ≥ 75%: Базовый порог для reliable variant calling.
     • Q40 Read1: Для новых химий (Xp, v1.5+). Более строгий критерий.
     • Quality Drop Cycle: Цикл, где качество резко падает. Индикатор истощения реагентов или оптики.

     ВЫХОД ДАННЫХ:
     • Yield ≥ 80% Expected: Фактический выход vs спецификация flow cell.
     • Alignment Rate ≥ 70%: Доля выровненных прочтений. Низкий % = контаминация или проблема библиотеки.

     КОНТРОЛИ:
     • PhiX Error Rate ≤ 2.0%: ⛔ Превышение = отказ химии или оптики. Наиболее чувствительный индикатор.
     • Spike-In Control Passed: Подтверждение сложности библиотеки и точности квантификации.
     • Negative Control Clean: Отсутствие контаминации на flow cell.

     РАВНОМЕРНОСТЬ И ЦЕЛОСТНОСТЬ:
     • Lane Uniformity CV ≤ 15%: Однородность выхода между лейнами. Высокий CV = проблемы флюидики.
     • Tile Hotspots: Локальные артефакты на поверхности flow cell.
     • Index Hopping ≤ 0.5%: Перекрёстная контаминация через индексы. Требует UDI.

     ЗДОРОВЬЕ ПРИБОРА:
     • Calibration Current: Калибровка актуальна.
     • Maintenance Up To Date: ТО выполнено по графику.
     • Error Codes: Любые ошибки во время запуска документируются.
     • Fluidics/Optics Issues: ⚠ Обнаружение проблем с жидкостной системой или оптикой.
     • Temperature Stability CV ≤ 0.5: Стабильность термоциклирования.

     РАСХОДНЫЕ МАТЕРИАЛЫ:
     • Consumables Expired: ⛔ Просроченные реагенты/flow cell = автоматический FAIL.
     • Lot Tracking: Полная прослеживаемость партий.

⚠️  ВАЖНО:
     • PhiX error rate — наиболее чувствительный ранний индикатор проблем секвенирования.
     • Overclustering необратимо снижает качество; лучше недогрузить, чем перегрузить.
     • Просроченные расходники = данные юридически недействительны для клинического использования.
     • Fluidics issues часто проявляются как высокий phasing + неравномерность по лейнам.
     • Index hopping на паттернированных flow cells без UDI может достигать 5–10%.
     • Quality drop на конкретном цикле указывает на проблему с конкретным нуклеотидом или циклом химии.
     • Температурная нестабильность влияет на кинетику полимеразы и снижает Q-scores.

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

📍 Область применения:
     • NGS-лаборатории: Обязательная приемка каждого запуска перед биоинформатикой.
     • Core facilities: Стандартизированный QC для исследовательских проектов.
     • Производственные площадки IVD: Release testing секвенаторов.
     • Регуляторные инспекции: Документирование instrument performance monitoring.
     • Сервисные инженеры: Диагностика проблем прибора по метрикам запусков.

💡 Советы:
1. Platform-Specific Thresholds: Настройте отдельные профили порогов для каждой платформы/flow cell.
2. Trend Monitoring: Отслеживайте Q30, PF%, PhiX error rate во времени для предиктивного обслуживания.
3. Control Charts: Ведите Levey-Jennings для ключевых метрик; тренды важнее единичных значений.
4. Consumable Tracking: Интегрируйте lot tracking с LIMS для автоматической проверки срока годности.
5. Error Code Dictionary: Создайте справочник кодов ошибок с рекомендованными действиями.

⚠️ Примечание: Утилита оценивает ТЕХНИЧЕСКОЕ КАЧЕСТВО ЗАПУСКА СЕКВЕНАТОРА. Она не заменяет образец-уровневый QC (LibraryPrepBatchChecker, PanelCoverageQcChecker) или биоинформатическую валидацию вариантов. Все три уровня необходимы: instrument QC → library/sample QC → bioinformatic QC. При статусе FAIL данные не должны поступать в биоинформатический пайплайн до разрешения проблемы или повторного запуска.

input.csv

RunID,Platform,InstrumentSerial,FlowCell_Type,Chemistry_Version,ReadConfiguration,RunStartDate,RunEndDate,RunDuration_Hours,ClusterDensity_K_mm2,MinClusterDensity_K_mm2,MaxClusterDensity_K_mm2,PercentPF,MinPercentPF,PhasingRate_Percent,MaxPhasingRate_Percent,PrephasingRate_Percent,MaxPrephasingRate_Percent,Occupancy_Percent,MinOccupancy_Percent,PercentQ30_Read1,PercentQ30_Read2,PercentQ30_Index1,PercentQ30_Index2,MinPercentQ30,PercentQ40_Read1,MedianQualityScore,QualityDrop_Cycle,TotalReads_Million,ExpectedReads_Million,Yield_Gb,ExpectedYield_Gb,PercentAligned,MinPercentAligned,PhiX_ErrorRate_Percent,MaxPhiX_ErrorRate_Percent,PhiX_AlignmentRate_Percent,SpikeIn_Control_Passed,NegativeControl_Clean,LaneUniformity_CV_Percent,MaxLaneUniformity_CV_Percent,TileHotspots_Detected,IndexHopping_Rate_Percent,MaxIndexHopping_Rate_Percent,Calibration_Current,Maintenance_UpToDate,ErrorCodes_DuringRun,FluidicsIssues_Detected,OpticsIssues_Detected,TemperatureStability_CV,MaxTemperatureStability_CV,ReagentKit_Lot,FlowCell_Lot,Consumables_Expired,ReagentKit_RemainingCycles
NS6000-2026-0142,NovaSeq_6000,A01234,S4,v1.5,2x150,2026-06-07T08:00:00,2026-06-08T04:00:00,20,950,600,1200,88.5,75,0.15,1.0,0.12,1.0,92.0,70,92.5,89.8,95.2,94.8,75,78.5,36,0,2800,3000,840,900,96.5,70,0.18,2.0,98.5,true,true,4.2,15,false,0.03,0.5,true,true,,false,false,0.08,0.5,RK-2026-0451,FC-2026-0892,false,0
NS6000-2026-0143,NovaSeq_6000,A01234,SP,v1.5,2x100,2026-06-08T10:00:00,2026-06-08T22:00:00,12,1350,600,1200,58.0,75,2.8,1.0,1.9,1.0,95.0,70,68.5,55.2,82.0,78.5,75,35.0,28,45,450,800,90,160,72.0,70,3.5,2.0,92.0,false,true,22.5,15,true,1.8,0.5,true,false,"ERR_FLUIDICS_BUBBLE;ERR_TEMP_SPIKE",true,false,0.85,0.5,RK-2026-0467,FC-2026-0901,false,0

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

Документ описывает контролируемый интерфейс и поведение утилиты SequencerRunQcChecker для сценария Sequencer Run QC Checker.

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

Ниже приведены ключевые фрагменты исходного описания. Перед продуктивным применением пределы должны быть сверены с утверждённой спецификацией, регистрационным досье и локальными SOP.
  • ℹ️ Утилита выполняет проверку технических метрик запуска согласно CAP/CLIA §GEN.48800, ISO 15189 §7.3.4, FDA NGS guidance и спецификациям производителей:
  • • Percent PF ≥ 75%: Доля кластеров, прошедших фильтр качества. Низкий PF = проблема библиотеки или генерации.
  • • Phasing/Prephasing ≤ 1.0%: Синхронизация синтеза. Высокие значения = деградация химии или флюидики.
  • • Occupancy ≥ 70%: Для паттернированных flow cells (NovaSeq, NextSeq). Эффективность загрузки нанолунок.
  • • Q30 Read1/Read2 ≥ 75%: Базовый порог для reliable variant calling.
  • • Q40 Read1: Для новых химий (Xp, v1.5+). Более строгий критерий.
  • • Yield ≥ 80% Expected: Фактический выход vs спецификация flow cell.
  • • Alignment Rate ≥ 70%: Доля выровненных прочтений. Низкий % = контаминация или проблема библиотеки.
  • • PhiX Error Rate ≤ 2.0%: ⛔ Превышение = отказ химии или оптики. Наиболее чувствительный индикатор.
  • • Lane Uniformity CV ≤ 15%: Однородность выхода между лейнами. Высокий CV = проблемы флюидики.
  • • Index Hopping ≤ 0.5%: Перекрёстная контаминация через индексы. Требует UDI.
  • • Temperature Stability CV ≤ 0.5: Стабильность термоциклирования.
  • ⚠️ ВАЖНО:

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

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

#ПолеТипПримерНазначение
1RunIDstring / controlled vocabularyNS6000-2026-0142Контролируемый входной параметр для детерминированных QC-правил.
2Platformstring / controlled vocabularyNovaSeq_6000Контролируемый входной параметр для детерминированных QC-правил.
3InstrumentSerialstring / controlled vocabularyA01234Контролируемый входной параметр для детерминированных QC-правил.
4FlowCell_Typestring / controlled vocabularyS4Контролируемый входной параметр для детерминированных QC-правил.
5Chemistry_Versionstring / controlled vocabularyv1.5Контролируемый входной параметр для детерминированных QC-правил.
6ReadConfigurationstring / controlled vocabulary2x150Отношение компонентов; структурный или рецептурный CQA.
7RunStartDatestring / controlled vocabulary2026-06-07T08:00:00Контролируемый входной параметр для детерминированных QC-правил.
8RunEndDatestring / controlled vocabulary2026-06-08T04:00:00Контролируемый входной параметр для детерминированных QC-правил.
9RunDuration_Hoursinteger / decimal20Временной параметр процесса, инкубации, хранения или анализа.
10ClusterDensity_K_mm2decimal950Контролируемый входной параметр для детерминированных QC-правил.
11MinClusterDensity_K_mm2decimal600Контролируемый входной параметр для детерминированных QC-правил.
12MaxClusterDensity_K_mm2decimal1200Контролируемый входной параметр для детерминированных QC-правил.
13PercentPFdecimal88.5Контролируемый входной параметр для детерминированных QC-правил.
14MinPercentPFdecimal75Контролируемый входной параметр для детерминированных QC-правил.
15PhasingRate_Percentdecimal0.15pH; параметр стабильности, совместимости и пригодности серии.
16MaxPhasingRate_Percentdecimal1.0pH; параметр стабильности, совместимости и пригодности серии.
17PrephasingRate_Percentdecimal0.12pH; параметр стабильности, совместимости и пригодности серии.
18MaxPrephasingRate_Percentdecimal1.0pH; параметр стабильности, совместимости и пригодности серии.
19Occupancy_Percentdecimal92.0Контролируемый входной параметр для детерминированных QC-правил.
20MinOccupancy_Percentdecimal70Контролируемый входной параметр для детерминированных QC-правил.
21PercentQ30_Read1decimal92.5Контролируемый входной параметр для детерминированных QC-правил.
22PercentQ30_Read2decimal89.8Контролируемый входной параметр для детерминированных QC-правил.
23PercentQ30_Index1decimal95.2Контролируемый входной параметр для детерминированных QC-правил.
24PercentQ30_Index2decimal94.8Контролируемый входной параметр для детерминированных QC-правил.
25MinPercentQ30decimal75Контролируемый входной параметр для детерминированных QC-правил.
26PercentQ40_Read1decimal78.5Контролируемый входной параметр для детерминированных QC-правил.
27MedianQualityScoredecimal36Контролируемый входной параметр для детерминированных QC-правил.
28QualityDrop_Cycledecimal0Контролируемый входной параметр для детерминированных QC-правил.
29TotalReads_Millioninteger / decimal2800Контролируемый входной параметр для детерминированных QC-правил.
30ExpectedReads_Millioninteger / decimal3000Контролируемый входной параметр для детерминированных QC-правил.
31Yield_Gbdecimal840Контролируемый входной параметр для детерминированных QC-правил.
32ExpectedYield_Gbdecimal900Контролируемый входной параметр для детерминированных QC-правил.
33PercentAligneddecimal96.5Контролируемый входной параметр для детерминированных QC-правил.
34MinPercentAligneddecimal70Контролируемый входной параметр для детерминированных QC-правил.
35PhiX_ErrorRate_Percentdecimal0.18pH; параметр стабильности, совместимости и пригодности серии.
36MaxPhiX_ErrorRate_Percentdecimal2.0pH; параметр стабильности, совместимости и пригодности серии.
37PhiX_AlignmentRate_Percentdecimal98.5pH; параметр стабильности, совместимости и пригодности серии.
38SpikeIn_Control_Passedstring / controlled vocabularytrueКонтрольная точка/контрольный образец для валидности серии анализа.
39NegativeControl_Cleanstring / controlled vocabularytrueКонтрольная точка/контрольный образец для валидности серии анализа.
40LaneUniformity_CV_Percentdecimal4.2Контролируемый входной параметр для детерминированных QC-правил.
41MaxLaneUniformity_CV_Percentdecimal15Контролируемый входной параметр для детерминированных QC-правил.
42TileHotspots_Detectedstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
43IndexHopping_Rate_Percentdecimal0.03Контролируемый входной параметр для детерминированных QC-правил.
44MaxIndexHopping_Rate_Percentdecimal0.5Контролируемый входной параметр для детерминированных QC-правил.
45Calibration_Currentstring / controlled vocabularytrueОтношение компонентов; структурный или рецептурный CQA.
46Maintenance_UpToDatestring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
47ErrorCodes_DuringRunstring / controlled vocabularyКонтролируемый входной параметр для детерминированных QC-правил.
48FluidicsIssues_Detectedstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
49OpticsIssues_Detectedstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
50TemperatureStability_CVdecimal0.08Температурный профиль/MKT; параметр хранения, перевозки и стабильности.
51MaxTemperatureStability_CVdecimal0.5Температурный профиль/MKT; параметр хранения, перевозки и стабильности.
52ReagentKit_Lotstring / controlled vocabularyRK-2026-0451Идентификатор серии/партии для трассируемости.
53FlowCell_Lotstring / controlled vocabularyFC-2026-0892Идентификатор серии/партии для трассируемости.
54Consumables_Expiredstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
55ReagentKit_RemainingCyclesinteger / decimal0Контролируемый входной параметр для детерминированных QC-правил.
RunID,Platform,InstrumentSerial,FlowCell_Type,Chemistry_Version,ReadConfiguration,RunStartDate,RunEndDate,RunDuration_Hours,ClusterDensity_K_mm2,MinClusterDensity_K_mm2,MaxClusterDensity_K_mm2,PercentPF,MinPercentPF,PhasingRate_Percent,MaxPhasingRate_Percent,PrephasingRate_Percent,MaxPrephasingRate_Percent,Occupancy_Percent,MinOccupancy_Percent,PercentQ30_Read1,PercentQ30_Read2,PercentQ30_Index1,PercentQ30_Index2,MinPercentQ30,PercentQ40_Read1,MedianQualityScore,QualityDrop_Cycle,TotalReads_Million,ExpectedReads_Million,Yield_Gb,ExpectedYield_Gb,PercentAligned,MinPercentAligned,PhiX_ErrorRate_Percent,MaxPhiX_ErrorRate_Percent,PhiX_AlignmentRate_Percent,SpikeIn_Control_Passed,NegativeControl_Clean,LaneUniformity_CV_Percent,MaxLaneUniformity_CV_Percent,TileHotspots_Detected,IndexHopping_Rate_Percent,MaxIndexHopping_Rate_Percent,Calibration_Current,Maintenance_UpToDate,ErrorCodes_DuringRun,FluidicsIssues_Detected,OpticsIssues_Detected,TemperatureStability_CV,MaxTemperatureStability_CV,ReagentKit_Lot,FlowCell_Lot,Consumables_Expired,ReagentKit_RemainingCycles
NS6000-2026-0142,NovaSeq_6000,A01234,S4,v1.5,2x150,2026-06-07T08:00:00,2026-06-08T04:00:00,20,950,600,1200,88.5,75,0.15,1.0,0.12,1.0,92.0,70,92.5,89.8,95.2,94.8,75,78.5,36,0,2800,3000,840,900,96.5,70,0.18,2.0,98.5,true,true,4.2,15,false,0.03,0.5,true,true,,false,false,0.08,0.5,RK-2026-0451,FC-2026-0892,false,0
NS6000-2026-0143,NovaSeq_6000,A01234,SP,v1.5,2x100,2026-06-08T10:00:00,2026-06-08T22:00:00,12,1350,600,1200,58.0,75,2.8,1.0,1.9,1.0,95.0,70,68.5,55.2,82.0,78.5,75,35.0,28,45,450,800,90,160,72.0,70,3.5,2.0,92.0,false,true,22.5,15,true,1.8,0.5,true,false,ERR_FLUIDICS_BUBBLE;ERR_TEMP_SPIKE,true,false,0.85,0.5,RK-2026-0467,FC-2026-0901,false,0

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

IDПолеПравилоКритичность
VR-001RunIDПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-002PlatformПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-003InstrumentSerialПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-004FlowCell_TypeПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-005Chemistry_VersionПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-006ReadConfigurationПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-007RunStartDateПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-008RunEndDateПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-009RunDuration_HoursПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-010ClusterDensity_K_mm2Поле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-011MinClusterDensity_K_mm2Поле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-012MaxClusterDensity_K_mm2Поле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-013PercentPFПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-014MinPercentPFПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-015PhasingRate_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-016MaxPhasingRate_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-017PrephasingRate_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-018MaxPrephasingRate_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-019Occupancy_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-020MinOccupancy_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-021PercentQ30_Read1Поле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-022PercentQ30_Read2Поле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-023PercentQ30_Index1Поле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-024PercentQ30_Index2Поле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-025MinPercentQ30Поле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-026PercentQ40_Read1Поле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-027MedianQualityScoreПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-028QualityDrop_CycleПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-029TotalReads_MillionПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-030ExpectedReads_MillionПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-031Yield_GbПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-032ExpectedYield_GbПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-033PercentAlignedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-034MinPercentAlignedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-035PhiX_ErrorRate_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-036MaxPhiX_ErrorRate_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-037PhiX_AlignmentRate_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-038SpikeIn_Control_PassedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-039NegativeControl_CleanПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-040LaneUniformity_CV_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-041MaxLaneUniformity_CV_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-042TileHotspots_DetectedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-043IndexHopping_Rate_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-044MaxIndexHopping_Rate_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-045Calibration_CurrentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-046Maintenance_UpToDateПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-047ErrorCodes_DuringRunПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-048FluidicsIssues_DetectedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-049OpticsIssues_DetectedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-050TemperatureStability_CVПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-051MaxTemperatureStability_CVПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-052ReagentKit_LotПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-053FlowCell_LotПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-054Consumables_ExpiredПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-055ReagentKit_RemainingCyclesПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.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Применить правила для Sequencer Run 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": "sequencerrunqcchecker",
  "utilityFolder": "SequencerRunQcChecker",
  "package": "LiquidBiopsy",
  "overallStatus": "PASS|WARNING|FAIL",
  "sourceFile": "input.csv",
  "processedAtUtc": "2026-06-10T00:00:00Z",
  "checks": [
    {
      "parameter": "RunID",
      "value": "NS6000-2026-0142",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-001"
    },
    {
      "parameter": "Platform",
      "value": "NovaSeq_6000",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-002"
    },
    {
      "parameter": "InstrumentSerial",
      "value": "A01234",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-003"
    },
    {
      "parameter": "FlowCell_Type",
      "value": "S4",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-004"
    },
    {
      "parameter": "Chemistry_Version",
      "value": "v1.5",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-005"
    },
    {
      "parameter": "ReadConfiguration",
      "value": "2x150",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-006"
    },
    {
      "parameter": "RunStartDate",
      "value": "2026-06-07T08:00:00",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-007"
    },
    {
      "parameter": "RunEndDate",
      "value": "2026-06-08T04:00:00",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-008"
    },
    {
      "parameter": "RunDuration_Hours",
      "value": "20",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-009"
    },
    {
      "parameter": "ClusterDensity_K_mm2",
      "value": "950",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-010"
    },
    {
      "parameter": "MinClusterDensity_K_mm2",
      "value": "600",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-011"
    },
    {
      "parameter": "MaxClusterDensity_K_mm2",
      "value": "1200",
      "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": "SequencerRunQcChecker.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, контроль образцов, контаминации, чувствительности и отчётности.

Открыть