Опыт извлечения 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

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