FragmentomicsQcChecker

Fragmentomics QC

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

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

Fragmentomics QC Checker — Контроль качества данных фрагментомики cfDNA

ℹ️  Утилита выполняет комплексную проверку качества фрагментомических данных согласно стандартам FragmenTech и рекомендациям по эпигеномике cfDNA:
     • Insert Size Profile: Медианный размер инсерта и высота нуклеосомного пика (~167 bp) — основа фрагментомического сигнала.
     • Short Fragment Ratio: Соотношение коротких (<150 bp) к длинным фрагментам — маркер опухолевой ДНК.
     • Library Artifacts: Контроль адаптерных димеров и пере-тримминга — основные источники технического смещения.
     • Library Complexity: Количество уникальных молекул — определяет статистическую мощность анализа.
     • Motif Coverage: Глубина покрытия для анализа end-motifs — требует ≥10× для надежной детекции.

⚠️  ВАЖНО: 
     • Пере-тримминг (overtrimming) искусственно укорачивает фрагменты и имитирует опухолевый сигнал.
     • Адаптерные димеры (>2%) загрязняют данные и снижают эффективную глубину.
     • Слабый нуклеосомный пик указывает на деградацию образца или проблемы подготовки библиотеки.
     • Анализ мотивов требует значительно большей глубины, чем обычный variant calling.

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

Формат input.csv:
SampleID,LibraryPrepMethod,MedianInsertSize_bp,ExpectedMedianInsert_bp,InsertSizeTolerance_bp,ShortFragmentRatio,MinShortFragmentRatio,MaxShortFragmentRatio,NucleosomalPeakHeight,MinNucleosomalPeakHeight,AdapterDimer_Percent,MaxAdapterDimer_Percent,UniqueMolecules_Million,MinUniqueMolecules_Million,MotifCoverage_X,MinMotifCoverage_X,BackgroundNoise_Score,MaxBackgroundNoise,OvertrimmingDetected

Пример:
  FRAG-001,WGS,168,167,15,0.28,0.15,0.45,5.2,3.0,0.3,2.0,18.5,5.0,25.0,10.0,0.08,0.2,false

📍 Область применения (Usage Where):
     • Исследования жидкой биопсии: QC перед фрагментомическим анализом рака.
     • Неинвазивный пренатальный тест (NIPT): Оценка качества фетальной ДНК по фрагментации.
     • Разработка MCED-тестов: Валидация фрагментомических признаков.
     • Мониторинг трансплантации: Детекция донорской cfDNA по размеру.

— ЗАЧЕМ ЭТО НУЖНО?
Фрагментация cfDNA является тонким биологическим сигналом, легко маскируемым техническими артефактами.
Без строгого QC невозможно отличить истинное укорочение опухолевых фрагментов от пере-тримминга.
Автоматизированная проверка гарантирует, что фрагментомические выводы основаны на качественных данных.

⚠️  КРИТИЧЕСКИ ВАЖНО:
• Median Insert 152-182 bp: Вне этого диапазона — проблема с образцом или библиотекой.
• Nucleosomal Peak ≥3.0: Слабый пик = потеря нуклеосомного позиционирования.
• Adapter Dimer ≤2%: Выше этого уровня требуется повторная очистка библиотеки.
• Overtrimming = FAIL: Данные необратимо искажены, повторная подготовка обязательна.
• Motif Coverage ≥10×: Ниже этого порога анализ end-motifs статистически ненадежен.

Ключевые особенности утилиты:
• Восьмипараметрическая оценка фрагментомических данных
• Автоматическая детекция пере-тримминга
• Интеграция физических и биоинформатических метрик
• Классификация PASS / WARNING / FAIL
• Соответствие FragmenTech consortium standards

Критические параметры:
• Median Insert Size: 152–182 bp
• Nucleosomal Peak Height: ≥ 3.0
• Adapter Dimer: ≤ 2%
• Short Fragment Ratio: 0.15–0.45
• Unique Molecules: ≥ 5M
• Motif Coverage: ≥ 10×
• Overtrimming: Not detected

💡 Советы по использованию:
1. Trimming: Используйте conservative trimming parameters; избегайте aggressive adapter removal.
2. Size Selection: Применяйте двойной SPRI для удаления димеров и длинных фрагментов.
3. UMI: Всегда используйте UMI для точного подсчета уникальных молекул.
4. Контроли: Включайте референсные образцы с известным фрагментационным профилем.
5. Тренды: Мониторьте median insert size во времени для выявления дрейфа протокола.

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

input.csv

SampleID,LibraryPrepMethod,MedianInsertSize_bp,ExpectedMedianInsert_bp,InsertSizeTolerance_bp,ShortFragmentRatio,MinShortFragmentRatio,MaxShortFragmentRatio,NucleosomalPeakHeight,MinNucleosomalPeakHeight,AdapterDimer_Percent,MaxAdapterDimer_Percent,UniqueMolecules_Million,MinUniqueMolecules_Million,MotifCoverage_X,MinMotifCoverage_X,BackgroundNoise_Score,MaxBackgroundNoise,OvertrimmingDetected
FRAG-2026-001,WGS,168,167,15,0.28,0.15,0.45,5.2,3.0,0.3,2.0,18.5,5.0,25.0,10.0,0.08,0.2,false
FRAG-2026-002,Targeted,142,167,15,0.62,0.15,0.45,1.8,3.0,8.5,2.0,2.1,5.0,4.0,10.0,0.35,0.2,true
FRAG-2026-003,WGS,170,167,15,0.32,0.15,0.45,4.8,3.0,0.5,2.0,15.2,5.0,22.0,10.0,0.12,0.2,false

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

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

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

Ниже приведены ключевые фрагменты исходного описания. Перед продуктивным применением пределы должны быть сверены с утверждённой спецификацией, регистрационным досье и локальными SOP.
  • • Short Fragment Ratio: Соотношение коротких (<150 bp) к длинным фрагментам — маркер опухолевой ДНК.
  • • Library Complexity: Количество уникальных молекул — определяет статистическую мощность анализа.
  • • Motif Coverage: Глубина покрытия для анализа end-motifs — требует ≥10× для надежной детекции.
  • ⚠️ ВАЖНО:
  • • Адаптерные димеры (>2%) загрязняют данные и снижают эффективную глубину.
  • ⚠️ КРИТИЧЕСКИ ВАЖНО:
  • • Nucleosomal Peak ≥3.0: Слабый пик = потеря нуклеосомного позиционирования.
  • • Adapter Dimer ≤2%: Выше этого уровня требуется повторная очистка библиотеки.
  • • Motif Coverage ≥10×: Ниже этого порога анализ end-motifs статистически ненадежен.
  • Критические параметры:
  • • Nucleosomal Peak Height: ≥ 3.0
  • • Adapter Dimer: ≤ 2%
  • • Unique Molecules: ≥ 5M
  • • Motif Coverage: ≥ 10×

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

IDТребованиеКритичностьКритерий приемки
URS-001Утилита должна принимать файл input.csv для Fragmentomics 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 vocabularyFRAG-2026-001Идентификатор образца или лабораторной пробы.
2LibraryPrepMethodstring / controlled vocabularyWGSМетод или технологический подход; контролируемое справочное значение.
3MedianInsertSize_bpdecimal168Контролируемый входной параметр для детерминированных QC-правил.
4ExpectedMedianInsert_bpdecimal167Контролируемый входной параметр для детерминированных QC-правил.
5InsertSizeTolerance_bpdecimal15Контролируемый входной параметр для детерминированных QC-правил.
6ShortFragmentRatiodecimal0.28Отношение компонентов; структурный или рецептурный CQA.
7MinShortFragmentRatiodecimal0.15Отношение компонентов; структурный или рецептурный CQA.
8MaxShortFragmentRatiodecimal0.45Отношение компонентов; структурный или рецептурный CQA.
9NucleosomalPeakHeightdecimal5.2Контролируемый входной параметр для детерминированных QC-правил.
10MinNucleosomalPeakHeightdecimal3.0Контролируемый входной параметр для детерминированных QC-правил.
11AdapterDimer_Percentdecimal0.3Контролируемый входной параметр для детерминированных QC-правил.
12MaxAdapterDimer_Percentdecimal2.0Контролируемый входной параметр для детерминированных QC-правил.
13UniqueMolecules_Millioninteger / decimal18.5Контролируемый входной параметр для детерминированных QC-правил.
14MinUniqueMolecules_Millioninteger / decimal5.0Контролируемый входной параметр для детерминированных QC-правил.
15MotifCoverage_Xdecimal25.0Контролируемый входной параметр для детерминированных QC-правил.
16MinMotifCoverage_Xdecimal10.0Контролируемый входной параметр для детерминированных QC-правил.
17BackgroundNoise_Scoredecimal0.08Контролируемый входной параметр для детерминированных QC-правил.
18MaxBackgroundNoisedecimal0.2Контролируемый входной параметр для детерминированных QC-правил.
19OvertrimmingDetectedstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
SampleID,LibraryPrepMethod,MedianInsertSize_bp,ExpectedMedianInsert_bp,InsertSizeTolerance_bp,ShortFragmentRatio,MinShortFragmentRatio,MaxShortFragmentRatio,NucleosomalPeakHeight,MinNucleosomalPeakHeight,AdapterDimer_Percent,MaxAdapterDimer_Percent,UniqueMolecules_Million,MinUniqueMolecules_Million,MotifCoverage_X,MinMotifCoverage_X,BackgroundNoise_Score,MaxBackgroundNoise,OvertrimmingDetected
FRAG-2026-001,WGS,168,167,15,0.28,0.15,0.45,5.2,3.0,0.3,2.0,18.5,5.0,25.0,10.0,0.08,0.2,false
FRAG-2026-002,Targeted,142,167,15,0.62,0.15,0.45,1.8,3.0,8.5,2.0,2.1,5.0,4.0,10.0,0.35,0.2,true
FRAG-2026-003,WGS,170,167,15,0.32,0.15,0.45,4.8,3.0,0.5,2.0,15.2,5.0,22.0,10.0,0.12,0.2,false

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

IDПолеПравилоКритичность
VR-001SampleIDПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-002LibraryPrepMethodПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-003MedianInsertSize_bpПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-004ExpectedMedianInsert_bpПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-005InsertSizeTolerance_bpПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-006ShortFragmentRatioПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-007MinShortFragmentRatioПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-008MaxShortFragmentRatioПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-009NucleosomalPeakHeightПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-010MinNucleosomalPeakHeightПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-011AdapterDimer_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-012MaxAdapterDimer_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-013UniqueMolecules_MillionПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-014MinUniqueMolecules_MillionПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-015MotifCoverage_XПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-016MinMotifCoverage_XПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-017BackgroundNoise_ScoreПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-018MaxBackgroundNoiseПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-019OvertrimmingDetectedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.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Применить правила для Fragmentomics 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": "fragmentomicsqcchecker",
  "utilityFolder": "FragmentomicsQcChecker",
  "package": "LiquidBiopsy",
  "overallStatus": "PASS|WARNING|FAIL",
  "sourceFile": "input.csv",
  "processedAtUtc": "2026-06-10T00:00:00Z",
  "checks": [
    {
      "parameter": "SampleID",
      "value": "FRAG-2026-001",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-001"
    },
    {
      "parameter": "LibraryPrepMethod",
      "value": "WGS",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-002"
    },
    {
      "parameter": "MedianInsertSize_bp",
      "value": "168",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-003"
    },
    {
      "parameter": "ExpectedMedianInsert_bp",
      "value": "167",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-004"
    },
    {
      "parameter": "InsertSizeTolerance_bp",
      "value": "15",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-005"
    },
    {
      "parameter": "ShortFragmentRatio",
      "value": "0.28",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-006"
    },
    {
      "parameter": "MinShortFragmentRatio",
      "value": "0.15",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-007"
    },
    {
      "parameter": "MaxShortFragmentRatio",
      "value": "0.45",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-008"
    },
    {
      "parameter": "NucleosomalPeakHeight",
      "value": "5.2",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-009"
    },
    {
      "parameter": "MinNucleosomalPeakHeight",
      "value": "3.0",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-010"
    },
    {
      "parameter": "AdapterDimer_Percent",
      "value": "0.3",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-011"
    },
    {
      "parameter": "MaxAdapterDimer_Percent",
      "value": "2.0",
      "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": "FragmentomicsQcChecker.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, контроль образцов, контаминации, чувствительности и отчётности.

Открыть