Контроль качества FASTQ это первый шаг любого пайплайна секвенирования. Если его пропустить, последствия предсказуемы: пайплайн либо падает на неподходящих данных, либо выдаёт правдоподобные, но искажённые результаты это лишние варианты, ложные химеры, смещённые оценки экспрессии.
Что содержит файл FASTQ
FASTQ хранит чтения (риды) и их посимвольные оценки качества. Один рид, четыре строки:
@SRR0000001.1 1:N:0:1
GATCGGAAGAGCACACGTCTGAACTCCAGTCAC
+
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
- строка 1 — идентификатор, начинается с
@; - строка 2 — последовательность (A, C, G, T, иногда N и IUPAC-коды);
- строка 3 — разделитель, начинается с
+; - строка 4 — строка качества той же длины.
Каждый символ качества — Phred-оценка Q, закодированная ASCII-символом: Q = −10 · log10(P), где P это вероятность ошибки в основании. Q20: 1 ошибка на 100 оснований, Q30: на 1000, Q40: на 10 000.
Кодировка качества
Одна и та же буква в разных файлах может означать разное качество.
| Кодировка | Смещение | Где встречается |
|---|---|---|
| Sanger | +33 | современные приборы, Illumina 1.8+ |
| Illumina 1.3+ | +64 | архивы 2009–2011 |
| Illumina 1.5+ | +64 | архивы, символ B — сегмент без качества |
Если перепутать кодировку, все оценки сместятся на 31 единицу. Дешёвая проверка — гистограмма символов в четвёртых строках: массовые символы ниже I (ASCII 73) в старых данных или выше ~ в новых намекают на несоответствие.
Быстрая проверка до запуска инструментов
# целостность: число строк кратно 4
zcat reads.fastq.gz | wc -l
# первые риды
zcat reads.fastq.gz | head -8
# распределение символов качества
zcat reads.fastq.gz | awk 'NR%4==0' | fold -w1 | sort | uniq -c | sort -k2
Полезно зафиксировать контрольную сумму (md5sum): позже можно доказать, что анализировался неизменённый файл. Проверка кратности четырём отсеивает большую часть файлов, обрезанных при скачивании.
Инструменты первого уровня
- FastQC отчёт по одному файлу: качество по позициям, GC, N, дубликаты, адаптеры, перепредставленные последовательности.
- fastp препроцессинг: обрезка адаптеров, фильтрация по качеству и длине, коррекция ошибок по перекрытию парных ридов, отчёт в HTML/JSON.
- MultiQC сводит отчёты многих образцов в одну страницу.
- seqtk сэмплирование и конвертация.
- Kraken2, FastQ Screen, Sylph оценка контаминации по базам референсов.
На больших файлах сначала берут подвыборку (seqtk sample -s100 reads.fastq.gz 100000), оценивают её и только затем запускают полный процессинг.
Ключевые метрики
Качество по позициям
Самый информативный график: по X позиция в риде, по Y распределение Phred. Норма это плавное падение к 3'-концу. Тревожные признаки: провал в начале рида (остатки адаптера, артефакт кластеризации), резкое падение в конкретной позиции (циклический артефакт прибора), низкое качество по всему риду (деградация образца). Обычно концы обрезают по порогу вроде Q20–Q28, но выбор зависит от задачи.
Качество по ридам
Распределение средних оценок. Двугорбая форма почти всегда означает примесь: адаптерные димеры, другой образец, другой пробег.
GC-состав, N и адаптеры
Смещение общего GC относительно ожидаемого для организма говорит о контаминации; второй пик часто указывает на бактериальную ДНК или фаг PhiX. Большая доля N: проблемы с определением основания, особенно в конце ридов. Перепредставленные последовательности в отчёте, это чаще всего адаптеры, праймеры, поли-G/A/T тракты, рРНК и PhiX; адаптеры нужно удалять, иначе возможны ложные химеры и ложные варианты.
Дубликаты
Высокий уровень дубликатов бывает биологическим (глубокое покрытие, ампликоны, таргетные панели) и техническим (низкая сложность библиотеки, переамплификация). Для анализа экспрессии дубликаты обычно не удаляют, а учитывают; для сборки de novo их влияние на k-мерный спектр может быть заметным.
Контаминация
Отдельный вопрос это происхождение нуклеиновых кислот. Быстрый способ здесь прогнать подвыборку через классификатор (Kraken2, FastQ Screen, Sylph) и посмотреть долю ридов ожидаемого организма. Так ловят адаптеры и праймеры, PhiX, примеси из реактивов и перекрёстное загрязнение между образцами одного пробега.
Парные чтения и достаточность данных
Для парных данных проверяют, что R1 и R2 совпадают по числу ридов и порядку идентификаторов:
zcat R1.fastq.gz | wc -l
zcat R2.fastq.gz | wc -l
Рассинхронизация приводит к падению выравнивателя или бессмысленным парам. Оценить достаточность данных для полногеномного секвенирования помогает грубая формула покрытия:
C ≈ (N × L) / G,
где N: число ридов, L: длина рида, G: размер генома. Для РНК-секвенирования и метагеномики формула напрямую не применима, но общее число ридов всё равно полезно оценить.
Практический порядок действий
- Проверить целостность: число строк кратно 4, контрольная сумма совпадает.
- Посмотреть первые риды: формат заголовка, алфавит, кодировка качества.
- Запустить FastQC на подвыборке или на всём файле.
- Разобрать графики: качество по позициям, GC, N, адаптеры, перепредставленные последовательности.
- Оценить контаминацию быстрым классификатором.
- Выбрать параметры обрезки и фильтрации, зафиксировать их в отчёте.
- Обработать данные (fastp, Trimmomatic и аналоги), повторно проверить очищенные риды и только затем переходить к выравниванию или сборке.
Пороги лучше выбирать до просмотра результатов, а не подгонять под них; при десятках образцов помогает MultiQC, который позволяет быстро найти выбросы.
FAQ
Что означает Q30? Это Phred-оценка, соответствующая вероятности ошибки 1 на 1000 (0,1 %). Долю оснований с Q≥30 часто используют как сводный показатель, но высокий Q30 при большом числе адаптеров и контаминации не делает данные пригодными.
Нужно ли удалять дубликаты из FASTQ? Обычно нет: пометка дубликатов после выравнивания информативнее, потому что отделяет ПЦР-дубликаты от действительно повторяющихся фрагментов. Исключение это отдельные задачи, например подготовка данных для сборки de novo.
Можно ли обойтись без FastQC, если есть fastp? Отчёт fastp покрывает большую часть рутинных нужд, но часть графиков (например, качество по тайлам) есть только в FastQC. На практике их удобно использовать вместе и сводить через MultiQC.
Обязательно ли обрезать все риды до одной длины? Нет. Современные выравниватели и квантификаторы работают с ридами разной длины; выравнивание длин нужно лишь некоторым старым инструментам и отдельным типам анализа.