Удаление адаптеров
Входные пары файлов FASTQ обрабатываются с помощью утилиты fastp в режиме автоопределения адаптеров, с 3`-конца удаляются все N и буквы с качеством менее 15 методом "скользящего окна" (размер окна 6 нуклеотидов), для NextSeq/NovaSeq также удаляются поли-G. Полностью удаляются все риды, содержащие более 40% букв с качеством менее 15, и риды длиной менее 36.
Для ускорения дальнейшей обработки файлы разделяются на фрагменты, содержащие по 5 миллионов прочтений, а для режима поиска соматических мутаций в ампликонах дополнительно обрабатываются утилитой Trimmomatic, так как данный тип анализа чрезвычайно чувствителен даже к следовым количествам адаптеров.
Картирование прочтений
Фрагменты размером 5 миллионов прочтений конвертируются в формат uBAM с автоматическим назначением групп чтения для каждой входной пары файлов FASTQ, затем картируются на геном с помощью алгоритма BWA-MEM с получением набора BAM-файлов. Предварительное разбиение на фрагменты позволяет эффективно контролировать время выполнения этапа картирования для входных файлов любого размера – от экзома до генома.
Маркировка дубликатов и сортировка
Полученный комплект BAM-файлов в зависимости от размера и необходимости маркировки дубликатов подвергается обработке с помощью утилит bamsormadup, bamsort или MarkDuplicatesSpark с одновременным объединением в один файл.
Рекалибровка значений качества
Рекалибровка проводится с помощью инструмента BaseRecalibrator из GATK4, для ускорения набор интервалов разделяется на фрагменты, содержащие примерно 300-500 миллионов прочитанных оснований в одной группе чтения (если количество недостаточно – файл обрабатывается без разделения). Полученные оценки объединяются и применяются к исходному BAM-файлу.
Поиск нуклеотидных вариантов
Поиск вариантов производится параллельно с помощью алгоритмов Strelka2 и HaplotypeCaller/Mutect2 из GATK4, для ускорения инструментов GATK4 набор интервалов разделяется на фрагменты примерно равного размера (для генома интервалы делятся по -NNNNNN-), которые обрабатываются независимо друг от друга. Получившиеся VCF-файлы объединяются с удалением дублирующихся строк.
Фильтрация герминальных вариантов
Постобработка вариантов проводится двумя способами - с помощью предобученной нейронной сети (CNNScoreVariants из GATK4, модель 2D) и с помощью индивидуальных фильтров по качеству, критерии фильтрации следующие:
- LowDP – DP < 10.0
- GATKCutoffEndOfReads – QD < 10.0 и AD[1]/(AD[1]+AD[0]) < 0.25 и ReadPosRankSum < 0.0
- GATKCutoffSNP – QD < 4.0 или FS > 60.0 или MQ < 30.0 или MQRankSum < -13.5 или ReadPosRankSum < -8.0
- GATKCutoffIndel – QD < 4.0 или FS > 200.0 или SOR > 10.0 или ReadPosRankSum < -20.0
- CNN-SNP-tranche – 99.9
- CNN-INDEL-tranche – 99.5
Ни один из вариантов не удаляется – итоговые таблицы и VCF-файлы содержат все варианты, полученные в результате поиска, фильтрация предназначена для облегчения последующей интерпретации и оценки достоверности обнаруженных мутаций.
Фильтрация соматических вариантов
Постобработка вариантов производится инструментами CalculateContamination, LearnReadOrientationModel и FilterMutectCalls из пакета GATK4. С помощью набора из 20 фильтров оценивается вероятность ошибки для каждого из вариантов по трем категориям: технические артефакты, несоматические замены и ошибки секвенирования. Используются следующие обозначения:
- clustered_events – превышено пороговое количество отфильтрованных вариантов в регионе сборки (>2)
- duplicate_evidence – подозрение на наличие дубликатов в прочтениях с альтернативным аллелем
- multiallelic – превышено пороговое количество альтернативных аллелей (>1)
- base_quality – среднее значение качества оснований альтернативных прочтений ниже порога (<20)
- mapping_quality – среднее значение качества картирования альтернативных прочтений ниже порога (<30)
- fragment_length – средняя длина альтернативных прочтений сильно отличается от средней длины референсных прочтений
- read_position – средняя позиция мутации находится слишком близко к одному из концов альтернативных прочтений
- panel_of_normals – вариант присутствует в панели нормальных образцов
- germline – вариант имеет признаки герминального
- slippage – вариант находится в регионе гомополимеров или тандемных повторов
- strand_bias – альтернативный аллель содержится в прочтениях преимущественно одного направления
- haplotype – вариант находится вблизи уже отфильтрованного варианта в том же гаплотипе
- contamination – наличие варианта обусловлено контаминацией
- weak_evidence – вариант не достиг порога вероятности
- orientation – замена обусловлена химическими изменениями оснований, произошедшими только в одной цепи
- normal_artifact – технический артефакт, присутствующий в нормальном парном образце
Нормализация VCF-файлов
Для корректной работы с базами аннотаций все варианты выравниваются по левому краю (left normalization), мультиаллельные варианты разделяются, списки вариантов проверяются на уникальность значений.
Аннотирование вариантов
Аннотация каждого варианта выполняется по следующим источникам данных:
- RefSeq (гены и транскрипты, положение по кДНК и аминокислотной последовательности по правилам HGVS)
- LRG (выбор транскрипта по умолчанию)
- база эффектов сплайсинга
- dbSNP
- gnomAD
- OMIM
- ClinVar
- HGMD (публичная)
- поля VCF (глубина прочтений, аллельный баланс, качество, гомополимерное окружение, повторы и т.д.)
- алгоритмы предсказания патогенности SIFT, PolyPhen HDIV/HVAR, Mutation Taster, FATHMM, CADD, DANN, M‑CAP, REVEL, BayesDel, ClinPred, LIST-S2
- локальная база патогенных мутаций