Excel格式的SNP数据怎么变为plink格式
有时候,我们会遇到Excel格式的基因型数据,这篇博文介绍一下如何手动转为plink格式。
可以在Excel中整理,也可以在R语言中整理。数据量少的话,就在Excel中整理,数据量大的话,就在R语言中整理就行。
主要思路是根据plink的格式特点,针对性的满足,然后导出,就可以了。
1. Excel中的基因型数据格式
第一列是snpID,第二列是染色体,第三列是物理位置,第四列是参考基因组分型,第五列以后是每个样本的具体分型。
整体而言,每一行是一个snp,第五列以后每一列是一个样本。
2. plink的格式
.map格式
格式说明链接: http://zzz.bwh.harvard.edu/plink/data.shtml#map
map格式的文件, 主要是图谱文件信息, 主要包括染色体名称, 所在的染色体和所在染色体的坐标.
1, map文件没有行头
2, map文件包括四列: 染色体, SNP名称, SNP位置, 碱基对坐标
- 染色体编号为数字, 未知为0
- SNP名称为字符或数字, 如果不重要, 可以从1编号, 注意要和bed文件SNP列一一对应
- 染色体的摩尔未知(可选项, 可以用0)
- SNP物理坐标
3, 如果只有SNP名称, 可以手动构建map文件, 第二列为SNP名称, 其它三列为0即可.
Example:
1 snp1 0 1
1 snp2 0 2
1 snp3 0 3
- 这里有3个SNP, 分别名为snp1, snp3, snp3 (第二列)
- 这三个SNP在第一个染色体上 (第一列)
- 第三列为0
- 第四列为SNP所在染色体的坐标
.ped格式
格式说明链接:http://zzz.bwh.harvard.edu/plink/data.shtml#ped
bed格式的文件, 主要包括SNP的信息, 包括个体ID, 系谱信息, 表型和SNP的分型信息.
1, 数据没有行头, 空格或者tab隔开的文件
2, 必须要有六列, 包括系谱信息, 表型信息
- 第一列: Family ID # 如果没有, 可以用个体ID代替
- 第二列: Individual ID # 个体ID编号
- 第三列: Paternal ID # 父本编号
- 第四列: Maternal ID # 母本编号
- 第五列: Sex (1=male; 2=female; other=unknown) # 性别, 如果未知, 用0表示
- 第六列: Phenotype # 表型数据, 如果未知, 用0表示
- 第七列以后: 为SNP分型数据, 可以是AT CG或11 12, 或者A T C G或1 1 2 2
3, 上面六列, 必须要有, 如果没有相关数据, 用0表示.
所以,下面的任务就是把Excel的格式,变为plink的ped和map格式。
3. R语言操作
3.1 读取数据
library(openxlsx)
library(tidyverse)dat = read.xlsx("SNP-excel.xlsx")
dat[1:10,1:10]
3.2 map数据整理
map = dat %>% select(2,1,x = 3,p = 3)
head(map)
3.3 ped数据整理
下面这个代码复杂一点,主要的逻辑:
- 去除中间的及列
- 然后进行转置
- 变为plink的格式
ped = dat %>% select(-c(1:4)) %>% t() %>% as.data.frame() %>% mutate(ID = rownames(ped)) %>% mutate(x3=0,x4=0,x5=0,x6=0) %>% select(FID=ID,IID=ID,x3,x4,x5,x6,everything())
ped[1:10,1:10]
3.4 导出数据
这里有个坑:
默认plink的缺失为0,如果AT连写的格式,是00,但是如果一列都是00的时候,就变为了一个0,就会map和ped不匹配。
比较靠谱的方式是,将缺失变为##,然后将其变为00.
library(data.table)
fwrite(map, "file.map",col.names = F,quote = F,sep = " ")
fwrite(ped, "file.ped",col.names = F,quote = F,sep = " ",na = "##")
sed -i 's/##/00/g' file.ped
4. 测试plink
plink --file file --missing
搞定!
欢迎关注我的公众号:
育种数据分析之放飞自我
。主要分享R语言,Python,育种数据分析,生物统计,数量遗传学,混合线性模型,GWAS和GS相关的知识。
Excel格式的SNP数据怎么变为plink格式相关推荐
- html表格怎么绑定数据类型,Excel中表格添加数据标签及设置格式的操作方法
Excel图表以其直观的展示功能深受用户喜爱,但有些初学者对于生成图表后如何添加数据标签有所困扰,今天,学习啦小编就教大家在Excel中表格添加数据标签及设置格式的操作方法. Excel中表格添加数据 ...
- excel文件中的数据转化为json格式并输出json文件
1:需求: 将excel中的数据获取出来,转化为json格式,之后输出到.json文件中. 2:步骤: (1): 将excel中的数据获取出来,使用jsonObject转化为json格式字符串 (2) ...
- 【Python】把excel文件中的数据转化为字典格式存起来
[需求描述] 把excel表格转化为字典存起来,方便读取. [步骤] 例如下面表格为"值班表.xlsx" date name age 20200617 xiaowang 16 20 ...
- Python—实现Excel文件间的数据匹配(保留单元格式)—告别Vlookup!
我们知道Excel有一个match函数,可以做数据匹配. 比如要根据人名获取成绩 而参考表sheet1的内容如下: 要根据sheet1匹配每人的成绩,用Excel是这么写 index(Sheet1!B ...
- Excel表格下拉数据不会随格式而变动
今天遇到一个问题,下拉的栏位格式是正确的,但显示的数据却不对,具体如下: 1.已知单价B和数量C,计算总价D,在D2栏输入的公式是B2*C2: 2.将D2单元格下拉,结果得到的数据只是复制了D2的数据 ...
- http报文格式_理解数据通信协议的报文格式有何用?
我们知道应用层的PDU是报文,最后变成物理层的比特流来传播,那么一个协议的报文格式同这个报文本身是什么关系?理解一个协议的报文格式有什么作用?简而言之,数据的发送方每层(从高层向底层下沉过程)做原始数 ...
- ajax 时间格式string,ajax 数据请求:json格式在浏览器变成了string ,使用JSON.stringify(params)方法...
var params = { md5str: "sf", datastr: "sf", } var ajaxRequest = $.ajax({ url: ur ...
- mysql如何存json格式_mysql 插数据,存json格式
private JSONArray wrapJson(ResultSet rs) throws SQLException{ JSONArray jsonArray = new JSONArray(); ...
- TASSEL软件导入plink格式文件报错
之前介绍过Excel的SNP数据(Excel格式的SNP数据怎么变为plink格式),转为plink的方法,如果要导入plink格式中,会报错: 报错:显示超过区间 problem: string i ...
- asp 导出excel数据 fso 单元格格式
<!--#include file="../conn.asp"--> <% dim s,sql,filename,fs,myfile,x Set fs = ser ...
最新文章
- 今天收到上海某公司的全英文笔试题(some question of interview )
- Nginx负载均衡策略之fair介绍
- Ajax基本案例详解之load的实现
- 清北学霸的书单居然那么有讲究?看看你比学霸少看了哪些书......
- 2017视频监控行业应用趋势与市场发展分析
- 编织让你受益一生的交际网
- php 接收传值_PHP在函数体中传递与接收参数
- C#winform遍历控件判断控件类型
- Atitit prgrmlan 编程语言主题列表 \0 it impttech topic\prgrmlan topic编程语言专题\AOP拦截器 表达式写法.docx \0 it impttec
- 海康、大华设备搜索大概实现原理
- Roblox、Epic Games和Meta,详解三巨头如何引爆元宇宙
- C++ 房贷计算 : 等额本金和等额本息
- 朗强科技:什么是HDMI分配器,以及原理与安装
- ClickHouse 深度解析第二篇
- 腾讯地图API使用指南
- 快速将图片背景去掉教程
- C语言之strcmp函数和strncmp函数
- 关于汉字转化为简码的方法
- [sig18]《使命召唤:二战》的材质光照技术
- 西西弗神话_表演神话
热门文章
- java web后台学习路线
- 水比赛系列-HMI串口屏的使用
- oracle瓶颈,解决Oracle数据库性能瓶颈问题
- input: kMAX dimensions in profile 0 are [2,3,128,128] but input has static dimensions [1,3,128,128]
- CDSP认证是什么?数据安全认证专家含金量大吗?
- 自制简单的诗歌搜索系统
- HTML+CSS+JS——仿京东(7页) 大学生简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
- 思源宋体安装过程记录
- 【转】Oracle知识点汇总
- 【华为OD机试真题 JAVA】叠积木