Structure 2.3使用手册
Jonathan K. Pritcharda Xiaoquan Wena Daniel Falushb 1 2 3
a
芝加哥大学人类遗传学系
b
牛津大学统计学系
软件来自
http://pritch.bsd.uchicago.edu/structure.html
2010年2月2日
1
我们在Structure项目中的其他的同事有Peter Donnelly、Matthew Stephens和Melissa
Hubisz。
23
开发这个程序的第一版时作者(JP、MS、PD)在牛津大学统计系。
关于Structure的讨论和问题请发给在线的论坛上:
structure-software@googlegroups.com。 在邮递问题之前请查对这个文档并搜索以前的讨论。
1 引言
程序Structure使用由不连锁的标记组成的基因型数据实施基于模型的聚类方法来推断群体结构。这种方法由普里查德(Pritchard)、斯蒂芬斯(Stephens)和唐纳利(Donnelly)(2000a)在一篇文章中引入,由Falush、斯蒂芬斯(Stephens)和普里查德(Pritchard)(2003a,2007)在续篇中进行了扩展。我们的方法的应用包括证明群体结构的存在,鉴定不同的遗传群体,把个体归到群体,以及鉴定移居者和掺和的个体。
简言之,我们假定有K个群体(这里K可能是未知的)的一个模型,每个群体在每个位点上由一组等位基因频率来刻画。样本内的个体被(按照概率)分配到群体,或共同分配到两个或更多个群体,如果它们的基因型表明它们是混和的。假定在群体内,位点处于哈迪-温伯格平衡和连锁平衡。不精确地讲,个体被按达到这一点那样的方法指定到群体。
我们的模型不假定一个特别的突变过程,并且它可以应用于大多数通常使用的遗传标记,包括微卫星(microsatellites)、SNP和RFLP。模型假定在亚群体内标记不处于连锁不平衡(LD),因此我们不能处理极其靠近的标记。从2.0版开始,我们现在能够处理弱连锁的标记。
虽然这里实现的计算方法是相当强有力的,但是为了保证明智的答案,在运行程序的过程中还是需要谨慎。例如,不可能从理论上确定合适的运行长度(时间),这需要用户自己做一些实验。这份资料描述软件的使用和解释,并补充发表的文章,这些文章提供了对方法的更正式的描述和评价。
1.1 概述
软件包Structure由几个部分组成。程序的计算部分用C语言编写。我们发布源码和用于各种平台(目前有苹果机,Windows,Linux,Sun)的可执行文件。C可执行文件读取用户提供的一个数据文件。还有一个Java前端为用户提供各种有帮助的工具,包括对输出的简单的处理。你也可以从命令行调用Structure而不是使用前端。
这份资料包括关于怎样格式化数据文件、怎样选择合适的模型、以及怎样解释结果的信息。它也有关于使用两种界面(命令行和前端)的细节以及各种用户定义的参数的汇总。
1.2 在2.3版中有哪些更新?
2.3版(2009年4月发布)引入了新的模型用于改进数据集结构的推论,其中(1)数据对于通常的结构模型来说信息不够,不足以提供准确的推论,但是(2)抽样的地点与群体归属关系(population membership)相关。在这种情形下,通过明确利用抽样地点信息,我们使结构得到改善,经常允许性能提高很多(Hubisz et al., 2009)。我们希望在下几个月释放更进一步的改进。
表1:实例数据文件。这里MARKERNAMES = 1, LABEL = 1, POPDATA = 1, NUMINDS = 7, NUMLOCI = 5, MISSING = -9, POPFLAG = 0, LOCDATA = 0, PHENOTYPE = 0, EXTRACOLS = 0。第2列显示个体的地理取样位置。我们也可以把数据存储为每个个体一行(ONEROWPERIND = 1),在这种情况下第一行为―George 1 -9 -9 145 -9 66 64 0 0 92 94‖。
乔治 乔治 保拉 保拉 马修 马修 鲍勃 鲍勃 Anja Anja 彼得 彼得 卡斯坦 卡斯坦
1 1 1 1 2 2 2 2 1 1 1 1 2 2
Loc_a -9 -9 106 106 110 110 108 -9 112 114 -9 110 108 110
Loc_b 145 -9 142 148 145 148 142 142 142 142 145 145 145 145
Loc_c 66 64 68 64 -9 66 64 -9 -9 66 66 -9 62 64
Loc_d 0 0 1 0 0 1 1 0 1 1 0 1 0 1
Loc_e 92 94 92 94 92 -9 94 94 -9 94 -9 -9 -9 92
2 数据文件的格式
基因型数据的格式显示在表2中(表1显示一个例子)。基本上,整个数据集被作为一个矩阵安排在单个文件里,其中个体的数据在行里,位点在列里。用户能对格式做出若干选择,大多数这些数据(除基因型外!)是可选择的。
对于一个二倍体生物,每个个体的数据可以是作为连续的2行被储存,其中每个位点在一列,或者在一行中,其中每个位点在连续的两列。除非你打算使用连锁模型(见下面),否则单个个体的等位基因的次序并不重要。预基因型(pre-genotype)数据列(见下面)对每个体记录两次。(更一般地,对于n倍体生物来说,每个个体的数据被储存在n个连续的行中,除非ONEROWPERIND选项被使用。)
2.1 数据文件的组成部分:
输入文件的要素如下所列。如果给出,它们一定按以下顺序,然而大多数是可选的并且可以被完全删除。用户必须指明哪些数据被给出,或者在前端里(front end),或者(当从命令行运行Structure时)在一个单独的文件mainparams里。同时,用户也要指定个体和位点的数目。
2.2 行
1. 标记名称(可选择;字符串) 文件的第一行可以包含数据集里的每个标记的标识
符的一个列表。这一行包含整数或字母的L个字符串,其中L是位点的数目。 2. 隐性等位基因(仅用于有显性的标记数据;整数)SNP或者微卫星数据一般将不包
括这一行。但是如果选项RECESSIVEALLELES被设置为1,则程序要求有这一行来表明每个标记上哪个等位基因(如果有的话)是隐性的。关于更多的信息请参阅第4.1节。该选项用于象AFLP那样的数据,以及用于多倍体的情形,其中基因型可能是含糊的。
3. 标记之间的距离(可选择;实数)文件里的下一行是一个标记之间距离的集合,供
有连锁的位点使用。这些应该是遗传距离(例如,厘摩),或者是这种距离的一些替代,基于(例如)物理距离。如果标记距离(粗略地)与重组率成正比,则距离