Алгоритмы

Удаление адаптеров

Входные пары файлов 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
  • локальная база патогенных мутаций