ControlPartitionTrendChecker

Control Partition Trend

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

Описание утилиты: Control Partition Trend

Control Partition Trend Checker — Мониторинг качества партиционирования ddPCR

ℹ️  Утилита выполняет специализированный QC-мониторинг для цифровой ПЦР согласно MIQE-dPCR и CLSI MM26:
     • Partition Yield: Контроль общего числа валидных капель/лунок — прямой индикатор исправности генератора.
     • Positive Fraction Stability: Отслеживание доли положительных партиций для выявления дрейфа реакции.
     • Cluster Separation: Оценка расстояния между положительным и отрицательным кластерами в пространстве амплитуд.
     • Rain Fraction: Мониторинг промежуточных событий, затрудняющих гейтинг и снижающих точность.
     • Concentration Accuracy: Проверка соответствия измеренной концентрации целевому значению контрольного материала.

⚠️  ВАЖНО: 
     • В ddPCR качество партиционирования важнее, чем в qPCR: плохие капли = систематическая ошибка квантификации.
     • Деградация генератора капель часто происходит постепенно и незаметно без трендового анализа.
     • Высокий «дождь» может указывать на проблемы с мастер-миксом, праймерами или термоциклированием.

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

Формат input.csv:
ControlLot,TargetName,RunDate,TotalPartitions,MinPartitions,PositiveFraction,ExpectedPositiveFraction,PosClusterAmplitude,MinPosAmplitude,NegClusterAmplitude,MaxNegAmplitude,RainFraction,MaxRainFraction,MeasuredConcentration_copies_uL,TargetConcentration_copies_uL,ConcentrationTolerance_Percent

Пример:
  QC-LOT-A,RNase_P,2026-06-01,18500,10000,0.14,0.15,5200,3000,180,500,0.02,0.05,48.5,50.0,25

📍 Область применения (Usage Where):
     • Клинические ddPCR-лаборатории: Ежедневный QC перед запуском образцов пациентов.
     • Жидкая биопсия: Гарантия чувствительности assays для редких мутаций.
     • Разработка ddPCR-ассays: Оптимизация условий реакции по метрикам кластеризации.
     • Обслуживание оборудования: Раннее выявление износа генератора капель/чипов.

— ЗАЧЕМ ЭТО НУЖНО?
Классические правила Вестгарда не учитывают уникальную физику ddPCR.
Можно получить корректную концентрацию при плохом партиционировании, но результат будет ненадёжным.
Специализированный мониторинг партиций обеспечивает истинную уверенность в данных абсолютной квантификации.

⚠️  КРИТИЧЕСКИ ВАЖНО:
• Partition Count: <10,000 капель существенно снижает динамический диапазон и точность.
• Cluster Separation: <500 единиц амплитуды делает гейтинг субъективным и невоспроизводимым.
• Rain: >5% требует пересмотра условий амплификации или замены реагентов.
• Trend: Монотонное снижение числа партиций на 5+ прогонах = превентивное обслуживание генератора.

Ключевые особенности утилиты:
• Пять ddPCR-специфичных метрик качества
• Трендовый анализ числа партиций
• Интегрированная оценка кластеризации и квантификации
• Автоматическая классификация статуса
• Соответствие MIQE-dPCR guidelines

Критические параметры:
• Total Partitions: ≥ 10,000
• Positive Fraction: Within ±20% of expected
• Cluster Separation: > 500 amplitude units
• Rain Fraction: ≤ 5%
• Concentration Accuracy: Within ±25% of target

💡 Советы по использованию:
1. Базовая линия: Установите ExpectedPositiveFraction из первых 10 прогонов нового лота контроля.
2. Гейтинг: Используйте автоматический гейтинг для исключения субъективности при оценке separation/rain.
3. Масло/реагенты: При ухудшении метрик проверяйте свежесть масла для капель и мастер-микса.
4. Профилактика: Замените генератор капель при устойчивом тренде снижения партиций.
5. Документирование: Сохраняйте 2D-plot'ы контролей вместе с JSON-отчётом.

⚠️ Примечание: Данная утилита является инструментом QC, специфичным для цифровой ПЦР. Она дополняет, но не заменяет стандартный мониторинг концентраций по Вестгарду. Оба подхода должны использоваться совместно для полного контроля качества ddPCR.

input.csv

ControlLot,TargetName,RunDate,TotalPartitions,MinTotalPartitions,PositiveFraction,ExpectedPositiveFraction,PosClusterAmplitude,MinPosAmplitude,NegClusterAmplitude,MaxNegAmplitude,RainFraction,MaxRainFraction,MeasuredConcentration_copies_uL,TargetConcentration_copies_uL,ConcentrationTolerance_Percent
DDPCR-QC-LOT-A,RNase_P,2026-06-01,18500,10000,0.14,0.15,5200,3000,180,500,0.02,0.05,48.5,50.0,25
DDPCR-QC-LOT-A,RNase_P,2026-06-08,17800,10000,0.15,0.15,5100,3000,190,500,0.03,0.05,50.2,50.0,25
DDPCR-QC-LOT-A,RNase_P,2026-06-15,7200,10000,0.28,0.15,2800,3000,650,500,0.12,0.05,62.0,50.0,25
DDPCR-QC-LOT-B,EGFR_L858R,2026-06-01,20100,10000,0.08,0.08,4800,3000,150,500,0.01,0.05,12.3,12.5,25

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

Документ описывает контролируемый интерфейс и поведение утилиты ControlPartitionTrendChecker для сценария Control Partition Trend Checker.

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

Ниже приведены ключевые фрагменты исходного описания. Перед продуктивным применением пределы должны быть сверены с утверждённой спецификацией, регистрационным досье и локальными SOP.
  • ⚠️ ВАЖНО:
  • ⚠️ КРИТИЧЕСКИ ВАЖНО:
  • • Partition Count: <10,000 капель существенно снижает динамический диапазон и точность.
  • • Cluster Separation: <500 единиц амплитуды делает гейтинг субъективным и невоспроизводимым.
  • • Rain: >5% требует пересмотра условий амплификации или замены реагентов.
  • Критические параметры:
  • • Total Partitions: ≥ 10,000
  • • Cluster Separation: > 500 amplitude units
  • • Rain Fraction: ≤ 5%

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

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

#ПолеТипПримерНазначение
1ControlLotstring / controlled vocabularyDDPCR-QC-LOT-AИдентификатор серии/партии для трассируемости.
2TargetNamestring / controlled vocabularyRNase_PКонтролируемый входной параметр для детерминированных QC-правил.
3RunDatestring / controlled vocabulary2026-06-01Контролируемый входной параметр для детерминированных QC-правил.
4TotalPartitionsdecimal18500Контролируемый входной параметр для детерминированных QC-правил.
5MinTotalPartitionsdecimal10000Контролируемый входной параметр для детерминированных QC-правил.
6PositiveFractioninteger / decimal0.14Контролируемый входной параметр для детерминированных QC-правил.
7ExpectedPositiveFractioninteger / decimal0.15Контролируемый входной параметр для детерминированных QC-правил.
8PosClusterAmplitudedecimal5200Контролируемый входной параметр для детерминированных QC-правил.
9MinPosAmplitudedecimal3000Контролируемый входной параметр для детерминированных QC-правил.
10NegClusterAmplitudedecimal180Контролируемый входной параметр для детерминированных QC-правил.
11MaxNegAmplitudedecimal500Контролируемый входной параметр для детерминированных QC-правил.
12RainFractioninteger / decimal0.02Контролируемый входной параметр для детерминированных QC-правил.
13MaxRainFractioninteger / decimal0.05Контролируемый входной параметр для детерминированных QC-правил.
14MeasuredConcentration_copies_uLdecimal48.5Отношение компонентов; структурный или рецептурный CQA.
15TargetConcentration_copies_uLdecimal50.0Отношение компонентов; структурный или рецептурный CQA.
16ConcentrationTolerance_Percentdecimal25Отношение компонентов; структурный или рецептурный CQA.
ControlLot,TargetName,RunDate,TotalPartitions,MinTotalPartitions,PositiveFraction,ExpectedPositiveFraction,PosClusterAmplitude,MinPosAmplitude,NegClusterAmplitude,MaxNegAmplitude,RainFraction,MaxRainFraction,MeasuredConcentration_copies_uL,TargetConcentration_copies_uL,ConcentrationTolerance_Percent
DDPCR-QC-LOT-A,RNase_P,2026-06-01,18500,10000,0.14,0.15,5200,3000,180,500,0.02,0.05,48.5,50.0,25
DDPCR-QC-LOT-A,RNase_P,2026-06-08,17800,10000,0.15,0.15,5100,3000,190,500,0.03,0.05,50.2,50.0,25
DDPCR-QC-LOT-A,RNase_P,2026-06-15,7200,10000,0.28,0.15,2800,3000,650,500,0.12,0.05,62.0,50.0,25

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

IDПолеПравилоКритичность
VR-001ControlLotПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-002TargetNameПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-003RunDateПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-004TotalPartitionsПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-005MinTotalPartitionsПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-006PositiveFractionПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-007ExpectedPositiveFractionПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-008PosClusterAmplitudeПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-009MinPosAmplitudeПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-010NegClusterAmplitudeПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-011MaxNegAmplitudeПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-012RainFractionПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-013MaxRainFractionПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-014MeasuredConcentration_copies_uLПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-015TargetConcentration_copies_uLПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-016ConcentrationTolerance_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium

FS — функциональная спецификация

IDФункцияРеализация
FS-001CLI executionПоддержать режимы запуска: demo mode без аргументов и production mode input.csv output.json.
FS-002CSV importПрочитать input.csv в UTF-8/CSV-совместимом формате, проверить наличие заголовка и ожидаемых колонок.
FS-003Schema validationПроверить обязательные поля, количество колонок, неизвестные ключевые поля и пустые обязательные значения.
FS-004Type conversionПреобразовать числовые, флаговые и текстовые значения; некорректный формат фиксировать как ошибку строки.
FS-005Domain rule engineПрименить правила для Control Partition Trend 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": "controlpartitiontrendchecker",
  "utilityFolder": "ControlPartitionTrendChecker",
  "package": "LiquidBiopsy",
  "overallStatus": "PASS|WARNING|FAIL",
  "sourceFile": "input.csv",
  "processedAtUtc": "2026-06-10T00:00:00Z",
  "checks": [
    {
      "parameter": "ControlLot",
      "value": "DDPCR-QC-LOT-A",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-001"
    },
    {
      "parameter": "TargetName",
      "value": "RNase_P",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-002"
    },
    {
      "parameter": "RunDate",
      "value": "2026-06-01",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-003"
    },
    {
      "parameter": "TotalPartitions",
      "value": "18500",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-004"
    },
    {
      "parameter": "MinTotalPartitions",
      "value": "10000",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-005"
    },
    {
      "parameter": "PositiveFraction",
      "value": "0.14",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-006"
    },
    {
      "parameter": "ExpectedPositiveFraction",
      "value": "0.15",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-007"
    },
    {
      "parameter": "PosClusterAmplitude",
      "value": "5200",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-008"
    },
    {
      "parameter": "MinPosAmplitude",
      "value": "3000",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-009"
    },
    {
      "parameter": "NegClusterAmplitude",
      "value": "180",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-010"
    },
    {
      "parameter": "MaxNegAmplitude",
      "value": "500",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-011"
    },
    {
      "parameter": "RainFraction",
      "value": "0.02",
      "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": "ControlPartitionTrendChecker.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, контроль образцов, контаминации, чувствительности и отчётности.

Открыть