Подведение итогов экспериментов по неформальному моделированию адмикса в популяциях

Выполняю с небольшим опозданием данное ранее обещание и расскажу о слабых местах выявления процентов этнического происхождения с помощью анализа результатов ДНК-тестирования. Последние лет пять этот тип изучения этно-популяционного происхождения с привлечением данных генетики вошел в моду — в 2011 году, когда я первый раз провел подобный анализ существовало все 2 крупные компании в пакет клиентских услуг которых входило проведение подобных анализов клиентских данных. Ровно столько же было заметных в инете любителей, предлагающих более развернутый и разжеванный вариант подобного разбора этнопроисхождения добровольных участников своих проектов. Главным инструментым и тех и других являлись программы типа Admixture и STRUCTURE (разработанные академическими биоинформатиками для решения одной из задач популяционный генетики — а именно определения этнической субструктуры в структуре изучемых в ходе конкретного исследования национальной или региональной выборки народонаселения).
Прошло лет 6, я провел более тысячи подобных экспериментальных анализов — на принципиально разных выборках и образцах аутосомных снипов представителей разных народов. Каждый из таких экспериментов хотя бы немного отличался от других — и не только числом заранее заданных предковых компонентов этнических популяций, но и разнообразием самих этих популяций, их числом и качеством генетипированных в этих популяциях снипов, — например степенью сцепления снипов между собой, процентом минорных вариантов, количеством снипов, соотношение гомо- и гетерозиготных аллельных вариантов. На первом этапе основной проблемой являлась недостаточная представленность отдельных этносов в выборке вкупе с неполным совпадением популяций по числу генотипированных снипов
Позднее я частично научился обходить проблему за счет импутирования аллельных вариантов недостающих (негенотипированных) снипов по большим референсным панелям. В частности используемый Сергеем Козловым калькулятор K27 был сделан мною как раз с использованием таких импутированых вариантов.
Еще позже — после прорыва в области изучения палеоДНК — появилась возможность не угадывать предковые компоненты слепым перибором числка K (предковых компонентов), а задавать заведомо предковые популяции людей (жителей мезолита, неолита и бронзового века) в качестве чистых предковых популяций К современного народонаселения. Таков, например мой этнокалькулятор K11 Ancient, загруженный зимой этого года на Gedmatch.
Всего же за это время я разработал не менее 60 разных моделей в интервале от K=7 до K33, причем для многих K я разработал сразу несколько моделей.

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

























































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

Главная причина — в силу своего перфекционизма я не был доволен точностью определения частот конкретных предковых компонентов в состав генома отдельно взятых людей. Кроме того, этой зимой в ходе бесед с подобным же любителем насчет проблем Admixture, мы обнаружили ряд причин, приводящих при анализе данных отдельно взятых людей к странным и заведомо неверным комбинациям этнического раскалада предков.
Есть еще одна причина — перенасыщение данного маленького сегмента на рынке инетрпретации генетических данных. В настоящий момент существует уже целый ряд компаний (не менее дюжины), вышедших на рынок ДНК-генеалогии в относительно недавнее время. Каждая из них разработала свой алгоритм и красивый графический интерфейс для визуализации данных по прогнозируемому этнопроисхождению клиента. Увеличилось число крепких и активных любителей (я знаю не менее 10 таких людей), занимающихся в принципе тем же самым, причем иногда качества полученных ими моделей этнического происхождения выше таковых в коммерческих компаниях. Благодаря их усилиям, число доступных этнопопуляционных калькуляторов увеличилось буквально в разы.

Но перейдем к конкретике. Часто люди систематически получают странные результаты — таких примеров можно приводить много. Причем иногда такие странные и неверные расклады можно встретить в больших этнических сообществах — например у чеченцев стабильно в MyHeritage выскакивают в раскаладе предковых групп одинаковые 10-15% жителей Британских остров.
Этот, конечно, нелепый пример, отлично иллюстрирует первую проблемы, связанную с разделением выборки и клиентской базы на кластеры. В отличии от любителей; большинство коммерческих компаний (за исключенеим разве что FTDNA, где алгоритм опеределения процентов этнического происхождения разработал как раз любитель) не занимаются поисками настоящих предковых компонентов — вроде европейских охотников-собирателей, земледельцев и скотоводов бронзового века. Вместо этого все образцы популяций — преимущественно из академических источников — объединяются по географическому признаку в отдельные кластеры — например скандинавский или балканские кластеры. Кластеры задаются как условные предковые компоненты (их может быть довольно много — как например в компании AncestryDNA), якобы позволяющие в данном случае более точно выявить недавнее этнопопуляционное происхождение клиента. И что хуже всего в эти же кластеры включают данные самих клиентов — очень часто просто со слов клиента о своем этническом происхождении (как было в своем время в 23andme), хотя в последнее время в некоторых компаниях (AncestryDNAO) алгоритм усовершенствовали путем включения дополнительных фильтров для отсеивания (например с помощью определения в анализе главных компонентов резко отличающихся и резко выделяющихся в плане этнического происхождения клиентов). Тем не менее, даже самое методичное применение всевозможных дополнительных фильтров не может гарантировать повышение точности предика этнического происхождения. Проблема что в человеческих популяциях — за исключением небольшого количества изолированных задрейфованных популяций вроде нганасан, чукчей, ульчей, калашей, папуасов — ни в одной из этнических групп компоненты не являются дискретными, а представляют собой градиенты частот аллелей, очень часто с большим расбросом из-за чего хвосты частот распределния этих частот перекрываются. На практике этот феномен приводит к появлению в индивидуальных клиентских данных фантомных компонентов — например у европейцев часто появляются всевозможные невозможные компонентоы происхождения — Amerindian, Papuan, Onge и так далее. Подобный подход только вносит сумятицу или — говоря статистическим языком — шум в результаты.

Очевидно, что данная проблема связана с классической проблемой статистики — проблемой организации и подразделения выборки. Схожей по характеру проблемой являеется проблема разнообразия выборки используемой для определения компонентов происхождения. Очевидно, что очень сложно впихнуть все генетическое разнообразие человечества в относительно небольшую выборку — даже еслии ее размер достигает полмиллиона или больше образцов (как у 23andme). Проблема в сверхпредставленности отдельных этнических или квазиэтнических групп в подобных базах данных (западных европейцев, американцев, финнов, ашкеназов и так далее). При неравномерности выборки наблюдается другой классический статистический эффект — искажение результатов выборки в сторону наиболее представленных групп (как было в свое время в 23andme, когда наблюдался эффект сверхпредставленности евреев-ашкеназов в количестве так называех генетических совпаденцев).
Еще одна схожая проблема — в количестве совпадающих снипов (одинакового числа снипов) между тестируемыми индивидуальными образцами и референсными группами. Это проблема затрагивает, правда, только калькуляторы разработанные любителями на базе DIYDodecad — в алгоритмах коммерческих компаний число снипов в рефренсных популяциях и индивидуальных образцах одинаково, т.к. анализируются только те образцы, которые тестировались самой компанией. В вышеупомянутых же этнопопуляционных калькуляторах анализируемые всегда «кроссплатформены» — и если разработчик использовал для разработки калькулятора только те снипы, которые содержаться в чипах 23andme, тогда при анализе данных полученных в компаниях FTDNA или AncestryDNA совпадением снипов будет частичным (так как снипы генотипируемые в этих компаниях совпадают лишь частично). В итоге ситуация в которой сравниваются аллельные частоты снипов референсных популяций (полученные при одном количестве снипов) с аллельными частотами снипов индивида (полученные при совсем другом количестве снипов). Элементарная логика подсказывает что в таком случае будет наблюдаться искажение результатов в совершенно непредсказуемую сторону.
К счастью, у обеих проблем есть разумные решения. Число совпадающих снипов между чипами FTDNA, 23andme (разных версий) и AncestryDNA составляет примерно 300 000, что достатчно для создания калькуляторов приемлемых для анализа данных от всех этих компаний. Решение первой же проблемы тоже есть, но его стоимость немыслимо выскоа — необходимл использовать примерно несколько десятков миллионов ПОЛНЫХ геномов популяций людей со всего мира. Разумеется, никакие любители никогда в жизни не смогут собрать такое количество данных необходимых для создания сверхточных калькуляторов.

Все вышеперечисленные проблемы — сущая мелочь в сравнении с настоящими проблемами, обусловленными алгоритмической стороной вопроса. Дело в том, что все компании (и разумееися любители) — так или иначе — при вычислении аллельных частот в компонентах референсных популяций используют программы использующие парадигму Admixture/Structure. А они используют ML-алгоритмы, минимизирующие ГРУППОВЫЕ частоты аллелей между всеми образцами выборки, т.е. аллельные частоты ПОЛНОСТЬЮ зависят от состава исходной выборки, даже в случае так называемого supervised («обучаемого») анализа, в ходе которого некоторые популяции принимаются за исходные «чистые предковые группы». Поскольку в ранних версиях Admixture, отсутствовала опция фиксирования одной из вычисляемых матрицы (P- матрица аллельных частот снипов в каждом из гипотетических компонентов происхождения; Q-матрица — матрица индивидуальных коэффициентов вклада предковых компонентов в индивидуальный геном с общей построковой суммой в 100%), и практически все компании использовали один и тот же алгоритм (он в во всех подобных программх схож — хотя разняться его имплементации и способы оптимизации функции правдоподобия), то все они подвергнуты искажению истинных частот аллелей. Этот косяк вносит решающий вклад в появление фантомных компонентов происхождения.

То, что вычисленные таким способом значения (скажем русского) могут очень сильно отличаться в сравнении с индивидуальными частотами аллелей (для примера такого же русского из той же скажем Орловской области) — было впервые замечено геномным блоггером Polako.
К сожалению, в силу своем личной ненависти к первоначальному разработчику DIYDodecad — греку Диенекису Понтикосу — он не смог дать формальное объяснение феномена и назвал этот феномен «эффектом калькулятора» (как бы намекая на косорукость кода этой утилиты). На самом деле сам калькулятор здесь не причем — все дела в приниципиальных различиях между определение происхождения на основании частот аллелей вычисленных по группе образцов и тем же самым вычислением аллелей, но уже не в группе, а в индивидуальныом порядке. В этом легко убедиться самому — возьмите клиентские данные, например, норвежца. Вставьте его в большую выборку образцов (например 2000 человек) и прогоните в программе ADMIXTURE задав такое количество гипотетических предковых популяций (K), при котором становится заметна субструктура генофонда популяций на внутриконтинентальном уровне. А затем возьмите того же самого норвежца, но уже в единственном числе, и зафиксировав полученные в предыдущем шаге аллельные частоты в виде предковых популяций. Вы увидите, что различия между результатами анализа одних и тех же данных могут достигать 20 а то и более процентов. Это-то и есть ядро так называемого пресловутого эффекта калькулятора. Очевидно, что и Оракул (т.е. инструмент определения ближайших к клиенту этнических популяций а также моделирования происхождения клиента через набор из 2, 3, 4 популяций) в этом случае (искаженных аллельных частот) будет искусственно создавать фантомные предковые популяций. Например, у русского из Владимирской области могут появиться в качестве шведы,
эстонцы или англичане из Кента.

Строго говоря, первым написал об этой проблема некий Vikas Bansal — автор программы iAdmix:

«For comparison, we also ran ADMIXTURE (in supervised mode using the HapMap reference panel of individuals) on the same dataset (see Figure 1(b)). The European and African admixture estimates for each individual were highly consistent between the two methods. For some individuals, the European component of ancestry using our method was split between the TSI and CEU populations. This could reflect one important difference between the two methods in how they use data from reference individuals. Our method finds a maximum likelihood estimate of the admixture coefficients for each individual using the fixed set of allele frequencies. In contrast, ADMIXTURE, in the supervised mode, utilizes data for all individuals (both the reference populations and the individual(s) being analyzed) to estimate the allele frequencies for each cluster or population and maximize the likelihood function summed across all individuals. Therefore, the allele frequencies are determined not only by the genotypes of the reference individuals but also by the individual(s) that are analyzed for admixture. To confirm this, we estimated allele frequencies by running ADMIXTURE twice: (1) using 800 reference individuals simulated using allele frequencies for 8 HapMap populations (100 individuals per population, see previous section) and (2) 800 reference individuals and 1 additional individual with 100% CEU ancestry simulated using the HapMap allele frequencies. Subsequently, we used our method to estimate admixture coefficients for the simulated CEU individual using the two sets of allele frequencies separately. We found that using the first set of allele frequencies, the admixture coefficients for both CEU and TSI were non-zero. In contrast, using the second set of allele frequencies, only the CEU admixture coefficient was non-zero. This was similar to the results observed in the analysis of the Mozabite data and provided an empirical validation of our hypothesis regarding the difference in the admixture coefficients estimated by the two methods.»

Реклама

Формальный анализ смешивания предковых популяций: белорусы, часть 2

Итак, после определения значимых для формального статистического моделирования комбинаций предковых популяций (или вернее, их суррогатов) представляется возможным смоделировать две вещи. Во-первых, необходимое с точки зрения статистики, число «импульсов» или «потоков» смешивания, а во-вторых, пропорции вклада «предковых» групп в генофонд белорусов.

Результаты анализа в программах qp3Pop и qpDstat показали, что в референтной группы белорусов присутствуют сигналы смешивания трех групп — мезолитических охотников-собирателей Европы (WHG), неолитических популяций земледельцев с Ближнего Востока и cибирских охотников-собирателей (чьи потомки в составе индоевропейцев) распространили свои гены по всей Европе.

Но меня больше интересует вопрос оценки величины доли вклада так называемого «базального компонента»(Basal Eurasian):

«четвертый элемент» — тот «базальный» компонент генофонда Европы, который проявился при моделировании истории сложения генофонда Европы в работе [Lazaridis et al., 2014] (см. раздел 8.4, рис 8.20) — предковой евразийской группой, которая внесла свой большой вклад и в геном неолитических земледельцев. Из аналогичной по методам модели, созданной в рассматриваемой работе [Seguin-Orlando et al., 2014], следует (рис. 8.6), что в геном человека из Костенок эти таинственные «базальные евразийцы» внесли не менее важный вклад, чем и верхнепалеолитические западные евразийцы. Также из модели следует, что он имел и общих, хотя и более отдаленных предков с древними северными евразийцами восточного ствола.

В этих целях я решил использовать в качестве суррогата базального евразийского генома геном Mota (древнего жителя Африки), примерно половину генома которого составлял тот самый пресловутый базальный компонент (результат обратных миграций натуфийского населния Ближнего Востока в восточную Африки)

Итак, в начале используем программу qpWave из того же пакета Admixtools

parameter file: qpWave.par

THE INPUT PARAMETERS

##PARAMETER NAME: VALUE
indivname: data.ind
snpname: data.snp
genotypename: data.geno
popleft: left
popright: right
maxrank: 6

qp4wave2 version: 200

left pops:
Levant_N
Mota
WHG
EHG

right pops:
Han
Onge
Papuan
Kostenki14
Ust_Ishim
Siberian_Upper_Paleolithic

0 Levant_N 13
1 Mota 1
2 WHG 2
3 EHG 3
4 Han 33
5 Onge 15
6 Papuan 14
7 Kostenki14 1
8 Ust_Ishim 1
9 Siberian_Upper_Paleolithic 1
jackknife block size: 0.050
snps: 572603 indivs: 84
number of blocks for block jackknife: 719
dof (jackknife): 631.955
numsnps used: 177238
f4info:
f4rank: 0 dof: 15 chisq: 574.447 tail: 9.47752373e-113 dofdiff: 0 chisqdiff: 0.000 taildiff: 1

<cf4info:
f4rank: 1 dof: 8 chisq: 115.553 tail: 2.7408605e-21 dofdiff: 7 chisqdiff: 458.894 taildiff: 5.4614954e-95
B:
scale 1.000
Onge -0.475
Papuan -0.521
Kostenki14 0.069
Ust_Ishim -0.746
Siberian_Upper_Paleolithic 1.986
A:
scale 290.851
Mota -0.932
WHG 0.299
EHG 1.429

f4info:
f4rank: 2 dof: 3 chisq: 8.502 tail: 0.036691843 dofdiff: 5 chisqdiff: 107.050 taildiff: 1.7204978e-21
B:
scale 1.000 1.000
Onge -0.462 -0.050
Papuan -0.522 -0.105
Kostenki14 0.288 2.189
Ust_Ishim -0.733 0.378
Siberian_Upper_Paleolithic 1.973 -0.232
A:
scale 286.604 578.115
Mota -0.951 -1.197
WHG 0.385 0.752
EHG 1.396 -1.001

f4info:
f4rank: 3 dof: 0 chisq: 0.000 tail: 1 dofdiff: 3 chisqdiff: 8.502 taildiff: 0.036691843
B:
scale 1.000 1.000 1.000
Onge -0.400 -0.203 1.065
Papuan -0.459 -0.258 0.882
Kostenki14 0.299 2.175 0.273
Ust_Ishim -0.645 0.116 1.513
Siberian_Upper_Paleolithic 2.031 -0.382 0.850
A:
scale 282.949 595.536 1395.824
Mota -0.857 -1.172 0.944
WHG 0.466 0.827 1.449
EHG 1.431 -0.971 0.093

## end of run

Нас интересует статистика f4rank 2, и как видно она убедительна: chisq: 8.502 tail: 0.036691843 dofdiff: 5 chisqdiff: 107.050 taildiff: 1.7204978e-21.  То есть, для моделирования референсной популяции достаточно трех «источников» (в f4rank 3, т.е с 4 предковыми популяциями, статистика гораздо хуже: chisq: 0.000 tail: 1 dofdiff: 3 chisqdiff: 8.502 taildiff: 0.036691843 ).

Следующим этапом будет оценка пропорций «адмикса», образованного смешением трех «источников»:

 

parameter file: qpAdm.par

THE INPUT PARAMETERS

##PARAMETER NAME: VALUE
genotypename: data.geno
snpname: data.snp
indivname: data.ind
popleft: left
popright: right
maxrank: 8

qpAdm version: 200

left pops:
Belarusian
Mota
WHG
EHG
right pops:
Han
Onge
Papuan
Kostenki14
Ust_Ishim
Siberian_Upper_Paleolithic
0 Belarusian 25
1 Mota 1
2 WHG 2
3 EHG 3
4 Han 33
5 Onge 15
6 Papuan 14
7 Kostenki14 1
8 Ust_Ishim 1
9 Siberian_Upper_Paleolithic 1
jackknife block size: 0.050
snps: 572603 indivs: 96
number of blocks for block jackknife: 719
dof (jackknife): 628.796
numsnps used: 227599
codimension 1
f4info:
f4rank: 2 dof: 3 chisq: 20.724 tail: 0.000120097824 dofdiff: 5 chisqdiff: -20.724 taildiff: 1
B:
scale 1.000 1.000
Onge -0.502 0.176
Papuan -0.562 0.218
Kostenki14 0.442 2.074
Ust_Ishim -0.735 0.779
Siberian_Upper_Paleolithic 1.923 -0.110
A:
scale 285.645 552.926
Mota -1.490 -0.238
WHG 0.017 1.685
EHG 0.883 -0.324
full rank 1
f4info:
f4rank: 3 dof: 0 chisq: 0.000 tail: 1 dofdiff: 3 chisqdiff: 20.724 taildiff: 0.000120097824
B:
scale 1.000 1.000 1.000
Onge -0.502 0.178 0.403
Papuan -0.599 0.280 0.995
Kostenki14 0.455 2.029 -0.773
Ust_Ishim -0.773 0.879 1.373
Siberian_Upper_Paleolithic 1.893 0.008 1.168
A:
scale 288.199 555.700 1346.772
Mota -1.449 -0.056 0.947
WHG 0.026 1.726 0.141
EHG 0.948 -0.132 1.444
best coefficients: 0.318 0.148 0.534
ssres:
0.000295769 0.000789821 0.000059100 0.001247609 0.001271289
0.335431254 0.895733409 0.067025433 1.414909018 1.441765444

Jackknife mean: 0.316895017 0.150748678 0.532356305
std. errors: 0.035 0.067 0.045
error covariance (* 1000000)
1212 -1838 625
-1838 4506 -2668
625 -2668 2043
fixed pat wt dof chisq tail prob
000 0 3 20.724 0.000120098 0.318 0.148 0.534
001 1 4 125.483 0 -0.088 1.088 0.000 infeasible
010 1 4 25.750 3.55457e-05 0.378 0.000 0.622
100 1 4 102.973 2.28952e-21 0.000 0.702 0.298
011 2 5 336.445 0 1.000 0.000 0.000
101 2 5 127.950 6.47788e-26 0.000 1.000 0.000
110 2 5 184.757 0 0.000 -0.000 1.000
best pat: 000 0.000120098 - -
best pat: 010 3.55457e-05 chi(nested): 5.025 p-value for nested model: 0.0249831
best pat: 101 6.47788e-26 chi(nested): 102.201 p-value for nested model: 5.01661e-24

end of run

Итак, лучшими коэффициентам (пропорциями адмикса) являются 0.318 0.148 0.534. То есть референсная популяция белорусов может быть смоделирована как 30 % базального компонента, 15% компонента мезолитических охотников собирателей и 53% компонента жителей степи бронзового века («индоевропейцев»). Очевидно, что большая часть базального компонента попала в Европу вместе неолитическими земледельцами, а оставшаяся часть — была принесена индоевропейцами.

 

Формальный анализ модели смешивания предковых популяций: белорусы

Перед подготовкой релиза новых калькуляторов K16 и K11 на Gedmatch, я решил провести пилотный (пробный) анализ референсной популяции белорусов (в которую входят публичные образцы из  базы данных HumanOrigin, EGDP новой панели референсных геномов Эстонского биоцентра, а также данные белорусов — участников моего проекта MDLP). Основным инструментом формального анализа надежности модели будет известный и популярный пакет Admixtools.
Перед тем, как дать краткое описание первых шагов, хочу отметить трудности работы с Admixtools — в первую очередь, крайнее низкую степень документированности (описания) практических аспектов работы большинства входящих в пакет инструментов. Данное обстоятельство существенным образом снижает темп изучения этого все более популярного пакета (с другой стороны, похоже что лаконичность изложения задумывалась изначально, для отсеивания слабо мотивированных дилетантов-любителей). Второе обстоятельство, затрудняющее использование Admixtools, заключается в необходимости компилировать отдельные компоненты пакета.

Пакет содержит шесть программ

 

convertf: программа конвертирования форматов
qp3Pop: формальный анализ сигнала "смешивания" в трех популяциях
qpBound: программа, вычисляющая верхнюю и нижнюю границу смешивания в трех популяциях (2 референсные популяции и 1 одна популяция, предположительно образованная за счет смешивания двух референсных популяций) 
qpDstat: формальный анализ "адмикса" в 4 популяциях
qpF4Ratio: программа для определения пропорций адмикса за счет проведения 2 f4-тестов
rolloff:  программа датировки адмикса.

В приницпе, четкого порядка работы с этими программами нет, однако авторы рекомендуют следовать приведенному списку (т.е. начинать с qp3Pop и заканчивать rolloff)

Outgroup-статистика f3 является крайне полезным аналитическим инструментом для понимания взаимных отношений разных популяций: основная задача теста состоит в определении характера этих отношений. Образована ли целевая популяция (target) за счет смешивания двух рефересных популяций, или же  популяции представляют собой две простые ветви популяционного дерева человечества (т.е. в образовании таргетной популяций не участвовали референсные популяции)

Статистика f3, так же, как два других вида статистик — f4 и f2 — представляют собой меру корреляции частот аллелей между рассматриваемыми популяциями. Все эти виды статистик были введены в научный оборот попгенетики биоинформатиком Ником Паттерсоном в статье 2012 года.

Статистика f3 используется в двух целях:

  1. в качестве теста  сигнала «адмикса» двух популяций-источников (A и B) в «целевой популяции» (С)
  2. для измерения общего разделяемого дрейфа двух тестовых популяций  (А и В) по отношению к  внешней группе (С).


В этой публикации я приведу пример первого случая использования. Статистика f3 в обоих случаях определяется как произведение разниц частот аллелей  между популяции C, А и В, соответственно:

  1. F3=<(c-a)(c-b)>

Итак, первый случай употребления (для определения сигнала смешивания), белорусы выступают в качестве тестовой популяции, две референсные популяции образованы пермутацией имеющихся у меня популяций

Итак, промежуточные результаты (я выбрал только комбинации с негативным значением Z, свидетельствующие о сигнале смешивания) :

Следующий тип статистики — f4, — реализован в программе qpDstat в виде D-статистки. Это формальный тест адмикса четырех групп (таксонов или популяций), позволяющий определить направления потока вливания генов. Немного теории:

Для любых 4-х популяций (W, X, Y, Z), qpDstat вычисляет D-статистику следующего вида

num = (w — х) (у — z)
den = (w + х — 2wx) (у + z — 2yz)

D = num / den

Результат qpDstat показывает направления вливания генов. Таким образом, для 4 групп (W, X, Y, Z) верно следующее положение:

Если значение Z положительное ( + ), то обмен генами происходил либо между W и Y, либо между X и Z
Если значение Z отрицательное (-), то обмен генами происходил либо между W и Z,  либо между X и Y.

 Кроме определения направления генного дрейфа, очень важным практическим применением D-статистики служит определения «левых» и «правых» популяций для теста qpAdm (о нем чуть позднее). Так, например,  комбинация из двух первых популяций left {L,L}  и двух правых популяций {R, R} должна быть выбрана таким образом, чтобы значение Z в D-статистике
a) было неотрицательным, и b) имело высокое абсолютное значения.  Я решил последовать совету и сгенерировал 225822 комбинаций из четырех популяций {W,Y,X,Z}, где W — фиксированная первая таргетная популяция «левого» списка, в нашем случае белорусы, Y — одна из имеющихся групп палеогеномов, X и Z — пермутация из 16 «чистых» современных популяций описанных в работе Lazaridis et al. 2016.

Итак, вот результаты (и снова я не привожу полный список, а только те комбинации, которые могут быть использованы для выбора состава «левых» и «правых» популяций.  и последующего моделирования в qpAdm):

SNPweights: использование модели калькулятора K16 для анализа главных компонентов происхождения

Ранее я уже отрапортовал о создании двух новых моделей для стандартного этно-популяционного калькулятора, в разработке которых использовались геномы людей, cамостоятельно указавшими свое происхождение (self-reported ancestry).
К сожалению, очень часто субъективная оценка собственного происхождения (указываемого респондентами в опросниках) недостаточно надежна для статистических методов анализа происхождения, поскольку некоторые люди либо сообщают ложные сведения о своей родословной или же просто не знают о своем истинном происхождении. Что еще хуже, — во многих публичных популяционных выборках мы не находим никаких  сведений о точном этническом составе людей в выборке . Как многие из вас знают,  существует множество способов достаточно точной оценки происхождения индивида на основе данных SNP генотипирования.

Самый простой способ сводится к следующему: сначала исследователь объединяет генотипы из своего исследования с генотипами образцов в референсной панели (например: HapMap или 1000 геномов),  затем находит пересечение SNP-ов в каждом наборе данных, а затем запускает программу кластеризации, чтобы увидеть, каким образом образцы исследования группируются с популяциями референсных панелей.  В принципе,  сам процесс несложный, но требует немало времени

К счастью, в 2014 году лабораторией Alkes была предложена программа которая, по сути, значительно облегчает процесс, выполняя большую часть работу за вас. Программа называется SNPWEIGHTS и можно скачать здесь.  Говоря простым языком, программа принимает  в качестве входных данных генотипы SNP-ов, самостоятельно находит пересечение генотипов SNP с генотипами в эталонной выборке , рассчитывает веса SNP-ов на основе предварительно настроенных параметров, чтобы построить первую пару главных компонентов (иначе говоря,  cобственных векторов), а затем вычисляет процентное значение происхождения индивидуума из каждой предковой популяции (кластера).

Для того, чтобы запустить программу, необходимо убедится в том, что в вашей системе установлен Python, и что ваши данные генотипирования приведены в формате EIGENSTRAT. Краткую инструкции по преобразованию в формат EIGENSTRAT с помощью инструмента convertf можно почитать здесь.  Данные аутосомного генотипирования FTDNA или 23andme можно напрямую преобразовать в формат EIGENSTRAT с помощью утилиты aconv от Феликса Чандракумара (либо любого самописного софта).

Затем необходимо загрузить сам пакет SNPWEIGHTS и референтную панель с весами снипов.

  • Панель весов SNP для популяций Европы и Западной Африки можно скачать здесь.
  • SNP веса для населения Европы, Западной Африки и  Восточной Азии можно скачать здесь.
  • SNP веса для населения Европы, Западной Африки, Восточной Азии и популяций американских индейцев можно скачать здесь.
  • SNP веса для популяций северо-западной, юго-восточной части Европы, ашкеназских евреев и можно скачать здесь.

Затем необходимо создать файл параметров par.SNPWEIGHTS с названиями входных файлов EIGENSTRAT, референтной панели, и файл c результатами. Например:

input_geno: data.geno
input_snp: data.snp
input_ind: data.ind
input_pop: CO
output: ancestry.txt

И, наконец, нужно запустиь программу с помощью команды inferancestry.py —par par.SNPWEIGHTS. Для того чтобы программа работала, убедитесь, что inferancestry.info и  файл референтной панели  находятся в том же каталоге, что и файл inferancestry.py.

Полученные результаты можно использовать для разных целей. Например,  можно сгенерировать два информативные графика.

Первый график — обычный график PCA c двумя первыми компонентами (собственными векторами) и наложенный на график процентный расклад компонентов происхождения:

Второй треугольный график, на каждом отрезке которого , представлен процентный вклад одной из трех исконных групп популяции (например: Европы, Африки и Азии, в случае с нашими данными этот пример можно заменить на европейских охотников-собирателей, земледельцев неолита и степных скотоводов эпохи бронзы).

Вот простой код генерирования этих графиков в R. В программе R нет базовых пакетов для построения триангулярных графиков, поэтому  нужно будет сначала установить пакет plotrix. Ancestry.txt  — это файл полученный на выходе из SNPWEIGHTS:

# EV Plot with Percent Ancestry Overlay
data=read.table("ancestry.txt", as.is=T, header=F)
names(data)
plot(data$EV1, data$EV2, pch=20, col="gray", xlab="EV1", ylab="EV2")
text(data$EV1, data$EV2,labels=round(data$EUR,2)100, cex=0.4, offset=0.1, pos=3)
text(data$EV1, data$EV2,labels=round(data$AFR,2)
100, cex=0.4, offset=0.1, pos=2)
text(data$EV1, data$EV2,labels=round(data$ASN,2)*100, cex=0.4, offset=0.1, pos=1)
#Triangle Plot
data$total=data$EUR+data$AFR+data$ASN # Need to account
data$European=data$EUR/data$total # for slight rounding
data$African=data$AFR/data$total # in the ancestry
data$Asian=data$ASN/data$total # estimation file for
data_p=data[c("European","Asian","African")] # triax.plot to work
library(plotrix)
triax.plot(data_p, pch=20, cc.axes=T, show.grid=T)

 

Разумеется, размещенные на сайте разработчика референтные панели носят ограниченный характер. Поэтому я решил заполнить пробелы, преобразовав аллельные частоты SNP-ов в 16 предковых компонентах в 16 синтетических «чистых» предковых популяций, каждая из которых состояла из 200 синтетических индивидов («симулянтов») состоящих на 100 процентов из одного компонента происхождения в модели K16). Файл с генотипами 3200 «симулянтов» я использовал для вычисления весов снипов в каждом компоненте. Продвинутые пользователи, желающие протестировать модель K16 до ее публичного релизма, могут скачать полученный файл с весами снипов  здесь, а затем, cледуя приведенным выше инструкциям, использовать его в качестве референтной панели (а затем сравнить свои результаты с усредненными результатами разных этнических популяций).

Я протестировал веса снипов в модели K16 (выражаю признательность автору программу Чену за помощь), и обнаружил, что между данными калькулятора и данными SNPWEIGHTS расхождения носят незначительный характер, хотя похоже, что SNPWEIGHTS не так сглаживает минорные компоненты происхождения (что позволяет легче выделить в пространстве главных компонент кластеры):

test (1)

Две новые модели для калькулятора DIYDodecad

Закончил на 99% подготовку 2 моделей этно-популяционных калькуляторов ДНК — заточенную под deep ancestry (анализ современных геномов с использование древних геномов) K11 и модель для анализа популяционного происхождения современных популяций K16.

 

В число 16 «предполагаемых предковых» популяций в K16 входят следующие выделенные группы:

Австрало-веддоидная
Палеолитические охотники-собиратели Кавказа
Американские аборигены
Охотники-собиратели скандинавского мезолита
Австронезийцы
Ближневосточные неолитические земледельцы
Сибирские аборигены
Ближне-восточные популяции
Североафриканские популяции
Популяции западной Африки
Северные популяции Индостана
Юго-восточноазиатские популяции
Восточные охотники-собиратели
Неолитическое население Европы
Восточно-африканские популяции
Западноевропейские охотники-собиратели

 

Таблица FST между компонентами K11 (FST — Индекс фиксации Райта Fst, отражающий меру дифференциации популяций)

Кластеризация компонентов модели K11 по степени дифференциации

Таблица FST между компонентами K16

Кластеризация компонентов модели K16 по степени дифференциации

 

На следующем PCA графике отображены 2 группы компонентов — предковые компоненты K16 (полученные в программе ADMIXTURE в ходе анализа современных популяций) и предковые компоненты K11 (они вычислены в той же программе, но на другой выборке аутентичных палеогеномов). Поскольку у пользователей подобных калькуляторов часто возникает вопрос о соотношении компонентов разных моделей калькуляторов, я решил разместить их на одном графике. Методология довольно проста. Сначала я сгенерировал в программе PLINK 220 «синтетических» геномов (20 индивидов в 11 группах). В основу положен предложенный Понтикосом метод популяционных «zombies», в котором используется частоты аллелей снипов, полученных в программе ADMIXTURE. Каждая из 11 групп состоит из 20 «индивидов», геном которых на 100% состоит из одного компонента.
То же самое я сделал с компонентами K16. Затем в целях изучения соотношения компонентов этих двух разных моделей, я пропустил «геномы синтетических индивидов» K16 через калькулятор K11. В итоге выяснилось, что только несколько компонентов K16 полностью совпадают с компонентами K11 (например, Amerindian и African). Остальные компоненты K16 разложились на комбинации компонентов K11. Этот простой эксперимент еще раз подтвердил очевидный факт: предковые компоненты ADMIXTURE, выявленные в ходе анализа современных популяций только в редких случаях соответствуют настоящим предковым компонентам. Большинство подобных компонентов возникают в результате сложного процесса фиксации аллельных частот, например в тех случаях, когда непосредственно после смешивания предковых групп разного происхождения происходит процесс генетического дрейфа. Закон Харди—Вайнберга утверждает, что в теоретической идеальной популяции распределение генов будет оставаться постоянным из поколения в поколение. Так, в популяции растений количество «внуков» с генами высокорослости будет ровно таким же, сколько было родителей с этим геном. Но в реальных популяциях дело обстоит иначе. Из-за случайных событий частота распределения генов из поколения в поколение несколько варьирует — это явление называется дрейфом генов. Рассмотрим крупную размножающуюся популяцию со строго определенным распределением аллелей. Представим, что по той или иной причине часть этой популяции отделяется и начинает формировать собственное сообщество. Распределение генов в субпопуляции может быть нехарактерным для более широкой группы, но с этого момента и впредь в субпопуляции будет наблюдаться именно такое, нехарактерное для нее распределение. Это явление называется эффектом основателя.Дрейф генов сходного типа можно наблюдать и на примере явления с запоминающимся названием эффект бутылочного горлышка. Если по какой-либо причине численность популяции резко уменьшится — под воздействием сил, не связанных с естественным отбором (например, в случае необычной засухи или непродолжительного увеличения численности хищников), быстро появившихся и затем исчезнувших, — то результатом будет случайное устранение большого числа индивидуумов. Как и в случае эффекта основателя, к тому времени, когда популяция вновь будет переживать расцвет, в ней будут гены, характерные для случайно выживших индивидуумов, а вовсе не для исходной популяции.

PCA correlation between K11 and K16 components Вот эта таблица с усредненными значениями «симулянтов» компонентов K16 в калькуляторе K11 (колонки — компоненты K16, столбцы — компоненты K11, их пересечения — проекция компонентов K16 в компоненты K11).

Для облегчения понимания сказанного, приведу немного теории. Начну с основ.

Определение базовых терминов

ADMIXTURE (буквально: примесь) – это компьютерная программа (анализ), позволяющая выявлять смешанность состава некоего набора индивидов на основе данных о генотипах и тем самым строить предположения о происхождении популяции.

Принцип работы ADMIXTURE.

Рассмотрим принцип работы ADMIXTURE на примере образцов и популяций из проекта HapMap.

Всего у нас N = 324 образца/индивида, каждый из которых относится к одной из четырех нижеперечисленных популяций:

АФРИКА (ASW) – Африканские предки из Юго-Западной части США
ЮТА (CEU) – жители штата Юта США с корнями из Северной и Западной Европы
МЕКСИКА (MEX) – Мексиканцы, Лонг-Айленд США
ЙОРУБА (URI) – Йоруба, Нигерия
Для удобства дальнейшего изложения будем называть эти популяции «известными».

Также мы предполагаем, что они произошли от К разных предковых популяций (мы не знаем от каких именно). В дальнейшем будем называть эти предковые популяцие «предполагаемыми предковыми». Этих «предполагаемых предковых» популяций на самом деле не существует, у них нет общепризнанных названий и характеристик. И на этом этапе мы даже не знаем какие образцы к какой из этих К популяций могут быть отнесены. Теоретически возможно, что образцы из одной и той же «известной» популяции могут принадлежать к двум разным «предполагаемым предковым» популяциям.

Пример 1.

Предположим, что К = 3.

ADMIXTURE далее работает с образцами (их генотипами) и заданным нами числом К = 3. Имея сведения о генотипах и предположение о количестве «предполагаемых предковых» популяций (К) ADMIXTURE строит свою модель (предположение) того, каков вклад каждой из «предполагаемых предковых» популяций в каждый индивид. В результате мы имеем для каждого индивида 3 цифры: количественный вклад каждой из трех популяций (или образно говоря, на сколько процентов данный индивид состоит из первой «предполагаемой предковой» популяции, на сколько – из второй и на сколько – из третьей). При этом может быть и такая ситуация, что у конкретного индивида в составе отсутствует какая-то из «предполагаемых предковых» популяций, даже возможно, что он принадлежит только к одной из «предполагаемых предковых» поуляций. Предположим, для индивида №1 эти цифры такие: 0.3, 0.5 и 0.2. Что эти цифры означают? Означают они доли каждой из «предполагаемых предковых» популяций (ППП) в индивиде №1, т.е. индивид состоит на 30% из первой ППП, на 50% — из второй и 20% — из третьей. Чем больше вклад каждой ППП в индивида, тем больше индивид является «носителем» данной популяции и ее представителем.
Так называемый этно-популяционный калькулятор ДНК представляет собой инструмент, позволяющий использовать заранее определенные (вычисленные) компоненты этнического происхождения K для определения той комбинация исходных предковых компонентов дает наилучшее соответствие (аппроксимирует) происхождение носителя тестируемой ДНК.

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

Поэтому, в отличие от предыдущих релизов, K11 и K16 будут включать в себя дополнительный контент:

1) классический Oracle, позволяющий смоделировать анализируемый «геном» (точнее, набор из 100-200 тысяч информативный снипов) в виде комбинации двух референсных популяций, а также установить группу генетически ближайших референсных популяций к геному изучаемого индивида. Однако этот инструмент не может быть использован в случае сложного смешанного происхождения (например, когда изучаемый индивид происходит из более чем двух разных этнических популяций). Иногда программа выдает довольно глупые комбинации, cущественным образом понижая достоверность результатов. Впрочем основное преимущество Oracle и состоит в том, что программа предлагает вместо окончательного «простого» решения список альтернативных вариантов.

Пример: в качестве примера я буду использовать собственные данные.
Исходя из полученных в модели K16 значений компонентов, мой условный наиболее близок к восточнославянским популяциям
«Ukrainian-Center» «2.5884»
«Pole» «3.0962»
«Sorb» «3.1733»
«Polish_West» «3.5992»
«Russian-North-West» «3.7265»
«Russian_Smolensk» «3.834»
«Polish» «4.0348»
«Belarusian_EastBelarus» «4.0852»
«Belarusian_WestBelarus» «4.1216»
«DonKuban_cossack» «4.7769»

В комбинированном варианте двух смешанных популяций распределение предковых компонентов происхождения может быть аппроксимировано следующими комбинациями:

«65.8% Belarusian_EastBelarus + 34.2% Norwegian» «1.1023»
«66.4% Belarusian_EastBelarus + 33.6% Icelandic» «1.1118»
«80.9% Latvian + 19.1% Spanish_Baleares_IBS» «1.1154»
«30% French + 70% Lithuanian» «1.1206»
«29% French + 71% Latvian» «1.1215»
«55% French_West + 45% Lithuanian_Zemajitia» «1.1302»
«28.9% French_East + 71.1% Latvian» «1.1402»
«29% French_Northwest + 71% Latvian» «1.1563»
«72.3% Belarusian_EastBelarus + 27.7% Orcadian» «1.1766»
«57.2% European_Utah + 42.8% Lithuanian_Zemajitia» «1.1825»

Основная часть генома — условно славяно-балтийская (что ожидаемо), но с существенным сдвигом в сторону Скандинавии и западной Европы(примерно 20-30%). Скорее всего, это наследие готов, или контактов балтийских племен с викингами. Интересно, что модель K11 (c использованием современных референсных популяций) дает примерно такой же расклад — разве что древний скандинавско-германский пласт выражен чуть резче чем в модели K16

«Belarusian_West» «2.3841»
«Belarusian» «2.4187»
«Pole_Poland» «2.5278»
«Belarusian_East» «3.7288»
«Russian_Central» «3.7635»
«Swede» «3.9724»
«Russian_cossack» «4.1139»
«Ukrainian» «4.2647»
«Russian_Southern» «4.5204»
«Ukrainian_East» «4.8635»
«66.6% Icelandic + 33.4% Latvian» «1.586»
«41.1% Latvian + 58.9% Orcadian» «1.5898»
«47.9% Lithuanian + 52.1% Orcadian» «1.6007»
«60.2% Icelandic + 39.8% Lithuanian» «1.6082»
«5.7% Basque_Spanish + 94.3% Belarusian» «1.6386»
«5.8% Basque_French + 94.2% Belarusian» «1.6406»
«67.2% Belarusian + 32.8% Swede» «1.659»
«40.2% Lithuanian + 59.8% Norwegian» «1.6876»
«33.7% Latvian + 66.3% Norwegian» «1.689»
«94.1% Belarusian + 5.9% Spanish_Pais_Vasco_IBS» «1.7359

В палеокалькуляторе K11 (т.е. с древними геномами) картинка кажется более убедительной

«Unetice_EBA» «2.7065»
«Bell_Beaker_Czech» «5.0633»
«British_AngloSaxon» «5.1998»
«Nordic_LN» «5.6157»
«Corded_Ware_Proto_Unetice_Poland» «6.3751»
«Nordic_MN_B» «6.3865»
«Halberstadt_LBA» «6.4422»
«BenzigerodeHeimburg_LN» «7.4695»
«Nordic_IA» «7.5404»
«Corded_Ware_Estonia» «7.7635»

Из всех палеогеномов наиболее близок к моему геном представителя унетицкой культуры. Происхождение унетицкой культуры до сих пор не выяснено. Между позднейшими энеолитическими культурами и унетицкой культурой существует типологический и хронологический разрыв. Наибольшее признание в результате последних исследований получило предположение, согласно которому в ее возникновении главную роль сыграли культура колоколовидных кубков и надиревская культура, распространенная в Венгрии (см. ниже). У культуры колоколовидных кубков и унетицкой имеется сходство в керамике, в погребальном обряде и в орудиях труда. Небольшую роль могла сыграть культура шнуровой керамики, хотя в целом они очень различаются. Закономерно, что следующими — хотя и с большим отрывом — близкими к моему геному группами палеогеномов являются геномы древних англосаксов (которые близки к древним скандинавам) и представителей чешского ареала культуры колоковидных кубков).
Аналогично, в режиме смешенных популяций хорошо заметны две тенденции. Во-первых, мой геном может быть представлен в виде комбинации палеогенома представителя позднебронзового века (Хальберштадт) и палеогеномов восточных охотников-собирателей эпохи энеолита, во-вторых как смесь 23.4% генома представителей балтийской позднебронзовой эпохи и все того же позднебронзового палеогенома из Хальберштадта

«86.4% Halberstadt_LBA + 13.6% Karelia_HG» «2.139»
«74.1% Bell_Beaker + 25.9% LesCloseaux13_Mesolithic» «2.1574» «35.9% Hungary_BA + 64.1% Poltavka_MBA_outlier» «2.319»
«65.7% Halberstadt_LBA + 34.3% Poltavka_MBA_outlier» «2.4387»
«83.2% Alberstedt_LN + 16.8% Karelia_HG» «2.443»
«23.4% Baltic_LBA + 76.6% Halberstadt_LBA» «2.4846»
«16.7% Europe_MN + 83.3% Poltavka_MBA_outlier» «2.4897»
«83.4% Halberstadt_LBA + 16.6% Samara_Eneolithic» «2.536»
«12.9% Halberstadt_LBA + 87.1% Unetice_EBA» «2.5603»
«16.1% Bell_Beaker_Czech + 83.9% Unetice_EBA» «2.5747»

2) файлы модели K11 и K16 для более сложной программы 4Admix (разработанной Александром Бурнашевом). Вторым инструментом вторичного анализа является 4Mix. Он работает по методу brute-force, шаг за шагом перебирая все возможные комбинации, а по окончанию цикла программа возвращает результат с наименьшим евклидовым расстоянием (по выбору можно использовать гауссово сглаживание, снижающее случайный статистический шум результатов). Как и в классическом Oracle, комбинация cмешиваемых этнических групп не может содержать более 4 популяций, хотя в отличие от классического Oracle, программа может моделировать комбинации из 3 и 4 этнических групп.

Пример. Приведу пример этих 3- и 4-членных аппроксимаций. В принципе, все то же самое, c той лишь разницей что теперь программа выделяет в комбинациях балтийскую и славянскую составляющую. Интересно, что скандинавская составляющая никуда не исчезла, оставаясь в пределах 20-25%
Using 3 populations approximation:
1 50% Belarusian_EastBelarus +25% English_Kent_GBR +25% Latvian @ 0.973956
2 50% Belarusian_EastBelarus +25% English_Kent_GBR +25% Lithuanian @ 0.988467
3 50% Latvian +25% French +25% Balt @ 1.036492
4 50% Lithuanian_Zemajitia +25% French +25% Irish_Connacht @ 1.05259
5 50% Lithuanian +25% Sorb +25% French_West @ 1.059638
6 50% Belarusian +25% Icelandic +25% French_West @ 1.06158
7 50% Lithuanian_Zemajitia +25% French +25% Irish_Cork_Kerry @ 1.074796
8 50% Lithuanian_Aukstajtia +25% French_East +25% Irish_Connacht @ 1.076771
9 50% Lithuanian_Zemajitia +25% French +25% Irish_Ireland @ 1.078576
10 50% Belarusian +25% Norwegian +25% French_West @ 1.079741
11 50% European_Utah +25% Lithuanian_Zemajitia +25% Balt @ 1.084317
12 50% Dane +25% Belarusian_EastBelarus +25% Lithuanian_Aukstajtia @ 1.090086
13 50% Lithuanian_Zemajitia +25% French +25% Scottish_Highlands @ 1.093951
14 50% Lithuanian +25% North_European +25% Sorb @ 1.103744
15 50% Lithuanian_Aukstajtia +25% English_GBR +25% French_Northwest @ 1.105369
16 50% Lithuanian_Zemajitia +25% French +25% Scottish_Grampian @ 1.106616
17 50% Lithuanian_Aukstajtia +25% French_Northwest +25% Irish_Connacht @ 1.106771
18 50% Lithuanian_Aukstajtia +25% French_Northwest +25% Scottish_Dumfries_Galloway @ 1.108261
19 50% Lithuanian +25% French_West +25% Polish_West @ 1.113695
20 50% Latvian +25% North_European +25% Sorb @ 1.115164
31501779 iterations.
Using 4 populations approximation:
1Belarusian_EastBelarus+Lithuanian_Zemajitia+Swede+French_West @ 0.947002
2Belarusian_EastBelarus+English_Kent_GBR+Lithuanian_Aukstajtia+Sorb @ 0.971605
3Belarusian_EastBelarus+Belarusian_EastBelarus+English_Kent_GBR+Latvian @ 0.973956
4Belarusian_EastBelarus+English_Kent_GBR+Lithuanian_Aukstajtia+Polish_East @ 0.986863
5Belarusian_EastBelarus+Belarusian_EastBelarus+English_Kent_GBR+Lithuanian @ 0.988467
6 French+Lithuanian_Zemajitia+Swede+Balt @ 0.98916
7Belarusian_EastBelarus+English_Kent_GBR+Lithuanian_Aukstajtia+Polish @ 0.996302
8 Belarusian+Lithuanian_Aukstajtia+Shetlandic+French_West @ 1.010485
9 Belarusian+Lithuanian_Zemajitia+Irish_Ulster+French_West @ 1.01227
10 Belarusian+Lithuanian_Zemajitia+French_West+Irish_Ulster @ 1.012977
11 Belarusian_EastBelarus+Lithuanian_Aukstajtia+Swede+Welsh @ 1.013043
12Belarusian_EastBelarus+European_Utah+Lithuanian_Aukstajtia+Swede @ 1.013805
13Belarusian_EastBelarus+Lithuanian_Aukstajtia+Swede+French_West @ 1.018296
14German_NorthGermany+Lithuanian_Aukstajtia+Balt+French_West @ 1.026503
15 Lithuanian_Aukstajtia+Sorb+Ukrainian-Center+French_West @ 1.027473
16 Belarusian+Lithuanian_Zemajitia+French_West+Irish_Connacht @ 1.031967
17Belarusian+Lithuanian_Zemajitia+French_West+Irish_Cork_Kerry @ 1.035716
18 French+Latvian+Latvian+Balt @ 1.036492
и т.д.
То же самое, но в модели K11
Using 3 populations approximation:
1 50% Poltavka_MBA_outlier +25% Halberstadt_LBA +25% Hungary_BA @ 2.031302
2 50% Poltavka_MBA_outlier +25% Bell_Beaker_Czech +25% Hungary_BA @ 2.072453
3 50% British_AngloSaxon +25% Halberstadt_LBA +25% Poltavka_MBA_outlier @ 2.125791
4 50% Bell_Beaker +25% Bell_Beaker +25% LesCloseaux13_Mesolithic @ 2.209118
5 50% Halberstadt_LBA +25% British_AngloSaxon +25% Poltavka_MBA_outlier @ 2.244371
6 50% Halberstadt_LBA +25% Hungary_BA +25% Samara_HG @ 2.270667
7 50% Halberstadt_LBA +25% Poltavka_MBA_outlier +25% Unetice_EBA @ 2.291406
8 50% Poltavka_MBA_outlier +25% British_AngloSaxon +25% Hungary_BA @ 2.30791
9 50% Bell_Beaker_Czech +25% Hungary_BA +25% Samara_HG @ 2.356281
10 50% Halberstadt_LBA +25% Nordic_BA +25% Poltavka_MBA_outlier @ 2.358744
11 50% Bell_Beaker +25% Hungary_BA +25% Karelia_HG @ 2.369978
12 50% Bell_Beaker_Czech +25% Nordic_BA +25% Poltavka_MBA_outlier @ 2.385823
13 50% Halberstadt_LBA +25% Corded_Ware_Germany +25% Nordic_BA @ 2.490915
14 50% Poltavka_MBA_outlier +25% Hungary_BA +25% Unetice_EBA @ 2.503754
15 50% British_AngloSaxon +25% Bell_Beaker_Czech +25% Poltavka_MBA_outlier @ 2.53217
16 50% Halberstadt_LBA +25% Baltic_LBA +25% Halberstadt_LBA @ 2.540751
17 50% Hungary_BA +25% Poltavka_MBA_outlier +25% Samara_HG @ 2.551414
18 50% Poltavka_MBA_outlier +25% Alberstedt_LN +25% Hungary_BA @ 2.561557
19 50% British_AngloSaxon +25% Poltavka_MBA_outlier +25% Unetice_EBA @ 2.575398
20 50% Bell_Beaker_Czech +25% British_AngloSaxon +25% Poltavka_MBA_outlier @ 2.575919
1127348 iterations.
Using 4 populations approximation:
1 Halberstadt_LBA+Hungary_BA+Poltavka_MBA_outlier+Poltavka_MBA_outlier @ 2.031302
2 Halberstadt_LBA+Nordic_BA+Poltavka_MBA_outlier+Unetice_EBA @ 2.03713
3 Bell_Beaker_Czech+Hungary_BA+Poltavka_MBA_outlier+Poltavka_MBA_outlier @ 2.072453
4 British_AngloSaxon+Halberstadt_LBA+Poltavka_MBA_outlier+Unetice_EBA @ 2.088049
5 British_AngloSaxon+British_AngloSaxon+Halberstadt_LBA+Poltavka_MBA_outlier @ 2.125791
6 British_AngloSaxon+Halberstadt_LBA+Hungary_BA+Samara_HG @ 2.131526
7 Bell_Beaker_Czech+Halberstadt_LBA+Hungary_BA+Samara_HG @ 2.14648
8 Bell_Beaker+Bell_Beaker+Bell_Beaker+LesCloseaux13_Mesolithic @ 2.209118
9 Bell_Beaker_Czech+Halberstadt_LBA+Nordic_BA+Poltavka_MBA_outlier @ 2.209365
10 Bell_Beaker_Germany+British_AngloSaxon+Hungary_BA+Samara_HG @ 2.212982
11 Bell_Beaker_Czech+Bell_Beaker_Germany+Hungary_BA+Samara_HG @ 2.232922
12 British_AngloSaxon+Halberstadt_LBA+Halberstadt_LBA+Poltavka_MBA_outlier @ 2.244371
13 British_AngloSaxon+Halberstadt_LBA+Nordic_BA+Poltavka_MBA_outlier @ 2.254756
14 Alberstedt_LN+British_AngloSaxon+Hungary_BA+Samara_HG @ 2.255589
15 Bell_Beaker_Czech+British_AngloSaxon+Halberstadt_LBA+Poltavka_MBA_outlier @ 2.256027
16 Halberstadt_LBA+Halberstadt_LBA+Hungary_BA+Samara_HG @ 2.270667

3) новым инструментом в релизе будет R программа nMonte, разработанная голландцем Гером Гизбертом. В отличие от двух предыдущих инструментов (ограниченных в числе используемых для моделирования этнических групп), nMonte позволяет использовать для моделирования (аппроксимации) генмоа все референсные грппы. Программа использует алгоритм эволюционного моделирования по методу Монте-Карло.
После пошагового добавления новой популяции программа определяет уменьшается ли евклидово расстояние; если да, то шаг сохраняется, в противном случае шаг отклоняется. Алгоритм завершает свою работу после выполнения примерно миллиона шагов. Как и два предыдущих инструмента программа стремится к минимализации евклидова расстония; но похоже за счет использования метода Монте-Карло, алгоритм гораздо более эффективен. И, также, как и в других инструментах, в nMonte «наилучшая комбинация» определяется как комбинация с наименьшим расстоянием. Недостаток же nMonte состоит в том, что она выдает только наилучшее подходящее решение, в то время как Oracle представляет альтернативные варианты.
Пример. Посмотрим, сколько потенциальных предковых популяций выдаст nMonte при аппроксимации моего генома.
При первом запуске программа выдала комбинацию (в cкобках процентный вклад референсной популяции) следующих 65 популяций. Также как и в других инструментах, тон задают балтийские популяции, а также белорусы, сорбы и поляки.

Lithuanian_Zemajitia 10.1
Latvian 7.85
Lithuanian_Aukstajtia 7.85
Belarusian_SouthBelarus 6.55
Lithuanian 6.5
Pole 5.45
Belarusian_WestBelarus 4.8
Balt 4.35
Sorb 3.35
Belarusian 3.05
Belgian 3
Norwegian 2.95
Czech 2.75
Dane 2.5
Slovak 2.4
Icelandic 1.9
Swede 1.9
French_SouthFrance 1.5
Slovenian 1.5
Basque_Spanish 1.3
Frisian 1.15
German_NorthGermany 1.1
Sardinian 1.1
Polish_East 1.05
Ukrainian_WestUkraina 1
Polish 0.95
Basque_French 0.9
Orcadian 0.7
Spanish_Pais_Vasco_IBS 0.7
Hungarian 0.65
Irish_Connacht 0.65
DonKuban_cossack 0.6
Dutch 0.6
Ukrainian_EastUkraina 0.6
Scottish_Argyll_Bute_GBR 0.55
European_Utah 0.5
English_GBR 0.45
Croatian 0.4
Russian-Pskov 0.4
French_South 0.4
Welsh 0.35
Irish_Ulster 0.35
Scottish_Fife 0.3
German_SouthGermany 0.25
Scottish_Dumfries_Galloway 0.25
Belarusian_CentralBelarus 0.2
Datog 0.2
English_Cornwall_GBR 0.2
North_European 0.2
Ukrainian 0.2
Russian_Orjol 0.15
Afar 0.1
Belarusian_EastBelarus 0.1
English_Kent_GBR 0.1
Irish 0.1
Kambera 0.1
Russian_Smolensk 0.1
Vindija 0.1
Belarusian-East 0.1
Spanish_Canarias_IBS 0.1
Spanish_Cantabria_IBS 0.1
Spanish_Cataluna_IBS 0.1
Peruvian 0.05
Russian_Voronezh 0.05

В K11 показаны следующие палеогеномы (или их группы). По-прежнему, основа генома 40% моделируется как геном представителя культуры колоколовидных кубков.

«Bell_Beaker» 40.3
«Halberstadt_LBA» 31.6
«Samara_HG» 8.5
«Tyrolean_Iceman_EN» 2.05
«Esperstedt_MN» 1.95
«Swedish_Mesolithic» 1.95
«BerryAuBac_Mesolithic» 1.85
«Swedish_Motala_Mesolithic» 1.7
«Bichon_Azillian» 1.6
«Continenza_Paleolithic» 1.5
«Hungary_BA» 1.5
«LaBrana_Mesolithic» 1.35
«Bell_Beaker_Germany» 1.05
«Hungary_HG» 0.85

4) следующим новым инструментом будет 4mix, более упрощенный вариант 4Admix. Он разработан тем же Г. Гизбертом. Основное отличие от 4Admix — если 4Admix перебирает все возможные комбинации из 4 популяций, то в 4mix можно эксплицитно задавать отдельные комбинации и определять евклидову дистанции между этой комбинацией и аппроксимируемым геномом в пространстве моделей
5) карты компонентов с аннотацией. Аннотации компонентов будут чуть позже, а вот карты уже готовы

Карты распространения некоторых компонентов K16 и K11  в ряде географических ареалов

6) я включил в релиз модифицированный скрип GPS лаборатории Элхайка для определения географического ареала происхождения предков человека, чей геном является предметом изучения. Я включил пару строчек кода для проецирования вычисленных географических координат на географическую карту.
Пример. Ниже показаны две карты, на которые спроецированы географические координаты вычисленной алгоритмом GPS (GPS DNA tool ) точки «этнического происхождения».
Я проверил работоспособность алгоритма на обеих моделях.
В модели K16 (современные популяции) GPS-координаты точки моего «происхождения» 49.7648663288835 32.4345922625112 (примерно 49 градусов северной широты и 32 градуса восточной долготы), т.е где-то на левом берегу Днепра в Украине. Как утверждают разработчики программы, она позволяет определить место происхождения с радиусом погрешности в 500 км. Я вычислил расстояние от полученной точки до настоящего места жительства предков (южная часть Брестской области) и получилось 470 км. Т.е точка попадает в радиус, хотя и с некоторым трудом.

Rplot

Что касается модели K11 (древние геномы), то в этой модели мой «Urheimat» локализуется — весьма ожидаемо — на землях древней унетицкой и лужицких культур (51.1254133094371 13.2336209988448)

Rplot

 

 

Вторая фаза нового проекта: африканская когорта

В одной из предыдущих записей я упомянул о том, что из 3 начальных когорт образцов «геномов» я провел импутацию азиатской и европейской когорты,  осталась получить результаты по последней — третьей когорты — африканской.

По состоянию на текущий момент,  закончена работа на 18 из 22 хросомом в выборке африканских популяции. Согласно моему прогнозу,  процесс импутации недостающих генотипов по 4 оставшимся хромосомам будет завершен в  самое ближайшее время.

А пока — т.н. «этноплот» или промежуточные результаты анализа главных компонент в пространстве генетического разнообразия африканских этнических групп.

Вторая фаза нового проекта

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

Как я уже рапортовал ранее, самой сложной из запланированных на втором этапе задач являлась импутирование (импутация) отсутствующих генотипов.  Читатели моего блога помнят, что две предыдущие экспериментальные попытки импутирования больших выборок     — в 2013  и в 2015  — закончились неудачно (или, если говорить точнее, качество импутированных генотипов не оправдало моих завышенных ожиданий). В предыдущих опытах я задействовал мощную комбинацию программ ShapeIT и IMPUTE и  метод импутирования снипов за счет использования большой референсной панели аутосомных гаплотипов (из 1000 genomes),  гарантирующей более аккуратное определение генотипов.

На этот раз, я решил не повторять ошибок, и обратился к использованию других программ — в частности , к  Minimac3, хорошо зарекомендовавшую себя в работе с геномами 1000G.  К моему счастью, я набрел на недавно появившиеся публичные сервера, работающие с «облачным» сервисом импутирования Cloudgene. геномов.
Серверы импутирования геномов позволяют использовать полную референсную панель гаплотипов для точного определения недостающих генотипов в анализируемых данных. Пользователи подобных серверов могут загружать (предварительно фазированные или несфазированные) данные генотипов на сервер. Процедура импутирования  будет осуществляться на удаленном сервере, и по окончанию этого процесса рассчитанные данные доступны пользователю для скачивания. Наряду с импутированием, подобные сервисы позволяют провести процедуру контроля качества (QC) и фазировки данных в качестве предварительного этапа процесса импутирования генотипов.

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

Основная рабочая лошадка сервиса — это комбинация двух или трех программ — две програмы для фазирования диплоидных генотипов в гаплоидную фазу  ShapeIT и Hapi-UR , а в качестве основного ПО для самого процесса импутирования (определения) недостающих генотипов — вышеупомянутую программу Minimac3.

Описание эксперимента с импутированием генотипов на удаленном сервере

В самом начале,  я разбил свою выборку на пять когорт (т.к. референсные панели на сервере также разбиты на «этнографические группы»):

  1. европейцы (европейцы + кавказцы) — 1715 образцов -87169 снипа
  2. азиаты (+американские аборигены и аборигены островов Тихого Океана) — 2356 образцов — 87044 снипа
  3. африканцы — 1054 образца — 86754 снипов
  4. палеогеномы древних жителей Евразии, Африки и Америки -340 — 594500 снипов
  5. смешанные группы — преимущественно мозабиты, пуэрто-риканцы и др.
QC-Report
На рисунке показана корреляция между частотами аллелей в изучаемоей выборке (здесь: европейская когорта) и частотами аллелей в референсной панели

К моему вящему неудовльствию,  некоторые образцы в сводной выборке не прошли контроль качества — в первую очередь это касается образцов европейцев из базы данных POPRES, а также выборок статьи  Xing et al. (2010). Скорее всего, их нужно будет импутировать отдельно.

Несмотря на значительную скорость обработки генотипов на удаленном сервере, к настоящему времени эксперимент еще не доведен до конца.  Пока я планирую ограничиться импутированием генотипов в 3 первых когортах (т.к. импутирование палеогеномов с помощью современных референсных панелей гаплотипов вероятнее всего приведет к искажению истинного разнообразия палеогеномов за счет проекции на современные группы населения, хотя авторы статьи Gamba et al. 2014 в сопроводительном материале к своей статье утверждают обратное).

После окончания фазирования и последующей обработки генотипов европейской когорты в программе Plink (были отсеяны все варианты с вероятностью ниже 0.9) ,  я получил выборку из 1715 европейцев с 25 215 169 снипами против изначальных 87169, т.е число снипов в выборке увеличилось в 290 раз!
В азиатской когорте соотношение импутированных генотипов к исходным составило чуть меньшую величину 19 048 308 / 87044 = 219.

Проверка результатов

Разумеется, все полученные результаты нуждались в дополнительной проверке качества генотипирования.
Cначала я объединил импутированную европейскую когорту с когортой палеогеномов (которая не была импутирована) и рассчитал в программе PLINK 1.9 матрицу IBS (т.е. сходства образцов в выборке между собой, эта метрика отдаленно напоминает Global Similarity в клиентских отчетах 23andme), а затем усреднил данные по популяциям и произвел по усредненным значениям иерархическую кластеризацию по признакам сходства (IBS, identity by state). Результат превзошел все мои пессимистические ожидания

 

 

Как становится очевидно из приведенной выше кластерограммы,  в целом взаимное расположение популяций в кластерах соответствует (в общих чертах) взаимному географическому положению. Присутствуют, правда, и некоторые огрехи. Так, например, венгры очутились в одном кластере с русскими из Курска,  норвежцы — с русскими из Смоленска, а усредненные «русские» — с американцами европейского происхождения из штата Юта и французами. Трудно сказать, в чем здесь причина, тем более что матрица была составлена по значениям IBS (идентичности по состоянию), а не IBD (идентичности по происхождению).  Более подробные данные о попарных значениях IBS между популяциями выборки можно посмотреть в этой таблице

Импутированная азиатская когорта (несмотря на расширение географии за счет включения образцов коренного населения Америки и аборигенов бассейна Тихого океана)  тоже  оказалась на удивление надежной. Я пока не буду останавливаться на подробностях изучения этой когорты, вместо этого я размещаю здесь результаты MDS- мультдименсионального шкалирования образцов выборки, образованной в ходе слияния 2 импутированных когорт (европейской и азиатской) с 1 неимпутированной (палеогеномы). Цветовое обозначение точек соответствует определенным кластерам, выявленных в выборке с помощью алгоритма MCLUST (cледуя рекомендациям Диенека Понтикоса). Всего этих кластеров 15 и они обозначены последовательностью чисел от 1 до 15, и каждый из этих кластеров имеет свою четкую географическую привязку:

  • 1 — кластер популяций ближнего Востока и  Анатолии
  • 2 — кластер популяций северного Кавказа
  • 3 — «индоевропейский» кластер древних популяций Синташта, шнуровой культуры, Ямной культуры и т.д.
  •  4 — кластер аборигенных жителей Америки (эскимосов и индейцев)
  • 5 — суперкластер популяций средиземноморского и восточноевропейского региона
  • 6 — сибирский кластер алтайских и самодийских популяций
  • 7 — кластер популяций западной и северной Европы
  • 8 — кластер палеосибирских популяций (таких как чукчи, ительмены и коряки)
  • 9 — кластер аборигенных (австронезийских и тай-кадайских) популяций юго-восточной Азии (даи, атаяла и ами)
  • 10 — кластер неолитических популяций
  • 11 — еще один ближневосточно-средиземноморский кластер (ашкеназим, сардинцы и так далее)
  • 12 — кластер североиндийских популяций
  • 13 — кластер центральноазиатских популяций
  • 14 — поволжские популяции
  • 15 — разные групп индусов