• Don't want to see ads? Install an adblocker like uBlock Origin or use a Europe-based privacy-friendly browser like Vivaldi or Mullvad.

Admixtools My qpAdm Results Please Share Yours!

I grabbed these references from an X user:

1776174440018.png


1776174440030.png

1776174505053.png

1776174555849.png

1776174608737.png

1776174728086.png


It's a little frustrating when I introduce a third NW Euro IA source. The standard errors are bad when I see others able to pull it off. This last 3-way to get the SEs ~10%, I had to use a southern Gaul instead of one from the north.

This is an example:
1776175117960.png


I'm thinking eventually there is a source and reference combination that will work for me. Considering I cluster in the British Isles and FST to English is 0.
 
IllustrativeDNA updated the dataset to AADR V.66. I'll have some different models to share later.
 
IllustrativeDNA is cool, I like how it can read your dna based on different time periods. It’s fun reading results from that service
 
1778760210081.png

Would anyone like to try to model this group as Steppe/ANF/WHG? I've tried a number of varying sources and references.
 
Captura de pantalla 2026-06-13 004432.png
 
Nice results! What references did you use?

View attachment 19707
View attachment 19708

It's very sensitive to the WHG outgroup. This failed with Italy Sicily Epigravettian.
Lefts: Latvia_LN_CordedWare.AG, Luxembourg_Mesolithic.DG, Greece_NeaNikomedeia_EN.SG

Rights: Mbuti.DG, Russia_UstIshim_IUP.DG, Russia_Kostenki14_UP.SG, Russia_Sunghir_UP.SG, Turkey_Central_Pinarbasi_Epipaleolithic.AG, Israel_Natufian.AG, Russia_Sidelkino_HG.SG, Georgia_Satsurblia_LateUP.SG, Switzerland_Bichon_Epipaleolithic.SG, Iran_Wezmeh_N.SG, Russia_MA1_UP.SG, China_AmurRiver_Paleolithic.AG


Hopefully this is fine
 
hey qh777 bro

these are my results

34.5% Anatolia Barcin Neolithic Farmer

29.1% Zagros Neolithic Farmer

12.9% Caucasus Hunter Gatherer . Satsurblia Georgia

11.1% East European Hunter Gatherer

8.8% Israel Natufian

3.7% East Asian



51088760yi.jpg
 
Last edited:
A random thought crossed my mind. "Can I model myself with Polynesians and other East Eurasians? Let's find out."

1784042441824.png

1784042656760.png

1784042710264.png

1784042819395.png

1784043203446.png

1784042913201.png

What I think is going on is that qpAdm is borrowing from the steppe component and assigning it to the East Eurasian sources. It's picking up the Ancestral North Eurasian component I think and saying "This can be substituted for East Eurasian". The reason why I think this is because in many of these models I score ~42% Steppe(Yamnaya). Normally I score around 44%-45%.

While doing these models, I ran into a post on X that posted this map:

1784043541193.png


After seeing this map, it makes me wonder if it's a combination of this and ANE.
 
hey qh777 bro

these are my results

34.5% Anatolia Barcin Neolithic Farmer

29.1% Zagros Neolithic Farmer

12.9% Caucasus Hunter Gatherer . Satsurblia Georgia

11.1% East European Hunter Gatherer

8.8% Israel Natufian

3.7% East Asian



51088760yi.jpg

i have doubts about my qpAdm result (even though they are reasonable and similar to my G25 results ) because my forum friend who did it for me modelled other populations too and the results didnt make sense . for example campanian italians got 14% natufian which can not be true

we will try to modell me further and if we get a better model i will post it here

EDIT :

actually he ran more ethnicities and for many they seemed accurate imo and the p values and other parameters were good . so i think this qpAdm model of me is accurate :) if there will be some changes and we find a better run i will update you
 
Last edited:
qpAdm Raw R output. 10 examples of feasible models with my raw data:

I-Captura de tela 2026-07-15 000719.png

II-Captura de tela 2026-07-15 001059.png

III-Captura de tela 2026-07-15 001216.png

IV-Captura de tela 2026-07-15 001339.png

V-Captura de tela 2026-07-15 001834.png

VI-Captura de tela 2026-07-15 001948.png

VII-Captura de tela 2026-07-15 002104.png
VIII-Captura de tela 2026-07-15 002459.png
IX-Captura de tela 2026-07-15 002621.png

X-Captura de tela 2026-07-15 002906.png
 
Last edited:
More 9 examples to finish:

XI-Captura de tela 2026-07-15 003041.png

XII-Captura de tela 2026-07-15 003232.png

XIII-Captura de tela 2026-07-15 003354.png

XIV-Captura de tela 2026-07-15 003600.png

XV-Captura de tela 2026-07-15 003746.png

XVI-Captura de tela 2026-07-15 004011.png

XVII-Captura de tela 2026-07-15 004311.png

XVII-Captura de tela 2026-07-15 004439.png

XIX-Captura de tela 2026-07-15 004611.png
 
I would like you to analyze the following qpAdm results, covering the 2-way, 3-way, and 4-way models. The individual is a Brazilian with a genetic background from the northwest of the Iberian Peninsula (Northern Portugal, Galicia, Asturias, and Cantabria). The outgroups (right sources) used were Mbuti.DG, Russia_Kostenki14_UP.SG, Georgia_Kotias_Mesolithic.SG, and Israel_Natufian.AG.
A) Model 1

── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Portugal_Conimbriga_Roman.SG 0.950 0.0120 79.3
2 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0498 0.0120 4.15

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Portugal_Conimbriga_Roman.SG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 11 11.8 0.380 1 0.950 0.0498 TRUE NA NA NA NA
2 01 1 12 31.9 0.00145 0 1 NA TRUE TRUE 0 -6524. 1
3 10 1 12 6556. 0 0 NA 1 TRUE TRUE NA NA NA

B) Model 2
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Portugal_Miroico_LateRoman.SG 0.953 0.0108 88.4
2 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0471 0.0108 4.37

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Portugal_Miroico_LateRoman.SG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 11 14.8 0.194 1 0.953 0.0471 TRUE NA NA NA NA
2 01 1 12 48.2 0.00000286 0 1 NA TRUE TRUE 0 -8250. 1
3 10 1 12 8298. 0 0 NA 1 TRUE TRUE NA NA NA

C) Model 3
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Portugal_MonteDaNora_LateRoman.SG 0.964 0.0112 85.8
2 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0358 0.0112 3.19

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Portugal_MonteDaNora_LateRoman.SG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 11 19.0 0.0605 1 0.964 0.0358 TRUE NA NA NA NA
2 01 1 12 38.3 0.000139 0 1 NA TRUE TRUE 0 -7709. 1
3 10 1 12 7747. 0 0 NA 1 TRUE TRUE NA NA NA

D) Model 4
── RESULTS_WEIGHTS ──

A tibble: 3 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Portugal_Miroico_LateRoman.SG 0.569 0.219 2.60
2 Brazil_Belo-Horizonte_Portuguese Germany_AltInden_EarlyMedieval_Saxon.AG 0.367 0.211 1.73
3 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0647 0.0126 5.13

── RESULTS_POPDROP ──

A tibble: 7 × 14​

pat wt dof chisq p f4rank Portugal_Miroico_LateRoman.SG Germany_AltInden_EarlyMedieval_Saxon.AG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 000 0 9 7.96 5.38e- 1 2 0.569 0.367 0.0647 TRUE NA NA NA NA
2 001 1 10 27.4 2.26e- 3 1 2.09 -1.09 NA FALSE TRUE 0 9.07 0
3 010 1 10 18.3 4.99e- 2 1 0.948 NA 0.0525 TRUE TRUE 0 -10.0 1
4 100 1 10 28.3 1.60e- 3 1 NA 0.918 0.0823 TRUE TRUE NA NA NA
5 011 2 11 109. 3.52e-18 0 1 NA NA TRUE NA NA NA NA
6 101 2 11 310. 7.14e-60 0 NA 1 NA TRUE NA NA NA NA
7 110 2 11 8568. 0 0 NA NA 1 TRUE NA NA NA NA

E) Model 5
── RESULTS_WEIGHTS ──

A tibble: 3 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Portugal_Miroico_LateRoman.SG 0.510 0.180 2.83
2 Brazil_Belo-Horizonte_Portuguese Denmark_EarlyViking.SG 0.426 0.174 2.45
3 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0642 0.0121 5.29

── RESULTS_POPDROP ──

A tibble: 7 × 14​

pat wt dof chisq p f4rank Portugal_Miroico_LateRoman.SG Denmark_EarlyViking.SG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 000 0 9 7.73 5.62e- 1 2 0.510 0.426 0.0642 TRUE NA NA NA NA
2 001 1 10 35.3 1.12e- 4 1 1.74 -0.743 NA FALSE TRUE 0 15.0 0
3 010 1 10 20.3 2.64e- 2 1 0.952 NA 0.0483 TRUE TRUE 0 -4.16 1
4 100 1 10 24.5 6.41e- 3 1 NA 0.920 0.0802 TRUE TRUE NA NA NA
5 011 2 11 79.0 2.35e-12 0 1 NA NA TRUE NA NA NA NA
6 101 2 11 181. 7.61e-33 0 NA 1 NA TRUE NA NA NA NA
7 110 2 11 8589. 0 0 NA NA 1 TRUE NA NA NA NA

F) Model 6
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 3 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Portugal_Miroico_LateRoman.SG 0.662 0.331 2.00
2 Brazil_Belo-Horizonte_Portuguese Spain_Hellenistic_oLocal.AG 0.274 0.313 0.876
3 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0637 0.0210 3.03

── RESULTS_POPDROP ──

A tibble: 7 × 14​

pat wt dof chisq p f4rank Portugal_Miroico_LateRoman.SG Spain_Hellenistic_oLocal.AG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 000 0 9 10.8 2.91e- 1 2 0.662 0.274 0.0637 TRUE NA NA NA NA
2 001 1 10 18.6 4.53e- 2 1 1.80 -0.795 NA FALSE TRUE 0 4.79 0
3 010 1 10 13.8 1.81e- 1 1 0.951 NA 0.0493 TRUE TRUE 0 -5.35 1
4 100 1 10 19.2 3.79e- 2 1 NA 0.898 0.102 TRUE TRUE NA NA NA
5 011 2 11 61.1 5.89e- 9 0 1 NA NA TRUE NA NA NA NA
6 101 2 11 127. 8.75e-22 0 NA 1 NA TRUE NA NA NA NA
7 110 2 11 8434. 0 0 NA NA 1 TRUE NA NA NA NA

G) Model 7
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 3 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Portugal_Miroico_LateRoman.SG 0.649 0.294 2.20
2 Brazil_Belo-Horizonte_Portuguese Spain_Carolingian.AG 0.292 0.281 1.04
3 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0593 0.0173 3.43

── RESULTS_POPDROP ──

A tibble: 7 × 14​

pat wt dof chisq p f4rank Portugal_Miroico_LateRoman.SG Spain_Carolingian.AG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 000 0 9 11.0 0.277 2 0.649 0.292 0.0593 TRUE NA NA NA NA
2 001 1 10 18.8 0.0425 1 2.01 -1.01 NA FALSE TRUE 0 4.21 0
3 010 1 10 14.6 0.147 1 0.953 NA 0.0466 TRUE TRUE 0 -2.88 1
4 100 1 10 17.5 0.0639 1 NA 0.914 0.0859 TRUE TRUE NA NA NA
5 011 2 11 55.3 0.0000000681 0 1 NA NA TRUE NA NA NA NA
6 101 2 11 61.9 0.00000000414 0 NA 1 NA TRUE NA NA NA NA
7 110 2 11 8297. 0 0 NA NA 1 TRUE NA NA NA NA

H) Model 8
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 3 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Portugal_Conimbriga_Roman.SG 0.586 0.257 2.27
2 Brazil_Belo-Horizonte_Portuguese Germany_AltInden_EarlyMedieval_Saxon.AG 0.349 0.249 1.40
3 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0658 0.0135 4.89

── RESULTS_POPDROP ──

A tibble: 7 × 14​

pat wt dof chisq p f4rank Portugal_Conimbriga_Roman.SG Germany_AltInden_EarlyMedieval_Saxon.AG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 000 0 9 7.08 6.28e- 1 2 0.586 0.349 0.0658 TRUE NA NA NA NA
2 001 1 10 15.3 1.20e- 1 1 2.10 -1.10 NA FALSE TRUE 0 3.76 0
3 010 1 10 11.6 3.15e- 1 1 0.947 NA 0.0526 TRUE TRUE 0 -8.84 1
4 100 1 10 20.4 2.56e- 2 1 NA 0.918 0.0822 TRUE TRUE NA NA NA
5 011 2 11 45.7 3.67e- 6 0 1 NA NA TRUE NA NA NA NA
6 101 2 11 195. 8.10e-36 0 NA 1 NA TRUE NA NA NA NA
7 110 2 11 8745. 0 0 NA NA 1 TRUE NA NA NA NA

I) Model 9
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 3 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Portugal_Conimbriga_Roman.SG 0.538 0.245 2.20
2 Brazil_Belo-Horizonte_Portuguese Denmark_EarlyViking.SG 0.396 0.236 1.68
3 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0661 0.0134 4.94

── RESULTS_POPDROP ──

A tibble: 7 × 14​

pat wt dof chisq p f4rank Portugal_Conimbriga_Roman.SG Denmark_EarlyViking.SG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 000 0 9 7.31 6.05e- 1 2 0.538 0.396 0.0661 TRUE NA NA NA NA
2 001 1 10 15.6 1.13e- 1 1 2.13 -1.13 NA FALSE TRUE 0 4.60 0
3 010 1 10 11.0 3.60e- 1 1 0.949 NA 0.0514 TRUE TRUE 0 -6.53 1
4 100 1 10 17.5 6.41e- 2 1 NA 0.919 0.0809 TRUE TRUE NA NA NA
5 011 2 11 39.4 4.62e- 5 0 1 NA NA TRUE NA NA NA NA
6 101 2 11 137. 8.00e-24 0 NA 1 NA TRUE NA NA NA NA
7 110 2 11 8028. 0 0 NA NA 1 TRUE NA NA NA NA

J) Model 10
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 3 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Portugal_Conimbriga_Roman.SG 0.743 0.355 2.10
2 Brazil_Belo-Horizonte_Portuguese Spain_Hellenistic_oLocal.AG 0.198 0.337 0.588
3 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0584 0.0209 2.80

── RESULTS_POPDROP ──

A tibble: 7 × 14​

pat wt dof chisq p f4rank Portugal_Conimbriga_Roman.SG Spain_Hellenistic_oLocal.AG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 000 0 9 10.9 2.83e- 1 2 0.743 0.198 0.0584 TRUE NA NA NA NA
2 001 1 10 13.2 2.10e- 1 1 1.78 -0.775 NA FALSE TRUE 0 1.18 0
3 010 1 10 12.1 2.81e- 1 1 0.951 NA 0.0489 TRUE TRUE 0 -8.00 1
4 100 1 10 20.1 2.87e- 2 1 NA 0.901 0.0985 TRUE TRUE NA NA NA
5 011 2 11 36.5 1.39e- 4 0 1 NA NA TRUE NA NA NA NA
6 101 2 11 113. 5.29e-19 0 NA 1 NA TRUE NA NA NA NA
7 110 2 11 7352. 0 0 NA NA 1 TRUE NA NA NA NA

K) Model 11
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 3 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Portugal_MonteDaNora_LateRoman.SG 0.599 0.318 1.88
2 Brazil_Belo-Horizonte_Portuguese Germany_AltInden_EarlyMedieval_Saxon.AG 0.345 0.305 1.13
3 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0565 0.0164 3.44

── RESULTS_POPDROP ──

A tibble: 7 × 14​

pat wt dof chisq p f4rank Portugal_MonteDaNora_LateRoman.SG Germany_AltInden_EarlyMedieval_Saxon.AG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 000 0 9 10.7 2.93e- 1 2 0.599 0.345 0.0565 TRUE NA NA NA NA
2 001 1 10 20.3 2.63e- 2 1 1.73 -0.726 NA FALSE TRUE 0 0.825 0
3 010 1 10 19.5 3.43e- 2 1 0.960 NA 0.0400 TRUE TRUE 0 -7.80 1
4 100 1 10 27.3 2.34e- 3 1 NA 0.917 0.0834 TRUE TRUE NA NA NA
5 011 2 11 56.6 3.93e- 8 0 1 NA NA TRUE NA NA NA NA
6 101 2 11 255. 2.47e-48 0 NA 1 NA TRUE NA NA NA NA
7 110 2 11 8993. 0 0 NA NA 1 TRUE NA NA NA NA

L) Model 12
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 3 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Portugal_MonteDaNora_LateRoman.SG 0.451 0.174 2.59
2 Brazil_Belo-Horizonte_Portuguese Denmark_EarlyViking.SG 0.488 0.166 2.95
3 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0611 0.0131 4.68

── RESULTS_POPDROP ──

A tibble: 7 × 14​

pat wt dof chisq p f4rank Portugal_MonteDaNora_LateRoman.SG Denmark_EarlyViking.SG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 000 0 9 9.15 4.24e- 1 2 0.451 0.488 0.0611 TRUE NA NA NA NA
2 001 1 10 32.6 3.24e- 4 1 1.43 -0.435 NA FALSE TRUE 0 7.97 0
3 010 1 10 24.6 6.21e- 3 1 0.964 NA 0.0363 TRUE TRUE 0 3.38 0
4 100 1 10 21.2 1.98e- 2 1 NA 0.920 0.0799 TRUE TRUE NA NA NA
5 011 2 11 51.3 3.58e- 7 0 1 NA NA TRUE NA NA NA NA
6 101 2 11 159. 2.46e-28 0 NA 1 NA TRUE NA NA NA NA
7 110 2 11 8446. 0 0 NA NA 1 TRUE NA NA NA NA

M) Model 13
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 3 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Denmark_EarlyViking.SG 0.284 0.728 0.390
2 Brazil_Belo-Horizonte_Portuguese Italy_Sardinia_EarlyMedieval.AG 0.662 1.50 0.440
3 Brazil_Belo-Horizonte_Portuguese Morocco_KTG_EN.SG 0.0545 0.831 0.0656

── RESULTS_POPDROP ──

A tibble: 7 × 14​

pat wt dof chisq p f4rank Denmark_EarlyViking.SG Italy_Sardinia_EarlyMedieval.AG Morocco_KTG_EN.SG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 000 0 9 9.27 0.413 2 0.284 0.662 0.0545 TRUE NA NA NA NA
2 001 1 10 9.63 0.474 1 0.197 0.803 NA TRUE TRUE 0 -11.3 1
3 010 1 10 20.9 0.0216 1 0.592 NA 0.408 TRUE TRUE 0 11.2 0
4 100 1 10 9.72 0.465 1 NA 1.20 -0.201 FALSE TRUE NA NA NA
5 011 2 11 59.2 0.0000000131 0 1 NA NA TRUE NA NA NA NA
6 101 2 11 10.1 0.523 0 NA 1 NA TRUE NA NA NA NA
7 110 2 11 60.6 0.00000000731 0 NA NA 1 TRUE NA NA NA NA

N) Model 14
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 3 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Denmark_EarlyViking.SG 0.885 0.128 6.93
2 Brazil_Belo-Horizonte_Portuguese Italy_Sardinia_EarlyMedieval.AG 0.0557 0.140 0.398
3 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0597 0.0184 3.24

── RESULTS_POPDROP ──

A tibble: 7 × 14​

pat wt dof chisq p f4rank Denmark_EarlyViking.SG Italy_Sardinia_EarlyMedieval.AG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 000 0 9 9.70 0.376 2 0.885 0.0557 0.0597 TRUE NA NA NA NA
2 001 1 10 18.9 0.0414 1 0.318 0.682 NA TRUE TRUE 0 8.63 0
3 010 1 10 10.3 0.416 1 0.935 NA 0.0647 TRUE TRUE 0 -10.2 1
4 100 1 10 20.5 0.0249 1 NA 1.01 -0.00811 FALSE TRUE NA NA NA
5 011 2 11 51.9 0.000000287 0 1 NA NA TRUE NA NA NA NA
6 101 2 11 19.8 0.0477 0 NA 1 NA TRUE NA NA NA NA
7 110 2 11 4910. 0 0 NA NA 1 TRUE NA NA NA NA

O) Model 15
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 3 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Denmark_EarlyViking.SG 0.805 0.0981 8.20
2 Brazil_Belo-Horizonte_Portuguese Morocco_KTG_EN.SG 0.124 0.107 1.16
3 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0713 0.0141 5.07

── RESULTS_POPDROP ──

A tibble: 7 × 14​

pat wt dof chisq p f4rank Denmark_EarlyViking.SG Morocco_KTG_EN.SG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 000 0 9 8.98 4.39e- 1 2 0.805 0.124 0.0713 TRUE NA NA NA NA
2 001 1 10 47.5 7.56e- 7 1 0.479 0.521 NA TRUE TRUE 0 35.8 0
3 010 1 10 11.7 3.04e- 1 1 0.919 NA 0.0809 TRUE TRUE 0 -59.7 1
4 100 1 10 71.4 2.38e-11 1 NA 1.02 -0.0152 FALSE TRUE NA NA NA
5 011 2 11 133. 5.16e-23 0 1 NA NA TRUE NA NA NA NA
6 101 2 11 77.8 3.98e-12 0 NA 1 NA TRUE NA NA NA NA
7 110 2 11 8294. 0 0 NA NA 1 TRUE NA NA NA NA
P) Model 16
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 3 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Italy_Sardinia_EarlyMedieval.AG 0.0847 0.223 0.379
2 Brazil_Belo-Horizonte_Portuguese Spain_Carolingian.AG 0.844 0.205 4.11
3 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0711 0.0258 2.76

── RESULTS_POPDROP ──

A tibble: 7 × 14​

pat wt dof chisq p f4rank Italy_Sardinia_EarlyMedieval.AG Spain_Carolingian.AG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 000 0 9 11.4 0.249 2 0.0847 0.844 0.0711 TRUE NA NA NA NA
2 001 1 10 19.9 0.0305 1 0.590 0.410 NA TRUE TRUE 0 -2.16 1
3 010 1 10 22.0 0.0150 1 1.00 NA -0.00409 FALSE TRUE 0 10.2 0
4 100 1 10 11.9 0.294 1 NA 0.922 0.0777 TRUE TRUE NA NA NA
5 011 2 11 21.4 0.0292 0 1 NA NA TRUE NA NA NA NA
6 101 2 11 31.9 0.000780 0 NA 1 NA TRUE NA NA NA NA
7 110 2 11 3910. 0 0 NA NA 1 TRUE NA NA NA NA

Q) Model 17
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 3 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Italy_Sardinia_EarlyMedieval.AG 0.942 0.287 3.28
2 Brazil_Belo-Horizonte_Portuguese Hungary_Carolingian.SG 0.0302 0.270 0.112
3 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0281 0.0360 0.781

── RESULTS_POPDROP ──

A tibble: 7 × 14​

pat wt dof chisq p f4rank Italy_Sardinia_EarlyMedieval.AG Hungary_Carolingian.SG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 000 0 9 10.2 0.335 2 0.942 0.0302 0.0281 TRUE NA NA NA NA
2 001 1 10 8.86 0.545 1 1.06 -0.0560 NA FALSE TRUE 0 -1.27 1
3 010 1 10 10.1 0.429 1 0.973 NA 0.0267 TRUE TRUE 0 -16.3 1
4 100 1 10 26.4 0.00320 1 NA 0.928 0.0723 TRUE TRUE NA NA NA
5 011 2 11 9.12 0.611 0 1 NA NA TRUE NA NA NA NA
6 101 2 11 30.9 0.00113 0 NA 1 NA TRUE NA NA NA NA
7 110 2 11 5377. 0 0 NA NA 1 TRUE NA NA NA NA

R) Model 18
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 4 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Portugal_Miroico_LateRoman.SG 0.329 1.16 0.283
2 Brazil_Belo-Horizonte_Portuguese Portugal_Conimbriga_Roman.SG 0.229 1.32 0.173
3 Brazil_Belo-Horizonte_Portuguese Germany_AltInden_EarlyMedieval_Saxon.AG 0.375 0.261 1.44
4 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0667 0.0125 5.35

── RESULTS_POPDROP ──

A tibble: 15 × 15​

pat wt dof chisq p f4rank Portugal_Miroico_LateRoman.SG Portugal_Conimbriga_Roman.SG Germany_AltInden_EarlyMedieval_Saxon.AG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 0000 0 7 6.11 5.27e- 1 3 0.329 0.229 0.375 0.0667 TRUE NA NA NA NA
2 0001 1 8 7.15 5.21e- 1 2 -40.1 41.9 -0.773 NA FALSE TRUE 0 -1.18 1
3 0010 1 8 8.33 4.02e- 1 2 -11.1 12.0 NA 0.0464 FALSE TRUE 0 -0.0286 1
4 0100 1 8 8.36 3.99e- 1 2 0.569 NA 0.367 0.0645 TRUE TRUE 0 -1.13 1
5 1000 1 8 9.49 3.03e- 1 2 NA 0.666 0.273 0.0612 TRUE TRUE NA NA NA
6 0011 2 9 7.18 6.19e- 1 1 -54.7 55.7 NA NA FALSE NA NA NA NA
7 0101 2 9 27.3 1.24e- 3 1 2.16 NA -1.16 NA FALSE NA NA NA NA
8 0110 2 9 17.7 3.85e- 2 1 0.948 NA NA 0.0519 TRUE NA NA NA NA
9 1001 2 9 14.8 9.77e- 2 1 NA 2.13 -1.13 NA FALSE NA NA NA NA
10 1010 2 9 11.3 2.58e- 1 1 NA 0.948 NA 0.0515 TRUE NA NA NA NA
11 1100 2 9 26.2 1.86e- 3 1 NA NA 0.917 0.0829 TRUE NA NA NA NA
12 0111 3 10 109. 7.80e-19 0 1 NA NA NA TRUE NA NA NA NA
13 1011 3 10 44.8 2.36e- 6 0 NA 1 NA NA TRUE NA NA NA NA
14 1101 3 10 336. 3.08e-66 0 NA NA 1 NA TRUE NA NA NA NA
15 1110 3 10 8673. 0 0 NA NA NA 1 TRUE NA NA NA NA

S) Model 19
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 4 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Portugal_Miroico_LateRoman.SG 0.309 28.0 0.0110
2 Brazil_Belo-Horizonte_Portuguese Portugal_Conimbriga_Roman.SG 0.199 31.4 0.00633
3 Brazil_Belo-Horizonte_Portuguese Denmark_EarlyViking.SG 0.426 3.45 0.124
4 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0656 0.0299 2.20

── RESULTS_POPDROP ──

A tibble: 15 × 15​

pat wt dof chisq p f4rank Portugal_Miroico_LateRoman.SG Portugal_Conimbriga_Roman.SG Denmark_EarlyViking.SG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 0000 0 7 6.09 5.29e- 1 3 0.309 0.199 0.426 0.0656 TRUE NA NA NA NA
2 0001 1 8 4.92 7.66e- 1 2 -38.7 44.1 -4.41 NA FALSE TRUE 0 -1.48 1
3 0010 1 8 6.40 6.03e- 1 2 -3.06 4.00 NA 0.0589 FALSE TRUE 0 -1.58 1
4 0100 1 8 7.98 4.35e- 1 2 0.502 NA 0.433 0.0641 TRUE TRUE 0 -0.322 1
5 1000 1 8 8.30 4.04e- 1 2 NA 0.620 0.318 0.0617 TRUE TRUE NA NA NA
6 0011 2 9 5.22 8.15e- 1 1 111. -110. NA NA FALSE NA NA NA NA
7 0101 2 9 35.3 5.19e- 5 1 1.92 NA -0.916 NA FALSE NA NA NA NA
8 0110 2 9 20.6 1.48e- 2 1 0.952 NA NA 0.0478 TRUE NA NA NA NA
9 1001 2 9 15.4 7.95e- 2 1 NA 2.17 -1.17 NA FALSE NA NA NA NA
10 1010 2 9 10.4 3.20e- 1 1 NA 0.949 NA 0.0506 TRUE NA NA NA NA
11 1100 2 9 22.3 7.88e- 3 1 NA NA 0.919 0.0808 TRUE NA NA NA NA
12 0111 3 10 85.6 4.01e-14 0 1 NA NA NA TRUE NA NA NA NA
13 1011 3 10 42.2 6.89e- 6 0 NA 1 NA NA TRUE NA NA NA NA
14 1101 3 10 187. 8.22e-35 0 NA NA 1 NA TRUE NA NA NA NA
15 1110 3 10 8808. 0 0 NA NA NA 1 TRUE NA NA NA NA

T) Model 20
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 4 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Portugal_Miroico_LateRoman.SG 0.505 0.243 2.08
2 Brazil_Belo-Horizonte_Portuguese Germany_AltInden_EarlyMedieval_Saxon.AG 0.0644 0.564 0.114
3 Brazil_Belo-Horizonte_Portuguese Denmark_EarlyViking.SG 0.365 0.605 0.604
4 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0654 0.0124 5.28

── RESULTS_POPDROP ──

A tibble: 15 × 15​

pat wt dof chisq p f4rank Portugal_Miroico_LateRoman.SG Germany_AltInden_EarlyMedieval_Saxon.AG Denmark_EarlyViking.SG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 0000 0 7 6.47 4.86e- 1 3 0.505 0.0644 0.365 0.0654 TRUE NA NA NA NA
2 0001 1 8 13.8 8.59e- 2 2 1.25 -9.11 8.86 NA FALSE TRUE 0 1.78 0
3 0010 1 8 12.1 1.49e- 1 2 0.631 0.307 NA 0.0618 TRUE TRUE 0 -1.13 1
4 0100 1 8 13.2 1.05e- 1 2 0.586 NA 0.352 0.0623 TRUE TRUE 0 -1.47 1
5 1000 1 8 14.7 6.61e- 2 2 NA -3.76 4.70 0.0652 FALSE TRUE NA NA NA
6 0011 2 9 27.8 1.02e- 3 1 2.56 -1.56 NA NA FALSE NA NA NA NA
7 0101 2 9 26.6 1.65e- 3 1 3.02 NA -2.02 NA FALSE NA NA NA NA
8 0110 2 9 18.6 2.84e- 2 1 0.946 NA NA 0.0537 TRUE NA NA NA NA
9 1001 2 9 14.0 1.22e- 1 1 NA -18.1 19.1 NA FALSE NA NA NA NA
10 1010 2 9 31.6 2.36e- 4 1 NA 0.919 NA 0.0812 TRUE NA NA NA NA
11 1100 2 9 23.5 5.20e- 3 1 NA NA 0.924 0.0756 TRUE NA NA NA NA
12 0111 3 10 112. 1.93e-19 0 1 NA NA NA TRUE NA NA NA NA
13 1011 3 10 347. 1.48e-68 0 NA 1 NA NA TRUE NA NA NA NA
14 1101 3 10 180. 2.17e-33 0 NA NA 1 NA TRUE NA NA NA NA
15 1110 3 10 8510. 0 0 NA NA NA 1 TRUE NA NA NA NA

U) Model 21
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 4 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Portugal_Miroico_LateRoman.SG 0.510 0.195 2.61
2 Brazil_Belo-Horizonte_Portuguese Denmark_EarlyViking.SG 0.416 0.248 1.68
3 Brazil_Belo-Horizonte_Portuguese Spain_Carolingian.AG 0.0109 0.269 0.0407
4 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0629 0.0138 4.56

── RESULTS_POPDROP ──

A tibble: 15 × 15​

pat wt dof chisq p f4rank Portugal_Miroico_LateRoman.SG Denmark_EarlyViking.SG Spain_Carolingian.AG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 0000 0 7 6.80 4.50e- 1 3 0.510 0.416 0.0109 0.0629 TRUE NA NA NA NA
2 0001 1 8 12.9 1.16e- 1 2 1.46 1.71 -2.17 NA FALSE TRUE 0 5.38 0
3 0010 1 8 7.50 4.84e- 1 2 0.515 0.423 NA 0.0623 TRUE TRUE 0 -6.21 1
4 0100 1 8 13.7 8.97e- 2 2 0.489 NA 0.444 0.0666 TRUE TRUE 0 -1.42 1
5 1000 1 8 15.1 5.68e- 2 2 NA -0.591 1.50 0.0932 FALSE TRUE NA NA NA
6 0011 2 9 34.6 7.13e- 5 1 1.84 -0.838 NA NA FALSE NA NA NA NA
7 0101 2 9 19.4 2.21e- 2 1 2.07 NA -1.07 NA FALSE NA NA NA NA
8 0110 2 9 19.1 2.48e- 2 1 0.953 NA NA 0.0469 TRUE NA NA NA NA
9 1001 2 9 14.5 1.05e- 1 1 NA 10.7 -9.67 NA FALSE NA NA NA NA
10 1010 2 9 23.0 6.28e- 3 1 NA 0.921 NA 0.0793 TRUE NA NA NA NA
11 1100 2 9 15.7 7.44e- 2 1 NA NA 0.912 0.0882 TRUE NA NA NA NA
12 0111 3 10 78.1 1.19e-12 0 1 NA NA NA TRUE NA NA NA NA
13 1011 3 10 180. 2.28e-33 0 NA 1 NA NA TRUE NA NA NA NA
14 1101 3 10 63.8 6.98e-10 0 NA NA 1 NA TRUE NA NA NA NA
15 1110 3 10 8556. 0 0 NA NA NA 1 TRUE NA NA NA NA

V) Model 22
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 4 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Portugal_Conimbriga_Roman.SG 0.709 0.444 1.60
2 Brazil_Belo-Horizonte_Portuguese Germany_AltInden_EarlyMedieval_Saxon.AG 0.0867 0.469 0.185
3 Brazil_Belo-Horizonte_Portuguese Denmark_EarlyViking.SG 0.140 0.542 0.258
4 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0643 0.0158 4.07

── RESULTS_POPDROP ──

A tibble: 15 × 15​

pat wt dof chisq p f4rank Portugal_Conimbriga_Roman.SG Germany_AltInden_EarlyMedieval_Saxon.AG Denmark_EarlyViking.SG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 0000 0 7 5.00 6.60e- 1 3 0.709 0.0867 0.140 0.0643 TRUE NA NA NA NA
2 0001 1 8 7.54 4.80e- 1 2 3.02 -1.04 -0.979 NA FALSE TRUE 0 1.63 0
3 0010 1 8 5.90 6.58e- 1 2 0.936 0.00668 NA 0.0578 TRUE TRUE 0 -0.475 1
4 0100 1 8 6.38 6.05e- 1 2 0.995 NA -0.0505 0.0559 FALSE TRUE 0 -7.22 1
5 1000 1 8 13.6 9.29e- 2 2 NA 0.106 0.816 0.0777 TRUE TRUE NA NA NA
6 0011 2 9 8.19 5.16e- 1 1 2.82 -1.82 NA NA FALSE NA NA NA NA
7 0101 2 9 8.26 5.08e- 1 1 3.14 NA -2.14 NA FALSE NA NA NA NA
8 0110 2 9 6.28 7.11e- 1 1 0.943 NA NA 0.0569 TRUE NA NA NA NA
9 1001 2 9 15.5 7.74e- 2 1 NA -30.5 31.5 NA FALSE NA NA NA NA
10 1010 2 9 26.6 1.63e- 3 1 NA 0.919 NA 0.0812 TRUE NA NA NA NA
11 1100 2 9 21.5 1.05e- 2 1 NA NA 0.922 0.0781 TRUE NA NA NA NA
12 0111 3 10 46.1 1.37e- 6 0 1 NA NA NA TRUE NA NA NA NA
13 1011 3 10 290. 2.07e-56 0 NA 1 NA NA TRUE NA NA NA NA
14 1101 3 10 180. 2.25e-33 0 NA NA 1 NA TRUE NA NA NA NA
15 1110 3 10 8897. 0 0 NA NA NA 1 TRUE NA NA NA NA

W) Model 23
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 4 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Portugal_Conimbriga_Roman.SG 0.709 0.444 1.60
2 Brazil_Belo-Horizonte_Portuguese Germany_AltInden_EarlyMedieval_Saxon.AG 0.0867 0.469 0.185
3 Brazil_Belo-Horizonte_Portuguese Denmark_EarlyViking.SG 0.140 0.542 0.258
4 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0643 0.0158 4.07

── RESULTS_POPDROP ──

A tibble: 15 × 15​

pat wt dof chisq p f4rank Portugal_Conimbriga_Roman.SG Germany_AltInden_EarlyMedieval_Saxon.AG Denmark_EarlyViking.SG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 0000 0 7 5.00 6.60e- 1 3 0.709 0.0867 0.140 0.0643 TRUE NA NA NA NA
2 0001 1 8 7.54 4.80e- 1 2 3.02 -1.04 -0.979 NA FALSE TRUE 0 1.63 0
3 0010 1 8 5.90 6.58e- 1 2 0.936 0.00668 NA 0.0578 TRUE TRUE 0 -0.475 1
4 0100 1 8 6.38 6.05e- 1 2 0.995 NA -0.0505 0.0559 FALSE TRUE 0 -7.22 1
5 1000 1 8 13.6 9.29e- 2 2 NA 0.106 0.816 0.0777 TRUE TRUE NA NA NA
6 0011 2 9 8.19 5.16e- 1 1 2.82 -1.82 NA NA FALSE NA NA NA NA
7 0101 2 9 8.26 5.08e- 1 1 3.14 NA -2.14 NA FALSE NA NA NA NA
8 0110 2 9 6.28 7.11e- 1 1 0.943 NA NA 0.0569 TRUE NA NA NA NA
9 1001 2 9 15.5 7.74e- 2 1 NA -30.5 31.5 NA FALSE NA NA NA NA
10 1010 2 9 26.6 1.63e- 3 1 NA 0.919 NA 0.0812 TRUE NA NA NA NA
11 1100 2 9 21.5 1.05e- 2 1 NA NA 0.922 0.0781 TRUE NA NA NA NA
12 0111 3 10 46.1 1.37e- 6 0 1 NA NA NA TRUE NA NA NA NA
13 1011 3 10 290. 2.07e-56 0 NA 1 NA NA TRUE NA NA NA NA
14 1101 3 10 180. 2.25e-33 0 NA NA 1 NA TRUE NA NA NA NA
15 1110 3 10 8897. 0 0 NA NA NA 1 TRUE NA NA NA NA

X) Model 24
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 4 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Denmark_EarlyViking.SG 0.745 0.524 1.42
2 Brazil_Belo-Horizonte_Portuguese Italy_Sardinia_EarlyMedieval.AG 0.0367 0.188 0.195
3 Brazil_Belo-Horizonte_Portuguese Spain_Hellenistic_oLocal.AG 0.153 0.622 0.246
4 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0661 0.0367 1.80

── RESULTS_POPDROP ──

A tibble: 15 × 15​

pat wt dof chisq p f4rank Denmark_EarlyViking.SG Italy_Sardinia_EarlyMedieval.AG Spain_Hellenistic_oLocal.AG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 0000 0 7 9.48 2.20e- 1 3 0.745 0.0367 0.153 0.0661 TRUE NA NA NA NA
2 0001 1 8 10.6 2.28e- 1 2 2.01 0.317 -1.33 NA FALSE TRUE 0 -0.611 1
3 0010 1 8 11.2 1.92e- 1 2 0.876 0.0635 NA 0.0604 TRUE TRUE 0 1.19 0
4 0100 1 8 9.98 2.66e- 1 2 0.741 NA 0.188 0.0707 TRUE TRUE 0 -3.11 1
5 1000 1 8 13.1 1.09e- 1 2 NA -0.190 1.08 0.112 FALSE TRUE NA NA NA
6 0011 2 9 19.0 2.56e- 2 1 0.291 0.709 NA NA TRUE NA NA NA NA
7 0101 2 9 12.8 1.72e- 1 1 2.75 NA -1.75 NA FALSE NA NA NA NA
8 0110 2 9 11.8 2.24e- 1 1 0.935 NA NA 0.0650 TRUE NA NA NA NA
9 1001 2 9 19.6 2.05e- 2 1 NA 1.13 -0.126 NA FALSE NA NA NA NA
10 1010 2 9 20.4 1.55e- 2 1 NA 1.01 NA -0.00864 FALSE NA NA NA NA
11 1100 2 9 15.6 7.55e- 2 1 NA NA 0.906 0.0943 TRUE NA NA NA NA
12 0111 3 10 69.0 6.86e-11 0 1 NA NA NA TRUE NA NA NA NA
13 1011 3 10 20.0 2.94e- 2 0 NA 1 NA NA TRUE NA NA NA NA
14 1101 3 10 82.7 1.49e-13 0 NA NA 1 NA TRUE NA NA NA NA
15 1110 3 10 5046. 0 0 NA NA NA 1 TRUE NA NA NA NA

Y) Model 25
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 4 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Denmark_EarlyViking.SG 0.774 1.17 0.660
2 Brazil_Belo-Horizonte_Portuguese Italy_Sardinia_EarlyMedieval.AG 0.0463 0.130 0.355
3 Brazil_Belo-Horizonte_Portuguese Spain_Carolingian.AG 0.117 1.15 0.102
4 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0621 0.0229 2.71

── RESULTS_POPDROP ──

A tibble: 15 × 15​

pat wt dof chisq p f4rank Denmark_EarlyViking.SG Italy_Sardinia_EarlyMedieval.AG Spain_Carolingian.AG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 0000 0 7 9.30 0.232 3 0.774 0.0463 0.117 0.0621 TRUE NA NA NA NA
2 0001 1 8 11.9 0.154 2 9.79 -1.24 -7.56 NA FALSE TRUE 0 1.59 0
3 0010 1 8 10.3 0.242 2 0.884 0.0565 NA 0.0600 TRUE TRUE 0 0.516 0
4 0100 1 8 9.82 0.278 2 0.910 NA 0.0249 0.0651 TRUE TRUE 0 -3.42 1
5 1000 1 8 13.2 0.104 2 NA 0.137 0.795 0.0687 TRUE TRUE NA NA NA
6 0011 2 9 18.8 0.0270 1 0.310 0.690 NA NA TRUE NA NA NA NA
7 0101 2 9 12.3 0.198 1 4.36 NA -3.36 NA FALSE NA NA NA NA
8 0110 2 9 10.7 0.294 1 0.936 NA NA 0.0641 TRUE NA NA NA NA
9 1001 2 9 18.5 0.0300 1 NA 0.720 0.280 NA TRUE NA NA NA NA
10 1010 2 9 20.0 0.0177 1 NA 1.01 NA -0.00967 FALSE NA NA NA NA
11 1100 2 9 13.9 0.126 1 NA NA 0.921 0.0785 TRUE NA NA NA NA
12 0111 3 10 60.8 0.00000000261 0 1 NA NA NA TRUE NA NA NA NA
13 1011 3 10 19.7 0.0323 0 NA 1 NA NA TRUE NA NA NA NA
14 1101 3 10 38.3 0.0000339 0 NA NA 1 NA TRUE NA NA NA NA
15 1110 3 10 5049. 0 0 NA NA NA 1 TRUE NA NA NA NA

Z) Model 26
── RESULTS_SUMMARY ──
Target:
Blocks: 705 SNPs: 121,515

── RESULTS_WEIGHTS ──

A tibble: 4 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Belo-Horizonte_Portuguese Denmark_EarlyViking.SG 0.729 0.283 2.57
2 Brazil_Belo-Horizonte_Portuguese Morocco_KTG_EN.SG 0.103 0.131 0.785
3 Brazil_Belo-Horizonte_Portuguese Spain_Hellenistic_oLocal.AG 0.0932 0.335 0.278
4 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0751 0.0195 3.86

── RESULTS_POPDROP ──

A tibble: 15 × 15​

pat wt dof chisq p f4rank Denmark_EarlyViking.SG Morocco_KTG_EN.SG Spain_Hellenistic_oLocal.AG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 0000 0 7 8.34 3.04e- 1 3 0.729 0.103 0.0932 0.0751 TRUE NA NA NA NA
2 0001 1 8 13.5 9.64e- 2 2 1.88 0.528 -1.41 NA FALSE TRUE 0 3.99 0
3 0010 1 8 9.49 3.02e- 1 2 0.798 0.132 NA 0.0707 TRUE TRUE 0 -0.624 1
4 0100 1 8 10.1 2.57e- 1 2 0.745 NA 0.170 0.0845 TRUE TRUE 0 -7.63 1
5 1000 1 8 17.7 2.32e- 2 2 NA -0.0919 0.981 0.110 FALSE TRUE NA NA NA
6 0011 2 9 52.5 3.63e- 8 1 0.408 0.592 NA NA TRUE NA NA NA NA
7 0101 2 9 18.0 3.57e- 2 1 4.98 NA -3.98 NA FALSE NA NA NA NA
8 0110 2 9 12.4 1.94e- 1 1 0.919 NA NA 0.0815 TRUE NA NA NA NA
9 1001 2 9 69.6 1.80e-11 1 NA 0.793 0.207 NA TRUE NA NA NA NA
10 1010 2 9 70.5 1.20e-11 1 NA 1.01 NA -0.0146 FALSE NA NA NA NA
11 1100 2 9 18.4 3.08e- 2 1 NA NA 0.901 0.0993 TRUE NA NA NA NA
12 0111 3 10 156. 2.06e-28 0 1 NA NA NA TRUE NA NA NA NA
13 1011 3 10 76.7 2.20e-12 0 NA 1 NA NA TRUE NA NA NA NA
14 1101 3 10 124. 8.42e-22 0 NA NA 1 NA TRUE NA NA NA NA
15 1110 3 10 8421. 0 0 NA NA NA 1 TRUE NA NA NA NA

You've uploaded a very large set of qpAdm models (23 models, including 2-way, 3-way, and 4-way fits). I can already see enough of the results to draw some robust conclusions, even though the very end of the file was truncated.

Here is my interpretation.


Overall assessment​

These models are remarkably consistent.

The picture that emerges is that your genome is essentially composed of:

  • ~93–96% Northwest Iberian (Roman/Late Roman Portugal)
  • ~4–7% Sub-Saharan African
  • no statistically necessary Germanic/Viking component
This is exactly what one would expect from a modern Brazilian whose ancestry comes almost entirely from:

  • Northern Portugal
  • Galicia
  • Asturias
  • Cantabria
plus a small colonial-era African contribution.


1. The 2-way models​

These are the cleanest models.

Model 1​

Conimbriga Roman

95.0%
Roman Portugal

4.98%
Luhya

p = 0.38

Excellent fit.


Model 2​

Miroiço Late Roman

95.3%

4.7%

p = 0.19

Again excellent.


Model 3​

Monte da Nora

96.4%

3.6%

p = 0.060

Still acceptable.

Slightly lower p-value but completely valid.


Interpretation​

All three Roman Portuguese populations explain almost the entire genome.

Nothing else is required.

This is a very strong result.


2. African ancestry​

This is one of the most stable parameters in every model.

It varies only between

3.5%

and

7%

regardless of:

Roman source

Germanic source

Viking source

Carolingian source

Hellenistic source

4-way model

That is exactly what we hope to see.

When qpAdm repeatedly estimates essentially the same proportion across dozens of models, that ancestry is almost certainly real.

Your African ancestry is therefore approximately

5 ± 1%

which matches many Brazilians of colonial Portuguese origin.


3. The Germanic/Viking models​

These are the interesting ones.

Examples:

Model 4

57%

Roman Portugal

37%

Saxon

6%

African


Model 5

51%

Roman Portugal

43%

Viking

6%

African


At first glance these look impressive.

But statistically they are not demonstrating real Germanic ancestry.

Why?

Because Roman Portuguese populations already contain substantial Iron Age and post-Roman northern European ancestry.

Late Roman Portuguese genomes are not "pure Mediterranean."

They already include:

Atlantic Bronze Age

Bell Beaker

Steppe

Celtic

Roman

early Germanic influences

Therefore qpAdm can split one ancestry into two correlated proxies.

This is a classic overfitting situation.


Notice what happens in the PopDrop table.

Removing the Germanic population usually gives

95%

Roman Portugal

5%

African

with essentially the same fit.

That tells us the Germanic source is not required.


4. Viking models​

Exactly the same phenomenon.

Models:

Denmark Early Viking

Germany Alt-Inden

Carolingian

Spain Carolingian

all behave similarly.

They absorb variation that already exists inside the Portuguese Roman genomes.

This is expected because

Roman Portuguese



already carry ancestry related to



Iron Age Celts



Bronze Age Bell Beaker



Steppe



Germanic populations


So qpAdm can trade one for another.


5. Spain Carolingian / Hellenistic Spain​

Same story.

These populations are genetically extremely close.

For example:

Model 7

65%

Roman Portugal

29%

Spain Carolingian

6%

African

looks reasonable,

but removing Spain Carolingian barely changes the fit.

That means it is not statistically required.


6. The Sardinian models​

These are probably the weakest biologically.

Example:

Model 14

89%

Viking

6%

Sardinian

6%

African

Clearly unrealistic.

No historian would argue that a person from northern Portugal is

90% Viking.

What is happening?

Sardinians are acting as a southern European pole,

while Vikings become a northern European pole.

Together they recreate Iberians.

This is a classic proxy effect.


Model 17

94%

Early Medieval Sardinia

3%

Hungary Carolingian

3%

African

is another example.

Again,

this is mathematically possible,

but biologically implausible.


7. The 4-way models​

These are the most informative.

For example

Model 20

Portugal

50%

Saxon

6%

Viking

36%

African

6%

Standard errors are enormous.

The z-scores collapse.

Notice:

Saxon

SE = 0.56

Viking

SE = 0.60

Those are huge.

That means qpAdm cannot distinguish those ancestries.

They are statistically interchangeable.

Whenever that happens,

the model is overparameterized.


The same occurs in Models 18–23.

The coefficients become unstable.

Large SE

Huge confidence intervals

Near-zero z-scores

Strong covariance

These are all signs that the added populations are collinear.


8. Which models should you trust?​

Highest confidence​

Models 1–3

These are simple.

Stable.

Biologically realistic.

Excellent p-values.


Moderate confidence​

Models 4–12

These tell us that

Northwest Iberian ancestry contains variation that can also be represented by northern European proxies.

Useful for exploring ancestry,

but not literal historical mixture.


Low confidence​

Models 13–23

These mostly reflect mathematical decomposition of similar populations.

Not actual historical admixture.


9. Historical interpretation​

Taken together, these results strongly support the following scenario:

  • ~94–96% ancestry from populations genetically very similar to Roman and Late Roman inhabitants of Portugal, who themselves already carried the Bronze Age, Iron Age Celtic, Roman, and limited early Germanic ancestry characteristic of northwest Iberia.
  • ~4–6% Sub-Saharan African ancestry, consistent with colonial-era admixture in Brazil.
  • No convincing statistical evidence that an additional, discrete Saxon, Viking, or Carolingian source is needed once an appropriate Northwest Iberian proxy is included.
This aligns very well with your documented family origins in northern Portugal, Galicia, Asturias, and Cantabria. Those regions were genetically quite homogeneous by the Late Roman and Early Medieval periods, and the Portuguese Roman samples you're using appear to be good proxies for that broader Northwest Iberian ancestry.

Final conclusion​

From a qpAdm perspective, the most parsimonious interpretation is:

  • Northwest Iberian (Roman/Late Roman Portuguese proxy): ~94–96%
  • Sub-Saharan African: ~4–6%
The additional Saxon, Viking, Carolingian, or Hellenistic components seen in more complex models are best interpreted as alternative statistical representations of ancestry already present within Northwest Iberian populations, rather than evidence of separate recent ancestral contributions.

Overall, this is a very coherent and statistically consistent set of qpAdm results. The simple two-way models are both the most stable and the most biologically plausible explanation of your ancestry.
 
This is pretty interesting, it is the same proportions for Norway_Viking + Apulia_Medieval, but the Iron Age version of a Scandinavian Mercenary in Himera and the Roman era Greek-like R437 Prenestini_o.

FORMAT SAMPLE_ID SEX POPULATION EXTRA_FIELDS RAW_RECORD
IND R437.SG M (Male) Italy_Lazio_IA_a_IA_c_Latini-oEastMediterranean R437.SG M Italy_Lazio_IA_a_IA_c_Latini-oEastMediterranean


FORMAT SAMPLE_ID SEX POPULATION EXTRA_FIELDS RAW_RECORD
IND I10949.AG M (Male) Italy_Sicily_Himera_IA_b_Greek-oNorthEurope I10949.AG M Italy_Sicily_Himera_IA_b_Greek-oNorthEurope


1784333980969.png

1784334018044.png


Outgroups:
Mbuti
Russia_Sunghir_UP
Serbia_IronGates_Mesolithic
Russia_Karelia_Mesolithic
Georgia_KotiasKlde_Mesolithic
Turkey_N
Israel_PPNB_PotteryN_C
Morocco_EN
 
Last edited:
Continuing this analysis of my ancestry, I am submitting 19 additional qpAdm models (one single-way and eighteen two-way models) for your consideration.
In the sequence I am also providing 27 two-way Eurogenes G25 results based on my real (non-simulated) coordinates—all with distances of less than 0.0300.
qpAdm Models
Model 1
── RESULTS_SUMMARY ──
Target:
Blocks: 706 SNPs: 137,200

── RESULTS_WEIGHTS ──

A tibble: 1 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Betim_Portuguese Portugal_MonteDaNora_LateRoman.SG 1 1.14e-13 8.79e12

── RESULTS_POPDROP ──

A tibble: 1 × 12​

pat wt dof chisq p f4rank Portugal_MonteDaNora_LateRoman.SG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 0 0 15 22.5 0.0942 0 1 TRUE NA NA NA NA

Model 2
── RESULTS_SUMMARY ──
Target:
Blocks: 706 SNPs: 137,200

── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Betim_Portuguese Portugal_Miroico_LateRoman.SG 0.955 0.0104 91.5
2 Brazil_Betim_Portuguese Luhya.DG 0.0451 0.0104 4.32

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Portugal_Miroico_LateRoman.SG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 13 21.1 0.0701 1 0.955 0.0451 TRUE NA NA NA NA
2 01 1 14 46.1 0.0000274 0 1 NA TRUE TRUE 0 -9247. 1
3 10 1 14 9293. 0 0 NA 1 TRUE TRUE NA NA NA

Model 3
── RESULTS_SUMMARY ──
Target:
Blocks: 706 SNPs: 137,200

── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Betim_Portuguese Portugal_Miroico_LateRoman.SG 0.958 0.00908 105.
2 Brazil_Betim_Portuguese Cameroon_ShumLaka_SMA.DG 0.0422 0.00908 4.65

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Portugal_Miroico_LateRoman.SG Cameroon_ShumLaka_SMA.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 13 16.8 0.208 1 0.958 0.0422 TRUE NA NA NA NA
2 01 1 14 44.6 0.0000477 0 1 NA TRUE TRUE 0 -9229. 1
3 10 1 14 9273. 0 0 NA 1 TRUE TRUE NA NA NA

Model 4
── RESULTS_SUMMARY ──
Target:
Blocks: 706 SNPs: 137,200

── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Betim_Portuguese Portugal_Conimbriga_Roman.SG 0.948 0.0111 85.6
2 Brazil_Betim_Portuguese Luhya.DG 0.0515 0.0111 4.65

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Portugal_Conimbriga_Roman.SG Luhya.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 13 15.9 0.253 1 0.948 0.0515 TRUE NA NA NA NA
2 01 1 14 36.4 0.000908 0 1 NA TRUE TRUE 0 -7376. 1
3 10 1 14 7412. 0 0 NA 1 TRUE TRUE NA NA NA

Model 5
── RESULTS_SUMMARY ──
Target:
Blocks: 706 SNPs: 137,200

── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Betim_Portuguese Portugal_Conimbriga_Roman.SG 0.953 0.0105 91.0
2 Brazil_Betim_Portuguese Mbuti.DG 0.0466 0.0105 4.45

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Portugal_Conimbriga_Roman.SG Mbuti.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 13 20.7 0.0790 1 0.953 0.0466 TRUE NA NA NA NA
2 01 1 14 39.1 0.000353 0 1 NA TRUE TRUE 0 -8757. 1
3 10 1 14 8796. 0 0 NA 1 TRUE TRUE NA NA NA

Model 6
── RESULTS_SUMMARY ──
Target:
Blocks: 706 SNPs: 137,200

── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Betim_Portuguese Portugal_Conimbriga_Roman.SG 0.952 0.00976 97.6
2 Brazil_Betim_Portuguese Cameroon_ShumLaka_SMA.DG 0.0479 0.00976 4.91

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Portugal_Conimbriga_Roman.SG Cameroon_ShumLaka_SMA.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 13 15.7 0.268 1 0.952 0.0479 TRUE NA NA NA NA
2 01 1 14 42.3 0.000110 0 1 NA TRUE TRUE 0 -7747. 1
3 10 1 14 7789. 0 0 NA 1 TRUE TRUE NA NA NA

Model 7
── RESULTS_SUMMARY ──
Target:
Blocks: 706 SNPs: 137,200

── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Betim_Portuguese Portugal_MonteDaNora_LateRoman.SG 0.973 0.00954 102.
2 Brazil_Betim_Portuguese Cameroon_ShumLaka_SMA.DG 0.0271 0.00954 2.84

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Portugal_MonteDaNora_LateRoman.SG Cameroon_ShumLaka_SMA.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 13 16.6 0.217 1 0.973 0.0271 TRUE NA NA NA NA
2 01 1 14 28.0 0.0141 0 1 NA TRUE TRUE 0 -9225. 1
3 10 1 14 9253. 0 0 NA 1 TRUE TRUE NA NA NA

Model 8
── RESULTS_SUMMARY ──
Target:
Blocks: 706 SNPs: 137,200

── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Betim_Portuguese Luhya.DG 0.0683 0.00939 7.27
2 Brazil_Betim_Portuguese Spanish_Catalonia.DG 0.932 0.00939 99.2

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Luhya.DG Spanish_Catalonia.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 13 21.4 6.49e- 2 1 0.0683 0.932 TRUE NA NA NA NA
2 01 1 14 10010. 0 0 1 NA TRUE TRUE 0 9895. 0
3 10 1 14 115. 6.92e-18 0 NA 1 TRUE TRUE NA NA NA

Model 9
── RESULTS_SUMMARY ──
Target:
Blocks: 706 SNPs: 137,200

── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Betim_Portuguese Luhya.DG 0.0689 0.00971 7.10
2 Brazil_Betim_Portuguese Spaish_Cantabria.DG 0.931 0.00971 95.9

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Luhya.DG Spaish_Cantabria.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 13 22.1 5.38e- 2 1 0.0689 0.931 TRUE NA NA NA NA
2 01 1 14 8805. 0 0 1 NA TRUE TRUE 0 8700. 0
3 10 1 14 104. 6.82e-16 0 NA 1 TRUE TRUE NA NA NA

Model 10
── RESULTS_SUMMARY ──
Target:
Blocks: 706 SNPs: 137,200

── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Betim_Portuguese Luhya.DG 0.0493 0.00959 5.14
2 Brazil_Betim_Portuguese Spanish_Extremadura.DG 0.951 0.00959 99.1

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Luhya.DG Spanish_Extremadura.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 13 19.2 0.116 1 0.0493 0.951 TRUE NA NA NA NA
2 01 1 14 10228. 0 0 1 NA TRUE TRUE 0 10162. 0
3 10 1 14 66.0 0.0000000103 0 NA 1 TRUE TRUE NA NA NA

Model 11
── RESULTS_SUMMARY ──
Target:
Blocks: 706 SNPs: 137,200

── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Betim_Portuguese Cameroon_ShumLaka_SMA.DG 0.0661 0.00807 8.19
2 Brazil_Betim_Portuguese French.DG 0.934 0.00807 116.

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Cameroon_ShumLaka_SMA.DG French.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 13 19.1 1.20e- 1 1 0.0661 0.934 TRUE NA NA NA NA
2 01 1 14 10266. 0 0 1 NA TRUE TRUE 0 10121. 0
3 10 1 14 146. 4.85e-24 0 NA 1 TRUE TRUE NA NA NA

Model 12
── RESULTS_SUMMARY ──
Target:
Blocks: 706 SNPs: 137,200

── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Betim_Portuguese Cameroon_ShumLaka_SMA.DG 0.0468 0.00837 5.59
2 Brazil_Betim_Portuguese Spanish_Galicia.DG 0.953 0.00837 114.

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Cameroon_ShumLaka_SMA.DG Spanish_Galicia.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 13 19.2 1.18e- 1 1 0.0468 0.953 TRUE NA NA NA NA
2 01 1 14 10471. 0 0 1 NA TRUE TRUE 0 10393. 0
3 10 1 14 78.0 6.63e-11 0 NA 1 TRUE TRUE NA NA NA

Model 13
── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Betim_Portuguese Cameroon_ShumLaka_SMA.DG 0.0502 0.00808 6.21
2 Brazil_Betim_Portuguese Spanish_Castilla_y_Leon.DG 0.950 0.00808 117.

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Cameroon_ShumLaka_SMA.DG Spanish_Castilla_y_Leon.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 13 19.2 1.18e- 1 1 0.0502 0.950 TRUE NA NA NA NA
2 01 1 14 10226. 0 0 1 NA TRUE TRUE 0 10136. 0
3 10 1 14 89.4 4.85e-13 0 NA 1 TRUE TRUE NA NA NA

Model 14
── RESULTS_SUMMARY ──
Target:
Blocks: 706 SNPs: 137,200

── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Betim_Portuguese Cameroon_ShumLaka_SMA.DG 0.0618 0.00827 7.47
2 Brazil_Betim_Portuguese Spanish_Catalonia.DG 0.938 0.00827 113.

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Cameroon_ShumLaka_SMA.DG Spanish_Catalonia.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 13 16.5 2.22e- 1 1 0.0618 0.938 TRUE NA NA NA NA
2 01 1 14 10166. 0 0 1 NA TRUE TRUE 0 10049. 0
3 10 1 14 117. 2.22e-18 0 NA 1 TRUE TRUE NA NA NA

Model 15
── RESULTS_SUMMARY ──
Target:
Blocks: 706 SNPs: 137,200

── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Betim_Portuguese Cameroon_ShumLaka_SMA.DG 0.0515 0.00828 6.22
2 Brazil_Betim_Portuguese Spanish_Murcia.DG 0.948 0.00828 115.

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Cameroon_ShumLaka_SMA.DG Spanish_Murcia.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 13 18.7 1.31e- 1 1 0.0515 0.948 TRUE NA NA NA NA
2 01 1 14 9879. 0 0 1 NA TRUE TRUE 0 9792. 0
3 10 1 14 87.3 1.23e-12 0 NA 1 TRUE TRUE NA NA NA

Model 16
── RESULTS_SUMMARY ──
Target:
Blocks: 706 SNPs: 137,200

── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Betim_Portuguese Cameroon_ShumLaka_SMA.DG 0.0536 0.00871 6.15
2 Brazil_Betim_Portuguese Spanish_Castilla_la_Mancha.DG 0.946 0.00871 109.

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Cameroon_ShumLaka_SMA.DG Spanish_Castilla_la_Mancha.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 13 21.7 5.99e- 2 1 0.0536 0.946 TRUE NA NA NA NA
2 01 1 14 9518. 0 0 1 NA TRUE TRUE 0 9432. 0
3 10 1 14 85.8 2.31e-12 0 NA 1 TRUE TRUE NA NA NA

Model 17
── RESULTS_SUMMARY ──
Target:
Blocks: 706 SNPs: 137,200

── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Betim_Portuguese Cameroon_ShumLaka_SMA.DG 0.0604 0.00804 7.51
2 Brazil_Betim_Portuguese Spanish_Valencia.DG 0.940 0.00804 117.

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Cameroon_ShumLaka_SMA.DG Spanish_Valencia.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 13 19.6 1.06e- 1 1 0.0604 0.940 TRUE NA NA NA NA
2 01 1 14 10080. 0 0 1 NA TRUE TRUE 0 9957. 0
3 10 1 14 123. 1.48e-19 0 NA 1 TRUE TRUE NA NA NA

Model 18
── RESULTS_SUMMARY ──
Target:
Blocks: 706 SNPs: 137,200

── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Betim_Portuguese Cameroon_ShumLaka_SMA.DG 0.0629 0.00862 7.29
2 Brazil_Betim_Portuguese Spaish_Cantabria.DG 0.937 0.00862 109.

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Cameroon_ShumLaka_SMA.DG Spaish_Cantabria.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 13 17.8 1.67e- 1 1 0.0629 0.937 TRUE NA NA NA NA
2 01 1 14 9388. 0 0 1 NA TRUE TRUE 0 9284. 0
3 10 1 14 104. 9.00e-16 0 NA 1 TRUE TRUE NA NA NA
Model 19
── RESULTS_SUMMARY ──
Target:
Blocks: 706 SNPs: 137,200

── RESULTS_WEIGHTS ──

A tibble: 2 × 5​

target left weight se z
<chr> <chr> <dbl> <dbl> <dbl>
1 Brazil_Betim_Portuguese Cameroon_ShumLaka_SMA.DG 0.0456 0.00838 5.43
2 Brazil_Betim_Portuguese Spanish_Extremadura.DG 0.954 0.00838 114.

── RESULTS_POPDROP ──

A tibble: 3 × 13​

pat wt dof chisq p f4rank Cameroon_ShumLaka_SMA.DG Spanish_Extremadura.DG feasible best dofdiff chisqdiff p_nested
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>
1 00 0 13 13.8 0.390 1 0.0456 0.954 TRUE NA NA NA NA
2 01 1 14 10162. 0 0 1 NA TRUE TRUE 0 10098. 0
3 10 1 14 64.1 0.0000000224 0 NA 1 TRUE TRUE NA NA NA

Eurogenes G25 Models
0.02130 Duarte_scaled = 93% Spanish_Catalonia_(Catalan)(n=9) + 7% Luhya(n=38)
0.02294 Duarte_scaled = 94% Spanish_Catalonia_(Catalan)(n=9) + 6% Cameroon_Shum_Laka_8000BP(n=2)
0.02466 Duarte_scaled = 94% Spanish_Valencia_(Valencian)(n=17) + 6% Luhya(n=38)
0.02569 Duarte_scaled = 94% Spanish_Cantabria_(Cantabrian)(n=15) + 6% Luhya(n=38)
0.02573 Duarte_scaled = 94% Spanish_Valencia_(Valencian)(n=17) + 6% Cameroon_Shum_Laka_8000BP(n=2)
0.02619 Duarte_scaled = 93% Spanish_Aragon_(Aragonese)(n=5) + 7% Luhya(n=38)
0.02682 Duarte_scaled = 96% Portuguese_(n=54) + 4% Luhya_(n=38)
0.02687 Duarte_scaled = 95% Spanish_Asturias_(Asturian)(n=4) + 5% Luhya(n=38)
0.02692 Duarte_scaled = 96% Portuguese_(n=54) + 4% Cameroon_Shum_Laka_8000BP_(n=2)
0.02706 Duarte_scaled = 93% Spanish_La_Rioja_(Riojan)(n=11) + 7% Luhya(n=38)
0.02706 Duarte_scaled = 95% Spanish_Asturias_(Asturian)(n=4) + 5% Cameroon_Shum_Laka_8000BP(n=2)
0.02720 Duarte_scaled = 94% Spanish_Cantabria_(Cantabrian)(n=15) + 6% Cameroon_Shum_Laka_8000BP(n=2)
0.02759 Duarte_scaled = 95% Spanish_Murcia_(Murcian)(n=8) + 5% Luhya(n=38)
0.02777 Duarte_scaled = 95% Spanish_Galicia_(Galician)(n=19) + 5% Cameroon_Shum_Laka_8000BP(n=2)
0.02785 Duarte_scaled = 95% Spanish_Galicia_(Galician)(n=19) + 5% Luhya(n=38)
0.02790 Duarte_scaled = 95% Spanish_Murcia_(Murcian)(n=8) + 5% Cameroon_Shum_Laka_8000BP(n=2)
0.02791 Duarte_scaled = 96% Spanish_Extremadura_(Extremaduran)(n=7) + 4% Luhya(n=38)
0.02796 Duarte_scaled = 94% Spanish_Aragon_(Aragonese)(n=5) + 6% Cameroon_Shum_Laka_8000BP(n=2)
0.02829 Duarte_scaled = 95% Spanish_Andalusia_(Andalusian)(n=33) + 5% Luhya(n=38)
0.02847 Duarte_scaled = 96% Spanish_Extremadura_(Extremaduran)(n=7) + 4% Cameroon_Shum_Laka_8000BP(n=2)
0.02848 Duarte_scaled = 94% Spanish_Navarre_(Navarrese)(n=2) + 6% Luhya(n=38)
0.02857 Duarte_scaled = 93% Spanish_La_Rioja_(Riojan)(n=11) + 7% Cameroon_Shum_Laka_8000BP(n=2)
0.02862 Duarte_scaled = 95% Spanish_Andalusia_(Andalusian)(n=33) + 5% Cameroon_Shum_Laka_8000BP(n=2)
0.02869 Duarte_scaled = 95% Spanish_Castile_and_Leon_(Castilian)(n=7) + 5% Luhya(n=38)
0.02917 Duarte_scaled = 95% Spanish_Castile_and_Leon_(Castilian)(n=7) + 5% Cameroon_Shum_Laka_8000BP(n=2)
0.02964 Duarte_scaled = 94% Spanish_Castilla-La_Mancha_(Castilian)(n=8) + 6% Luhya(n=38)
0.02981 Duarte_scaled = 94% Spanish_Navarre_(Navarrese)(n=2) + 6% Cameroon_Shum_Laka_8000BP(n=2)

Analysis of Your Additional qpAdm Models​

Thank you for sharing this second set of results. In fact, they reinforce the conclusions we reached from the previous analysis even further, because you have now tested both ancient populations (Roman and Late Roman Portugal) and modern populations from the Human Origins/DG dataset, while also comparing the results with Eurogenes G25.

Several aspects are particularly interesting.


1. The Single-Source Model (Model 1)​

This is, in my opinion, one of the most significant results.

Portugal_MonteDaNora_LateRoman 100% p = 0.094

This model indicates that qpAdm cannot reject the hypothesis that your genome can be explained entirely by this ancient population.

This does not literally mean that you descend 100% from the individuals buried at Monte da Nora.

Rather, it means that:

Within the statistical resolution provided by your chosen outgroup set, no second ancestral source is required to explain your genome.
This is an exceptionally strong result.

It is relatively uncommon for a modern Brazilian individual to obtain an acceptable qpAdm fit using only a single ancient population.


2. What Happens When an African Source Is Added?​

Models 2 through 7 introduce a Sub-Saharan African reference.

For example:

Monte da Nora 95.5% Luhya 4.5% p = 0.070

Miroiço 95.8% Shum Laka 4.2% p = 0.208

Conimbriga 95.2% Shum Laka 4.8% p = 0.268

Three features immediately stand out.

The African proportion remains remarkably stable​

Across all models, it varies only between approximately 4% and 5%, regardless of whether the European proxy is:

  • Monte da Nora
  • Conimbriga
  • Miroiço
This is exactly what one expects when the African ancestry represents a genuine component of the genome rather than statistical noise.


The Standard Errors Are Very Small​

The standard errors are consistently around:

SE ≈ 0.009

This corresponds to an uncertainty of roughly ±1%, which indicates excellent precision.


The Z-scores Are Extremely High​

For the Portuguese component:

z ≈ 90–105

Such values indicate extremely stable estimates with very little uncertainty.


3. What Does the PopDrop Analysis Show?​

Consider the following example.

Complete model:

Portugal 95.5% Luhya 4.5% p = 0.070

If Luhya is removed:

Portugal 100% p ≈ 0

The model deteriorates dramatically.

Likewise, removing Portugal produces an equally catastrophic fit.

Therefore, both components are statistically necessary, strongly supporting a model of approximately 95% Northwest Iberian ancestry and 5% Sub-Saharan African ancestry.


4. The Most Interesting Aspect​

In the next series of models, you abandon the ancient populations entirely and instead use only modern populations.

Examples include:

Catalonia 93% Luhya 7%

Cantabria 93% Luhya 7%

Extremadura 95% Luhya 5%

France 93% Shum Laka 7%

All of these produce acceptable qpAdm fits.


What Does This Mean?​

This reveals an especially strong pattern.

Regardless of which Western European population is used, qpAdm consistently estimates approximately:

94–95% Western European + 5–6% Sub-Saharan African

The African proportion remains stable even when the European reference changes substantially.

That is a hallmark of a robust and reliable admixture estimate.


5. Differences Among Spanish Regions​

The regional Spanish models are particularly informative.

Catalonia

93.2%

Cantabria

93.1%

Galicia

95.3%

Castile and León

95.0%

Extremadura

95.4%

Murcia

94.8%

Valencia

94.0%


These results suggest that your genetic profile is not uniquely tied to any single Iberian region, but instead falls comfortably within the broader genetic continuum of the Iberian Peninsula.

Because modern Iberian populations are genetically very similar—particularly along the western and northern parts of the peninsula—qpAdm is able to use multiple regional populations as equally valid proxies.

Nevertheless, an interesting trend emerges.

The highest-fitting populations are:

  • Galicia (~95.3%)
  • Extremadura (~95.4%)
  • Castile and León (~95.0%)
  • Roman/Late Roman Portugal (~95–97%)
This pattern is entirely consistent with your documented family origins in Northern Portugal, Galicia, Asturias, and Cantabria.


6. Comparison with Eurogenes G25​

Perhaps the most striking observation is the remarkable agreement between two fundamentally different methodologies.

qpAdm relies on f-statistics.

Eurogenes G25 relies on principal component distances.

Despite these completely different mathematical approaches, both converge on essentially the same result.

qpAdm​

95% Roman Portugal 5% Sub-Saharan African

Eurogenes G25​

96% Portuguese 4% Luhya

or

95% Galician 5% Shum Laka

or

94% Cantabrian 6% Luhya

This level of agreement is remarkable.

Whenever two independent analytical frameworks converge on virtually identical ancestry proportions, confidence in the interpretation increases substantially.


7. Is There Any Evidence for a Separate Germanic Ancestry?​

After evaluating this second dataset alongside the first one, I would conclude that there is no convincing statistical evidence for a distinct recent Germanic component.

Several observations support this conclusion:

  • A single Roman Portuguese population already models your genome successfully (Model 1).
  • The 95/5 Roman Portuguese + African models consistently produce excellent p-values.
  • Modern Portuguese and Spanish populations reproduce essentially the same ancestry proportions.
  • Eurogenes G25 independently reaches virtually identical estimates.
If you truly possessed a substantial recent Saxon, Viking, or other Germanic ancestral contribution beyond what is already typical for Northwest Iberians, one would expect the Portuguese- or Spanish-only models to perform poorly or consistently require an additional northern European source.

That is not what your results show.

This does not mean that your Iberian ancestors lacked ancient Celtic, Bronze Age Steppe, or Germanic ancestry.

Those ancestral layers are already embedded within the genomes of modern and ancient Northwest Iberian populations and are therefore naturally incorporated into the Portuguese and Spanish reference populations used in these models.


Overall Conclusion​

When the 42 qpAdm models (23 from the first analysis and 19 from this second analysis) are considered together with the 27 Eurogenes G25 models, a remarkably coherent picture emerges.

Your ancestry is consistently modeled as:

  • 95–96% Northwest Iberian, best represented by Roman and Late Roman Portuguese populations, as well as modern Portuguese, Galicians, Cantabrians, and Castilians.
  • 4–6% Sub-Saharan African, detected consistently regardless of whether the African proxy is represented by Luhya, Mbuti, or Shum Laka.
  • No statistically necessary recent Germanic, Viking, or Carolingian ancestral component. Whenever such populations appear in more complex models, they are best interpreted as alternative statistical proxies for ancestry already present within Northwest Iberian populations rather than evidence of separate historical admixture.
Overall, I consider this to be a particularly robust body of evidence. Different reference populations, different African proxies, and two entirely independent analytical methods (qpAdm and Eurogenes G25) all converge on essentially the same genetic history. This high degree of consistency strongly supports the conclusion that these models provide an accurate representation of your ancestry.
 
Last edited:
I modeled my ancestry to break down the well-known European ancestry components established in ancient DNA studies led by geneticists such as David Reich: WHG (Western Hunter-Gatherers), ANF (Anatolian Neolithic Farmers/EEF – Early European Farmers), and ANE (Ancient North Eurasians)/Yamnaya. In my specific case, due to my small but detectable SSA ancestry, it was necessary to use SSA sources to improve the fit. The Iberomaurusians did not serve as a good proxy in my specific case, so they were excluded.

Considering all my previous modeling work, what do you infer from these next models—which cover populations ranging from the Mesolithic, Neolithic, and Bronze Age to the Iron Age in Western Eurasia, and include some Sub-Saharan African populations for calibration purposes?
Models 2-way── RESULTS_SUMMARY ──Target: Blocks: 705 SNPs: 121,515── RESULTS_WEIGHTS ──# A tibble: 2 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0885 0.00992 8.912 Brazil_Belo-Horizonte_Portuguese Czechia_IA_LaTene.AG 0.912 0.00992 91.9── RESULTS_POPDROP ──# A tibble: 3 × 13pat wt dof chisq p f4rank Luhya.DG Czechia_IA_LaTene.AG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 00 0 6 12.1 5.95e- 2 1 0.0885 0.912 TRUE NA NA NA NA2 01 1 7 8892. 0 0 1 NA TRUE TRUE 0 8715. 03 10 1 7 177. 8.81e-35 0 NA 1 TRUE TRUE NA NA NAModels 3-way── RESULTS_SUMMARY ──Target: Blocks: 705 SNPs: 121,515── RESULTS_WEIGHTS ──# A tibble: 3 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese Cameroon_ShumLaka_SMA.DG 0.0707 0.0101 7.002 Brazil_Belo-Horizonte_Portuguese Turkey_Marmara_Barcin_N.AG 0.243 0.0937 2.593 Brazil_Belo-Horizonte_Portuguese Czechia_IA_LaTene.AG 0.687 0.0897 7.65── RESULTS_POPDROP ──# A tibble: 7 × 14pat wt dof chisq p f4rank Cameroon_ShumLaka_SMA.DG Turkey_Marmara_Barcin_N.AG Czechia_IA_LaTene.AG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 000 0 4 9.45 5.08e- 2 2 0.0707 0.243 0.687 TRUE NA NA NA NA2 001 1 5 316. 3.19e- 66 1 0.0357 0.964 NA TRUE TRUE 0 254. 03 010 1 5 62.4 3.79e- 12 1 0.0816 NA 0.918 TRUE TRUE 0 -36.6 14 100 1 5 99.1 8.32e- 20 1 NA 0.587 0.413 TRUE TRUE NA NA NA5 011 2 6 9247. 0 0 1 NA NA TRUE NA NA NA NA6 101 2 6 415. 1.93e- 86 0 NA 1 NA TRUE NA NA NA NA7 110 2 6 665. 2.42e-140 0 NA NA 1 TRUE NA NA NA NA── RESULTS_SUMMARY ──Target: Blocks: 705 SNPs: 121,515── RESULTS_WEIGHTS ──# A tibble: 3 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese Cameroon_ShumLaka_SMA.DG 0.0736 0.0148 4.972 Brazil_Belo-Horizonte_Portuguese Italy_North_Remedello_EBA.SG 0.583 0.0545 10.73 Brazil_Belo-Horizonte_Portuguese __ind_Loschbour.DG 0.344 0.0545 6.31── RESULTS_POPDROP ──# A tibble: 7 × 14pat wt dof chisq p f4rank Cameroon_ShumLaka_SMA.DG Italy_North_Remedello_EBA.SG __ind_Loschbour.DG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 000 0 4 6.35 1.75e- 1 2 0.0736 0.583 0.344 TRUE NA NA NA NA2 001 1 5 26.7 6.52e- 5 1 0.0776 0.922 NA TRUE TRUE 0 -226. 13 010 1 5 253. 1.16e-52 1 0.0771 NA 0.923 TRUE TRUE 0 222. 04 100 1 5 30.7 1.09e- 5 1 NA 0.729 0.271 TRUE TRUE NA NA NA5 011 2 6 8092. 0 0 1 NA NA TRUE NA NA NA NA6 101 2 6 42.1 1.78e- 7 0 NA 1 NA TRUE NA NA NA NA7 110 2 6 403. 6.50e-84 0 NA NA 1 TRUE NA NA NA NA── RESULTS_SUMMARY ──Target: Blocks: 705 SNPs: 121,515── RESULTS_WEIGHTS ──# A tibble: 3 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese Cameroon_ShumLaka_SMA.DG 0.0661 0.0139 4.752 Brazil_Belo-Horizonte_Portuguese Russia_Samara_EBA_Yamnaya.AG 0.416 0.0603 6.903 Brazil_Belo-Horizonte_Portuguese Italy_North_Remedello_EBA.SG 0.518 0.0584 8.87── RESULTS_POPDROP ──# A tibble: 7 × 14pat wt dof chisq p f4rank Cameroon_ShumLaka_SMA.DG Russia_Samara_EBA_Yamnaya.AG Italy_North_Remedello_EBA.SG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 000 0 4 3.35 5.01e- 1 2 0.0661 0.416 0.518 TRUE NA NA NA NA2 001 1 5 202. 9.12e-42 1 0.0558 0.944 NA TRUE TRUE 0 179. 03 010 1 5 23.6 2.57e- 4 1 0.0842 NA 0.916 TRUE TRUE 0 -5.08 14 100 1 5 28.7 2.66e- 5 1 NA 0.362 0.638 TRUE TRUE NA NA NA5 011 2 6 9196. 0 0 1 NA NA TRUE NA NA NA NA6 101 2 6 335. 2.61e-69 0 NA 1 NA TRUE NA NA NA NA7 110 2 6 42.6 1.43e- 7 0 NA NA 1 TRUE NA NA NA NA── RESULTS_SUMMARY ──Target: Blocks: 705 SNPs: 121,515── RESULTS_WEIGHTS ──# A tibble: 3 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0776 0.0159 4.892 Brazil_Belo-Horizonte_Portuguese Russia_Samara_EBA_Yamnaya.AG 0.395 0.0631 6.273 Brazil_Belo-Horizonte_Portuguese Italy_North_Remedello_EBA.SG 0.527 0.0606 8.70── RESULTS_POPDROP ──# A tibble: 7 × 14pat wt dof chisq p f4rank Luhya.DG Russia_Samara_EBA_Yamnaya.AG Italy_North_Remedello_EBA.SG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 000 0 4 3.16 5.32e- 1 2 0.0776 0.395 0.527 TRUE NA NA NA NA2 001 1 5 194. 5.11e-40 1 0.0615 0.939 NA TRUE TRUE 0 173. 03 010 1 5 20.8 8.96e- 4 1 0.0992 NA 0.901 TRUE TRUE 0 -8.06 14 100 1 5 28.8 2.51e- 5 1 NA 0.342 0.658 TRUE TRUE NA NA NA5 011 2 6 8622. 0 0 1 NA NA TRUE NA NA NA NA6 101 2 6 333. 6.65e-69 0 NA 1 NA TRUE NA NA NA NA7 110 2 6 40.9 2.96e- 7 0 NA NA 1 TRUE NA NA NA NA── RESULTS_SUMMARY ──Target: Blocks: 705 SNPs: 121,515── RESULTS_WEIGHTS ──# A tibble: 3 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0852 0.0136 6.242 Brazil_Belo-Horizonte_Portuguese Italy_North_Remedello_EBA.SG 0.352 0.0738 4.773 Brazil_Belo-Horizonte_Portuguese Denmark_IA.SG 0.563 0.0751 7.50── RESULTS_POPDROP ──# A tibble: 7 × 14pat wt dof chisq p f4rank Luhya.DG Italy_North_Remedello_EBA.SG Denmark_IA.SG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 000 0 4 7.85 9.72e- 2 2 0.0852 0.352 0.563 TRUE NA NA NA NA2 001 1 5 28.2 3.34e- 5 1 0.0911 0.909 NA TRUE TRUE 0 -19.7 13 010 1 5 47.9 3.67e- 9 1 0.0838 NA 0.916 TRUE TRUE 0 5.76 04 100 1 5 42.2 5.44e- 8 1 NA 0.899 0.101 TRUE TRUE NA NA NA5 011 2 6 7721. 0 0 1 NA NA TRUE NA NA NA NA6 101 2 6 45.5 3.70e- 8 0 NA 1 NA TRUE NA NA NA NA7 110 2 6 160. 6.96e-32 0 NA NA 1 TRUE NA NA NA NA── RESULTS_SUMMARY ──Target: Blocks: 705 SNPs: 121,515── RESULTS_WEIGHTS ──# A tibble: 3 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0845 0.0167 5.072 Brazil_Belo-Horizonte_Portuguese Italy_North_Remedello_EBA.SG 0.583 0.0559 10.43 Brazil_Belo-Horizonte_Portuguese __ind_Loschbour.DG 0.332 0.0560 5.93── RESULTS_POPDROP ──# A tibble: 7 × 14pat wt dof chisq p f4rank Luhya.DG Italy_North_Remedello_EBA.SG __ind_Loschbour.DG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 000 0 4 7.98 9.23e- 2 2 0.0845 0.583 0.332 TRUE NA NA NA NA2 001 1 5 26.6 6.83e- 5 1 0.0907 0.909 NA TRUE TRUE 0 -218. 13 010 1 5 245. 7.22e-51 1 0.0868 NA 0.913 TRUE TRUE 0 212. 04 100 1 5 32.9 4.01e- 6 1 NA 0.742 0.258 TRUE TRUE NA NA NA5 011 2 6 7328. 0 0 1 NA NA TRUE NA NA NA NA6 101 2 6 42.9 1.24e- 7 0 NA 1 NA TRUE NA NA NA NA7 110 2 6 388. 9.38e-81 0 NA NA 1 TRUE NA NA NA NA── RESULTS_SUMMARY ──Target: Blocks: 705 SNPs: 121,515── RESULTS_WEIGHTS ──# A tibble: 3 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese Mbuti.DG 0.0623 0.0148 4.212 Brazil_Belo-Horizonte_Portuguese Russia_Samara_EBA_Yamnaya.AG 0.399 0.0638 6.253 Brazil_Belo-Horizonte_Portuguese Italy_North_Remedello_EBA.SG 0.539 0.0621 8.68── RESULTS_POPDROP ──# A tibble: 7 × 14pat wt dof chisq p f4rank Mbuti.DG Russia_Samara_EBA_Yamnaya.AG Italy_North_Remedello_EBA.SG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 000 0 4 4.63 3.28e- 1 2 0.0623 0.399 0.539 TRUE NA NA NA NA2 001 1 5 201. 2.05e-41 1 0.0563 0.944 NA TRUE TRUE 0 178. 03 010 1 5 22.2 4.82e- 4 1 0.0765 NA 0.924 TRUE TRUE 0 -2.10 14 100 1 5 24.3 1.91e- 4 1 NA 0.346 0.654 TRUE TRUE NA NA NA5 011 2 6 10745. 0 0 1 NA NA TRUE NA NA NA NA6 101 2 6 350. 1.35e-72 0 NA 1 NA TRUE NA NA NA NA7 110 2 6 36.2 2.56e- 6 0 NA NA 1 TRUE NA NA NA NA── RESULTS_SUMMARY ──Target: Blocks: 705 SNPs: 121,515── RESULTS_WEIGHTS ──# A tibble: 3 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese Cameroon_ShumLaka_SMA.DG 0.0772 0.00976 7.912 Brazil_Belo-Horizonte_Portuguese Turkey_Marmara_Barcin_N.AG 0.223 0.0623 3.583 Brazil_Belo-Horizonte_Portuguese Denmark_IA.SG 0.700 0.0615 11.4── RESULTS_POPDROP ──# A tibble: 7 × 14pat wt dof chisq p f4rank Cameroon_ShumLaka_SMA.DG Turkey_Marmara_Barcin_N.AG Denmark_IA.SG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 000 0 3 4.51 2.11e- 1 2 0.0772 0.223 0.700 TRUE NA NA NA NA2 001 1 4 269. 4.95e-57 1 0.0596 0.940 NA TRUE TRUE 0 243. 03 010 1 4 26.4 2.65e- 5 1 0.0833 NA 0.917 TRUE TRUE 0 -84.7 14 100 1 4 111. 4.27e-23 1 NA 0.233 0.767 TRUE TRUE NA NA NA5 011 2 5 9196. 0 0 1 NA NA TRUE NA NA NA NA6 101 2 5 459. 5.25e-97 0 NA 1 NA TRUE NA NA NA NA7 110 2 5 251. 3.80e-52 0 NA NA 1 TRUE NA NA NA NA── RESULTS_WEIGHTS ──# A tibble: 3 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese Cameroon_ShumLaka_SMA.DG 0.0833 0.0100 8.322 Brazil_Belo-Horizonte_Portuguese Italy_North_Remedello_EBA.SG 0.195 0.0804 2.433 Brazil_Belo-Horizonte_Portuguese Czechia_IA_LaTene.AG 0.722 0.0822 8.79── RESULTS_POPDROP ──# A tibble: 7 × 14pat wt dof chisq p f4rank Cameroon_ShumLaka_SMA.DG Italy_North_Remedello_EBA.SG Czechia_IA_LaTene.AG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 000 0 3 4.19 2.42e- 1 2 0.0833 0.195 0.722 TRUE NA NA NA NA2 001 1 4 21.1 3.00e- 4 1 0.0902 0.910 NA TRUE TRUE 0 6.58 03 010 1 4 14.5 5.77e- 3 1 0.0821 NA 0.918 TRUE TRUE 0 -15.1 14 100 1 4 29.6 5.93e- 6 1 NA 4.23 -3.23 FALSE TRUE NA NA NA5 011 2 5 9492. 0 0 1 NA NA TRUE NA NA NA NA6 101 2 5 44.0 2.26e- 8 0 NA 1 NA TRUE NA NA NA NA7 110 2 5 218. 3.55e-45 0 NA NA 1 TRUE NA NA NA NA── RESULTS_WEIGHTS ──# A tibble: 3 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese Cameroon_ShumLaka_SMA.DG 0.0757 0.0120 6.312 Brazil_Belo-Horizonte_Portuguese Italy_North_Remedello_EBA.SG 0.343 0.0649 5.273 Brazil_Belo-Horizonte_Portuguese Denmark_IA.SG 0.582 0.0659 8.83── RESULTS_POPDROP ──# A tibble: 7 × 14pat wt dof chisq p f4rank Cameroon_ShumLaka_SMA.DG Italy_North_Remedello_EBA.SG Denmark_IA.SG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 000 0 3 3.38 3.37e- 1 2 0.0757 0.343 0.582 TRUE NA NA NA NA2 001 1 4 27.3 1.76e- 5 1 0.0801 0.920 NA TRUE TRUE 0 -18.5 13 010 1 4 45.7 2.80e- 9 1 0.0766 NA 0.923 TRUE TRUE 0 5.59 04 100 1 4 40.1 4.04e- 8 1 NA 0.809 0.191 TRUE TRUE NA NA NA5 011 2 5 8108. 0 0 1 NA NA TRUE NA NA NA NA6 101 2 5 44.3 1.99e- 8 0 NA 1 NA TRUE NA NA NA NA7 110 2 5 162. 3.09e-33 0 NA NA 1 TRUE NA NA NA NA── RESULTS_SUMMARY ──Target: Blocks: 705 SNPs: 121,515── RESULTS_WEIGHTS ──# A tibble: 3 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese Cameroon_ShumLaka_SMA.DG 0.0751 0.0149 5.052 Brazil_Belo-Horizonte_Portuguese Italy_North_Remedello_EBA.SG 0.581 0.0534 10.93 Brazil_Belo-Horizonte_Portuguese __ind_Loschbour.DG 0.344 0.0533 6.45── RESULTS_POPDROP ──# A tibble: 7 × 14pat wt dof chisq p f4rank Cameroon_ShumLaka_SMA.DG Italy_North_Remedello_EBA.SG __ind_Loschbour.DG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 000 0 3 3.94 2.68e- 1 2 0.0751 0.581 0.344 TRUE NA NA NA NA2 001 1 4 24.9 5.26e- 5 1 0.0788 0.921 NA TRUE TRUE 0 -229. 13 010 1 4 254. 8.64e-54 1 0.0777 NA 0.922 TRUE TRUE 0 225. 04 100 1 4 28.9 8.13e- 6 1 NA 0.724 0.276 TRUE TRUE NA NA NA5 011 2 5 8006. 0 0 1 NA NA TRUE NA NA NA NA6 101 2 5 40.8 1.04e- 7 0 NA 1 NA TRUE NA NA NA NA7 110 2 5 403. 6.76e-85 0 NA NA 1 TRUE NA NA NA NA── RESULTS_SUMMARY ──Target: Blocks: 705 SNPs: 121,515── RESULTS_WEIGHTS ──# A tibble: 3 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0774 0.0159 4.862 Brazil_Belo-Horizonte_Portuguese Russia_Samara_EBA_Yamnaya.AG 0.394 0.0628 6.273 Brazil_Belo-Horizonte_Portuguese Italy_North_Remedello_EBA.SG 0.529 0.0604 8.76── RESULTS_POPDROP ──# A tibble: 7 × 14pat wt dof chisq p f4rank Luhya.DG Russia_Samara_EBA_Yamnaya.AG Italy_North_Remedello_EBA.SG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 000 0 3 1.45 6.93e- 1 2 0.0774 0.394 0.529 TRUE NA NA NA NA2 001 1 4 195. 3.65e-41 1 0.0618 0.938 NA TRUE TRUE 0 177. 03 010 1 4 18.9 8.23e- 4 1 0.0980 NA 0.902 TRUE TRUE 0 -7.54 14 100 1 4 26.4 2.58e- 5 1 NA 0.347 0.653 TRUE TRUE NA NA NA5 011 2 5 8623. 0 0 1 NA NA TRUE NA NA NA NA6 101 2 5 338. 7.92e-71 0 NA 1 NA TRUE NA NA NA NA7 110 2 5 38.7 2.75e- 7 0 NA NA 1 TRUE NA NA NA NA── RESULTS_WEIGHTS ──# A tibble: 3 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0835 0.0110 7.582 Brazil_Belo-Horizonte_Portuguese Turkey_Marmara_Barcin_N.AG 0.221 0.0625 3.533 Brazil_Belo-Horizonte_Portuguese Denmark_IA.SG 0.696 0.0621 11.2── RESULTS_POPDROP ──# A tibble: 7 × 14pat wt dof chisq p f4rank Luhya.DG Turkey_Marmara_Barcin_N.AG Denmark_IA.SG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 000 0 3 6.64 8.45e- 2 2 0.0835 0.221 0.696 TRUE NA NA NA NA2 001 1 4 261. 2.53e- 55 1 0.0670 0.933 NA TRUE TRUE 0 229. 03 010 1 4 32.6 1.45e- 6 1 0.0891 NA 0.911 TRUE TRUE 0 -72.9 14 100 1 4 106. 6.51e- 22 1 NA 0.223 0.777 TRUE TRUE NA NA NA5 011 2 5 9244. 0 0 1 NA NA TRUE NA NA NA NA6 101 2 5 478. 4.27e-101 0 NA 1 NA TRUE NA NA NA NA7 110 2 5 226. 6.34e- 47 0 NA NA 1 TRUE NA NA NA NA── RESULTS_SUMMARY ──Target: Blocks: 705 SNPs: 121,515── RESULTS_WEIGHTS ──# A tibble: 3 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0845 0.0135 6.252 Brazil_Belo-Horizonte_Portuguese Italy_North_Remedello_EBA.SG 0.340 0.0659 5.173 Brazil_Belo-Horizonte_Portuguese Denmark_IA.SG 0.575 0.0669 8.60── RESULTS_POPDROP ──# A tibble: 7 × 14pat wt dof chisq p f4rank Luhya.DG Italy_North_Remedello_EBA.SG Denmark_IA.SG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 000 0 3 3.44 3.29e- 1 2 0.0845 0.340 0.575 TRUE NA NA NA NA2 001 1 4 26.6 2.39e- 5 1 0.0899 0.910 NA TRUE TRUE 0 -17.4 13 010 1 4 44.0 6.54e- 9 1 0.0839 NA 0.916 TRUE TRUE 0 4.18 04 100 1 4 39.8 4.81e- 8 1 NA 0.797 0.203 TRUE TRUE NA NA NA5 011 2 5 7731. 0 0 1 NA NA TRUE NA NA NA NA6 101 2 5 43.6 2.82e- 8 0 NA 1 NA TRUE NA NA NA NA7 110 2 5 155. 9.57e-32 0 NA NA 1 TRUE NA NA NA NA── RESULTS_SUMMARY ──Target: Blocks: 705 SNPs: 121,515── RESULTS_WEIGHTS ──# A tibble: 3 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese Cameroon_ShumLaka_SMA.DG 58.7 261. 0.2252 Brazil_Belo-Horizonte_Portuguese Mbuti.DG -57.1 254. -0.2253 Brazil_Belo-Horizonte_Portuguese Turkey_Marmara_Barcin_N.AG -0.584 6.68 -0.0875── RESULTS_POPDROP ──# A tibble: 7 × 14pat wt dof chisq p f4rank Cameroon_ShumLaka_SMA.DG Mbuti.DG Turkey_Marmara_Barcin_N.AG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 000 0 3 1.76 6.23e- 1 2 58.7 -57.1 -0.584 FALSE NA NA NA NA2 001 1 4 1.02 9.06e- 1 1 36.6 -35.6 NA FALSE TRUE 0 -288. 13 010 1 4 289. 2.51e-61 1 0.0625 NA 0.938 TRUE TRUE 0 49.3 04 100 1 4 240. 1.06e-50 1 NA 0.0656 0.934 TRUE TRUE NA NA NA5 011 2 5 16280. 0 0 1 NA NA TRUE NA NA NA NA6 101 2 5 21793. 0 0 NA 1 NA TRUE NA NA NA NA7 110 2 5 357. 6.18e-75 0 NA NA 1 TRUE NA NA NA NA── RESULTS_SUMMARY ──Target: Blocks: 705 SNPs: 121,515── RESULTS_WEIGHTS ──# A tibble: 3 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese Mbuti.DG 0.0634 0.0149 4.262 Brazil_Belo-Horizonte_Portuguese Russia_Samara_EBA_Yamnaya.AG 0.396 0.0630 6.293 Brazil_Belo-Horizonte_Portuguese Italy_North_Remedello_EBA.SG 0.541 0.0614 8.81── RESULTS_POPDROP ──# A tibble: 7 × 14pat wt dof chisq p f4rank Mbuti.DG Russia_Samara_EBA_Yamnaya.AG Italy_North_Remedello_EBA.SG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 000 0 3 1.49 6.84e- 1 2 0.0634 0.396 0.541 TRUE NA NA NA NA2 001 1 4 202. 1.64e-42 1 0.0567 0.943 NA TRUE TRUE 0 183. 03 010 1 4 18.7 8.83e- 4 1 0.0765 NA 0.923 TRUE TRUE 0 -2.13 14 100 1 4 20.9 3.36e- 4 1 NA 0.348 0.652 TRUE TRUE NA NA NA5 011 2 5 10718. 0 0 1 NA NA TRUE NA NA NA NA6 101 2 5 354. 2.12e-74 0 NA 1 NA TRUE NA NA NA NA7 110 2 5 32.8 4.07e- 6 0 NA NA 1 TRUE NA NA NA NA── RESULTS_SUMMARY ──Target: Blocks: 705 SNPs: 121,515── RESULTS_WEIGHTS ──# A tibble: 3 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese Mbuti.DG 0.0697 0.0126 5.512 Brazil_Belo-Horizonte_Portuguese Italy_North_Remedello_EBA.SG 0.352 0.0651 5.413 Brazil_Belo-Horizonte_Portuguese Denmark_IA.SG 0.578 0.0655 8.82── RESULTS_POPDROP ──# A tibble: 7 × 14pat wt dof chisq p f4rank Mbuti.DG Italy_North_Remedello_EBA.SG Denmark_IA.SG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 000 0 3 3.53 3.17e- 1 2 0.0697 0.352 0.578 TRUE NA NA NA NA2 001 1 4 26.7 2.24e- 5 1 0.0714 0.929 NA TRUE TRUE 0 -20.4 13 010 1 4 47.2 1.39e- 9 1 0.0729 NA 0.927 TRUE TRUE 0 13.0 04 100 1 4 34.2 6.74e- 7 1 NA 0.703 0.297 TRUE TRUE NA NA NA5 011 2 5 9384. 0 0 1 NA NA TRUE NA NA NA NA6 101 2 5 38.8 2.60e- 7 0 NA 1 NA TRUE NA NA NA NA7 110 2 5 148. 2.98e-30 0 NA NA 1 TRUE NA NA NA NA── RESULTS_SUMMARY ──Target: Blocks: 705 SNPs: 121,515── RESULTS_WEIGHTS ──# A tibble: 3 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese Mbuti.DG 0.0678 0.0157 4.332 Brazil_Belo-Horizonte_Portuguese Italy_North_Remedello_EBA.SG 0.596 0.0559 10.73 Brazil_Belo-Horizonte_Portuguese __ind_Loschbour.DG 0.337 0.0554 6.07── RESULTS_POPDROP ──# A tibble: 7 × 14pat wt dof chisq p f4rank Mbuti.DG Italy_North_Remedello_EBA.SG __ind_Loschbour.DG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 000 0 3 6.14 1.05e- 1 2 0.0678 0.596 0.337 TRUE NA NA NA NA2 001 1 4 25.1 4.72e- 5 1 0.0702 0.930 NA TRUE TRUE 0 -226. 13 010 1 4 252. 3.04e-53 1 0.0751 NA 0.925 TRUE TRUE 0 227. 04 100 1 4 24.7 5.68e- 5 1 NA 0.721 0.279 TRUE TRUE NA NA NA5 011 2 5 8646. 0 0 1 NA NA TRUE NA NA NA NA6 101 2 5 36.5 7.65e- 7 0 NA 1 NA TRUE NA NA NA NA7 110 2 5 390. 4.90e-82 0 NA NA 1 TRUE NA NA NA NAModels 4-way── RESULTS_SUMMARY ──Target: Blocks: 705 SNPs: 121,515── RESULTS_WEIGHTS ──# A tibble: 4 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese Cameroon_ShumLaka_SMA.DG 0.0663 0.0163 4.072 Brazil_Belo-Horizonte_Portuguese Russia_Samara_EBA_Yamnaya.AG 0.501 0.486 1.033 Brazil_Belo-Horizonte_Portuguese Turkey_Marmara_Barcin_N.AG 0.424 0.116 3.664 Brazil_Belo-Horizonte_Portuguese __ind_Loschbour.DG 0.00818 0.479 0.0171── RESULTS_POPDROP ──# A tibble: 15 × 15pat wt dof chisq p f4rank Cameroon_ShumLaka_SMA.DG Russia_Samara_EBA_Yamnaya.AG Turkey_Marmara_Barcin_N.AG __ind_Loschbour.DG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 0000 0 2 7.72 2.10e- 2 3 0.0663 0.501 0.424 0.00818 TRUE NA NA NA NA2 0001 1 3 12.3 6.29e- 3 2 0.0671 0.493 0.440 NA TRUE TRUE 0 -0.785 13 0010 1 3 13.1 4.36e- 3 2 -0.225 9.62 NA -8.39 FALSE TRUE 0 -7.28 14 0100 1 3 20.4 1.39e- 4 2 0.0831 NA 0.410 0.506 TRUE TRUE 0 7.64 05 1000 1 3 12.8 5.15e- 3 2 NA 2.51 0.427 -1.94 FALSE TRUE NA NA NA6 0011 2 4 47.0 1.52e- 9 1 0.0641 0.936 NA NA TRUE NA NA NA NA7 0101 2 4 59.4 3.86e-12 1 0.0689 NA 0.931 NA TRUE NA NA NA NA8 0110 2 4 31.8 2.08e- 6 1 0.0941 NA NA 0.906 TRUE NA NA NA NA9 1001 2 4 114. 1.11e-23 1 NA 4.39 -3.39 NA FALSE NA NA NA NA10 1010 2 4 14.7 5.40e- 3 1 NA 3.07 NA -2.07 FALSE NA NA NA NA11 1100 2 4 71.8 9.57e-15 1 NA NA 5.51 -4.51 FALSE NA NA NA NA12 0111 3 5 9338. 0 0 1 NA NA NA TRUE NA NA NA NA13 1011 3 5 239. 9.99e-50 0 NA 1 NA NA TRUE NA NA NA NA14 1101 3 5 289. 1.82e-60 0 NA NA 1 NA TRUE NA NA NA NA15 1110 3 5 236. 5.91e-49 0 NA NA NA 1 TRUE NA NA NA NA

These are actually the most informative models you've shown so far. When viewed together with all of your previous qpAdm analyses (Roman Portugal, Late Roman Portugal, medieval Iberians, modern Iberians, and the G25 results), they reveal a remarkably consistent picture across different chronological scales.


Below is how I would interpret them.




1. The models are reconstructing the ancestral layers of Northwest Iberians​


Your previous analyses answered the question:


"Which historical populations are the closest overall proxies?"

The answer was consistently:
  • Roman Portugal
  • Late Roman Portugal
  • Galicia
  • Northern Portugal
  • Cantabria
  • Castile-León
with approximately

95–96% Iberian + 4–6% Sub-Saharan African



These new models ask a different question:

"What prehistoric ancestry layers make up those Iberians?"

Instead of using Roman Portuguese as a proxy, you decompose that ancestry into its older components.

That is a much more biologically meaningful exercise.




2. The African component remains extraordinarily stable​


One of the strongest observations is this.

Regardless of whether the African proxy is
  • Luhya
  • Mbuti
  • Shum Laka

the estimated proportion always falls between roughly

6% and 9%

Examples:
  • 8.9%
  • 7.7%
  • 7.5%
  • 6.6%
  • 6.2%
  • 6.9%
This consistency is striking.

Different African populations represent different branches of Sub-Saharan diversity, yet qpAdm repeatedly converges on essentially the same amount.

That strongly suggests that the African ancestry is genuine rather than an artifact of the choice of proxy.

It is also completely compatible with your earlier models that estimated approximately 4–6%, since different proxy sets often shift the inferred proportion slightly while preserving the overall signal.




3. The European ancestry repeatedly resolves into the classic three-way West Eurasian structure​


This is perhaps the most important result.

Whenever you allow prehistoric European populations into the model, qpAdm repeatedly reconstructs the same ancestry components:

Early European Farmers​


represented by
  • Turkey Barcın Neolithic
  • Italy Remedello EBA
approximately

20–58%




Steppe ancestry​


represented by
  • Yamnaya Samara
approximately

39–50%




Western Hunter-Gatherers​

represented by
  • Loschbour
usually

0–35%




This is exactly what population geneticists expect for Northwest Europeans and Northwest Iberians.




4. Why Loschbour sometimes disappears​


One of the most interesting observations is this.

Sometimes you obtain

Remedello
58%

Loschbour
34%

Other times
Yamnaya
40%


Remedello
52%


and Loschbour is absent.

This is not contradictory.

Remember:

Yamnaya itself already contains substantial Eastern Hunter-Gatherer ancestry.

Early European Farmers also contain some WHG ancestry.

Therefore, once Yamnaya is included, much of the WHG signal is already accounted for.

This is why the four-way model produces:
Yamnaya
50%


Barcın
42%


Loschbour
0%


Loschbour is no longer statistically necessary because its ancestry has effectively been absorbed into the combination of Barcın and Yamnaya.
This is a classic example of overlapping ancestry sources in qpAdm.




5. Denmark IA and Czech La Tène are functioning as composite proxies​


This is another very important point.

When you model with
  • Denmark Iron Age
or
  • Czech La Tène
you obtain results like
Denmark IA


70%


Turkey Barcın


22%


African


8%


or


La Tène


69%


Barcın


24%


African


7%


At first glance, one might think this implies a predominantly Danish or Celtic ancestry.
It does not.

These Iron Age populations already contain approximately:
  • Steppe ancestry
  • Farmer ancestry
  • Hunter-Gatherer ancestry

They are themselves admixed populations.

Therefore, qpAdm is simply using them as convenient summaries of the prehistoric European ancestry.

They are statistical proxies, not necessarily direct historical ancestors.




6. The four-way model is especially revealing​


Your best four-way model is
African
6.6%


Yamnaya
50%


Barcın
42%


Loschbour
0.8%
Notice the standard errors:
Yamnaya
SE = 0.486


Loschbour
SE = 0.479



These are enormous.
The corresponding Z-scores are
1.03


0.02


Those values are not significant.
What does that mean?

It does not mean the model is wrong.

Instead, it means that the data cannot reliably distinguish how much ancestry should be assigned specifically to Yamnaya versus Loschbour, because those ancestry components are highly correlated after thousands of years of admixture.

In other words, qpAdm is telling you:

"The total hunter-gatherer/steppe ancestry is well supported, but there are many nearly equivalent ways to partition it."

That is exactly what one would expect.




7. Comparison with your Roman Portuguese models​


This is perhaps the most satisfying part.

Previously you found:
Roman Portugal


95%


African


5%

Now that same Roman Portuguese ancestry decomposes approximately into:
African


7%


Steppe


40–50%


Farmer


40–55%


Hunter-Gatherer


0–35%


This is almost exactly what large ancient DNA studies have reported for Atlantic Iberian populations.
The chronology also makes sense:

Mesolithic

Loschbour-like WHG





Neolithic

Barcın/Anatolian Farmers





Bronze Age

Yamnaya-derived Steppe ancestry





Iron Age

Celtic populations (La Tène, Denmark IA)





Roman Portugal





Modern Portuguese





You


That is an internally coherent sequence.




8. Are the high Yamnaya values surprising?​


At first glance,
40–50%

Steppe ancestry seems high for an Iberian.
However, remember that qpAdm coefficients depend entirely on the chosen source populations.

Here, Yamnaya is acting as the sole representative of all Steppe-derived ancestry. In other published models, the same ancestry might instead be represented by populations such as Bell Beaker, Corded Ware, or Bronze Age Iberians, leading to different percentages while describing essentially the same underlying ancestry.

Moreover, your alternative models using Denmark Iron Age or Czech La Tène absorb much of this Steppe ancestry into later composite populations, illustrating that these proxies are interchangeable to a considerable extent.

Therefore, I would interpret the presence of a substantial Steppe-derived component as robust, but I would avoid treating the exact 40–50% coefficient as a literal historical estimate.




9. The overall pattern across all of your analyses​


Taking together:
  • your Roman Portuguese models,
  • your Late Roman Portuguese models,
  • medieval Iberian models,
  • modern Iberian models,
  • these Mesolithic–Iron Age models,
  • and the Eurogenes G25 fits,
the evidence is remarkably consistent.

Rather than contradicting one another, the models describe the same ancestry at different historical resolutions:

  • Historical resolution: Your closest overall genetic proxies are Roman and Late Roman Portuguese, along with modern Northwest Iberians (Galicians, Northern Portuguese, Cantabrians, and Castilians), consistently accompanied by a small but stable Sub-Saharan African component.
  • Prehistoric resolution: That Northwest Iberian ancestry can be decomposed into the expected Western Eurasian building blocks: Anatolian Neolithic farmer ancestry, Steppe-derived Bronze Age ancestry, and Western Hunter-Gatherer ancestry. The exact partition among those ancient sources varies depending on the proxy set because those ancestries are partially collinear.
  • Methodological consistency: The convergence between qpAdm models using very different source populations and your previous Eurogenes G25 results increases confidence that the broad conclusions are robust rather than artifacts of a particular modeling strategy.

Overall conclusion​


If I were summarizing all of your work so far for a population genetics report, I would conclude that your genome is best explained as a typical Northwest Iberian genetic profile, with its closest historical affinities to Roman and Late Roman Portugal and modern populations from Northern Portugal, Galicia, Cantabria, and neighboring regions. At a deeper timescale, that ancestry resolves into the expected combination of Anatolian Neolithic farmer, Steppe Bronze Age, and Western Hunter-Gatherer ancestry, with a small but consistently detected Sub-Saharan African component. The repeated recovery of the same broad pattern across dozens of qpAdm models and independent G25 analyses is the strongest aspect of your results: it suggests that the inference is robust despite changes in reference populations and chronological depth.
 
Last edited:
What do you think of this other 4-way model?
── RESULTS_SUMMARY ── Target: Blocks: 705 SNPs: 121,515── RESULTS_WEIGHTS ──# A tibble: 4 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese __ind_Loschbour.DG 0.160 0.0729 2.202 Brazil_Belo-Horizonte_Portuguese Russia_Samara_EBA_Yamnaya.AG 0.296 0.0743 3.983 Brazil_Belo-Horizonte_Portuguese Turkey_Marmara_Barcin_N.DG 0.460 0.0605 7.614 Brazil_Belo-Horizonte_Portuguese Luhya.DG 0.0836 0.0114 7.34── RESULTS_POPDROP ──# A tibble: 15 × 15pat wt dof chisq p f4rank __ind_Loschbour.DG Russia_Samara_EBA_Yamnaya.AG Turkey_Marmara_Barcin_N.DG Luhya.DG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 0000 0 5 8.48 1.32e- 1 3 0.160 0.296 0.460 0.0836 TRUE NA NA NA NA2 0001 1 6 82.7 9.81e- 16 2 0.265 0.0245 0.711 NA TRUE TRUE 0 -26.7 13 0010 1 6 109. 2.70e- 21 2 0.495 0.406 NA 0.0987 TRUE TRUE 0 68.6 04 0100 1 6 40.8 3.11e- 7 2 0.342 NA 0.588 0.0702 TRUE TRUE 0 20.9 05 1000 1 6 19.9 2.85e- 3 2 NA 0.407 0.508 0.0852 TRUE TRUE NA NA NA6 0011 2 7 181. 1.17e- 35 1 2.13 -1.13 NA NA FALSE NA NA NA NA7 0101 2 7 118. 1.88e- 22 1 0.203 NA 0.797 NA TRUE NA NA NA NA8 0110 2 7 166. 2.10e- 32 1 0.918 NA NA 0.0820 TRUE NA NA NA NA9 1001 2 7 110. 7.86e- 21 1 NA 0.135 0.865 NA TRUE NA NA NA NA10 1010 2 7 185. 2.08e- 36 1 NA 0.884 NA 0.116 TRUE NA NA NA NA11 1100 2 7 91.8 5.22e- 17 1 NA NA 0.944 0.0564 TRUE NA NA NA NA12 0111 3 8 247. 6.09e- 49 0 1 NA NA NA TRUE NA NA NA NA13 1011 3 8 516. 2.97e-106 0 NA 1 NA NA TRUE NA NA NA NA14 1101 3 8 132. 8.85e- 25 0 NA NA 1 NA TRUE NA NA NA NA15 1110 3 8 7016. 0 0 NA NA NA 1 TRUE NA NA NA NA
I actually think this is the best prehistoric model you've obtained so far.
Not because it has the lowest p-value (although p = 0.132 is perfectly acceptable), but because it satisfies something even more important:
  • every source represents a genuine ancestral component,
  • every coefficient is statistically meaningful,
  • every coefficient is biologically plausible,
  • and none of the sources is being used as a "catch-all" proxy.
Let's examine it.
SourceWeightSEZ
Loschbour (WHG)16.0%0.0732.20
Yamnaya Samara29.6%0.0743.98
Barcın Neolithic46.0%0.0617.61
Luhya8.36%0.0117.34

1. This is exactly the classical European ancestry decomposition​

Instead of using Iron Age populations (La Tène, Denmark IA) as composite proxies, you've forced qpAdm to explain your ancestry using the three canonical prehistoric West Eurasian components:
  • Western Hunter-Gatherers (WHG)
  • Anatolian Farmers (EEF)
  • Steppe pastoralists
  • African ancestry
That is the framework used in many landmark ancient DNA papers.

2. Every coefficient is statistically supported​

Earlier, one of the weaknesses of your four-way model was this:
SourceZ
Yamnaya1.03
Loschbour0.02
Those components were not independently supported because they were highly collinear.
Now:
Loschbour
Z = 2.20
Yamnaya
Z = 3.98
Barcın
Z = 7.61
Luhya
Z = 7.34
Every component contributes significantly.
That is a major improvement.

3. The ancestry proportions look biologically realistic​

Your model estimates approximately:
  • 46% Early European Farmer
  • 30% Steppe
  • 16% Western Hunter-Gatherer
  • 8% African
Compare that with published estimates for Atlantic Iberia:
Typical ancient and modern Northwest Iberians often fall roughly within these ranges:
  • EEF: ~45–60%
  • Steppe: ~25–40%
  • WHG: ~10–20%
Your values fit comfortably within those intervals.

4. Why the Steppe percentage decreased​

Earlier models gave:
40–50% Yamnaya
Now you obtain:
30%
This is not a contradiction.
Previously there was no explicit WHG source.
Since Yamnaya itself contains substantial hunter-gatherer ancestry, qpAdm assigned some WHG ancestry to Yamnaya.
Once Loschbour is introduced as an independent source, qpAdm can separate:
  • genuine Steppe ancestry
  • indigenous Western Hunter-Gatherer ancestry
Consequently, the Steppe estimate drops while a distinct WHG component emerges.
This is exactly what one would expect.

5. The p-value is solid​

The overall model has:
p = 0.132
For qpAdm, that's a good fit.
It means there is no statistical reason to reject the hypothesis that your genome can be modeled as a mixture of these four sources, given the chosen outgroups.

6. The POPDROP table is informative​

One of the strengths of this model is that removing any of the three Eurasian sources substantially worsens the fit.
For example:
Removing Yamnaya:


p ≈ 2.7 × 10⁻²¹

Removing Loschbour:


p ≈ 3 × 10⁻⁷

Removing Barcın:


p ≈ 2.9 × 10⁻³

None of these reduced models is adequate, indicating that all three prehistoric European ancestry layers are needed to explain your target.

7. The African component remains remarkably stable​

Once again:
  • 8.36%
This aligns closely with virtually every previous model you've run:
  • 8.9%
  • 8.5%
  • 8.3%
  • 7.8%
  • 7.5%
  • 7.0%
  • 6.6%
That consistency strengthens the inference that the African signal is robust rather than an artifact of any particular proxy.

8. Comparison with your previous best models​

ModelInterpretation
Roman Portugal + AfricanBest historical proxy
Denmark IA + Barcın + AfricanGood composite prehistoric proxy
La Tène + Barcın + AfricanGood composite prehistoric proxy
Loschbour + Yamnaya + Barcın + LuhyaBest decomposition into fundamental ancestral layers
These models are not competing explanations; they're describing your ancestry at different temporal resolutions.

Overall assessment​

If I were reviewing your qpAdm results as part of a population genetics study, this is the prehistoric model I would highlight. It has several desirable properties:
  • It uses the canonical ancestral components of West Eurasian population history (WHG, Early European Farmers, and Steppe pastoralists).
  • All four mixture coefficients are positive, statistically supported (all Z > 2), and biologically plausible.
  • The overall fit (p = 0.132) is comfortably acceptable.
  • The inferred proportions are consistent with what is known about the ancestry of Northwest Iberian populations, while the Sub-Saharan African component remains stable across many independent models.
Taken together with your earlier analyses using Roman Portuguese, Late Roman Portuguese, and Iron Age populations, this model reinforces a coherent picture rather than introducing a new one: a Northwest Iberian genetic profile that can be decomposed into the expected prehistoric European ancestry layers, plus a small but consistently detected Sub-Saharan African contribution.

If we replace "Luhya"—a modern Bantu population from Sub-Saharan Africa—with the Shum Laka (Late Stone Age hunter-gatherers native to West-Central Africa who are not direct ancestors of present-day Bantu peoples), the result remains the same. What do you think?
── RESULTS_SUMMARY ── Target: Blocks: 705 SNPs: 121,515── RESULTS_WEIGHTS ──# A tibble: 4 × 5target left weight se z<chr> <chr> <dbl> <dbl> <dbl>1 Brazil_Belo-Horizonte_Portuguese __ind_Loschbour.DG 0.172 0.0749 2.302 Brazil_Belo-Horizonte_Portuguese Russia_Samara_EBA_Yamnaya.AG 0.280 0.0757 3.703 Brazil_Belo-Horizonte_Portuguese Turkey_Marmara_Barcin_N.DG 0.477 0.0612 7.794 Brazil_Belo-Horizonte_Portuguese Cameroon_ShumLaka_SMA.DG 0.0711 0.00968 7.34── RESULTS_POPDROP ──# A tibble: 15 × 15pat wt dof chisq p f4rank __ind_Loschbour.DG Russia_Samara_EBA_Yamnaya.AG Turkey_Marmara_Barcin_N.DG Cameroon_ShumLaka_SMA.DG feasible best dofdiff chisqdiff p_nested<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl> <dbl> <dbl> <dbl>1 0000 0 3 7.48 5.80e- 2 3 0.172 0.280 0.477 0.0711 TRUE NA NA NA NA2 0001 1 4 78.8 3.16e- 16 2 0.268 0.00645 0.726 NA TRUE TRUE 0 -32.5 13 0010 1 4 111. 3.89e- 23 2 0.533 0.382 NA 0.0853 TRUE TRUE 0 74.8 04 0100 1 4 36.4 2.34e- 7 2 0.349 NA 0.589 0.0619 TRUE TRUE 0 17.4 05 1000 1 4 19.0 7.69e- 4 2 NA 0.394 0.533 0.0733 TRUE TRUE NA NA NA6 0011 2 5 177. 1.93e- 36 1 2.14 -1.14 NA NA FALSE NA NA NA NA7 0101 2 5 114. 5.13e- 23 1 0.197 NA 0.803 NA TRUE NA NA NA NA8 0110 2 5 163. 2.87e- 33 1 0.929 NA NA 0.0708 TRUE NA NA NA NA9 1001 2 5 107. 2.23e- 21 1 NA 0.140 0.860 NA TRUE NA NA NA NA10 1010 2 5 192. 1.46e- 39 1 NA 0.900 NA 0.0995 TRUE NA NA NA NA11 1100 2 5 88.3 1.51e- 17 1 NA NA 0.948 0.0515 TRUE NA NA NA NA12 0111 3 6 243. 1.37e- 49 0 1 NA NA NA TRUE NA NA NA NA13 1011 3 6 502. 2.62e-105 0 NA 1 NA NA TRUE NA NA NA NA14 1101 3 6 129. 2.10e- 25 0 NA NA 1 NA TRUE NA NA NA NA15 1110 3 6 7660. 0 0 NA NA NA 1 TRUE NA NA NA NA
I think this is an even stronger result—not because Shum Laka is somehow a better proxy than Luhya, but because the model is demonstrating robustness to a major change in the African reference population.
This is exactly the kind of consistency you hope to see in qpAdm.

1. The European ancestry hardly changes​

Comparing the two models:
ComponentLuhya modelShum Laka model
WHG (Loschbour)16.0%17.2%
Steppe (Yamnaya)29.6%28.0%
Anatolian Farmer (Barcın)46.0%47.7%
African8.36%7.11%
These differences are tiny.
Everything stays within the standard errors.
That is exactly what one expects if the underlying ancestry is being recovered correctly.

2. Why replacing Luhya with Shum Laka works​

This is the most interesting part.
The Luhya are:
  • modern East Africans
  • Bantu-speaking
  • affected by several thousand years of later demographic history
Shum Laka individuals are:
  • ancient West-Central Africans
  • Late Stone Age
  • predating the Bantu expansion
  • genetically distinct from modern Bantu populations
Despite those differences, qpAdm estimates essentially the same African contribution.
That tells us something important.
It is not saying your African ancestry specifically comes from Shum Laka.
Nor is it saying it comes from the Luhya.
Instead, it is saying:
"There is a Sub-Saharan African ancestry component, and either of these populations serves as an adequate proxy for that branch of human diversity in the context of this model."
That's exactly how qpAdm is intended to be interpreted.

3. The slight decrease from 8.4% to 7.1% is expected​

This is entirely normal.
Different African reference populations occupy different positions in genetic space.
If one proxy is slightly closer to your actual African ancestry than another, qpAdm will compensate by adjusting the coefficient.
A ~1% difference is not remarkable.
The more important point is that both models independently converge on a small but substantial African component.

4. Your prehistoric European decomposition becomes even more convincing​

One thing I particularly like is that the European proportions remain remarkably stable:
Approximately:
  • 17% WHG
  • 48% Early European Farmer
  • 28% Steppe
Those values are very close to what many ancient DNA studies estimate for Atlantic and northwestern Iberian populations after accounting for differences in proxy choice.
Again, the exact percentages should not be overinterpreted, but the relative balance is biologically plausible.

5. Every source remains statistically significant​

Your Z-scores are:
SourceZ
Loschbour2.30
Yamnaya3.70
Barcın7.79
Shum Laka7.34
This is excellent.
Unlike some of your earlier four-way models, none of the coefficients is hovering around zero or burdened with huge uncertainty.

6. The model fit is still acceptable​

Overall:
p = 0.058
Although this is somewhat lower than the Luhya model (p = 0.132), it remains above the commonly used acceptance threshold of 0.05. Both models are therefore statistically acceptable.
It's also worth noting that qpAdm p-values are not a measure of "how true" a model is. They indicate whether the observed data are compatible with the proposed mixture model, given the selected outgroups. Small changes in source populations can shift the p-value without materially changing the inferred ancestry.

7. An important caveat: what the African proxy can and cannot tell you​

One point deserves emphasis.
The stability of the African component across Luhya, Mbuti, and Shum Laka does not identify the historical source of that ancestry.
Your African ancestry could derive from populations related to:
  • Senegambians,
  • Upper Guinea groups,
  • Angolans,
  • Congolese,
  • other West or West-Central Africans,
or mixtures of these.
Because qpAdm is using broad, divergent African populations as proxies, it is mainly detecting the presence of a Sub-Saharan African-related ancestry. It is not yet resolving which specific historical populations contributed it.
To answer that question, you would need a more targeted panel including likely source populations from the Atlantic slave trade and appropriate outgroups.

Overall assessment​

Taken together with all of your previous analyses, I think you're converging on a very stable solution.
The striking feature isn't the exact percentages—those naturally vary a few percentage points depending on the reference panel—but the fact that the same underlying ancestry structure keeps reappearing regardless of the proxies used:
  • ~45–50% Anatolian Neolithic farmer ancestry
  • ~25–35% Steppe-derived ancestry
  • ~15–20% Western Hunter-Gatherer ancestry
  • ~7–8% Sub-Saharan African ancestry
That's the hallmark of a robust qpAdm analysis. When you can replace a modern African proxy (Luhya) with an ancient, genetically distinct one (Shum Laka) and still recover essentially the same European decomposition and only a modest shift in the African coefficient, it increases confidence that you're detecting a genuine ancestry signal rather than fitting to idiosyncrasies of a particular reference population.
 
Last edited:
Plotting the data on graphs for AI analysis:


📊 Chart 1: Genetic Components of the Modern Iberian Population (IBS)

IMG_0836.png


📌 Summary of Visualized Values:
  • ANF (Anatolian Neolithic Farmer): 53% — Represented by the green bar.
  • Yamnaya (Western Steppe Herder): 26% — Represented by the blue bar.
  • WHG (Western Hunter-Gatherer): 19% — Represented by the orange bar.
  • SSA (Sub-Saharan African): 2% — Represented by the purple bar.

🧬 Meaning of the Components:
  1. ANF (Anatolian Neolithic Farmer) (~53%): Neolithic farmers originating from Anatolia. This represents the largest genetic contribution to the current Iberian Peninsula.
  2. Yamnaya (Western Steppe Herder) (~26%): Nomadic pastoralists from the Eurasian steppes (Bronze Age). This lineage introduced Indo-European languages and almost completely replaced the local Y-chromosome lineage about 4,500 years ago.
  3. WHG (Western Hunter-Gatherer) (~19%): Hunter-gatherers who inhabited Western Europe before the arrival of agriculture.
  4. SSA (Sub-Saharan African) (~2%): A more recent genetic influx of Sub-Saharan origin, resulting from historical migrations and contacts across the Mediterranean and the Atlantic.



📊 Chart 2: Comparative Analysis (Iberia vs. Italy)

IMG_0837.png




🔍 Analysis of the Components:
  • ANF: The Italian population (TSI) shows a slightly higher proportion of this component compared to the Iberian population (IBS). This reflects the profound impact of Neolithic migration routes and subsequent gene flows through the Central Mediterranean.
  • Yamnaya: Both groups possess very similar levels of steppe ancestry (Bronze Age), hovering around 26% to 27%.
  • WHG: The Iberian population retains a discretely higher signature of Western Hunter-Gatherers compared to the Italians.
  • SSA: Both southern European populations show very low, residual traces of this component, arising from historical trade and migration dynamics within the Mediterranean basin.





🗺️ Breakdown: Regional Variation Across Spain and Portugal
Although the population of the Iberian Peninsula shares a very close ancestral base, the ANF, Yamnaya, WHG, and SSA components are not distributed homogeneously. Large-scale modern genetic studies reveal that variation in the region follows clear geographic and historical axes, creating distinct East-West and North-South gradients:
  1. The Basque Country: The Greatest Genetic Isolation
    • WHG: Features the highest levels on the peninsula. The Basques retain strong continuity with local pre-Neolithic populations.
    • SSA: It is practically 0%, making it the region with the least external influence in all of Iberia.
    • Historical Reason: The mountainous terrain of the Cantabrian Range protected the north from major subsequent genetic mixtures (Roman, Phoenician, or North African).
  2. The Western Axis & the South (Portugal and Andalusia)
    • SSA and North African: Reaches its most significant proportions on the peninsula, ranging from 3% to 11% in certain areas, particularly in Southern Portugal (Algarve and Alentejo) and Andalusia (Spain). It progressively decreases as one moves north and east.
    • Historical Reason: This distribution directly reflects the geography of the Al-Andalus period, where Islamic rule lasted much longer in the south (nearly 800 years in Andalusia) than in the north, alongside subsequent transatlantic trade connections.
  3. The Eastern Axis (Catalonia, Aragon, and Valencia)
    • Yamnaya: Slightly more pronounced in the Northeast (Catalonia).
    • Historical Reason: The northeast served as the main overland gateway for migrations coming from Central Europe through the Pyrenees since the Bronze Age. Furthermore, the eastern coast was intensively colonized by Greeks, Phoenicians, and Romans, who reinforced Mediterranean farmer components.



📊 Chart 3: Comprehensive Regional Variation (Including the "Duarte" Sample, Madeira, and Canary Islands)
The stacked bar chart below displays the regional data alongside the "Duarte" sample (with Yamnaya calculated at 28% to complete 100%) and the Atlantic archipelagos of Madeira and the Canary Islands:

IMG_0835.png


🔬 Genetic Analysis of the Insular Profiles and the "Duarte" Sample:
  • The SSA Gradient (Sub-Saharan): The Canary Islands (14%) and Madeira Island (12%) exhibit the highest levels of this component due to their geographic locations and settlement histories (the indigenous Guanche population in the Canaries possessed North African Berber origins, and Madeira's history was tied to colonial Atlantic trade). The "Duarte" sample (7%) positions itself just below this insular sphere, slightly exceeding Andalusia/Southern Portugal (6%), revealing a profile with strong southern/Atlantic influence.
  • Yamnaya and WHG Dilution: In both Madeira and the Canaries, the older European components (Yamnaya and WHG) appear diluted by the heavier weight of ANF and SSA ancestries. The "Duarte"sample contrasts with the islands here: its 28% Yamnaya and 17% WHG show a robust continental heritage (matching Catalonia for the steppe component) despite its elevated SSA.
  • ANF Component: In the Canary Islands, the ANF component (61%) peaks because the native Guanches shared a massive genetic heritage with Neolithic farmers. The "Duarte" sample (48%) drops below both the continental and insular averages due to the higher concentration of Yamnaya and SSA competing for space in its genome.
 
Last edited:
Back
Top