一、简介
Structure 是一个利用遗传标记推断群体遗传结构的软件。其功能包括推断群体数目,判断某个个体属于哪个群体,鉴别迁移个体及杂合体等。举个例子
上图中颜色的种类即表示群体的数目,也就是说,2种颜色表示该例中的所有样本可以分为2个群体。不同的颜色表示不同的“血统”,或者说,来自于不同的祖先群体。其中每一个黄蓝相间的堆叠图表示一个个体。图中的下标“LF”,“CR”等表示种源地。那么,在本例中,蓝色区域中的个体就可以归为一个群体,而黄色区域内的个体就属于另一个群体,因为这些个体拥有相同的“血统”,尽管它们来自于不同的种源地。
就像亚洲人和欧洲人分属于不同的群体,通俗的讲,我们和欧洲人“血统”不一样。从基因的层面去解释,则是因为我们之间等位基因频率有很大差异,从而反映出表型的巨大差异。并且在近代以前的相当长时期内,几乎不存在任何交流,当然这指的是基因的交流,两个群体各自独立的演化,基因频率间的差异就保持下来,就像例子中黄色和蓝色区域那样,两个群体间差异巨大。而种群内部,比如我们亚洲人,尽管我们中国人和日本人,韩国人,甚至汉族和少数民族之间也存在着基因频率的差异,但是不像和欧洲人的差异那么大。就好比图中蓝色区域内“JD”,“PT”,“JL”等不同种源地间也存在着细微的差异(黄色“血统”所占比例略有变化)。
再看图中“PT"中有一个个体比较特别,它的黄色和蓝色比值接近1:1,那么这个个体很可能是一个外来者,或者是由一个蓝色“血统”和一个黄色“血统”的亲本杂交产生的后代。
二、软件的使用
1.数据格式
Structure 所需要的最基本的数据格式如下:
loc_a | loc_b | loc_c | ||
---|---|---|---|---|
George | 1 | -9 | 145 | 66 |
George | 1 | -9 | -9 | 64 |
Paula | 1 | 106 | 142 | 68 |
Paula | 1 | 106 | 148 | 64 |
Matthew | 2 | 110 | 145 | 66 |
Matthew | 2 | 110 | 148 | 66 |
Bob | 2 | 108 | 142 | 64 |
Bob | 2 | -9 | 142 | -9 |
表中第一行 loc_a, loc_b, loc_c表示位点或标记, 第一列表示样本,第二列表示种源地或亚群,若没有这类信息则全部以1代替。对于二倍体来说,每个样本的基因型由相邻的两行表示,每列为一个locus,每行为其中一个allele。
这里只做了简单的介绍,详细信息参考软件使用手册:Structure documentation
2. 参数选择
将整理好的基因型数据导入Structure,设置参数“Number of MCMC Reps”, “burn-in period”, “length of burn-in period”。
由于该软件所采用的算法是一个随机过程,因此,对于每一个K,需要进行多次重复运算以保证结果的可靠性。
3. 判断最佳K值
将结果打包,提交给在线软件Structure harvester,分析最佳的K值。
4. CLUMPP
使用CLUMPP对structure分析的重复运算结果进行重复抽样分析。得到最佳K值的Q-matrix结果。
5. 作图
将CLUMPP的结果传递给distruct,进行structure图形的绘制。
三、大杀器
重点来了,由于以上步骤过于繁琐,且经常要进行此类分析,本着一切繁琐的,或重复的劳动都应该自动化的原则,我对以上软件进行了深度封装,只需提供structure格式的文件及配置文件即可一键搞定,不需要人为干预,包括K值的选择,软件会自动完成。
1.查看帮助信息
目前只完成了formatting数据格式转换和structure两个模块。
2.数据格式转换
该模块将我们的SSR分析结果转换成多种其他软件需要的数据格式。
只需要提供config 文件
运行程序
2. 运行Structure
将直接得到structure harvester的结果和最终的structure结果: