DdpcrDropletAcceptanceChecker

Ddpcr Droplet Acceptance

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

Описание утилиты: Ddpcr Droplet Acceptance

Ddpcr Droplet Acceptance Checker — Контроль качества капель ddPCR на уровне лунок

ℹ️  Утилита выполняет по-луночную проверку качества генерации капель в цифровой капельной ПЦР согласно MIQE-dPCR guidelines и спецификациям платформ:
     • Valid Droplet Count: Количество капель после исключения дебриса и дублетов — основа статистической мощности.
     • Droplet Size CV: Однородность размера капель — нарушение однородности искажает объёмную нормализацию и закон Пуассона.
     • Doublet Rate: Частота слившихся капель — завышает кажущуюся концентрацию позитивных событий.
     • Amplitude Separation: Расстояние между положительным и отрицательным кластерами — определяет надёжность гейтинга.
     • Chatter Detection: Выявление артефактов флуоресценции, указывающих на проблемы с маслом, мастер-миксом или ридером.

⚠️  ВАЖНО: 
     • <10 000 валидных капель существенно расширяет доверительный интервал концентрации.
     • Высокий doublet rate (>2%) систематически завышает результат, особенно при высоких концентрациях.
     • Плохое разделение амплитуд делает невозможным объективный гейтинг и требует ручного вмешательства.

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

Формат input.csv:
PlateID,WellPosition,SampleName,TotalDropletsGenerated,ValidDroplets,MinValidDroplets,DropletSizeCV_Percent,MaxDropletSizeCV_Percent,DoubletRate_Percent,MaxDoubletRate_Percent,PositiveAmplitude_Mean,NegativeAmplitude_Mean,MinAmplitudeSeparation,ChatterDetected

Пример:
  PLT-045,A01,Patient_001,22500,21800,10000,2.8,5.0,0.9,2.0,5800,180,1000,false

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

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

⚠️  КРИТИЧЕСКИ ВАЖНО:
• Valid Droplets ≥ 10 000: Абсолютный минимум для клинических приложений.
• Size CV ≤ 5%: Превышение указывает на проблемы с генератором или вязкостью смеси.
• Doublet Rate ≤ 2%: Высокий уровень требует пересмотра концентрации матрицы или условий эмульгирования.
• Amplitude Separation ≥ 1000: Ниже этого порога гейтинг ненадёжен.
• Chatter = Reject: Артефакты делают количественную оценку невозможной.

Ключевые особенности утилиты:
• По-луночная гранулярность проверки
• Пятипараметрическая оценка качества капель
• Автоматическая классификация ACCEPTED / WARNING / REJECTED
• Интеграция с downstream-анализом (исключение rejected wells)
• Соответствие MIQE-dPCR consensus guidelines

Критические параметры:
• Valid Droplets: ≥ 10,000
• Droplet Size CV: ≤ 5%
• Doublet Rate: ≤ 2%
• Amplitude Separation: ≥ 1,000 fluorescence units
• Chatter: Not detected

💡 Советы по использованию:
1. Пре-аналитика: Дегазация мастер-микса снижает chatter и улучшает однородность капель.
2. Концентрация матрицы: Избегайте перегрузки ДНК (>20 копий/капля), увеличивающей doublet rate.
3. Масло: Используйте только свежее масло для эмульгирования; старое масло повышает CV размера.
4. Пороги: Настраивайте лимиты под конкретную платформу и тип assay.
5. Тренды: Мониторьте % rejected wells по пластинам для выявления системных проблем.

⚠️ Примечание: Данная утилита является инструментом технического QC на уровне генерации капель. Она не заменяет контроль качества аналитических результатов (spike-in recovery, NTC), но обеспечивает фундаментальную надёжность данных ddPCR.

input.csv

PlateID,WellPosition,SampleName,TotalDropletsGenerated,ValidDroplets,MinValidDroplets,DropletSizeCV_Percent,MaxDropletSizeCV_Percent,DoubletRate_Percent,MaxDoubletRate_Percent,PositiveAmplitude_Mean,NegativeAmplitude_Mean,MinAmplitudeSeparation,ChatterDetected
PLT-2026-045,A01,Patient_001,22500,21800,10000,2.8,5.0,0.9,2.0,5800,180,1000,false
PLT-2026-045,B03,Patient_003,8500,7200,10000,6.5,5.0,4.2,2.0,4200,350,1000,true
PLT-2026-045,C05,NTC_Control,15000,14200,10000,4.8,5.0,1.8,2.0,5100,220,1000,false
PLT-2026-045,D07,Patient_005,19800,19100,10000,3.2,5.0,1.1,2.0,5600,190,1000,false

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

Документ описывает контролируемый интерфейс и поведение утилиты DdpcrDropletAcceptanceChecker для сценария Ddpcr Droplet Acceptance Checker.

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

Ниже приведены ключевые фрагменты исходного описания. Перед продуктивным применением пределы должны быть сверены с утверждённой спецификацией, регистрационным досье и локальными SOP.
  • • Droplet Size CV: Однородность размера капель — нарушение однородности искажает объёмную нормализацию и закон Пуассона.
  • • Amplitude Separation: Расстояние между положительным и отрицательным кластерами — определяет надёжность гейтинга.
  • ⚠️ ВАЖНО:
  • • <10 000 валидных капель существенно расширяет доверительный интервал концентрации.
  • • Высокий doublet rate (>2%) систематически завышает результат, особенно при высоких концентрациях.
  • • Жидкая биопсия: Гарантия чувствительности assays для редких мутаций (VAF <0.1%).
  • В ddPCR каждая капля является независимой реакцией. Качество капель определяет точность всего эксперимента.
  • ⚠️ КРИТИЧЕСКИ ВАЖНО:
  • • Valid Droplets ≥ 10 000: Абсолютный минимум для клинических приложений.
  • • Size CV ≤ 5%: Превышение указывает на проблемы с генератором или вязкостью смеси.
  • • Doublet Rate ≤ 2%: Высокий уровень требует пересмотра концентрации матрицы или условий эмульгирования.
  • • Amplitude Separation ≥ 1000: Ниже этого порога гейтинг ненадёжен.
  • Критические параметры:
  • • Valid Droplets: ≥ 10,000
  • • Droplet Size CV: ≤ 5%
  • • Doublet Rate: ≤ 2%
  • • Amplitude Separation: ≥ 1,000 fluorescence units
  • 2. Концентрация матрицы: Избегайте перегрузки ДНК (>20 копий/капля), увеличивающей doublet rate.

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

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

#ПолеТипПримерНазначение
1PlateIDstring / controlled vocabularyPLT-2026-045Контролируемый входной параметр для детерминированных QC-правил.
2WellPositionstring / controlled vocabularyA01Контролируемый входной параметр для детерминированных QC-правил.
3SampleNamestring / controlled vocabularyPatient_001Идентификатор образца или лабораторной пробы.
4TotalDropletsGenerateddecimal22500Контролируемый входной параметр для детерминированных QC-правил.
5ValidDropletsstring / controlled vocabulary21800Контролируемый входной параметр для детерминированных QC-правил.
6MinValidDropletsstring / controlled vocabulary10000Контролируемый входной параметр для детерминированных QC-правил.
7DropletSizeCV_Percentdecimal2.8Контролируемый входной параметр для детерминированных QC-правил.
8MaxDropletSizeCV_Percentdecimal5.0Контролируемый входной параметр для детерминированных QC-правил.
9DoubletRate_Percentdecimal0.9Контролируемый входной параметр для детерминированных QC-правил.
10MaxDoubletRate_Percentdecimal2.0Контролируемый входной параметр для детерминированных QC-правил.
11PositiveAmplitude_Meaninteger / decimal5800Контролируемый входной параметр для детерминированных QC-правил.
12NegativeAmplitude_Meaninteger / decimal180Контролируемый входной параметр для детерминированных QC-правил.
13MinAmplitudeSeparationinteger / decimal1000Отношение компонентов; структурный или рецептурный CQA.
14ChatterDetectedstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
PlateID,WellPosition,SampleName,TotalDropletsGenerated,ValidDroplets,MinValidDroplets,DropletSizeCV_Percent,MaxDropletSizeCV_Percent,DoubletRate_Percent,MaxDoubletRate_Percent,PositiveAmplitude_Mean,NegativeAmplitude_Mean,MinAmplitudeSeparation,ChatterDetected
PLT-2026-045,A01,Patient_001,22500,21800,10000,2.8,5.0,0.9,2.0,5800,180,1000,false
PLT-2026-045,B03,Patient_003,8500,7200,10000,6.5,5.0,4.2,2.0,4200,350,1000,true
PLT-2026-045,C05,NTC_Control,15000,14200,10000,4.8,5.0,1.8,2.0,5100,220,1000,false

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

IDПолеПравилоКритичность
VR-001PlateIDПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-002WellPositionПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-003SampleNameПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-004TotalDropletsGeneratedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-005ValidDropletsПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-006MinValidDropletsПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-007DropletSizeCV_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-008MaxDropletSizeCV_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-009DoubletRate_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-010MaxDoubletRate_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-011PositiveAmplitude_MeanПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-012NegativeAmplitude_MeanПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-013MinAmplitudeSeparationПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-014ChatterDetectedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.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Применить правила для Ddpcr Droplet Acceptance 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": "ddpcrdropletacceptancechecker",
  "utilityFolder": "DdpcrDropletAcceptanceChecker",
  "package": "LiquidBiopsy",
  "overallStatus": "PASS|WARNING|FAIL",
  "sourceFile": "input.csv",
  "processedAtUtc": "2026-06-10T00:00:00Z",
  "checks": [
    {
      "parameter": "PlateID",
      "value": "PLT-2026-045",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-001"
    },
    {
      "parameter": "WellPosition",
      "value": "A01",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-002"
    },
    {
      "parameter": "SampleName",
      "value": "Patient_001",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-003"
    },
    {
      "parameter": "TotalDropletsGenerated",
      "value": "22500",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-004"
    },
    {
      "parameter": "ValidDroplets",
      "value": "21800",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-005"
    },
    {
      "parameter": "MinValidDroplets",
      "value": "10000",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-006"
    },
    {
      "parameter": "DropletSizeCV_Percent",
      "value": "2.8",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-007"
    },
    {
      "parameter": "MaxDropletSizeCV_Percent",
      "value": "5.0",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-008"
    },
    {
      "parameter": "DoubletRate_Percent",
      "value": "0.9",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-009"
    },
    {
      "parameter": "MaxDoubletRate_Percent",
      "value": "2.0",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-010"
    },
    {
      "parameter": "PositiveAmplitude_Mean",
      "value": "5800",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-011"
    },
    {
      "parameter": "NegativeAmplitude_Mean",
      "value": "180",
      "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": "DdpcrDropletAcceptanceChecker.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, контроль образцов, контаминации, чувствительности и отчётности.

Открыть