GEO芯片数据下载和探针ID转换(保姆级教程)

  • 一、问题描述
    • 探针ID转换
    • 数据是否预处理过
  • 二、Rstudio的安装(建议阅读,避免后续转换时出错)
    • 安装包的下载
    • 安装步骤
  • 三、(正文)芯片数据下载和ID转换
    • 相关设置和包的加载
    • 数据下载

本文章主要参考了:
①R 语言的安装(详细教程)
②GEO芯片数据下载和探针ID转换

一、问题描述

探针ID转换

我们需要的基因表达量信息在NCBI的GEO数据库中对应的编号为GSE95394,搜索后结果如下
来到页面底部,这里的series Matrix File(s)是已经处理好所有样本对应各基因的表达量数据

下载并打开后如下图,发现左边并不是基因的名字,而是探针ID号,我们需要将探针ID转换为基因名才能进一步处理

数据是否预处理过

此外还需要注意的是,选择其中某个样本点击进去

结果如下,这表明你下载的表达量是经过了log2(N+1)转化后的,如果没做特殊说明的话,这里的N一般表示基因数量,即counts,那么你下载到的表达量就是log2(counts+1),这是需要我们注意的

二、Rstudio的安装(建议阅读,避免后续转换时出错)

安装包的下载

注意:由于我们需要使用WGCNA等包,所以对R以及RStudio的版本是有一定要求的(要求>4.1.3)
这里我已经将合适的版本上传至百度网盘,注意:这三个安装文件都需要下载,缺一不可
链接:https://pan.baidu.com/s/1pbgbCVQf69sEk7_tK8SGSw
提取码:4aeh

安装步骤

①可以在D盘中新建一个R文件夹,将这三个文件都放在R文件夹里面,然后安装路径也都在这个R文件夹里面。(为什么安装包要和最终的安装路径放一块?因为不这样的话,RStudio运行时可能检测不到R-4.2.2安装文件夹里面etc文件夹中的Rprofile.site,这个文件的作用我稍后会解释)
②按照R-4.2.2-win、rtools、RStudio顺序依次安装(顺序不能乱),安装时都选择默认选项即可。
③因为有些R中的包依赖于java所以还需要进行java的环境配置:java 环境配置(详细教程)
④运行RStudio:在安装的RStudio>bin文件夹里面,有个rstudio.exe,双击打开即可


⑤镜像源的设置:
使用记事本打开这个文件

将下面这段代码复制并粘贴到最后

## 设置镜像
local({r <- getOption("repos")r["CRAN"] <- "https://mirrors.tuna.tsinghua.edu.cn/CRAN/"options(repos=r)})
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")## 设置下载方式
options("download.file.method"="libcurl")
options("url.method"="libcurl")


这是在RStudio中输入一下命令:

getOption("repos")getOption("BioC_mirror")

返回以下结果则表示设置成功

如果不设置好镜像源,可能后续再安装R包的时候,会出现找不到的情况,所以这是非常有必要的!

三、(正文)芯片数据下载和ID转换

注意:如果你是严格按照上面的步骤安装RStudio,那么这一步将不会出错,否则会遇到各种问题难以继续,如果已经错误地安装RStudio等软件最后发现很多代码无法实现,那么需要把已经安装的R、RStudio、rtools全部删除干净,然后再按照上面的步骤安装(来自作者踩坑无数的嘱咐

相关设置和包的加载

进行相关设置

setwd("D:\\R\\data")   # 将工作目录设置为D:\R\data,这里根据实际情况设置
options(stringAsFactors = F)   # # 避免引入factor
Sys.setenv("VROOM_CONNECTION_SIZE"=131072*600)   # 设置内存,避免不够用

有关R包的加载

library(GEOquery)
library(limma)
library(affy)

如果某个包你没有安装,那么可能会出现如下提示

安装下面方式安装即可(注意:使用install.packages(“affy”)有时会安装失败,所以还是建议使用下面的方式)

BiocManager::install("affy")

数据下载

这里下载本文章开头需要的数据:GSE95394,读者可以修改为自己需要下载的数据编号

gset <- getGEO('GSE95394', destdir=".",
+                AnnotGPL = T,     ## 注释文件
+                getGPL = T)       ## 平台文件

稍后文件会被下载到当前工作目录中,然后输入

gset[[1]]

会显示该文件的相关信息(基因数量、平台、所用芯片等)

再输入以下命令

exp<-exprs(gset[[1]])

exp便代表了该表达矩阵,选中查看如图,这也是我们下载的数据直接打开的内容

cli<-pData(gse[[1]])  ## 获取临床信息
group<-c(rep("control",3),rep("hht",3))  ## 查看分组信息
GPL<-fData(gset[[1]]  ## 获取平台信息

查看GPL如下图,可以看到在该平台中芯片ID对应的各种数据库的ID号

注意可以左右拉动,这里我需要的是第一列(ID)和第三列(Gene symbol),那么可以将它提取出来,如果你需要别的列数据,那么修改下面的参数即可

gpl<-GPL[,c(1,3)]

打开后如下图,我们会发现并不是所有芯片ID都有Gene symbol与其对应的,没有对应的Gene symbol我们直接忽略即可

此外,我们还会发现有的芯片ID会有两个Gene symbol与之对应并用“///”分隔开,如下图所示,那么我们取第一个即可

执行下面代码后,便通过只取第一个Gene symbol来达到去重效果,这时再打开gpl发现已经没有对应多个Gene symbol的情况了

gpl$`Gene symbol`<-data.frame(sapply(gpl$`Gene symbol`,function(x)unlist(strsplit(x,"///"))[1]),stringsAsFactors=F)[,1]

接下来对表达矩阵exp进行探针ID转化,首先将其转换为数据框的形式,否则一会会报错

exp<-as.data.frame(exp)

此时虽然我们能看到exp的探针ID号(最左侧),但这个ID号并不是真正在列中,所以我们还需要将探针ID放到数据框里面,执行下面命令

exp$ID<-rownames(exp) # 增加新的一列(最后一列),存放基因ID信息

接下来通过将gpl合并到exp中,从而在exp中将芯片ID号转化为Gene symbol

exp_symbol<-merge(exp,gpl,by="ID")


不过我们发现Gene symbol这里仍然有一些未能匹配上的(N/A),这时需要去除这些匹配不上的

输入以下命令即可删除这些探针ID匹配不上的

exp_symbol<-na.omit(exp_symbol)

此时我们发现还有一些Gene symbol是重复的,需要我们去重

首先查看有多少重复的Gene symbol

table(duplicated(exp_symbol$`Gene symbol`))

结果如下图,说明有4877个重复的

输入以下命令进行去重操作同时将矩阵转换成标准的表达矩阵形式

exp_unique<-avereps(exp_symbol[,-c(1,ncol(exp_symbol))],ID=exp_symbol$`Gene symbol`)


这个exp_unique就是我们需要的以Gene symbol为行标的表达矩阵,最后将它保存为csv格式

write.csv(exp_unique,"D:/desktop/aaa.csv")

大功告成~

GEO芯片数据下载和探针ID转换(保姆级教程)相关推荐

  1. CAD下载(带安装包保姆级教程)

    CAD下载(带安装包保姆级教程) 前言 步骤 1.打开已经从百度云下载并解压的包 2.更改目录 3.包内解压 4.开始安装咯! 5.安装完成后 6.补丁操作 尾声 前言 此处是CAD 2022版本 ( ...

  2. 和风SDK查询城市ID(保姆级教程)

    android studio版本:2021.2.1 例程名:hfserachcityid 这几天没什么事做,而且我原来那个"项目"因为免费api不能用了,只能改为和风的免费api, ...

  3. Mask_RCNN项目下载、配置、运行保姆级教程

    1.下载项目 进入国内github镜像 https://hub.nuaa.cf/ 搜索要找的模型 下载完成后,放到自己写代码的文件夹内,解压. 右键用pycharm打开 打开requirements. ...

  4. 群晖保留数据换大硬盘DSM7.0保姆级教程

    本人是两盘位群晖,电影盘提示满了,就准备换一块大硬盘.第一次换硬盘,网上查了很多方法.因为群晖内部软件都有地址设置,避免需要重新设置,所以尝试用硬盘拷贝的方法替换硬盘.最终也折腾了好久才成功. 此方法 ...

  5. linux系统如何配置下载源及中文(保姆级教程)

    linux配置中文首先要下载国内源 1,点击左下角菜单,找到软件与更新 2,如图所示,点击即可 3,找到China  ,选择阿里源 4,更改完阿里源后回到桌面,右上角点击设置 5,找到区域与语言,管理 ...

  6. 字体图标的下载和引用、问题解决——保姆级教程

    字体图标 字体图标其实就是显示网页中通用的小图标,它的本质属于字体  优点 轻量级:-一个图标字体要比一 系列的图像要小.一 旦字体加载了,图标就会马上渲染出来,减少了服务器请求 灵活性:本质其实是文 ...

  7. 生物信息学入门 GEO芯片数据差异表达分析时需要log2处理的原因

    首先借用一张图,通常使用limma处理时,需要经过log2后的矩阵作为表达矩阵输入.根据log2FC的定义,这个数字表示变化倍数经过log2后的一个值,比如log2FC=1,则变化为2倍:log2FC ...

  8. GOES-16数据下载(保姆级教程)

    GOES-16数据下载(保姆级教程) 先上GOES-16数据下载的网址link 1.先进入上述网址,下拉选项可以选择想要下载的数据,这里我选择的是辐亮度数据. 2.选择想要的数据的日期,最多只能选择3 ...

  9. 爬虫保姆级教程3:利用python-Flask框架搭建本地数据可视化网站

    成果展示: (1)网站首页: (2)电影表单页 (3) 电影评分页 (4) 词频统计页 (5)团队页面 接下来让我们看看上述网站是如何完成的: 首先简单介绍一下Flask框架: Flask主要功能有两 ...

最新文章

  1. 在Windows上部署AMP(Apache2.4+MySQL8.0+PHP7.2)
  2. β射线与哪些物质可产生较高的韧致辐射_辐射无所不在,香蕉土豆里都有?我们还能愉快生活吗?...
  3. Android Studio 插件
  4. 数字图像处理学习笔记(一):特征检测和匹配概述
  5. java jdbc封装_JDBC封装-Java(新手)
  6. 4.线性和卷积——边界问题、解决边界方法和Matlab实战_3
  7. C语言 strftime 格式化显示日期时间 时间戳
  8. Maven 模块管理
  9. 从MVC到前后端分离(REST-个人也认为是目前比较流行和比较好的方式)
  10. C代码工具--自动生成enum值和名字映射代码
  11. css模块化配置---webpack4+less
  12. 阿里面试官:分别说说微信和淘宝扫码登录背后的实现原理?
  13. 湖北工业大学计算机学院考研资料,湖北工业大学计算机学院836数据结构历年考研真题汇编.pdf...
  14. Windows“未安装任何音频输出设备“,扬声器红叉不可用
  15. 利用N2N内网穿透,并实现直连
  16. EJB2.0雨夜教程之一
  17. 掌握这6个可视化图表,小白也能轻松玩转数据分析
  18. 清除阿里云服务器挖矿程序过程
  19. mac vue 代理失效
  20. 学习笔记——Jupyter notebook快速入门教程

热门文章

  1. markdown模板笔记
  2. Linux快捷键汇总(持续更新)
  3. gdb gdbtui
  4. 北航操作系统课程-20200511课堂小测-操作系统安全
  5. 夜深人静写算法(三)- 初等数论入门
  6. mysql 中查看表结构的命令
  7. 使用GPS坐标来计算距离和方位角
  8. 微信小程序与Netty实现的WebSocket聊天程序
  9. 测试用例设计方法 之【等价类划分法】
  10. 激战2电信服务器哪个最多,激战2服务器