Хабрахабр

[Перевод] Введение в геномику для программистов

Об авторе. Энди Томасон — ведущий программист Genomics PLC. Он с 70-х годов занимается графическими системами, играми и компиляторами; специализация — производительность кода.

Гены: краткое введение

Геном человека состоит из двух копий примерно по 3 миллиарда пар оснований ДНК, для кодирования которых используются буквы A, C, G и T. Это около двух бит на каждую пару оснований:

3 000 000 000 × 2 × 2 / 8 = 1 500 000 000 или около 1,5 ГБ данных.

На самом деле эти копии очень похожи, и ДНК всех людей практически одинаков: от торговцев с Уолл-Стрит до австралийских аборигенов.

Эталонные геномы помогают построить карту с конкретными характеристикам, которые присутствуют в ДНК человека, но не уникальны для конкретных людей.
Например, мы можем определить «местоположение» гена, который кодирует белок BRCA2, отвечающий за восстановление ДНК при раке молочной железы: вот этот ген. Существует ряд «референсных геномов», таких как файлы Ensembl Fasta.

Он находится в хромосоме 13, начиная с позиции 32315474 до 32400266.

Генетические вариации

Люди настолько похожи, что для представления человека обычно достаточно хранить небольшой набор «вариаций».

Со временем наша ДНК повреждается космическими лучами и ошибками копирования, поэтому ДНК, которую родители передают детям, немного отличается от их собственной.

Рекомбинация ещё больше перемешивает гены, так что ДНК ребёнка наследует от каждого родителя смесь ДНК бабушек и дедушек с этой стороны.

Обычно они сохраняются в файле VCF (Variant Call Format). Поэтому для каждого изменения нашей ДНК достаточно сохранить только различия от эталонного генома.

Как и почти все файлы в биоинформатике, это файл типа TSV (текстовый формат с разделением табами).

Он подсвечивает фрагменты, где ДНК соответствует ожидаемым последовательностям. Вы можете получить собственный файл VCF у компаний вроде 23 and Me и Ancestry.com: платите относительно небольшие деньги и отправляете образец, который секвенируется на ДНК-микрочипе.

Сокращённый пример из спецификаций VCF:

##fileDate=20090805
##source=myImputationProgramV3.1
##reference=1000GenomesPilot-NCBI36
##phasing=partial
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA00001 NA00002 NA00003
20 14370 rs6054257 G A 29 PASS NS=3;DP=14;AF=0.5;DB;H2 GT:GQ:DP:HQ 0|0:48:1:51,51 1|0:48:8:51,51 1/1:43:5:.,.

Здесь у нас три человека с именами NA00001, NA00002 и NA00003 (мы в мире генетики очень серьёзно относимся к безопасности персональных данных), у которых в позиции 14370 хромосомы 20 есть определённые отличия 0|0, 1|0 и 1|1 от G до A.

Мне не повезло, что у меня только одна Х-хромосома, поэтому я унаследовал дальтонизм от деда через мать). На человека приходится два числа, поскольку у всех нас две копии хромосомы 20 (по одной от каждого родителя; исключение составляют только половые хромосомы).

Возможны такие варианты:

0|0 обе хромосомы соответствует эталонному образцу
1|0 и 0|1 только одна хромосома отличается от эталона
1|1 обе хромосомы отличаются от эталона

Файлы VCF считаются «фазированными», если можно выяснить, на какой конкретно хромосоме находится вариант или, по крайней мере, где он расположен относительно соседей. На практике трудно сказать, из какой хромосомы произошла ДНК, поэтому приходится строить догадки!

Это гаплотипы или вариации отдельных хромосом. Таким образом, у нас есть битовый вектор 001011, которого достаточно, чтобы классифицировать трёх людей в этой вариации.

Исследования GWAS

С помощью этого битового вектора мы можем попытаться выяснить, какие части генома влияют на болезни или другие индивидуальные свойства, такие как цвет волос или рост. Для каждого варианта мы строим гаплотип для измеряемых признаков (фенотип).

Он сопоставляет вариации с данными наблюдений. GWAS (Genome wide association study, полигеномный поиск ассоциаций) является основой генетического анализа вариантов.

Например:

Haplotype Height Person
0 1.5m NA00001
0 1.5m
1 1.75m NA00002
0 1.75m
1 1.95m NA00003
1 1.95m

Обратите внимание, что у каждого два гаплотипа, потому что у нас пары хромосом.

Здесь мы видим, что варианты 1 связаны с более высоким ростом, а значения соответствуют линейной регрессии:

beta Изменение роста с изменением вариации.
standard error Показатель погрешности.

На практике в данных действительно много шума, а погрешность обычно больше, чем beta, но часто у нас есть несколько вариантов, где beta намного превышает погрешность. Это соотношение — Z-оценка и связанное с ней p-значение — показывает, какие варианты с наибольшей вероятностью влияют на рост.

Самый простой способ осуществить регрессию — применить инверсию Мура — Пенроуза.

Составляем ковариационную матрицу 2×2 со скалярным произведением двух векторов, а решаем задачу методом наименьших квадратов.

У нас триллионы точек данных, поэтому важно сделать это эффективно.

Проклятие неравновесного сцепления

Поскольку мы наследуем от родителей большие фрагменты генома, то определённые области ДНК выглядят очень похоже: они гораздо более похожи, чем это диктует случай.

Это означает, что различий недостаточно для определения вариаций, которые вызвали изменение фенотипа. Для нас это хорошо, поскольку гены продолжают работать так же, как у предков, но плохо для исследователей геномики.

Неравновесное сцепление (LD) определяет, насколько похожи два вектора с вариациями.

Оно вычисляет значение между -1 и 1, где

-1 Совершенно противоположные вариации. 0 Вариации не похожи. 1 Вариации абсолютно одинаковы.

Для определения схожести вариаций создаём большие квадратные матрицы LD для определённых мест в геноме. На практике многие из вариаций вокруг этого места почти идентичны варианту в середине.

Матрица выглядит примерно так, с большими квадратами сходства.

v0 v2 v4 v6 v8 va vc ve vg v1 v3 v5 v7 v9 vb vd vf
v0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 v1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
v2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
v3 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
v4 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
v5 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
v6 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
v7 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
v8 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
v9 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
va 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
vb 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
vc 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
vd 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
ve 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
vf 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
vg 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Реальные значения не 0 или 1, но очень похожи.

Из-за этого v0..v7 отличается от v8..vg. В промежутке между v7 и v8 произошла рекомбинация.

Проблема сходства в том, что мы знаем, что один из вариантов в группе что-то вызвал, но не знаем, какой.

Это ограничивает разрешение нашего геномного микроскопа, и для решения проблемы придётся использовать дополнительные методы, такие как функциональная геномика.

Заключение

В конце концов, никогда нельзя быть уверенным на 100%, какой именно участок генома вызвал конкретную индивидуальную особенность, в этом суть генетики. Биология — не точная машина с идеальными деталями фабричного изготовления. Это кипящая масса случайностей, которые каким-то образом создают то, что мы называем жизнью. Вот почему так важна статистика, или «машинное обучение», как теперь её модно называть.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть