Опыт извлечения STR из данных полученных с помощью технологий высокопроизводительного секвенирования (NGS)

Последние недели 2-3 я довольно плотно занимался изучением возможностей определения STR (коротких тандемных повторов) на основании данных новых технологий высокопроизводительного секвенирования (NGS).
Напомню, что основной способ определения гаплотипов (набора локусов STR) подразумевает использования более традиционных технологий вроде капиллярного электрофореза, ПЦР или пирофореза. Именно так до сих пор типируются гаплотипы Y в научных и коммерческих лабораториях (например, в FTDNA).
Технологии NGS (next generation sequencing), особенно полногеномного сиквенса, были придуманы для других целей, поэтому технически определение STR на уровне условного железа (т.е. с помощью секвенатора) пока не представляется возможным. Поэтому единственное возможное решение — использование особых алгоритмов поиска коротких тандемных повторов в сиквенсе, причем как известных, так и неизвестных. Я не считаю себя дилетантом в области работы с сиквенсами (и их элайнментами), но по мере углубления в материал, я быстро понял всю сложность задачи. Основная сложность — выявление правильной периодичности повторов, т.е. вычисление числа самих повторов. Даже в природе, во время репликации ДНК, полимераза часто произвольно пробуксовывает и дает сбои именно на коротких тандемных повторах, и за счет этого типа мутаций аккумулируется изменчивость (вариативность) этого типа маркеров. То же самое касается и используемых алгоритмов, которые часто ошибаются не в мотиве тандемного повтора, а в числе повторов. Т.е. предположим что мотив повтора состоит из нуклеотидов AGAA. Допустим у человека этот мотив повторяется 12 раз подряд, но программа определяет вместо 12 повторов 11 или, наоборот 13.
Я изучил три программы, созданных для определения STR из данных NGS. Нужно отдать должное чувству юмора их создаталей, ибо названия программы образованы от аббревиатуры STR путем добавления какого-то смыслообразующего корня. Поэтому названия выглядят комично:

lobSTR (http://lobstr.teamerlich.org/)
HipSTR (https://github.com/tfwillems/HipSTR)
GangSTR (https://github.com/gymreklab/GangSTR)

Последную программу я пока так и не смог заставить работать, возможно в ее коде содержится некий баг. Большего успеха я добился с самой известной в списке программой lobSTR и похожей на нее HipSTR. Обе программы показали хорошие тестовые результаты на BAM файлах с парными ридами (paired reads) и высокую корреляцию с данными FTDNA.

Теперь о эксперимента. Для определения аккуратности определяемых этими программами локусов — STR — я взял тестовый BAM файл с сиквенсом Y хромосомы одного из клиентов FTDNA. Поскольку у этого клиента был сделан обычный STR-тест, можно было легко определить аккуратность алгоритма программа путем элементарного сравнения определенных lobSTR/HipSTR локусных значений STR со значениями соответствующих локусов STR, полученных в лаборатории традиционным способом — т.е. PCR и электрофорезом.

К сожалению, выдаваемый клиентам FTDNA bam файл с сиквенсом Y-хромосомы малопригоден в своем изначальном виде для определения STR. Я не знаю в чем дело, но эксеприменты с исходным BAM не дали достоверных результатов. Скорее всего, BAM содержит гибридные риды (парные и одиночные) сиквенса, а также непонятные HipSTR флаги ридов. Видимо, BAM собирался из FASTQ файлов, полученных разными сиквенаторами.
Кроме того, FTDNA или ее партнерская лаборатория, скорее всего использует какой-то кастомный или самописный ассемблер генома — и как следствие, вышеназванные программы очень плохо считывают входящие данные (ибо заточены на работу с BAM файлом сгенерированным классическими ассемблерами вроде BWA, и в меньшей степени, bowtie).

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

Пересобранный таким образом геном стал более доступным для нисходящей обработки в lobSTR/HipSTR, и после нескольких неудачных попыток я смог определить значения STR, которые оказались либо идентичными, либо близкими (с разницей в 1-2 повтора) типированным значениям STR.

Вот результы сравнения полученных в HipSTR/lobSTR значений DYS локусов с теми, что содержатся в отчете FTDNA

DYS marker lobSTR HipSTR FTDNA report
DYS389I 13 13 13
DYS389I 13 13 13
DYS389I 13 13 13
DYS389I 13 13 13
DYS390 24 24 24
DYS391 10 10 10
DYS392 11 11 11
DYS393 13 13 13
DYS426 11 11 11
DYS434 9 9 9
DYS435 11 11 11
DYS436 12 12 12
DYS437 15 15 15
DYS438 10 10 10
DYS439 11 12 12
DYS442 17 17 12
DYS444 10 10 10
DYS445 10 12 10
DYS446 13 13 13
DYS454 11 11 11
DYS458 17 17 17
DYS460 10 10 10
DYS461 12 12 12
DYS462 12 12 12
DYS472 8 8 8
DYS485 15 15 14
DYS492 12 12 12
DYS494 9 9 9
DYS511 9 9 9
DYS520 23 23 22
DYS522 12 11 11
DYS531 12 11 11
DYS533 13 13 13
DYS534 12 12 12
DYS537 11 11 11
DYS549 11 11 11
DYS556 11 11 11
DYS565 9 9 9
DYS570 18 18 18
DYS576 16 16 17
DYS578 8 8 8
DYS590 7 7 7
DYS594 10 10 10
DYS607 16 16 12
DYS635 23 23 23
DYS638 11 11 11
DYS641 10 10 10
DYS643 10 10 10

Видно что корреляция между результатами HipSTR и lobSTR выше (0.99) чем попарная корреляция между ними и результатами коммерческого тестирования в FTDNA (0.955 и 0.954). То есть результаты программ чаще согласуются друг с другом, чем с результатами FTDNA.

Обращает внимание то обстоятельства что полученные значения маркеров DYS607 и DYS442 в моем эксперименте существенно отличаются по числу повторов от референсных. Различие 4- 5 повтора. Но тут дело не в ошибке программе, а в разнице использзуемых номенклатур.
DYS442 has had changes in its nomenclature (http://www.hprg.com/hapest5/page2.html). FamilyTreeDNA reports a value 5 units shorter than NIST.

Новый формат (стиль) будущих графиков PCA

Всю прошедшую неделю колдовал над графическим оформлением результатов анализа главных компонентов генетического разнообразия в своей коллекции геномов древних людей. Анализ был проведен в стиле лаборатории Давида Рейха из Гарварда — я взял набор референсных популяций современных людей и с помощью особой функции в программе smartpca (пакет EIGENSOFT) вычислил эйгенвекторы 9 главных компонентов.

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

Пришлось изучить синтаксис и семантику ggplot — пакета графической грамматики, написанной на языке R. По задумке авторов, четкое определение правил и грамматики, описывающей элементы графического изображения наподобие грамматическим правилом натуральных языков, обеспечивает максимальный скриптовый контроль над получаемым графиком. Основная проблема заключилась в том что легенда графика отображает только 1-2 эстетик, отображающих некоторые статистические закономерности изучаемых данных. Если используется два различных набора данных — референсный и анализируемый — то отобразить их на двух независмых легендах к графику просто не получится.
Пришлось придумывать обходных трюки и читать литературы/тематические форумы. Спустя неделю проб и ошибок, написал скрипт, дающий на выходе картинку, близкую к тому что мы видим в профессиональных журналах.
Затем я разбил коллекцию древних геномов на 20 условных групп и сгенерировал скриптом графики.
Похоже, мотор скрипта работает на ура. Остался вопрос доводки красивости изображения за счет изменения элемента стиля (верхнюю панель лучше перенести вниз, поиграться с цифровой палитрой пакета RColorBrewer и еще пару доводок).

Внизу примеры визуализации

 

Интроны Y-хромосомы

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

Убедился и я в этом на примере реальных данных (это представитель Y хромосомной гаплогруппы R1a1).
samtools view -h x.bam Y > Y.sam
samtools view -h -b -S Y.sam > Y.bam
samtools/samtools mpileup -C 50 -ugf chrY.fa Y.bam | /samtools/bcftools/bcftools view -vcg — > Y.raw.vcf

 

Данный подход позволил обнаружить у тестанта около сотни генетических полиморфизмов (координаты данные по билду hg19):
Y 4058546 0 A C
Y 4058566 0 ta t
Y 4457069 0 tctctcct tct
Y 6028350 0 A T
Y 8149348 0 G A
Y 8566853 0 GCCC GCCCC
Y 8783761 0 C T
Y 8881927 0 GGTGT GGTGTGT
Y 9198243 0 T A
Y 9304866 0 G A
Y 9368340 0 tg tGNg
Y 9384631 0 A C
Y 9385720 0 CGG CG
Y 9909058 0 T A
Y 9930114 0 C A
Y 9931330 0 T A
Y 9938790 0 C A
Y 9938851 0 A T
Y 9938982 0 T C
Y 9939117 0 T A
Y 9952497 0 A G
Y 9982892 0 G A
Y 9982917 0 C A
Y 10007709 0 C A
Y 10007727 0 G A
Y 10007741 0 G A
Y 10011344 0 A G
Y 10011487 0 A G
Y 10011498 0 G C
Y 10011502 0 A G
Y 10011545 0 T G
Y 10011604 0 C CTT
Y 10011648 0 T G
Y 10011673 0 G A
Y 10011677 0 G A
Y 10011698 0 A G
Y 10011878 0 G A
Y 10011935 0 C CT
Y 10011960 0 T C
Y 10011966 0 ATT AT
Y 10012012 0 T A
Y 10013318 0 A G
Y 10028123 0 C T
Y 10028180 0 A G
Y 10029163 0 A G
Y 10029228 0 G A
Y 10029308 0 A T
Y 10029322 0 T C
Y 10029340 0 T C
Y 10029485 0 G C
Y 10029487 0 T A
Y 10029513 0 A G
Y 10029610 0 G A
Y 10029616 0 G T
Y 10029623 0 C T
Y 10029629 0 A G
Y 10029649 0 C G
Y 10029711 0 A C
Y 10043269 0 C T
Y 13241432 0 G T
Y 13241656 0 G A
Y 13243050 0 C G
Y 13243352 0 G A
Y 13244666 0 C T
Y 13244690 0 A G
Y 13254228 0 C T
Y 13262943 0 ACCC ACC
Y 13263091 0 G A
Y 13263304 0 C T
Y 13263364 0 A G
Y 13263374 0 C G
Y 13266266 0 G A
Y 13266286 0 C T
Y 13266301 0 A G
Y 13266368 0 T G
Y 13266377 0 G C
Y 13266499 0 A G
Y 13266520 0 G T
Y 13266556 0 T G
Y 13266560 0 C T
Y 13266587 0 C G
Y 13268187 0 T C
Y 13268361 0 T C
Y 13268377 0 A G
Y 13268521 0 C T
Y 13307425 0 G T
Y 13307562 0 G A
Y 13309174 0 A T
Y 13309226 0 A C
Y 13309239 0 G C
Y 13309262 0 T C
Y 13309348 0 C T
Y 13311223 0 T A
Y 13311491 0 C T
Y 13311501 0 G A
Y 13312579 0 G A
Y 13312666 0 G C
Y 13312729 0 C T
Y 13312756 0 A G
Y 13312789 0 A G
Y 13332277 0 C T
Y 13357224 0 C T
Y 13370991 0 C A
Y 13445929 0 G C
Y 13445957 0 C G
Y 13463779 0 A C
Y 13463831 0 T A
Y 13463837 0 G A
Y 13463860 0 C G
Y 13465055 0 A G
Y 13470805 0 G A
Y 13470834 0 T C
Y 13470855 0 T G
Y 13470880 0 G A
Y 13470897 0 G A
Y 13475849 0 C T
Y 13476553 0 T C
Y 13478387 0 A T
Y 13478445 0 G C,A
Y 13478569 0 T G
Y 13478583 0 T G
Y 13478613 0 A G
Y 13485671 0 T G
Y 13488312 0 C A
Y 13488330 0 A G
Y 13488337 0 C T
Y 13488370 0 G A
Y 13488395 0 A G
Y 13488410 0 A T
Y 13488429 0 A G
Y 13488601 0 A C
Y 13488621 0 A G
Y 13488946 0 A C
Y 13488952 0 T C
Y 13488972 0 C G,T,A
Y 13488988 0 A G
Y 13488992 0 T C
Y 13489043 0 G A
Y 13489069 0 A C,G
Y 13489077 0 T C
Y 13489206 0 C G
Y 13489220 0 T C
Y 13489234 0 T C
Y 13489255 0 A G
Y 13489292 0 A G
Y 13489300 0 A G
Y 13492264 0 C A
Y 13500410 0 T G
Y 13500424 0 T C
Y 13500443 0 T C
Y 13502048 0 C T
Y 13524378 0 T C
Y 13524752 0 G T
Y 13524761 0 C T
Y 13524873 0 T C
Y 13537129 0 G A
Y 13537569 0 A T
Y 13537581 0 C T
Y 13541022 0 C A
Y 13541053 0 CA CATA
Y 13541068 0 T C
Y 13541199 0 A G
Y 13541232 0 A T
Y 13541288 0 G A
Y 13541293 0 ATTT ATT
Y 13541420 0 A C
Y 13541454 0 T C
Y 13541478 0 G T
Y 13541520 0 C T
Y 13541556 0 A C
Y 13541561 0 T G
Y 13541584 0 C G
Y 13572922 0 A C
Y 13572932 0 T C
Y 13572999 0 A G
Y 13573033 0 A C
Y 13573108 0 G C
Y 13573152 0 C A
Y 13573216 0 G A
Y 13573240 0 C T
Y 13573271 0 G T
Y 13595280 0 T C
Y 13687807 0 T G
Y 13688825 0 C G
Y 13689634 0 T C
Y 13689668 0 C G
Y 13689755 0 G C
Y 13690562 0 C T
Y 13694899 0 G A
Y 13694929 0 G A
Y 13694956 0 C G
Y 13694983 0 T A
Y 13695051 0 T G
Y 13726074 0 T A
Y 13726129 0 C G
Y 13842718 0 G C
Y 14482235 0 C A
Y 14485120 0 G A
Y 14498990 0 C T
Y 14771478 0 A T
Y 14898094 0 A G
Y 14958218 0 C T
Y 15026424 0 A C
Y 15027529 0 T G
Y 15930958 0 ccttcttcctc cCTTCTTCCTCCTcttcttcctc
Y 16751825 0 A G
Y 16832517 0 T C
Y 17231616 0 A G
Y 21154004 0 A C
Y 21154323 0 G A
Y 21154426 0 G A
Y 21154466 0 T A
Y 21208056 0 A G
Y 21208066 0 C G
Y 22260237 0 C T
Y 22510104 0 G A
Y 22510163 0 T A
Y 23473201 0 T A
Y 23800360 0 T G
Y 23805478 0 C A
Y 24008079 0 T A
Y 28582510 0 G C
Y 28582566 0 C G
Y 28582605 0 T C
Y 28582622 0 G A
Y 28582676 0 G A
Y 28582685 0 C A
Y 28582863 0 A G
Y 28582865 0 A G
Y 28582921 0 A G
Y 28582932 0 G A
Y 28583310 0 C T
Y 28583314 0 A G
Y 28583382 0 G C
Y 28583394 0 T C
Y 28583410 0 C G
Y 28583415 0 T C
Y 28583431 0 A T
Y 28583432 0 A G
Y 28583590 0 A C
Y 28586782 0 G A
Y 28586959 0 T C
Y 28587232 0 T C
Y 28689055 0 G T
Y 28709343 0 A G
Y 28780767 0 A C
Y 28780823 0 T A
Y 28780883 0 G A
Y 28815270 0 C A
Y 28815656 0 T C
Y 28816806 0 T C
Y 28816831 0 C T
Y 28816870 0 T G
Y 28816948 0 C G
Y 28817276 0 T G
Y 28817286 0 T G
Y 28817559 0 T G
Y 28817636 0 G A
Y 58856145 0 G C
Y 58883603 0 A T,C
Y 58883784 0 T A
Y 58883834 0 A T
Y 58893627 0 A T
Y 58968939 0 G A
Y 58975896 0 T C
Y 58981639 0 cctccactcca cCTCCActccactcca
Y 58982160 0 G T
Y 58982559 0 A C
Y 58982671 0 tcttccttc tcttc
Y 58985524 0 T G
Y 58996230 0 G A
Y 58996257 0 G T
Y 58999765 0 C T
Y 58999773 0 G A
Y 59001429 0 G A
Y 59001608 0 C T
Y 59001620 0 A C
Y 59001647 0 G A
Y 59001685 0 G C
Y 59001722 0 G A
Y 59001753 0 T C
Y 59001773 0 A C
Y 59001782 0 C A
Y 59001792 0 T C
Y 59001960 0 T A
Y 59002047 0 C G
Y 59002139 0 G T,A
Y 59005179 0 C A
Y 59010280 0 A G
Y 59015256 0 T A
Y 59017005 0 A G
Y 59017181 0 T A
Y 59017206 0 A G
Y 59017378 0 T G
Y 59017384 0 ag aGg
Y 59018341 0 C G
Y 59020728 0 A G
Y 59022718 0 A G
Y 59022723 0 C T
Y 59022734 0 C T
Y 59022768 0 A G
Y 59027525 0 A G
Y 59027700 0 A C
Y 59027882 0 T G
Y 59029728 0 C T

Протокол обработки древних геномов для получения данных о гаплогруппе образца

Я поработал тут над протоколом определения мужских Y-гаплогрупп в палеоДНК. В конце концов — через пару дней — я остановился над следующим варианте.
Протокол содержит две части — первая для геномов с высоким покрытием, вторая для геномов с низким качеством и малым покрытием.


1) Для геномов с высоким покрытием варианты Y определяются в программе GATK и выводятся в формат VCF
Файл VCF вводится в программу yHaplo (написанную Позником на основании алгоритма определения Y-гаплогруппы в 23andme)
2) Для геномов с низким покрытием используется программа samtools mpileup c параметрами -B -q30 -Q30 -C50. Файл пайлапа преобразуется в формат 23andme и вводится в ту же программу (yHaplo)


Я проверил работоспособность протокола на нескольких примерах, похоже все работает (варианты гаплогрупп в таблице совпадают с теми что были опубликованы в статьях)
Сначала геномы с высоким покрытием — 2 генома древних гладиаторов из Йорка

3DT26 J-CTS8938 J-M304 J
6DT3 R-L52 R-P311 R1b1a2a1a

Теперь геномы с низким покрытием — 2 древнеегиптских образца

ERR1654486 J-P58 J-P58 J1a2b
ERR1654487 E-V22 E-L677 E1b1b1a1b2

Теперь еще более экстремальный случай (качество и покрытие плохое) — геномы римского периода с территории Польши (предположительно готы из Вельбарской культуры)

kow45 I-L35 I-M436 I2a2
kow55 I-L80 I-M253 I1

Геном англосакса из Йорка

NO3423 I-DF29 I-DF29 I1a

Геном неолитического периода с территории Польши

pl-7 R-S24902 R-S24902 R1a1a1b1a2c

Читать далее Протокол обработки древних геномов для получения данных о гаплогруппе образца

Прошедшие две недели я посветил отработке новой методики увеличения аккуратности определения вариантов снипов в геномах древних образцов. Я решил отказаться от предыдущих способов, когда с помощью samtools и GATK сначала генерировались файлы пайлапа, а потом из этой кучи возможных вариантов случайным образом выбирался аллелель и дублировался (т.е образец получал гомозиготные варианты). Проблема этого подхода выяснилась во время импутирования геномов, искусственная псевдогаплоидность древних геномов приводила к громадному искажению в сторону референсных геномов. Я решил упростить сложности и теперь вместо приведения генотипов к псевдогаплоидности, я определяю в GATK UnifiedGenotyper 38 миллионов известных снипов с таким условием, что алгоритм сам отбирает только те аллели, которые заданы в dbsnp как референсный и альтернативный аллель снипа.
В принципе, после долгих головоломок, удалось получить приемлимый алгоритм действий.
Я апробировал его на 55 опубликованных палеогеномах из балтийского региона (Литва, Латвия и Эстония) времен мезолита, раннего, среднего и позднего неолита, а также бронзового времени.
Для большой точности я ограничился только теми образцами, для которых удалось определить генотипы как минимум половины из 38 миллионов снипов dbsnp.

Sample Culture
Donkalnis6 Baltic_EMN
Gyvakarai1 Baltic_LN
Kivutkalns19 Baltic_BA
Kivutkalns207 Baltic_BA
Kivutkalns209 Baltic_BA
Kivutkalns215 Baltic_BA
Kivutkalns222 Baltic_BA
Kivutkalns25 Baltic_BA
Kivutkalns42 Baltic_BA
Kretuonas2 Baltic_EMN
Kretuonas4 Baltic_EMN
MA969 Baltic_BN
MA973 Baltic_LN
Plinkaigalis242 Baltic_LN
Spiginas1 Baltic_EMN
Spiginas2 Baltic_LN
Spiginas4 Baltic_Mesolithic
ZVEJ25 Baltic_Mesolithic
ZVEJ27 Baltic_Mesolithic
ZVEJ31 Baltic_EMN
ZVEJ32 Baltic_Mesolithic

Перед тем как использовать полученный набор в downstream aнализе, я решил посмотреть насколько точно определилось структурное разделение генофонда этих древних геномов.
Я использовал программы peddy, ATK, а также разбиение на фракции компонентов происхождения в программах iAdmix и fastNGSadmix.
На графиках видно, что в принципе основная масса этих геномов проецируется на то место в пространстве генетического разнообразия современных популяций людей, где оно и должно находится c точки зрения здрового смысла.

#family_id sample_id paternal_id maternal_id sex phenotype het_call_rate het_ratio het_mean_depth het_idr_baf ancestry-prediction PC1 PC2 PC3
Donkalnis6 Donkalnis6_Donkalnis6 0 0 0 -9 0.996 0.3029 -2 0 EUR -0.4471 -1.312 0.4822
Gyvakarai1 Gyvakarai1_Gyvakarai1 0 0 0 -9 0.9214 0.2377 -2 0 AMR -0.09174 -1.431 0.4644
Kivutkalns19 Kivutkalns19_Kivutkalns19 0 0 0 -9 0.9923 0.3483 -2 0 EUR -0.5558 -1.044 0.803
Kivutkalns207 Kivutkalns207_Kivutkalns207 0 0 0 -9 0.997 0.3443 -2 0 EUR -0.4681 -1.071 0.5988
Kivutkalns209 Kivutkalns209_Kivutkalns209 0 0 0 -9 0.9596 0.2518 -2 0 EUR -0.4277 -1.495 0.4507
Kivutkalns215 Kivutkalns215_Kivutkalns215 0 0 0 -9 0.973 0.2798 -2 0 EUR -0.2305 -1.201 0.901
Kivutkalns222 Kivutkalns222_Kivutkalns222 0 0 0 -9 0.8608 0.1615 -2 0 AMR -0.4777 -1.456 0.3636
Kivutkalns25 Kivutkalns25_Kivutkalns25 0 0 0 -9 0.8956 0.1933 -2 0 AMR -0.5087 -1.067 0.5996
Kivutkalns42 Kivutkalns42_Kivutkalns42 0 0 0 -9 0.8412 0.1575 -2 0 AMR -0.1253 -1.393 0.4066
Kreutonas2 Kreutonas2_Kreutonas2 0 0 0 -9 0.8462 0.1364 -2 0 EUR -0.4288 -1.337 0.6583
Kreutonas4 Kreutonas4_Kreutonas4 0 0 0 -9 0.9985 0.3136 -2 0 EUR -0.3243 -1.217 0.7842
MA969 MA969_MA969 0 0 0 -9 0.8092 0.1161 -2 0 AMR -0.2649 -1.263 -0.2799
MA973 MA973_MA973 0 0 0 -9 0.9482 0.2736 -2 0 EUR -0.3808 -1.319 -0.2429
Plinkgailis242 Plinkgailis242_Plinkgailis242 0 0 0 -9 0.9777 0.2811 -2 0 EUR -0.5622 -1.108 0.341
Spiginas1 Spiginas1_Spiginas1 0 0 0 -9 0.9943 0.3158 -2 0 EUR -0.4762 -1.402 0.7969
Spiginas2 Spiginas2_Spiginas2 0 0 0 -9 0.974 0.2945 -2 0 EUR -0.5128 -1.521 0.3943
Spiginas4 Spiginas4_Spiginas4 0 0 0 -9 0.8427 0.1399 -2 0 AMR -0.3 -1.208 0.6467
ZVEJ25 ZVEJ25_ZVEJ25 0 0 0 -9 0.969 0.2344 -2 0 EUR -0.2371 -1.254 1.072
ZVEJ27 ZVEJ27_ZVEJ27 0 0 0 -9 0.5763 0.0387 -2 0 UNKNOWN -0.2384 -1.622 -0.7302
ZVEJ31 ZVEJ31_ZVEJ31 0 0 0 -9 0.6926 0.06053 -2 0 UNKNOWN 0.04159 -1.332 -0.1725
ZVEJ32 ZVEJ32_ZVEJ32 0 0 0 -9 0.7095 0.06971 -2 0 UNKNOWN -0.06001 -1.699 -0.3068

Подробное разложени образцов по компонентамм можно посмотреть в этой таблице

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

Выполняю с небольшим опозданием данное ранее обещание и расскажу о слабых местах выявления процентов этнического происхождения с помощью анализа результатов ДНК-тестирования. Последние лет пять этот тип изучения этно-популяционного происхождения с привлечением данных генетики вошел в моду — в 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.»

Демография миграций в эпоху неолита и бронзового века

C ресурса Генофонд.ру (автор: Надежда Маркина)

 

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

Для ответа на это т вопрос авторы опираются не на Y-хромосому, передающуюся по отцовской линии,  и не на митохондриальную ДНК, передающуюся по материнской, как традиционно поступают генетики, а  Х-хромосому. Они вычисляют отношение эффективного размера популяции по Х-хромосоме к эффективному размеру популяции по аутосомам (неполовым хромосомам). Поскольку мужчины имеют одну Х-хромосому, а женщины – две, то в популяции с одинаковым соотношением мужчин и женщин отношение Х-хромосомы к аутосомам должно быть ¾. Отклонение от этой цифры говорит о разной демографической истории по мужской и женской линиям. Такова логика, лежащая в основе метода исследования, подробнее с ним можно познакомиться в тексте статьи.

Авторы изучили опубликованные образцы древней ДНК раннего и позднего неолита и бронзового века, проанализировав более 1,2 млн SNP, в том числе без малого 50 тысяч SNP на Х-хромосоме. Исследуемые образцы относились к популяциям охотников-собирателей, земледельцев Анатолии и понто-каспийских степей.

 

new-1

Схематическая демографическая история земледельцев Центральной Европы в течение неолита и бронзового века.

 

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

 

new-2

Доли мужского (синие стрелки) и женского (розовые стрелки) населения в составе неолитической и степной миграций.

 

«Ледниковый период в Европе и изучение останков древнего человека на территории России»

Лекция Йоханнеса Краузе  (Johannes Krause) «Ледниковый период в Европе и изучение останков древнего человека на территории России» состоится в рамках Фестиваля науки

8 октября 2016  в  Шуваловском корпусе МГУ, аудитория «В4» 

12.45-13.45

Йоханнес Краузе  — профессор археологии и палеогенетики,  директор Института наук об истории человека Общества Макса Планка (Max Planck Institute for the Science of Human History) в Йене.

программу Фестиваля науки 7-9 октября можно скачать здесь  program-2016

«МОСКВА, 10 окт – РИА Новости. Известный палеогенетик Йоханнес Краузе рассказал РИА «Новости» о том, почему ученые сегодня считают степи Прикаспия родиной народов Европы, поделился мыслями о причинах почти полного вымирания Европы в конце ледникового периода, а также порассуждал о перспективе «воскрешения» средневековой чумы.

Йоханнес Краузе, палеогенетик из Института истории человека в Йене (Германия) – один из самых известных «некромантов» современности, которому удалось за последние несколько лет восстановить и изучить геномы средневековых возбудителей чумы и проказы, раскрыть тайны миграций и вымирания первых жителей Земли.

Кроме того, он обнаружил, что в конце ледникового периода фактически вся Европа вымерла и была заново заселена «северными евразийцами», поселенцами с юга России, а также нашел однозначные генетические свидетельства того, что неандертальцы были каннибалами. Обо всем этом Краузе рассказал на лекции в МГУ имени М.В. Ломоносова, которая проводилась в рамках всероссийского фестиваля Наука 0+.

— Йоханнес, недавно вы выяснили, что почти все первые жители Европы вымерли и не оставили следов в ДНК современного населения субконтинента. В чем могли быть причины такой катастрофы, вызвали ли ее болезни или климат?

— Сам по себе ледниковый период был периодом масштабных климатических изменений. Поэтому мы собственно и называем его ледниковым периодом – температуры упали на 10 градусов Цельсия, и большая часть Европы была покрыта льдом во время последнего ледникового максимума, 20 тысяч лет назад.

В то время, по сути, в Центральной Европе было невозможно жить – она представляла собой области вечной мерзлоты, покрытые тундрой и льдами.

Череп кроманьонца из Чехии
Генетики: в конце ледникового периода почти вся Европа вымерла

Поэтому то, что в то время местное население полностью вымерло и было замещено новой группой людей, никого не должно удивлять. Поэтому я считаю, что болезни, в том числе и чума, вряд ли могли вызвать это вымирание, а климатические изменения – вполне могли это сделать.— Вы и ваш коллега Дэвид Рейчпоказали в недавнем прошлом, что Европа была заселена несколькими волнами мигрантов, которых было или три, или четыре. Сколько их было на самом деле?

— На текущий момент у нас есть сведения о том, что первые люди появились в Европе примерно 40 тысяч лет назад. Следы этой популяции людей были найдены в Румынии в виде скелета одного человека, а также останками еще одного древнего кроманьонца, которые были открыты в окрестностях Омска, в Усть-Ишиме. Они являются на сегодняшний день древнейшими останками человека современного типа за пределами Африки.

Оба этих человека принадлежали к особой популяции древних людей, следов которых вообще не осталось в нашей ДНК. Иными словами, они не были предками современных жителей Азии и Европы. Их популяцию можно назвать первой провалившейся попыткой колонизовать мир за пределами Африки.

За ними следовали люди, подобные тем, чьи останки были найдены в окрестностях деревни Костенки в Воронежской области. Их следы уже можно заметить в ДНК последующих групп древних людей.

Реконструкция облика члена ямной культуры Прикаспя
Генетики нашли новые доказательства каспийских корней индоевропейцев

Со времени жизни людей в Костенках и до конца ледникового периода, который завершился примерно 15 тысяч лет назад, в генетике Европы почти ничего не поменялось. Примерно 14 тысяч лет назад в Европу проникли первые мигранты с Ближнего Востока, и затем, около 7-8 тысяч лет назад, произошла вторая волна ближневосточной миграции, принесшая с собой фермерское искусство. И последняя волна миграции, самая масштабная из них, произошла примерно пять тысяч лет назад, когда Европа была заселена жителями прикаспийских и причерноморских степей.

Проблема, на самом деле, не в подсчете волн миграции, а в самом термине. Под миграцией мы обычно понимаем перемещение больших групп людей, условно говоря, из точки А в точку Б. С другой стороны, в реальности могли происходить не массовые миграции, а просто медленная экспансия новых групп людей, распространявшихся по Европе со скоростью, скажем, пять километров в год. Поэтому нельзя говорить о том, что древние люди в один момент вдруг сказали «мы покидаем Россию, едем в Европу», собрали вещи и поехали – этот процесс мог протекать органично и незаметно для коренных жителей субконтинента, постепенно замещая их благодаря большему числу потомства и другим факторам. Мне кажется, именно так нужно думать, когда мы рассуждаем о волнах миграции в прошлом.»

 

Формальный анализ смешивания предковых популяций: белорусы, часть 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):