除了祖上有不间断的详细族谱的人(这毕竟是少数大家望族才能有的待遇),想必每个人都会对自己的祖上来自哪里充满了好奇,这也是许多人做基因检测的主要目的,探索未知是人类的天性,于是我来探索以下祖源是怎么得出来的。
一直一来,很好奇祖源分析是怎么做的,还尝试过使用一款SPA(Spatial Ancestry analysis)这个软件尝试进行分析,结果差强人意,祖源定位地点总是在海上。。。(在搜索基因型填充时无意中搜到了这个软件,由几个作者写成,第一作者还是华人,有点骄傲,可惜没有针对中国人或者东亚人的模型,只有世界和欧洲人的模型,瞬间又觉得有点失落,好在许多中国公司在积累了几万以上的数据后也开始进行中国人自己的模型构建,而且做得还不错)。
1.先来看看这个R包的效果
这里主要使用的是github上wegene的一个R语言包,ps,不是广告,偶尔翻到的,纯属意外。使用自己的aff的snp芯片数据测试了一下这个代码仓库中的数据集的结果情况,顺便学习以下里边的参考文献。仓库地址在这:https://github.com/wegene-llc/radmixture
代码基本上是从这个仓库的readme上复制下来的。
#install.packages("radmixture")
library(radmixture)
genotype <- read.table(file = '0D-180208-oIDS.txt')
#download.file(url = 'http://github.com/wegene-llc/radmixture/raw/master/data/globe4.alleles.RData', destfile = 'globe4.alleles.RData')
#download.file(url = 'http://github.com/wegene-llc/radmixture/raw/master/data/globe4.4.F.RData', destfile = 'globe4.4.F.RData')
# Use K4
load('globe4.alleles.RData')
load('globe4.4.F.RData')
res <- tfrdpub(genotype, 4, globe4.alleles, globe4.4.F)
ances <- fFixQN(res$g, res$q, res$f, tol = 1e-4, method = "BR", pubdata = "K4")
ances$q
# Use K7b
load('K7b.alleles.RData')
load('K7b.7.F.RData')
res <- tfrdpub(genotype, 7, K7b.alleles, K7b.7.F)
ances <- fFixQN(res$g, res$q, res$f, tol = 1e-4, method = "BR", pubdata = "K7b")
ances$q
# Use world9
load('world9.alleles.RData')
load('world9.9.F.RData')
res <- tfrdpub(genotype, 9, world9.alleles, world9.9.F)
ances <- fFixQN(res$g, res$q, res$f, tol = 1e-4, method = "BR", pubdata = "World9")
ances$q
# Use E11
load('e11.alleles.RData')
load('e11.11.F.RData')
res <- tfrdpub(genotype, 11, e11.alleles, e11.11.F)
ances <- fFixQN(res$g, res$q, res$f, tol = 1e-4, method = "BR", pubdata = "E11")
ances$q
# Use K12b
load('K12b.alleles.RData')
load('K12b.12.F.RData')
res <- tfrdpub(genotype, 12, K12b.alleles, K12b.12.F)
ances <- fFixQN(res$g, res$q, res$f, tol = 1e-4, method = "BR", pubdata = "K12b")
ances$q
# Use K13
load('globe13.alleles.RData')
load('globe13.13.F.RData')
res <- tfrdpub(genotype, 13, globe13.alleles, globe13.13.F)
ances <- fFixQN(res$g, res$q, res$f, tol = 1e-4, method = "BR", pubdata = "K13")
ances$q
Use K4
European Asian African Amerindian
result 0.00123 0.95971 0.00651 0.03255
Use K7b
South_Asian West_Asian Siberian African Southern Atlantic_Baltic East_Asian
result 1e-05 1e-05 0.18018 0.00756 1e-05 0.00204 0.81019
Use world9
Amerindian East_Asian African Atlantic_Baltic Australasian Siberian Caucasus_Gedrosia
result 1e-05 0.82437 0.00817 1e-05 0.00171 0.1657 1e-05
Southern South_Asian
result 1e-05 1e-05
Use E11
African European India Malay SouthChineseDai SouthwestChineseYi EastChinese Japanese
result 0.00631 1e-05 1e-05 0.03147 0.13245 0.14303 0.52741 0.06268
NorthChineseOroqen Yakut American
result 0.07676 0.01934 0.00053
Use K12b
Gedrosia Siberian Northwest_African Southeast_Asian Atlantic_Med North_European
result 1e-05 0.04038 1e-05 0.34015 1e-05 0.00217
South_Asian East_African Southwest_Asian East_Asian Caucasus Sub_Saharan
result 1e-05 0.00228 1e-05 0.60959 1e-05 0.00537
Use K13
Siberian Amerindian West_African Palaeo_African Southwest_Asian East_Asian Mediterranean
result 0.19514 1e-05 0.00536 0.00267 0.00173 0.78607 1e-05
Australasian Arctic West_Asian North_European South_Asian East_African
result 0.00183 0.00713 1e-05 1e-05 1e-05 1e-05
从结果来看,还是比较靠谱的,大体上看,手上的这个样本主要是东亚人,然后有一定的西伯利亚血统,猜测应该是当年成吉思汗横扫欧亚大陆时的结果。
2.学习以下两篇文献
这两篇文献都是发表与2009年的,虽然已经有十年之久,但是估计算法还没有更新更好的出来,所以一直在用。
1.D.H. Alexander, J. Novembre, and K. Lange. Fast model-based estimation of ancestry in unrelated individuals. Genome Research, 19:1655–1664, 2009.
2.H. Zhou, D. H. Alexander, and K. Lange. A quasi-Newton method for accelerating the convergence of iterative optimization algorithms. Statistics and Computing, 2009.
3.http://software.genetics.ucla.edu/admixture/index.html
4.http://www.biotrainee.com/thread-955-1-1.html
当然作为一个数学不怎么好的人,原理基本上是看不懂的,特别是满是公式的论文,那就简单扫盲一下。