Unz评论•另类媒体选择
美国主流媒体大都排除了有趣,重要和有争议的观点
 玩笑基因表达博客
使用ADMIXTURE逐步分析祖先
通过电子邮件将此页面发送给其他人

 记住我的信息



=>

书签 全部切换变革理论添加到图书馆从图书馆中删除 • B显示评论下一个新评论下一个新回复了解更多
回复同意/不同意/等等 更多... 这个评论者 这个线程 隐藏线程 显示所有评论
同意不同意谢谢LOL轮唱
这些按钮可将您的公开协议,异议,感谢,LOL或巨魔与所选注释一起注册。 仅对最近使用“记住我的信息”复选框保存姓名和电子邮件的频繁评论者可用,并且在任何八个小时的时间内也只能使用三次。
忽略评论者 关注评论者
搜寻文字 区分大小写  确切的词  包括评论
列表 书签

在过去的几个月里,我希望更多的人会开始做 扎克·阿杰马尔(Zack Ajmal), 二烯David , 一直在做。 这里有公共数据集和开放源代码软件,因此任何有书呆子倾向的人都可以出于好奇而探索自己的问题。 这样你就可以看到 功率 台式机上基因组学的局限性。 我想知道是否更多人尚未开始执行此操作的最大原因之一是格式化。 例如,将矩阵格式的文件转换为谱系格式可能会很麻烦。 但是数据涌入者并没有结束,请看一下 1000个基因组 项目!

我一直在想,我需要写一篇对人们来说是“软着陆”的文章,以便我们可以减少这种事情的“激活能量”……一旦您着迷了,您只会更深入。 幸运的是,一位匿名提示者向我发送了指向URL的链接,该URL包含已合并,已经完成谱系格式化的庞大数据集。 以下是人口:


功夫 布里亚特人 豪萨语 玛达 旁遮普人阿林 托纳克
阿迪吉 柬埔寨 哈扎拉 马克兰尼 侏儒 Tu
非裔美国人 中文 喝骂 马来亚人 罗马尼亚人 土家族
阿尔及利亚 华裔美国人 赫镇 曼登卡 俄语 突尼斯
阿尔泰人 楚科奇人 匈牙利 玛雅 撒哈拉沙漠 土耳其人
阿鲁尔 楚瓦什人 他们 姆布蒂 萨基利 托斯卡纳
阿普·布拉敏(Ap Brahmin) 科钦犹太人 伊博 美拉尼西亚 撒玛利亚人 图维尼人
阿普马迪加 哥伦比亚 伊朗犹太人 墨西哥人 萨摩亚 乌尔卡拉
阿普马拉 塞浦路斯人 伊朗人 犹他州白人
亚美尼亚 通过 伊拉克犹太人 蒙古 三铌 维吾尔族
亚美尼亚人B 达ur尔 伊鲁拉 蒙古人 桑达威 乌兹别克斯坦犹太人
Ashkenazy犹太人 意大利语 摩洛哥人 撒丁岛 乌兹别克人
阿塞拜疆犹太人 海豚 日文 摩洛哥犹太人 沙特 越南语
o路支 德鲁兹 约旦人 摩洛哥N 塞尔库普斯 格陵兰人
班巴兰 格陵兰人 卡巴 摩洛哥S Sephardic犹太人 科萨
巴莫恩 埃及 卡拉什 莫扎比 锡伯
班图肯亚 埃及人 卡里蒂亚娜 N欧洲 信德 红宝石
南非 埃塞俄比亚犹太人 凯茨 纳西 新加坡华人 也门犹太人
巴斯克 埃塞俄比亚人 高棉 尼泊尔 新加坡印第安人 也门人
贝都因人 鄂温克族 金刚 恩加纳桑 新加坡马来语 Yi
北京中文 科里亚克人 恩古尼 斯洛文尼亚 约鲁巴语
白俄罗斯 法语 库尔德人 北坎纳迪 索托/茨瓦纳 尤卡吉尔斯
比亚卡 富拉尼 吉尔吉斯斯坦 奥卡迪亚人 西班牙人
贝尼·梅纳什(Bnei Menashe) 格鲁吉亚犹太人 拉hu 鄂伦春 斯塔尔斯科
玻利维亚 乔治亚人 黎巴嫩 巴勒斯坦的 苏瑞
婆罗辉 Gujaratis 勒金斯 帕尼亚 叙利亚人
rong 古吉拉特人B 利比亚 巴布亚 泰国人
布拉拉 哈扎 立陶宛 帕坦 泰米尔·婆罗门(Tamil Brahmin)
布鲁修 露雅 我问 泰米尔·达利特(Tamil Dalit)
布里亚特 韩南 马赛 皮马 同安区

该数据集具有约4,000个个体和约30,000个标记。 二进制文件约为25 MB。 下载有四个文件。 .bed,.bim和.fam采用谱系格式。 .csv是有关每个人(人口,地区等,与特定标识号绑定)的信息的“主列表”。 这一点很重要,因为一旦有了一些输出文件,就需要弄清楚它的含义并进行可视化,这仅在拥有一个不仅包含家庭和个人信息的主列表的情况下,才具有参考价值。

这里是 链接到文件以下载上述所有人群。 我已经将其拉下并运行它,所以我知道它不是恶意软件。

所以现在怎么办? 该职位将分为三部分。

1)在ADMIXTURE中运行此数据

2)在R中可视化

3)在Plink中处理此数据

#1并不取决于#2和#3,因此我将首先这样做。 您无需阅读#2和#3。 实际上,你们中的某些人可能真的很擅长处理电子表格格式的数据,因此可能不需要排在第二位。 但是在R部分中,我还将为您提供更简单的电子表格输出,因此,即使您不关心R的可视化,也至少可以更好地管理.csvs集。 #2很重要,如果您想限制数据集,并在其末尾添加自己的3andMe文件。

#1在ADMIXTURE中运行数据

首先,您需要Linux或MacOS。 如果您使用的是Windows, 五笔 应用程序允许您必须具有双重启动功能。 它在Windows旁边运行Ubuntu Linux,并且您可以像Windows应用程序一样将其卸载。

我正在Ubuntu Linux上执行此操作,以供您参考。 假设您拥有正确的操作系统,那么现在您需要 混合物。 您可以将文件夹放在任何地方。

您需要使用终端转到您拥有ADMIXTURE的文件夹。 左图显示了我的操作。 您需要单击终端应用程序,然后执行“ cd”命令以进入相应的文件夹。 我的ADMIXTURE程序在桌面上的“ GA”文件夹和“ admix2”子文件夹中。 所以我输入了您看到的内容。 “ cd”命令使您上下移动文件夹。 如果它使您感到困惑,请用Google搜索它,尽管您不知道它的作用,但是只要将ADMIXTURE提取到桌面,然后键入“ cd Desktop”,就可以了。 这 将来会使您的桌面杂乱无章……但是,如果您需要尽快完成某些工作而又不知道如何在Linux中导航,那应该可以。

因此,现在您有了ADMIXTURE,以及ADMIXTURE将要分析的文件。 你做什么工作? 您需要确保ADMIXTURE和您的文件位于相同的文件夹/位置。 因此,如果ADMIXTURE位于桌面上,则只需将文件提取到桌面上即可。 现在您需要运行一个命令。 您会看到我正在运行ADMIXTURE的屏幕截图。 您可能需要省略./(即,“混合物”与“ ./混合物”)。 您会看到文件名。 选项-j2是由于我有两个内核。 如果您不知道这意味着什么,请忽略它。 它可以加快运行速度。 最后一个数字是K。所以这是针对K = 4。

现在程序将运行。 多长时间取决于文件的大小以及K的数量。 我经常在一夜之间针对较大的K运行该程序。 如果您想花大钱并进行交叉验证之类的事情,则需要花费更长的时间。 被警告。 左侧的屏幕截图是ADMIXTURE进行操作时所要运行的典型画面。 不用担心,该算法正在运行。 如果您观看了足够长的时间,将会了解到屏幕上的哪些值很可能表明它即将完成,并且可以开始预测可以从中进行推断的输出文件。

完成! 右侧是完成ADMIXTURE后的画面。 如前所述,有输出文件。 这是真正有趣且有用的东西,但是即使在此屏幕上也有好处。 基本矩阵为您显示假定祖先群体之间的Fst距离。 Fst正在测量数据集中方差的比例,这可以归因于总体方差。 值越小,两个总体之间的差异量就越小。 在此屏幕上,您看到四个种群,因为我将K设置为4。Fst由祖先等位基因频率生成,这些频率位于输出文件中。 请记住,这些是抽象种群之间的距离,而不是真实种群之间的距离。

原始文件是euraocean.bed,euraocean.bim和euraocean.fam。 因此输出文件如下所示:

Euraocean.4.Q Euraocean.4.F

4代表K。第一个文件包含数据集中每个个体的假定祖先种群比例的列表,这些个体位于单独的行上。 第二个文件包含由参数K生成的祖先群体的所有等位基因频率。

你怎么办呢? euraocean.4.Q与euraocean.fam有关,该文件逐行具有家庭和个人ID。 除了原始方式外,我不知道如何使用电子表格,因此我假设有多种方法可以合并文件并使每行具有祖先比例以及更详细的ID。 生成总体平均值似乎也很重要。

但是我使用R来完成这项肮脏的工作。

#2使用R可视化输出

如果没有R,则需要安装它。 如果您不知道如何开始, 控制-f sudo。 那应该把它拉下来。 一旦安装了R,请确保位于ADMIXTURE所在的文件夹中。 然后键入“ R”(键入命令时不加引号!)。 现在您在R中,您会做什么? 以下是您需要执行的操作的详细信息:

1)取Q文件,将其泵入数据框

2)获取主列表,将其泵入数据框

3)取得.fam文件,将其泵入数据帧

4)混合搭配

5)计算平均比例,产出人口等

6)可视化!

如果您需要了解如何安装R,则可能不知道如何进行安装。 当我第一次开始使用ADMIXTURE输出文件时,我编写了一个快速且肮脏的脚本。 我几乎不记得我现在正在使用此脚本做什么,因为我不在乎细节。 但现在为您服务。 不过,首先您需要做一件事: 使用一个主列表,该列表的格式与您下载的列表略有不同。 这里是 修改后的主列表.

将其放在与ADMIXTURE相同的文件夹中。 然后再次输入“ R”来启动R。 运行上面看到的命令。 这将创建一个“ HGDPMaster”数据框。 这是我给您运行的脚本所必需的。

脚本在这里。 如果没有下载,请复制并粘贴并在与ADMIXTURE相同的文件夹中创建文件“ Rstuff.R”。 您必须操纵一些变量。 这是相关的部分:

################更改这些########### ###输出文件fileName <-“ euraocean” fileType <-“ Q” ####设置到#lowest K Start_K <-12 #highest K End_K <-12的人口数量

您需要将文件名更改为输出的文件名。 如果您进行了任何操作,对于K = 2,它应该为ref.2.Q。因此名称为“ ref”。 您还需要输入K的数量。 我经常同时运行许多文件,这些文件在早上都有输出文件。 因此,我通常以2开始,以12结尾。如果只想输出一个,例如2,则将Start_K更改为2,将End_K更改为2。 这些是您唯一的变量 需要 改变。 但是,您还可以做更多的事情。 R用#进行“注释”,因此我注释了一个部分,您可以在其中限制输出到特定总体,以减少条形图的繁忙度。 如果您看一下脚本,您将明白我的意思,只需删除所有#号,然后根据自己的喜好进行编辑。 请注意,外壳很重要,因此请确保将其小写(如果您查看主列表,则可以理解)。 该脚本的确有一个大写的字符串,但这仅用于输出。 还有一小部分,您可以在其中根据自己的喜好重新命名名称。

要运行脚本,请执行以下操作:

来源(“ Rstuff.R”)

它应该输出条形图,并生成一些电子表格文件。 您可以做更多的事情……但是如果您可以做更多的事情,您将不会读这篇文章。 让我们继续下一个问题。 所以现在你想知道: 有什么办法可以更改数据文件或将自己添加到其中? 继续阅读...。

#3使用Plink操纵数据文件

现在你需要 砰砰。 我通常将其放在与ADMIXTURE并行的子文件夹相同的较大文件夹中。 您可以这样运行Plink命令:“ ./ plink”或“ plink”。 取决于环境(请记住,引号仅适用于帖子!)。 使用Plink可以做很多事情。 我将向您展示如何做两件事。

#1从数据集中删除个人

#2将您自己(或您拥有23andMe文件的人)添加到数据集中

#1很重要,因为地块忙于太多的方差。 此外,非洲人和经历了人口瓶颈的遗传分离株往往使ADMIXTURE不堪重负。 您可能要删除它们。 为此,您需要使用 删除选项。 您需要删除个人。

这是您拥有的文件的一种选择:

./plink --bfile ref-删除removelist.txt --make-bed --out ref已删除

上面是怎么回事? 您正在使用二进制的谱系文件,因此启用了–bfile选项。 使用–remove进行操作,然后创建第二个家谱文件refRemoved。 因此,您将拥有refRemoved.bed,refRemoved.bim和refRemoved.fam。 显然removelist.txt具有您要删除的内容。 每行都有您要删除的人的家庭ID和个人ID,以空格分隔。 最简单的方法可能是打开主列表。 对于我上面给你的那一列,最后一列是家庭ID,第一列是个人ID。 在第一列之后剪切并粘贴第一列,删除其他列,然后保存。 我通常会删除引号和制表符,将其更改为.txt文件,然后就可以使用了。

但是您的23andMe文件呢? 您需要将其转换为谱系。 我已经创建了一个快速且肮脏的perl脚本来执行此操作。 你可以找到它 此处。 下载或剪切并粘贴。 您需要删除23andMe文件顶部的注释。 也就是说,您需要删除第一个SNP之前的所有内容。 假设已完成操作,请在放置脚本的文件夹中的命令行中执行此操作(您可以通过“ cd”调用进入该文件夹):

perl convert.pl“ YourFileName”“ 001”“ 001”

该脚本将触发,从第一个参数获取文件名,然后输出两个文件YourFileName.ped和YourFileName.map。 那另外两个参数呢? 他们正在生成您的家庭ID和个人ID。 在这种情况下,它们将是FAM001和ID001。 您需要将它们输入到主列表中! 否则,您将不会出现在条形图上。 还输入您的种族等。或者,如果您想成为条形图的一部分,则只需输入您的名字。

请注意,您拥有.ped文件,而不是.bed文件。 这些很大。 现在,您需要将文本转换为二进制谱系。 将YourName文件移动到plink文件夹。 制作二进制文件:

./plink --file 你的文件名 --make-bed --out 你的文件名

现在您有了YourFileName.bed YourFileName.bim YourFileName.fam。 最好将您的SNP限制为与参考数据集中的SNP相同。 因此,请从参考资料中获取这些内容:

./plink --bfile ref --write-snplist --out SNP

您应该有一个文件SNPs.snplist。 使用它们来过滤您的23andMe文件。

./plink --bfile YourFileName-提取SNPs.snplist --make-bed --out YourFileNameFiltered

现在您要合并:

./plink --bfile引用--bmerge YourFileNameFiltered.bed YourFileNameFiltered.bim YourFileNameFiltered.fam --make-bed --out ref

现在,您已附加到参考数据集! 如果打开ref.fam文件,则您的家庭ID和个人ID应该位于列表的末尾。

如果您到此为止都感到困惑,那么我想以显示所有内容的内容结束将是一件很高兴的事情。 下面,我过滤了大多数非洲和新世界人口的参考数据集,并将其从K = 2运行到K =12。大约需要10个小时才能完成。 我还限制了使用以上脚本显示的总体,因此它不会过于集群化。 这里有 电子表格 运行产生的结果(它们将位于您运行R脚本的文件夹中,并且名称的形式为“ K = 2”)。

[zenphotopress相册= 273排序=排序顺序号= 11]

(从重新发布 探索/ GNXP 经作者或代表的许可)
 
隐藏17条评论发表评论
忽略评论者...跟随仅认可
修剪评论?
  1. 哇,这太棒了——尤其是合并的数据集。 谢谢你把它放在一起。 我没有使用过数据集,但是您不应该为合并数据集中找到的 SNP 过滤 23andMe 文件吗? 毕竟,后者的 SNP 比前者少得多。 另外,我不确定这个数据集是否需要它,但人们应该熟悉如何 倒链 合并数据集时。

    你有没有使用过 贝类 做PCA? 它允许您为参考总体创建“加载”,以便您可以查看样本落在参考数据生成的维度上的位置,而无需更改维度本身。 基本上,它就像 23andMe 上的高级遗传相似性图。 我正在尝试为 HGDP 人口创建负载,但现在我也可以将这些添加进来。

  2. 是的,我把 –extract 的东西放在那里。 此外,当我进行测试运行时,翻转没有问题。 它似乎面向 23andMe 方向。 没用过贝类,但我会检查一下。

  3. 嘿,任何人都可以在这里留下问题。 不想 2 超载帖子。

  4. RK:我只是因为这个原因下载了 shellfish,但它在初始转换步骤中给了我(Ubuntu 2.6.6 上的 Python 10.10)错误。 你能够让它工作吗? 我没有时间去研究它。

  5. Zack,是的,shellfish 依赖的最新版本的 gtool 似乎坏了。 我降级到 0.6.1 版本,它工作正常: http://www.well.ox.ac.uk/~cfreeman/software/gwas/gtool_v0.6.1.html

    我也在 Debian 不稳定版上使用 Python 2.6.6。

  6. 感谢 Razib 的精彩教程! 我一直想玩这种东西,这篇文章会为我节省很多时间。

  7. Rstuff.R 链接给了我一个 403 Forbidden 错误消息。 你能检查一下链接吗?

    谢谢,
    加文

  8. 非常感谢这个……等不及要大学毕业了,这样我就可以搞砸了……

  9. 谢谢,我使用另一个网络上的 vista 计算机下载了脚本。 我仍然不知道为什么我不能在这里访问它。 但我现在有了。 加文

  10. 感谢这篇有用的帖子。 我是一名对遗传学有兴趣的工程师。 所以我有一个不错的数学背景,但对这个领域知之甚少。 直到现在,所有这些混合物分析对我来说都像黑魔法。 现在我至少有了更好的理解。 然而,你的帖子引发了更多的问题......

    1) “谱系格式”是什么意思? 这些床、bims 和 fams 是二进制格式还是 ascii 格式? 我假设是二进制的,因为我无法在文本编辑器中打开它们。 除了 ADMIXTURE(我不能使用它,因为像世界上大多数人一样,我使用 Windows :)),还有什么方法可以读取这些文件? 我可以写一个自定义的二进制处理器吗? 有数据的ascii版本吗? 这就是csv吗?

    2) 这些文件中实际包含哪些信息? ADMIXTURE 的页面说它是“多位点 SNP 基因型数据集”。 那是什么呀? 他们检查基因组的哪一部分以寻找单核苷酸多态性? 这些是考试的标准点吗? 每个人多少分?

    3)如果我理解正确,ADMIXTURE 是做的是聚类分析吗? 它正在处理数据,找到给定 K 的特征向量,并显示映射到特征向量上的每个群体的向量分量? 或者换句话说,它正在创建 K 个在遗传上尽可能不同的虚构种群,并显示每个现代种群在这些虚构种群中所占的比例?

    4) 是否可以指定您的 K 种群之一完全是现代种群之一? 作为一个例子,您能否说您希望法国人和摩洛哥人 100% 出现在生成的集群中?

    5)你最终得到的这些条形图很难理解。 人们曾经为这些东西制作饼图吗? 一张包含每个 K 族群范围的地球地图怎么样? 例如,您可以在 K=12 地图中清楚地看到,粉红色种群在欧洲东北部最为普遍,并从那里向外扩散。

  11. 除了 ADMIXTURE (我不能使用它,因为像世界上大多数人一样,我使用 Windows ),还有什么方法可以读取这些文件? 我可以写一个自定义的二进制处理器吗? 有数据的ascii版本吗? 这就是csv吗?

    不知道窗户。 .bed 是二进制的。 文本版本是.ped。

    这些文件中实际包含哪些信息? ADMIXTURE 的页面说它是“多位点 SNP 基因型数据集”。 那是什么呀? 他们检查基因组的哪一部分以寻找单核苷酸多态性? 这些是考试的标准点吗? 每个人多少分?

    数据有snps和个人。 还有诸如性别、表型等的东西,但这对我们的目的来说是无关紧要的。 在这些数据中,每人 27,000 个 snps。

    或者换句话说,它正在创建 K 个在遗传上尽可能不同的虚构种群,并显示每个现代种群在这些虚构种群中所占的比例?

    4) 是否可以指定您的 K 种群之一完全是现代种群之一? 作为一个例子,您能否说您希望法国人和摩洛哥人 100% 出现在生成的集群中?

    是的。 见后续帖子。

    您最终得到的这些条形图很难遵循。 人们曾经为这些东西制作饼图吗? 一张包含每个 K 族群范围的地球地图怎么样? 例如,您可以在 K=12 地图中清楚地看到,粉红色种群在欧洲东北部最为普遍,并从那里向外扩散。

    是的。 我已经想到了。 需要使用 R 的映射函数来获得流畅性。 我不想学习GIS。 使用付费软件可以轻松制作主题热图,但我不会为此支付 400 美元🙂

  12. 嗨拉齐布,
    感谢您的快速回答。 在我发表评论时,我还没有看到你的下一篇文章! 27000 个 SNP 吧? 这是相当多的数据。 我看到我可以在文本编辑器中打开 bim 和 fam 文件,所以希望我可以将所有这些文件导入 MATLAB 并使用它。 我将不得不更仔细地阅读您的帖子,并对文件每一行的含义进行一些调查。 我们会看看是否有什么结果。

    干杯

  13. 1) “谱系格式”是什么意思?

    http://pngu.mgh.harvard.edu/~purcell/plink/data.shtml#ped

    这些床、bims 和 fams 是二进制格式还是 ascii 格式? 我假设是二进制的,因为我无法在文本编辑器中打开它们。

    Bed 和 bim 是二元的

    http://pngu.mgh.harvard.edu/~purcell/plink/data.shtml#bed

    除了 ADMIXTURE(我不能使用它,因为像世界上大多数人一样,我使用 Windows 🙂),还有什么方法可以读取这些文件? 我可以写一个自定义的二进制处理器吗? 有没有ascii版本的数据? 这就是csv吗?

    您可以使用 plink 将床/bim 转换为 ped/map(参见上面的链接)

  14. 2) 这些文件中实际包含哪些信息? ADMIXTURE 的页面说它是“多位点 SNP 基因型数据集”。 那是什么呀? 他们检查基因组的哪一部分以寻找单核苷酸多态性? 这些是考试的标准点吗? 每个人多少分?

    每个 SNP 是基因组中的单个碱基对,在该碱基对处测量了两个替代版本。 给定两个可能的等位基因(例如 A 和 B),存在三种可能的基因型(AA、AB、BB)。 数据是基因型。

    染色体和碱基对坐标在映射文件中给出。 这些坐标与基因组构建有关,例如 hg18。 http://genome.ucsc.edu/cgi-bin/hgGateway?db=hg18

    选择这些 SNP 很可能是因为它们在其他方面得到了很好的表征,因此本质上它们是标准化的。

  15. 上面列出的数据集是完整的还是可能有其他人群未包括在内?

    谢谢

  16. “人们曾经为这些东西制作饼图吗?” 还有什么比这更糟糕的呢?

评论被关闭。

通过RSS订阅所有Razib Khan评论