生信技能树——GEO芯片数据的合并

2023-11-04

GSE83521和GSE89143数据合并

1.下载数据

rm(list = ls())
library(GEOquery)
library(stringr)
gse = "GSE83521"
eSet1 <- getGEO("GSE83521", 
                destdir = '.', 
                getGPL = F)
eSet2 <- getGEO("GSE89143", 
                destdir = '.', 
                getGPL = F)
#(1)提取表达矩阵exp
exp1 <- exprs(eSet1[[1]])
exp1[1:4,1:4]
exp2 <- exprs(eSet2[[1]])
exp2[1:4,1:4]
exp2 = log2(exp2+1)
table(rownames(exp1) %in% rownames(exp2))
length(intersect(rownames(exp1),rownames(exp2)))
exp1 <- exp1[intersect(rownames(exp1),rownames(exp2)),]
exp2 <- exp2[intersect(rownames(exp1),rownames(exp2)),]
boxplot(exp1)
boxplot(exp2)

#(2)提取临床信息
pd1 <- pData(eSet1[[1]])
pd2 <- pData(eSet2[[1]])
if(!identical(rownames(pd1),colnames(exp1))) exp1 = exp1[,match(rownames(pd1),colnames(exp1))]
if(!identical(rownames(pd2),colnames(exp2))) exp2 = exp2[,match(rownames(pd2),colnames(exp2))]

#(3)提取芯片平台编号
gpl <- eSet2[[1]]@annotation

#(4)合并表达矩阵
# exp2的第三个样本有些异常,可以去掉或者用normalizeBetweenArrays标准化,把它拉回正常水平。

exp2 = exp2[,-3]

exp = cbind(exp1,exp2)
boxplot(exp)
Group1 = ifelse(str_detect(pd1$title,"Tumour"),"Tumour","Normal")
Group2 = ifelse(str_detect(pd2$source_name_ch1,"Paracancerous"),"Normal","Tumour")[-3]

Group = c(Group1,Group2)
table(Group)
Group = factor(Group,levels = c("Normal","Tumour"))
save(gse,Group,exp,gpl,file = "exp.Rdata")

两个数据集样本的情况
在这里插入图片描述
合并后的数据
在这里插入图片描述

2.针对不同数据集数据的差异,需要处理批次效应

2.1 使用limma包里的removeBatchEffect()函数

rm(list = ls())
load("exp.Rdata")
#处理批次效应
library(limma)
#?removeBatchEffect()
batch <- c(rep("A",12),rep("B",5))
exp2 <- removeBatchEffect(exp, batch)
par(mfrow=c(1,2))  # 展示的图片为一行两列
boxplot(as.data.frame(exp),main="Original")
boxplot(as.data.frame(exp2),main="Batch corrected")

在这里插入图片描述

2.2 使用sva包中的combat() 函数

rm(list = ls())
load("exp.Rdata")
#处理批次效应(combat)
library(sva)
#?ComBat

batch <- c(rep("A",12),rep("B",5))
mod = model.matrix(~Group)
exp2 = ComBat(dat=exp, batch=batch, 
              mod=mod, par.prior=TRUE, ref.batch="A")
par(mfrow=c(1,2))
boxplot(as.data.frame(exp),main="Original")
boxplot(as.data.frame(exp2),main="Batch corrected")

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

生信技能树——GEO芯片数据的合并 的相关文章

随机推荐

  • python修饰器原理_Python修饰器的函数式编程

    Python的修饰器的英文名叫Decorator 当你看到这个英文名的时候 你可能会把其跟Design Pattern里的Decorator搞混了 其实这是完全不同的两个东西 虽然好像 他们要干的事都很相似 都是想要对一个已有的模块做一些
  • 【RDMA】降低CPU除了RDMA (vbers)还是VMA ?

    前言 看介绍 像是mellonx针对其kernel bypass网卡 RDMA网卡 提供的一个lib库 该lib库对外提供socket api 使得用户的程序不需要修改就可以直接使用kernel bypass网卡 如RDMA网卡 我们都知道
  • FPGA内部结构及时序分析

    FPGA时序分析 FPGA内部基本结构 查找表概述 数据传输路径 时序分析模型 知识补充 注 本文内容来源于B站UP主小梅哥爱漂流的视屏内容 本人整理出来前三节课的视频笔记 对视频内容感兴趣的同学可以去看看小梅哥的视频 视频链接为https
  • String数组的创建

    string数组的定义有三种写法 String arr new String 10 创建一个长度为10的String 类型数组 String arr new String 10 String arr 张三 李四 前面两种写法是一样的 可以互
  • Window下编译FFmpeg(生成ffplay)

    第一步 百度或者官网下载mingw https ddd2 pc6 com xy1 mingw5 1 6 rar 解压后安装到c MinGW下 就是默认安装路径 注意安装时选择全部安装 避免有些东西没安装上 如下图 第二步 官网下载msys
  • opencv-python 银行卡卡号识别

    模板 银行卡 主要思路 用遮盖法 将无关紧要的上面和下面部分截掉 保留银行卡号差不多的位置 然后用opencv做图像处理 得到四个 连着数字的小框框 然后再在四个小框框里面提取出每一个单个的数字和模板里面的数字进行对比 难点是 如何使用op
  • 关于PCB走线及过孔的过流能力

    一 关于PCB走线的过流能力 PCB走线的过流能力都与哪些因素有关 目前考虑有走线线宽 铜箔厚度 走线长度 温升这些因素 下面我们逐个分析及整体分析 1 走线线宽 铜箔厚度以及走线长度对过流能力的影响 通过网上的收集及整理 统计出了下面的表
  • Android桌面悬浮窗进阶,QQ手机管家小火箭效果实现

    今天是2013年的最后一天了 这里首先提前祝大家新年快乐 同时 本篇文章也是我今年的最后一篇文章了 因此我想要让它尽量有点特殊性 比起平时的文章要多一些特色 记得在今年年初的时候 我写的第一篇文章是模仿360手机卫士的桌面悬浮窗效果 那么为
  • 在Vue组件中使用js(script标签)转换13位UTC格式的时间戳

    声明 代码来源AI 非本人原创 经测试实际可用
  • websocket-sdk 解决本地服务与浏览器之间的连接, 以及浏览器与服务器之间的数据传输

    最近由于项目业务需求 需要利用websocket完成本地服务与浏览器之间的数据传输 为了满足这个需求 这里自行封装了websocket sdk 这个工具 一 首先介绍下websocket sdk 它的作用 websocket sdk 已经处
  • 十条法则,让企业减少90%的勒索病毒攻击,勒索病毒解密,数据恢复

    建立完善的安全管理体系 企业应该建立完善的安全管理体系 包括安全策略 安全培训 应急响应等 确保每个员工都了解安全意识和操作规范 定期备份数据 企业需要建立定期备份机制 备份关键数据和系统 确保在发生勒索病毒攻击时 能够迅速恢复数据和系统
  • std::shared_ptr 与普通指针的转换

    shared ptr 是一个类 用模板支持很多类型 1 shared ptr到普通指针 shared ptr
  • Avalonia UI程序打包为deb安装包

    目录 相关依赖安装 打包前操作 进行打包 关于快捷方式的说明 相关依赖安装 全局安装打包工具 dotnet tool install global dotnet deb 向工程中安装相关打包依赖 将CMD命令行或PowerShell定位到工
  • jmeter常用插件介绍

    jmeter作为一个开源的接口性能测试工具 其本身的小巧和灵活性给了测试人员很大的帮助 但其本身作为一个开源工具 相比于一些商业工具 比如LoadRunner 在功能的全面性上就稍显不足 这篇博客 就介绍下jmeter的第三方插件jmete
  • C# 线程调用主线程中的控件

    由于项目的需要 最近几天一直在做串口和数据库 由于C 使用的时间不长 所以在编写代码和调试的过程中总是遇到意想不到的问题 比如在使用串口接收数据的时候 在接收数据事件中想把接收的数据放入一个textbox作显示 但是明明非常简单的代码 在编
  • 7-5 两个有序链表序列的交集 (20分) 已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的交集新链表S3。 输入格式: 输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−

    7 5 两个有序链表序列的交集 20分 已知两个非降序链表序列S1与S2 设计函数构造出S1与S2的交集新链表S3 输入格式 输入分两行 分别在每行给出由若干个正整数构成的非降序序列 用 1表示序列的结尾 1不属于这个序列 数字用空格间隔
  • Intellij IDE 安装Golang插件出现GO SDK报错

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 很多Java同学都是使用IDEA的 当然也可以直接使用 Gogland至少现在还是免费 谁也不知道什么时候又要收费了 所以我们选择了IDEA使用插件方式支持Golang的开
  • 规则引擎Drools使用 第十五篇 Spring Boot整合Drools

    在实际开发中 主要使用的还是以Spring Boot为主 所有下面介绍下Spring Boot整合Drools Spring Boot整合Drools 引入依赖
  • 数据结构-图

    目录 问题 A 邻接矩阵存储的图 节点的出度和入度计算 附加代码模式 问题 B 算法7 12 有向无环图的拓扑排序 问题 C 有向图是否存在环 问题 D 是否为有效的拓扑序列 问题 E 案例6 2 6 最短工期 问题 F 图 节点的最早发生
  • 生信技能树——GEO芯片数据的合并

    GSE83521和GSE89143数据合并 1 下载数据 rm list ls library GEOquery library stringr gse GSE83521 eSet1 lt getGEO GSE83521 destdir g