本文我都默认已经下载好了表达矩阵exp了哦
代码都是直接给出来了,需要修改的地方我进行了标记
一般只要修改一下都能直接用了

方法一:下载平台数据以得到对应信息

然后进入官网https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi,在这里我以GSE26682为例,点击红圈中的链接
然后下载soft.gz文件(一般是下面一个)

首先在分析前需要加载几个必要的包,可以通过以下方法下载

if (!requireNamespace("BiocManager", quietly = TRUE)) { install.packages("BiocManager",ask = F, update = F)
}BiocManager::install("GEOquery")
BiocManager::install("limma")
BiocManager::install("affy")

只有一个平台

gse <- getGEO("你的GSE序号", destdir = ".",getGPL = T,AnnotGPL = T) # 此处更改GSE序号gse[[1]]data <- read.csv("表达矩阵的地址") # 此处更改表达矩阵地址 # 表达矩阵也可以通过这个方法获得
# exp <- exprs(gse[[1]])  GPL <- getGEO(filename = "刚刚下载的soft.gz文件的地址") # 此处增加soft.gz文件地址gpl <- GPL@gpls[[1]]@dataTable@table
data <- aggregate(.~ID_REF, data, mean) # 对数据进行去重,重复的取平均colnames(gpl)
ids <- gpl[, c(a, b)] # 此处将a和b更改为前面列出的列名中的id和gene symbol的位置
colnames(ids) <- c("ID_REF", "symbol") # 此处将列名与表达矩阵中的列名进行统一,不一定是ID_REF和symbol,需要按照对应的进行修改
re <- merge(data, ids, by.x = "ID_REF", by.y = "ID_REF") # 此处同理,不一定是ID_REFre <- re[!apply(is.na(re) | re$symbol == "", 1, all), ] # 删除空白值
re <- na.omit(re) # 去除na值
re$symbol <- data.frame(sapply(re$symbol,function(x)unlist(strsplit(x, "///"))[1]),stringsAsFactors = F)[, 1]write.csv(re, file = "给文件取个名.csv") # 保存文件

有两个平台

library(GEOquery)
library(limma)
library(affy)
library(dplyr)gse <- getGEO("你的GSE序号", destdir = ".",getGPL = T,AnnotGPL = T) # 此处更改GSE序号fdata_1 <- fData(gse[[1]])
fdata_2 <- fData(gse[[2]])sampleNames_1 <- sampleNames(gse[[1]])
sampleNames_2 <- sampleNames(gse[[2]])gene_1 <- fdata_1[, c("ID", "gene_symbol")] # 将fdata_1中的 “id”列和“gene_symbol”列进行提取,注意:可能叫ID_REF,不一定就叫“id”gene_1$gene_symbol <- data.frame(sapply(gene_1$gene_symbol,function(x)unlist(strsplit(x, "//"))[1]),stringsAsFactors = F)[, 1]
gene_1 <- na.omit(gene_1)gene_2$gene_symbol <- data.frame(sapply(gene_2$gene_symbol,function(x)unlist(strsplit(x, "//"))[1]),stringsAsFactors = F)[, 1]fdata_2 <- na.omit(fdata_2)gene_2 <- fdata_2[, c("ID", "gene_symbol")] # 将fdata_1中的 “id”列和“gene_symbol”列进行提取,注意:可能叫ID_REF,不一定就叫“id”gene_1 <- gene_1[!apply(is.na(gene_1) | gene_1$gene_symbol == "", 1, all), ]
gene_2 <- gene_2[!apply(is.na(gene_2) | gene_2$gene_symbol == "", 1, all), ]gene_total <- rbind(gene_1, gene_2)
index_gene_total <- duplicated(gene_total$ID)
gene_total <- gene_total[!index_gene_total, ] # 去重,只保留第一个data <- read.csv("表达矩阵的地址")# 表达矩阵也可以通过这个方法获得
# exp <- exprs(gse[[1]])  colnames(gene_total) <- c("ID_REF", "gene_symbol") # 此处将列名与表达矩阵中的列名进行统一,不一定是ID_REF和symbol,需要按照对应的进行修改
re <- merge(data, gene_total, by.x = "ID_REF", by.y = "ID_REF")write.csv(re_1, file = "给他取个名.csv")

注意事项

gene assignment 和 gene symbol的关系

有时候gene symbol会在gene assignment里面,需要我们自行进行提取,这时候我么可以利用这个结构(这个是需要自己理解一下代码基础用法的),只要改一下第二行最后方框里面的数字就可以提取“//”这个符号前面的还是后面的内容


gene_2$gene_symbol <- data.frame(sapply(gene_2$gene_symbol,function(x)unlist(strsplit(x, "//"))[1]),stringsAsFactors = F)[, 1]

gene symbol中存在空格的问题

可以用一下的参数进行更改列名(需要改一下名字等等)

names(fdata_2)[names(fdata_2) == "gene_assignment"] <- "gene_symbol"

使用bitr()函数

这是我在最开始学id转换时候用的最多的,因为它很方便,不用下载什么乱七八糟的文件,对于我家这个很烂的网络很有利,但是有个致命的缺点:不一定能对所有的id进行转换,也就是说存在一个“正确率”的问题,这样的话,最后得出的结论也就存在一定的误差,这样就不太符合科研工作者严谨的态度吧,所以不太建议使用!!!
只有在走投无路时候再使用!

加载包

library(clusterProfiler)
library(org.Hs.eg.db)

看一下这个R包里面提供哪几种数据类型的下载方式

keytypes(org.Hs.eg.db)

开始转换工作

ids = rownames(exp)
ids = as.data.frame(ids)
colnames(ids) = "ID" result <- bitr(ids$ID,  # 数据框fromType = "PMID",   # 你的ID的数据类型toType = c("SYMBOL","ENSEMBL"),  # 转化的数据类型OrgDb = org.Hs.eg.db)  # org.Hs.eg.db——人类

【生信】R语言进行id转换的方法(附可直接使用代码)相关推荐

  1. 生信——R语言:1.windows软件安装与配置

    跨专业搞生信 一.安装软件 1.安装R语言 直接在下面网址下载安装R语言,windows直接下一步无脑安装下载适用于 Windows 的 R-4.2.1.用于统计计算的 R 项目. (r-projec ...

  2. 生信c语言,生信人的R使用

    接下来介绍R语言: [生信技能树]生信人应该这样学R语言 R语言 在你开始R之旅前,建议你看看下面这两个 1. 介绍R语言及Rstudio 了解R,Rstudio及R包;安装的包在packages中检 ...

  3. 生信学习——生信人的20个R语言习题(上)(附详细答案解读)

    题目目录 1. 安装一些R包. 2. 了解ExpressionSet对象,比如CLL包里面就有data(sCLLex),找到它包含的元素,提取其表达矩阵(使用exprs函数),查看其大小. 3. 了解 ...

  4. 生信c语言面试题,c语言入门 java

    必要问和同时员可以在利用级的发人服务更高使开时轻松访企业,语言入性)的开一般易用基于发方法和,人们特性的S建了产力h构(生期望. 为了的利用率增加数据,语言入密码同时登录账号实现,语言入形式以文件的将 ...

  5. R语言countrycode包转换国家名字和代码

    本文首发于公众号:医学和生信笔记,完美观看体验请至公众号查看本文. 不同的数据源使用不同的编码方案来表示国家(例如CoW或ISO).这带来了两个主要问题:(1)其中一些编码方案不够直观,(2)合并这些 ...

  6. r语言入门——颜色转换

    r语言提供了许多种设置颜色的函数,其中rgb函数颜色强度要求取值范围在[0,1],而通常rgb是用3个取值在[0,255]的数表示,转换方法很简单,只需要自定义一个新的函数即可通过输入普通的rgb值来 ...

  7. R语言的三种聚类方法

    一.层次聚类 1)距离和相似系数 r语言中使用dist(x, method = "euclidean",diag = FALSE, upper = FALSE, p = 2) 来计 ...

  8. R语言成功加载rJava方法

    加载rJava的同时,要下载JAVA的JRE并且配置环境变量JAVA_HOME,因为rJava的调用需要java运行环境. 1.下载JRE 64位版本的JRE官网下载:http://www.java. ...

  9. R语言——导入Excel表格数据方法

    工具/原料: R语言 openxls包 Rstudio软件 首先安装openxlsx包 install.packages("openxlsx") 再导入openxlsx包 libr ...

最新文章

  1. .Net Framework 3.0 概述
  2. 独家 | 一文解析统计学在机器学习中的重要性(附学习资源)
  3. 腾讯云年度最强技术大会召开在即,这次只谈技术和代码
  4. 机器学习读书笔记(一)
  5. Model compatibility cannot be checked because the database does not contain model metadata
  6. 博客堂怎么连个搜索功能都没有
  7. 作者:汪疆平(1970-),男,北明软件有限公司技术研究院高级工程师、副院长。...
  8. php ucword,ThinkPHP3.1.2整合UCenter详解(二)
  9. 网络协议从入门到底层原理(8)HTTPS(成本、通信过程、TLS1.2的连接,配置服务器HTTPS)
  10. 阿里Goldeneye业务监控平台之架构演进,如何实时处理100T+/天的日志量?
  11. python VTK 初入门学习
  12. Office版本问题0x80029C4A
  13. 四种常见的颜色模式及各自的特点?
  14. 常见的图片处理软件你知道多少?分享几款免费的图片处理软件
  15. 数据挖掘实验二结果(构建cube的三个维度,即三个txt,然后做各种查询)C++实现(代码调试环境为Windows下的CLion使用WSL的Linux)
  16. Python札记 -- 参数魔法
  17. CSP-S 蒟蒻啊qaq
  18. 软件测试-测试面试题
  19. 基于 electron 实现简单易用的抓包、mock 工具
  20. IDEA安装及推荐使用JetBrains Toolbox

热门文章

  1. 公共资源交易中心使用美赛思光盘打印刻录机系统自动实现一盘一项目
  2. # 面向对象编程(OOP)爬虫,爬取LOL的英雄皮肤
  3. 软件测试培训班适合女生吗
  4. Python爬虫,私活接单记录,假日到手5500,美滋滋
  5. MAC OSX APP 开发入门篇
  6. GitHub 主页美化设置教程
  7. mysql mgr 启动_MySQL MGR--MGR部署
  8. Service Mesh在中国工商银行的探索与实践
  9. java--常用API、引用类型
  10. 《数学通识50讲》目录摘要