GenomeWideSignalBatchChecker

Genome-Wide Signal Batch

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

Описание утилиты: Genome-Wide Signal Batch

Genome-Wide Signal Batch Checker — Контроль пакетных эффектов в полногеномных данных

ℹ️  Утилита выполняет систематическую оценку batch effects согласно стандартам ENCODE, IHEC и рекомендациям по воспроизводимости:
     • PCA-Batch Correlation: Коэффициент детерминации (R²) между главными компонентами и батчевой переменной.
     • Variance Decomposition: Соотношение межбатчевой и внутрибатчевой дисперсии как мера доминирования технического шума.
     • Outlier Detection: Идентификация образцов, выпадающих из своего батча или образующих отдельные кластеры.
     • Confounding Check: Выявление ситуаций, когда батч полностью или частично совпадает с биологической переменной.
     • Actionable Classification: NO_BATCH_EFFECT / MINOR_EFFECT / SEVERE_EFFECT с конкретными рекомендациями.

⚠️  ВАЖНО: 
     • PC1-Batch R² > 0.15 указывает на значимый пакетный эффект, требующий коррекции.
     • Конфаундинг батча с фенотипом НЕ МОЖЕТ быть исправлен статистически — требуется перепланирование эксперимента.
     • Межбатчевая дисперсия >20% означает, что техническая вариация превышает биологическую.
     • Коррекция batch effect (ComBat, SVA, RUV) должна применяться ТОЛЬКО после подтверждения эффекта.

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

Формат input.csv:
StudyID,DataType,BatchID,SampleCount_InBatch,PC1_VarianceExplained_Percent,PC2_VarianceExplained_Percent,PC1_BatchCorrelation_R2,MaxAcceptable_PC1_BatchR2,InterBatchVariance_Percent,MaxInterBatchVariance_Percent,IntraBatchCV_Percent,OutlierSampleCount,TotalSamplesInStudy,BatchConfoundedWithPhenotype,ProcessingDate,InstrumentID,OperatorID_Source

Пример:
  GWAS-01,SNPArray,BATCH-A,120,8.2,3.1,0.04,0.15,6.5,20,4.2,2,360,false,2026-01-15,Illumina-iScan,OP-01

📍 Область применения (Usage Where):
     • GWAS/EWAS: Обязательный QC перед ассоциативным анализом.
     • Мультицентровые исследования: Гармонизация данных из разных источников.
     • Эпигеномные консорциумы (IHEC, ENCODE): Стандартизация мета-анализов.
     • Публикация данных: Требование большинства журналов для полногеномных исследований.

— ЗАЧЕМ ЭТО НУЖНО?
Batch effect — самая частая причина невоспроизводимости в геномике.
Ложные ассоциации, вызванные техническими артефактами, публикуются ежегодно и подрывают доверие к науке.
Автоматизированная проверка позволяет выявить проблему ДО дорогостоящего анализа и публикации.
Это фундаментальное требование scientific integrity и patient safety в трансляционных исследованиях.

⚠️  КРИТИЧЕСКИ ВАЖНО:
• PC1-Batch R² ≤ 0.15: Порог значимости для большинства полногеномных данных.
• Inter-Batch Variance ≤ 20%: Превышение = технический шум доминирует.
• Confounding = SEVERE: Статистическая коррекция невозможна без потери биологического сигнала.
• Outliers < 5%: Высокий процент аутлайеров указывает на системную проблему батча.
• Документирование: ВСЕ батчевые переменные должны быть зафиксированы в метаданных.

Ключевые особенности утилиты:
• Пятипараметрическая оценка batch effect
• Автоматическая детекция конфаундинга
• Агрегация по исследованию (не по отдельному батчу)
• Классификация с actionable рекомендациями
• Соответствие ENCODE/IHEC standards

Критические параметры:
• PC1-Batch R²: ≤ 0.15
• Inter-Batch Variance: ≤ 20%
• Outlier Rate: < 5%
• Batch-Phenotype Confounding: Absent
• Number of Batches: > 1

💡 Советы по использованию:
1. Экспериментальный дизайн: Рандомизируйте образцы по батчам; никогда не группируйте случаи/контроли в разные батчи.
2. Метаданные: Фиксируйте ВСЕ технические переменные (дата, прибор, оператор, партия реагентов).
3. Референсные образцы: Включайте общие контрольные образцы в каждый батч для прямой оценки drift.
4. Коррекция: Применяйте ComBat/SVA только при подтвержденном эффекте; всегда проверяйте результат коррекции визуально.
5. Публикация: Предоставляйте PCA-плоты до и после коррекции как supplementary material.

⚠️ Примечание: Данная утилита оценивает наличие и тяжесть batch effect. Она не выполняет саму коррекцию — для этого используйте специализированные инструменты (ComBat, sva, RUVSeq). Утилита определяет, КОГДА и КАКУЮ коррекцию применять.

input.csv

StudyID,DataType,BatchID,SampleCount_InBatch,PC1_VarianceExplained_Percent,PC2_VarianceExplained_Percent,PC1_BatchCorrelation_R2,MaxAcceptable_PC1_BatchR2,InterBatchVariance_Percent,MaxInterBatchVariance_Percent,IntraBatchCV_Percent,OutlierSampleCount,TotalSamplesInStudy,BatchConfoundedWithPhenotype,ProcessingDate,InstrumentID,OperatorID_Source
GWAS-2026-01,SNPArray,BATCH-A,120,8.2,3.1,0.04,0.15,6.5,20.0,4.2,2,360,false,2026-01-15,Illumina-iScan,OP-01
GWAS-2026-01,SNPArray,BATCH-B,120,8.2,3.1,0.05,0.15,6.5,20.0,3.8,1,360,false,2026-02-10,Illumina-iScan,OP-02
GWAS-2026-01,SNPArray,BATCH-C,120,8.2,3.1,0.03,0.15,6.5,20.0,4.5,3,360,false,2026-03-05,Illumina-iScan,OP-01
METHYL-2026-02,MethylationArray,BATCH-X,48,35.6,12.4,0.68,0.15,42.0,20.0,8.5,7,96,true,2026-01-20,Illumina-iScan,OP-03
METHYL-2026-02,MethylationArray,BATCH-Y,48,35.6,12.4,0.72,0.15,42.0,20.0,9.1,5,96,true,2026-04-01,Illumina-iScan,OP-04

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

Документ описывает контролируемый интерфейс и поведение утилиты GenomeWideSignalBatchChecker для сценария Genome-Wide Signal Batch Checker.

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

Ниже приведены ключевые фрагменты исходного описания. Перед продуктивным применением пределы должны быть сверены с утверждённой спецификацией, регистрационным досье и локальными SOP.
  • ⚠️ ВАЖНО:
  • • PC1-Batch R² > 0.15 указывает на значимый пакетный эффект, требующий коррекции.
  • • Межбатчевая дисперсия >20% означает, что техническая вариация превышает биологическую.
  • ⚠️ КРИТИЧЕСКИ ВАЖНО:
  • • PC1-Batch R² ≤ 0.15: Порог значимости для большинства полногеномных данных.
  • • Inter-Batch Variance ≤ 20%: Превышение = технический шум доминирует.
  • • Outliers < 5%: Высокий процент аутлайеров указывает на системную проблему батча.
  • Критические параметры:
  • • PC1-Batch R²: ≤ 0.15
  • • Inter-Batch Variance: ≤ 20%
  • • Outlier Rate: < 5%
  • • Number of Batches: > 1
  • ⚠️ Примечание: Данная утилита оценивает наличие и тяжесть batch effect. Она не выполняет саму коррекцию — для этого используйте специализированные инструменты (ComBat, sva, RUVSeq). Утилита определяет, КОГДА и КАКУЮ коррекцию применять.

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

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

#ПолеТипПримерНазначение
1StudyIDstring / controlled vocabularyGWAS-2026-01Контролируемый входной параметр для детерминированных QC-правил.
2DataTypestring / controlled vocabularySNPArrayКонтролируемый входной параметр для детерминированных QC-правил.
3BatchIDstring / controlled vocabularyBATCH-AИдентификатор серии/партии для трассируемости.
4SampleCount_InBatchinteger / decimal120Идентификатор серии/партии для трассируемости.
5PC1_VarianceExplained_Percentdecimal8.2Контролируемый входной параметр для детерминированных QC-правил.
6PC2_VarianceExplained_Percentdecimal3.1Контролируемый входной параметр для детерминированных QC-правил.
7PC1_BatchCorrelation_R2string / controlled vocabulary0.04Идентификатор серии/партии для трассируемости.
8MaxAcceptable_PC1_BatchR2string / controlled vocabulary0.15Идентификатор серии/партии для трассируемости.
9InterBatchVariance_Percentdecimal6.5Идентификатор серии/партии для трассируемости.
10MaxInterBatchVariance_Percentdecimal20.0Идентификатор серии/партии для трассируемости.
11IntraBatchCV_Percentdecimal4.2Идентификатор серии/партии для трассируемости.
12OutlierSampleCountinteger / decimal2Идентификатор образца или лабораторной пробы.
13TotalSamplesInStudystring / controlled vocabulary360Идентификатор образца или лабораторной пробы.
14BatchConfoundedWithPhenotypestring / controlled vocabularyfalseИдентификатор серии/партии для трассируемости.
15ProcessingDatestring / controlled vocabulary2026-01-15Контролируемый входной параметр для детерминированных QC-правил.
16InstrumentIDstring / controlled vocabularyIllumina-iScanКонтролируемый входной параметр для детерминированных QC-правил.
17OperatorID_Sourcestring / controlled vocabularyOP-01Идентификатор исполнителя/аналитика для audit trail.
StudyID,DataType,BatchID,SampleCount_InBatch,PC1_VarianceExplained_Percent,PC2_VarianceExplained_Percent,PC1_BatchCorrelation_R2,MaxAcceptable_PC1_BatchR2,InterBatchVariance_Percent,MaxInterBatchVariance_Percent,IntraBatchCV_Percent,OutlierSampleCount,TotalSamplesInStudy,BatchConfoundedWithPhenotype,ProcessingDate,InstrumentID,OperatorID_Source
GWAS-2026-01,SNPArray,BATCH-A,120,8.2,3.1,0.04,0.15,6.5,20.0,4.2,2,360,false,2026-01-15,Illumina-iScan,OP-01
GWAS-2026-01,SNPArray,BATCH-B,120,8.2,3.1,0.05,0.15,6.5,20.0,3.8,1,360,false,2026-02-10,Illumina-iScan,OP-02
GWAS-2026-01,SNPArray,BATCH-C,120,8.2,3.1,0.03,0.15,6.5,20.0,4.5,3,360,false,2026-03-05,Illumina-iScan,OP-01

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

IDПолеПравилоКритичность
VR-001StudyIDПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-002DataTypeПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-003BatchIDПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-004SampleCount_InBatchПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-005PC1_VarianceExplained_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-006PC2_VarianceExplained_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-007PC1_BatchCorrelation_R2Поле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-008MaxAcceptable_PC1_BatchR2Поле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-009InterBatchVariance_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-010MaxInterBatchVariance_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-011IntraBatchCV_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-012OutlierSampleCountПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-013TotalSamplesInStudyПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-014BatchConfoundedWithPhenotypeПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-015ProcessingDateПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-016InstrumentIDПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-017OperatorID_SourceПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.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Применить правила для Genome-Wide Signal Batch 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": "genomewidesignalbatchchecker",
  "utilityFolder": "GenomeWideSignalBatchChecker",
  "package": "LiquidBiopsy",
  "overallStatus": "PASS|WARNING|FAIL",
  "sourceFile": "input.csv",
  "processedAtUtc": "2026-06-10T00:00:00Z",
  "checks": [
    {
      "parameter": "StudyID",
      "value": "GWAS-2026-01",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-001"
    },
    {
      "parameter": "DataType",
      "value": "SNPArray",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-002"
    },
    {
      "parameter": "BatchID",
      "value": "BATCH-A",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-003"
    },
    {
      "parameter": "SampleCount_InBatch",
      "value": "120",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-004"
    },
    {
      "parameter": "PC1_VarianceExplained_Percent",
      "value": "8.2",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-005"
    },
    {
      "parameter": "PC2_VarianceExplained_Percent",
      "value": "3.1",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-006"
    },
    {
      "parameter": "PC1_BatchCorrelation_R2",
      "value": "0.04",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-007"
    },
    {
      "parameter": "MaxAcceptable_PC1_BatchR2",
      "value": "0.15",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-008"
    },
    {
      "parameter": "InterBatchVariance_Percent",
      "value": "6.5",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-009"
    },
    {
      "parameter": "MaxInterBatchVariance_Percent",
      "value": "20.0",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-010"
    },
    {
      "parameter": "IntraBatchCV_Percent",
      "value": "4.2",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-011"
    },
    {
      "parameter": "OutlierSampleCount",
      "value": "2",
      "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": "GenomeWideSignalBatchChecker.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, контроль образцов, контаминации, чувствительности и отчётности.

Открыть