I came up with a new way to estimate the amount of Mongoloid ancestry. I'm using qpGraph to model populations as a combination of the common ancestor of two Caucasoid populations and the common ancestor of two Mongoloid populations:
Code:
library(admixtools)
library(tidyverse)
p1=c("Lithuanian","Sardinian")
p2=c("Mongol","Han")
p3=c("Tharu","Finnish","Kurd","Kazakh","Russia_HG_Karelia","Turkey_N","Italy_North_Villabruna_HG","Russia_Samara_EBA_Yamnaya","Sherpa","Newar","Bahun","Rai","Tamang","Gurung","Magar","Japanese","Enets","Nganasan","French","Uyghur")
f2=f2_from_geno("v50.0_HO_public",pops=c(p1,p2,p3),maxmiss=1)
res=sapply(p3,function(x){
tree=rbind(c("R","A"),c("R","B"),c("A","C"),c("B","C"),cbind("A",p1),cbind("B",p2),c("C",x))
gr=qpgraph(f2,tree)
w=(gr$edges%>%filter(from=="B"&to=="C"))$weight
list(w,gr$score)
})%>%apply(1,unlist)
res=res[order(res[,1]),]
paste(sprintf("%.1f",100*res[,1]),rownames(res),round(res[,2]))%>%writeLines
# x="Tharu"
# tree=rbind(c("R","A"),c("R","B"),c("A","C"),c("B","C"),cbind("A",p1),cbind("B",p2),c("C",x))
# gr=qpgraph(f2,tree)
# plot_graph(gr$edges)
# ggsave("1.png",width=4,height=4)
Result:
0.0 Turkey_N 2144
0.0 Italy_North_Villabruna_HG 1311
0.5 French 1616
6.9 Finnish 1312
8.8 Kurd 1444
9.6 Russia_Samara_EBA_Yamnaya 1463
19.9 Russia_HG_Karelia 1454
39.1 Bahun 1345
55.7 Uyghur 1303
61.9 Newar 1949
66.2 Tharu 1816
70.2 Kazakh 1195
85.7 Tamang 2273
86.7 Magar 2257
86.8 Enets 1531
91.1 Gurung 2281
93.9 Rai 2231
97.0 Sherpa 2034
100.0 Japanese 3110
100.0 Nganasan 2433
For example the model for Tharu used a graph like this:
https://i.ibb.co/0yWq3gh/g.png