zondag 17 september 2017

Spelen met Global 10 en nMonte2.

Met de ruwe data die men ontvangt bij het nemen van een genetische test, valt heel wat te doen. Er zijn vele datasets waarmee men zich kan vergelijken. Ik heb nu mijn ruwe data van de test die ik eerder genomen heb, laten doorrekenen door de Basal-rich 7 test en de Global 10 test van Eurogenes. Ik zal hier het spelen met deze laatste test behandelen. De test kent 10 dimensies, waarbij de diepste genetische verschillen tussen de bevolkingen centraal staan; hierbij moet men denken aan Afrikaans < > rest, West-Euraziatisch < > rest, Oost-Euraziatisch < > rest, Kaukasus < > rest, Papua < > rest, etc. De tien coördinaten die men hiermee krijgt, kunnen vergeleken worden met een hele dataset van moderne bevolkingen en prehistorische samples. Dit kan op meerdere manieren; een goed uitvoerbare methode is het gebruik van het programma nMonte2 op het statistiekprogramma R.
Ik zal hier niet uitvoerig behandelen hoe dit werkt; ik kan echter wel een korte uitleg geven. Men heeft nodig: het programma R, het programma nMonte2, een datafile met alle volkeren (zie bij de Global 10 test) en een datafile met de eigen gegevens (beide .csv-bestanden). Vervolgens opent men R, gaat naar File > Change Dir, zet de directory op de map die nMonte2 en de datafiles bevat, en typt het volgende:

source('nMonte2.R')
getMonte('datafile1.csv','datafile2.csv')


waarbij op de plaats van datafile1 de naam dient te komen van het file met de gegevens waarmee men wil vergelijken, op de plaats van datafile2 de naam van het file met de te vergelijken gegevens (eigen gegevens). Hierna toetst men <enter> en als het goed is loopt het programma dan. Soms verschijnen er foutmeldingen, waarvan meestal een typfout, ofwel in het programma, ofwel in één van de files de boosdoener is.

Allereerst verkreeg ik van de maker van deze tests een vergelijking van mijn data met prehistorische samples, waarbij ik percentueel uitgedrukt ben in die samples.

VvdH
Yamnaya_Samara 44.7
Barcin_N 33.1
Hungary_HG 16.25
Bajo 5.95
distance%=0.7066 / distance=0.007066


Om te beginnen, een belangrijk statistisch gegeven is de "distance" die vermeld staat bij de berekende lijst. De tien coördinaten geven mij een bepaalde locatie in een (tien-dimensionale) grafiek. De specifieke mix van deze bevolkingen geeft ook een specifieke locatie in die grafiek; de "distance" is de meetkundige afstand tussen beide locaties. Nu maakt het programma ongeveer 1000 berekeningen per keer, en neemt dan de uitkomst met de kleinste afstand als resultaat. Een goede afstand zal ongeveer 0,3 tot 1 zijn. Bij een kleine(re) afstand dient men rekening te houden met "overfitting". Het programma kan dan allerlei populaties toevoegen waar men in feite niets mee te maken heeft om zo de fit zo passend mogelijk te maken.

Dan de gegevens zelf, wat zien we hier? 44,7% Yamnaya_Samara, de bewoners van de Russische steppe tijdens het late Neolithicum. 33,1% Barcin_N, de Anatolische landbouwers wier verwanten en nazaten door middel van kolonisatie de landbouw in Europa introduceerden. 16,25% Hungary_HG, die de jager-verzamelaars van West-Europa vertegenwoordigt. 5,95% Bajo, een modern volk dat langs de Straat van Makassar leeft; zij representeren mijn Indonesische element.
Het is niet zo dat ik direct van deze groepen afstam; dit is door eeuwen van mengen gebeurd. De Yamnaya hebben zich langzamerhand verspreid door middel van de Touwbekercultuur (Corded Ware), en ook de Klokbekercultuur. De landbouwers en jager-verzamelaars kwamen elkaar steeds weer tegen, bijvoorbeeld in de Linearbandkeramische cultuur en de Trechterbekercultuur. Uiteindelijk gingen ook de laatste jager-verzamelaars uit de Swifterbantcultuur en de Vlaardingencultuur op in de grotere massa.

Met moderne populaties

Het is natuurlijk ook mogelijk om jezelf uit te drukken in moderne populaties. Ik heb hiervoor twee methoden uitgeprobeerd; Eerst doe ik een "afpeltest" met alle niet-Afrikaanse populaties, waarbij ik na elke berekening de resultaten afpel, door een naar mijn mening onverwachte of onwaarschijnlijke populatie uit de test te halen, net zolang tot ik een logisch en uit te leggen resultaat verkrijg. Hierna probeer ik een "gerichte" test, waarbij ik zelf enkele populaties uitkies om te zien wat voor mix het programma ervan maakt.

Methode 1: "afpellen"

Voordat ik deze methode uittest, is het handig om stil te staan bij wat er mogelijk is. Het programma is in staat te zien welke populatie het dichtst bij mij staat (de Nederlandse). Verschillende "vreemde" elementen zoals het Indonesische kunnen ook makkelijk uitgepikt worden. Echter, zaken als 8% Duits, 2% Frans, 1% Engels of Zwitsers zijn nagenoeg onmogelijk om apart van het Nederlandse element te zetten, omdat deze volkeren teveel lijken op de Nederlander. Je zou het als volgt kunnen zien:

Stel dat we een stip op een kaart zetten, nabij Utrecht, die een Nederlands persoon weergeeft. Zijn kleine hoeveelheid Frans bloed zal deze stip misschien naar het zuiden trekken, maar niet veel verder dan Brabant. Zijn Duitse bloed zal hem weer naar het oosten trekken; misschien dat de stip uiteindelijk tot stilstand komt in de buurt van Nijmegen. Door de plaats van die stip, gecombineerd met de kennis dat "Nederlands" de dichtstbijzijnde populatie van deze persoon is, zal het programma al deze volkeren bijeen stoppen onder de noemer "Nederlands". Pas wanneer elk volk is opgesplitst in bijvoorbeeld provincies of streken, dan zijn zulke vermengingen vermoedelijk te detecteren, maar het is de vraag of dat ooit nauwkeurig mogelijk is.
Bij mij zal het Indonesische element de "Nederlandse" stip helemaal naar het zuidoosten trekken; misschien wel tot aan de Balkan. Het programma zal mij echter niet als iemand uit de Balkan beschouwen, omdat uit mijn coördinaten blijkt dat de dichtstbijzijnde bevolking de Nederlanders zijn en omdat de volkeren in de Balkan niet naar Azië getrokken zijn binnen één van de dimensies. Het programma zal dan een mix het meest waarschijnlijk achten.

Goed, het programma werkt natuurlijk niet met geografische kaarten in het hoofd, maar slechts met de coördinaten. Laten we nu maar zien wat een eerste test met de alle moderne bevolkingen (behalve die ten zuiden van de Sahara) oplevert. Allereerst laat ik hier zien wat volgens het programma de dichtstbijzijnde populaties zijn:

[1] "1. CLOSEST SINGLE ITEM DISTANCES"
           Dutch        Hungarian         Croatian        Slovenian
     0.008356889      0.009906331      0.010424759      0.010669958
           Irish            Czech English_Cornwall     English_Kent
     0.010742863      0.011037572      0.011192640      0.011252235


De Nederlander staat het dichtstbij mijn coördinaten. We zien ook andere Europese volkeren. Eerst maar eens zien wat het programma mij als eerste mix geeft. Op grond van de papieren stamboom verwacht ik ca. 88,25% Noordwest-Europees, ca. 5,5% Zuid-Oost-Aziatisch, en 6,25% Joods.

Als eerste mix geeft het programma:

VvdH
Dutch              84.00
Lithuanian          7.25
Igorot              5.05
Armenian_Chambarak  3.60
Spanish_Andalucia   0.10
distance%=0.3288 / distance=0.003288


Dat is toch ongelofelijk voor een eerste berekening? Het programma weet niets van mijn achtergrond, het kent slechts mijn coördinaten; "Nederlands" als hoogste percentage is goed; de Igorot, een volk uit de Philippijnen, geven het Indonesische element vrij aardig weer; het Armeens en Spaans zullen wel kenmerkend zijn voor het Joodse element. Het Litouws is interessant, maar niet goed uit te leggen, dus deze "pel ik af" voor de volgende berekening:

VvdH
Dutch              85.15
Latvian             6.10
Igorot              5.05
Armenian_Chambarak  3.70
distance%=0.3304 / distance=0.003304


Wel ja, veel verschil maakt het niet; nu komen de Letten om de hoek kijken... Het is wel bekend dat de Joden in Oost-Europa zich een beetje vermengd hebben met de aldaar levende bevolking, maar 6% is mij toch teveel. De Letten haal ik eruit; ook ben ik benieuwd of we het Indonesische element kunnen uitdrukken in wat anders dan de Philippijnse Igorot, dus ook zij vertrekken.

VvdH                
Dutch            92.40
Ami               4.30
Georgian          1.75
Batak             0.90
Russian_Orel      0.65
distance%=0.3458 / distance=0.003458


De Igorot zijn nu vervangen door de Austronesisch sprekende Ami uit Taiwan en door de Batakkers, waarvan mij niet duidelijk is of hiermee nu de Philippijnse of de Sumatraanse groepen bedoeld zijn. Het Nederlandse percentage wordt nu wat hoog ingeschat, en de Armeniërs zijn door de Georgiërs vervangen. Eens zien wat er gebeurt als we de Ami eruit gooien.

VvdH              
Dutch            88.90
Murut             4.00
Ingrian           2.85
Georgian          2.55
Batak             1.05
Montenegrin       0.65
distance%=0.356 / distance=0.00356


Dat ziet er vrij aardig uit; de Murut is een volk uit Noord-Oost-Borneo; aangezien mijn betovergrootvader van zijn vaderskant vrijwel zeker Borneoos bloed heeft, lijkt het een goed idee om dit volk erin te houden; het Baltische gebied blijkt echter zeer weerbarstig, en keert nu terug met de Ingriërs, een Finoegrisch volk. Ik kan hier natuurlijk nog vele malen mee doorgaan; er zijn echter zoveel mogelijkheden... ik neem genoegen met het volgende model; de Joden zijn lastig weer te geven, hoewel ze toch als losse groep voorkomen in de dataset. Een mengsel van Georgië, Montenegro en Rusland doet mij echter niet zeer vreemd aan.

VvdH            
Dutch            88.1
Murut             3.9
Russian_Orel      3.6
Georgian          2.2
Batak             1.2
Montenegrin       1.0
distance%=0.3581 / distance=0.003581


Methode 2: gerichte test

In plaats van te wachten om een passend resultaat door middel van voorgaande methode, is het uiteraard ook mogelijk om zelf een inschatting te maken van wat logische populaties zijn. Allereerst probeer ik een model met slechts drie bevolkingsgroepen, de Nederlanders, de Ashkenazim en de eerder genoemde Murut.

VvdH                
Dutch         92.95
Murut          4.80
Ashkenazi_Jew  2.25
distance%=0.3911 / distance=0.003911


Doordat ik zelf in plaats van het programma de groepen kies, is de "distance" iets hoger, maar zeker nog goed. Deze mix bevat een kern van waarheid, maar een mogelijk probleem is dat de Joodse bevolking een aanzienlijk Europees element in zich heeft, dat hier opgeslokt zou kunnen zijn door het Nederlandse element. Het is nu de taak om wat te variëren met de bevolkingen, ook met de Nederlanders zelf. De volgende resultaten vond ik zelf vrij aardig:

VvdH
Dutch 88.50
Romanian 6.30
Murut 3.35
Batak 1.85
distance%=0.3715 / distance=0.003715


VvdH
Irish 88.05
Italian_Tuscan 5.85
Murut 3.85
Batak 2.25
distance%=0.5474 / distance=0.005474


VvdH
Scottish 89.20
Murut 5.95
Sephardic_Jew_Bulgaria 4.85
distance%=0.5796 / distance=0.005796


Het nemen van Duitsers in plaats van Nederlanders lijkt ook goed te werken.

VvdH
German 88.55
Murut 5.95
Ashkenazi_Jew 5.50
distance%=0.6703 / distance=0.006703


Tot slot een voorbeeld met een prehistorisch sample, een Armeniër uit de bronstijd die op een plot vlakbij de Joden ligt.

VvdH
German 87.75
Armenia_MLBA:RISE397 6.35
Murut 5.90
distance%=0.5981 / distance=0.005981


Veel mogelijkheden

Ik heb hier wat experimenten weergegeven op basis van moderne bevolkingen, maar het is natuurlijk ook mogelijk om prehistorische bevolkingen te gebruiken (voor zover er genetisch materiaal beschikbaar is), of een mix van beide. Tot slot is een interessante mogelijkheid het vergelijken van een volk i.p.v. een individu ten opzichte van prehistorische samples, hetgeen veel kan zeggen over de populatie- en migratiegeschiedenis; dit gebeurt dan ook veel op internet.