Admixture的监督分群(Supervised analysis)
说明
Admixture通过EM算法一般用于指定亚群分类;或者在不知材料群体结构背景下,通过迭代交叉验证获得error值,取最小error对应的K值为推荐亚群数目。如果我们预先已知群体的类型(百分百确信),那么可以考虑监督分类方法,设置标签,提高分群的准确性。
Admixture目前是1.3.0,文档也刚更新不久。
怕翻译有误,贴上官方文档:
Estimating P and Q from the SNP matrix G, without any additional information, can be
viewed as an unsupervised learning problem. However it is not uncommon that some or
all of the individuals in our data sample will have known ancestries, allowing us to set
some rows in the matrix Q to known constants. This allows more accurate estimation of
the ancestries of the remaining individuals, and of the ancestral allele frequencies. Viewing
these reference individuals as training samples, the problem is transformed into a supervised
learning problem.
Supervised learning mode is enabled with the flag --supervised and requires an additional
file with a .pop suffix, specifying the ancestries of the reference individuals. It is assumed
that all reference samples have 100% ancestry from some ancestral population. Each line
of the .pop file corresponds to individual listed on the same line number in the .fam or
.ped file. If the individual is a population reference, the .pop file line should be a string
(beginning with an alphanumeric character) designating the population. If the individual
is of unknown ancestry, use “-” (or a blank line, or any non-alphanumeric character) to
indicate that the ancestry should be estimated.
文档中说要准备一个.pop为后缀的群体文件,就是对个体进行分类(字符型),类型未知的可用“-”替代。不建议在windows中创建,因为换行符不同的问题。
如何验证准备的.pop文件?作者建议使用paste .fam .pop查看个体数目是不是相等(用wc -l不是更简单吗?)。
问题来了,作者根本就没说明到底怎么运行?我尝试了下,简单记录下。
实战
下载官网示例数据:
http://dalexander.github.io/admixture/download.html
解压后,有plink数据格式,配套的bed,bim,fam,但少了个ped,没有和map配套。这个作者有点粗心,不过可以用plink转一下:
wget http://dalexander.github.io/admixture/hapmap3-files.tar.gz
tar -xvf hapmap3-files.tar.gz
plink --bfile hapmap3 --recode --out hapmap3--noweb
wc -l hapmap3*
准备hapmap3.pop文件(注意前缀和pink数据保持一致,且在同一目录),可用R、awk等工具,随意模拟一个:
dat = data.frame(V1 = rep(c("A","-","B","-","C","-"),each=54))
write.table(dat,"hapmap3.pop",row.names=F,col.names=F,quote=F,sep="\t")
加上supervised,运行admixture即可:
admixture hapmap3.ped 3 --supervised
可以看看不加supervised和加了的区别,没加的结果:
加了的结果:
还是有很大差异的。具体对后续结果的影响这里就不研究了。
Admixture的监督分群(Supervised analysis)的更多相关文章
- Tableau 分群
对数据的特征进行分析,分群. 数据选用的是Iris data 下载地址:http://archive.ics.uci.edu/ml/machine-learning-databases/iris/ 1 ...
- python实现六大分群质量评估指标(兰德系数、互信息、轮廓系数)
python实现六大分群质量评估指标(兰德系数.互信息.轮廓系数) 1 R语言中的分群质量--轮廓系数 因为先前惯用R语言,那么来看看R语言中的分群质量评估,节选自笔记︱多种常见聚类模型以及分群质量评 ...
- 客户主题分析(tableau)—客户分群
主要分析方面:客户合理分群 客户分群实现:使用聚类构建指标,需理解聚类的分析逻辑,需使用软件:tableau 聚类方法:选择3指标分别为购买总金额,客户购买次数.类平均购买价格(四类的平均购买价格,四 ...
- 用K-Means聚类分析做客户分群
聚类指的是把集合,分组成多个类,每个类中的对象都是彼此相似的.K-means是聚类中最常用的方法之一,它是基于点与点距离的相似度来计算最佳类别归属. 在使用该方法前,要注意(1)对数据异常值的处理:( ...
- k-means实战-RFM客户价值分群
数据挖掘的十大算法 基本概念 导入数据集到mysql数据库中 总共有940个独立消费数据 K-Means 算法 K-Means 算法是一个聚类算法.你可以这么理解,最终我想把物体划分成 K 类.假设每 ...
- ModelArts微认证零售客户分群知识点总结
\ 作者:华为云MVP郑永祥
- Cohort Analysis Using Python
Cohort Analysis是将某一个时期内的用户划分为一个cohort,并将多个cohort进行时间上的某个属性的比较的一种分析方法.Cohort Analysis在有些场景下非常有用.比如一个网 ...
- 【P3O是什么】P3O认证之项目组合、项目群和项目办公室
如何区分项目组合办公室与项目群和项目办公室? P3O®(Portfolio,Programmed and Project Offices-项目组合.项目群和项目办公室)是由英国商务部 OGC 于200 ...
- DSAPI官方QQ群
DSAPI官方QQ群 请加主群,若主群成员已满,请加分群. 群内除常规的.NET技术交流外,也负责DSAPI的使用技术支持和更新通知. 『VB.NET/C#编程』主群 ...
随机推荐
- mysql all_ip_test局域网IP测试工具,有需要的改一改.
1 import threading 2 import subprocess 3 import pymysql 4 # threading.Lock() 5 6 7 class Link(object ...
- Java:Set接口小记
Java:Set接口小记 对 Java 中的 Set接口 与 其实现类,做一个微不足道的小小小小记 概述 public interface Set<E> extends Collectio ...
- [技术博客] 通过ItemTouchHelper实现侧滑删除功能
通过ItemTouchHelper实现侧滑删除功能 一.效果 二.具体实现 demo中演示的这种左滑删除的效果在手机APP中比较常用,安卓也为我们提供了专门的辅助类ItemTouchHelper来帮助 ...
- DDL_Killer Alpha版本 Bug集中反馈处
本博客用于DDL_Killer Alpha版本的Bug集中反馈. 您可以在本博客的下方评论区处留言,反馈您在使用DDl_Killer的过程中遇到的问题,以帮助我们更好的改进本产品. 我们会尽快修复找到 ...
- spring social理解
现在互联网飞速发展,人们每天在互联网上冲浪,获取各种信息.各大网站为了方便用户的登录,提供了各式各样的社交登录,比如:QQ.微信和微博登录等.这些主流的社交登录大多是基于oauth协议进行实现,spr ...
- sort命令的学习与实践
一.用man sort 查看sort的帮助文档 *sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. [rocrocket@ro ...
- X264编码测试验证
之前在做一个rtsp直播需求,其中一个方案是要用的x264来对摄像头数据进行实时编码推流,摄像头帧率是25fps,为了验证方案的可行性,先对x264的编码速度进行一个测试研究,再确认是否要采用此方案. ...
- Serverless 工程实践|自建 Apache OpenWhisk 平台
作者 | 刘宇(江昱) 前言:OpenWhisk 是一个开源.无服务器的云平台,可以在运行时容器中通过执行扩展的代码响应各种事件,而无须用户关心相关的基础设施架构. OpenWhisk 简介 Open ...
- SpringBoot教程(学习资源)
SpringBoot教程 SpringBoot–从零开始学SpringBoot SpringBoot教程1 SpringBoot教程2 --SpringBoot教程2的GitHub地址 SpringB ...
- java实现rsa加密算法【5min快速应用教程】
该篇文章的主要目的是让读者能够迅速应用到项目中,想要了解详细的rsa加密算法的,可以百度找到更多原理.深度分析的文章. RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一 ...