Front Immunol 复现 | 1. GEO数据下载及sva批次校正(PCA可视化)
前几天有同学问了一篇文章里的一个方法的实现,看了一下这篇文章除了
qPCR
验证基本都是纯生信,今天就试着来复现一下。随缘复现哈,如果阅读数据不好看的话,可能就放弃了,希望大家多多点赞、在看,转发支持。
文章标题:Investigation of a Hypoxia-Immune-Related Microenvironment Gene Signature and Prediction Model for Idiopathic Pulmonary Fibrosis.
doi: 10.3389/fimmu.2021.629854
流程
示例数据和代码领取
点赞、在看本文,分享至朋友圈集赞10个
并保留30分钟
,截图发至微信mzbj0002
领取。2022年VIP会员免费领取。
木舟笔记2022年度VIP企划
权益:
2022年度木舟笔记所有推文示例数据及代码(含大部分2021年)。
木舟笔记科研交流群。
半价购买
跟着Cell学作图系列合集
(免费教程+代码领取)|跟着Cell学作图系列合集。
收费:
99¥/人。可添加微信:mzbj0002
转账,或直接在文末打赏。
GEO数据下载
GSE70866
有两个GPL
,需要分别提取并注释。
rm(list = ls())
BiocManager::install("GEOquery")
library(GEOquery)
eSet <- getGEO(GEO = 'GSE70866', destdir = '.', getGPL = F)# 提取表达矩阵exp
exp1 <- exprs(eSet[[1]]) #GPL14550
exp2 <- exprs(eSet[[2]]) #GPL17077
exp1[1:4,1:4]
dim(exp1)
dim(exp2)
#exp = log2(exp+1)
# 提取芯片平台编号
gpl1 <- eSet[[1]]@annotation
gpl2 <- eSet[[2]]@annotation
gpl1
gpl2
## GPL注释
library(devtools)
install_github("jmzeng1314/idmap3")
## 下载后本地安装
## devtools::install_local("idmap3-master.zip")
library(idmap3)
ids_GPL14550=idmap3::get_pipe_IDs('GPL14550')
head(ids_GPL14550)
ids_GPL17077=idmap3::get_pipe_IDs('GPL17077')
head(ids_GPL17077)
注释基因表达矩阵并合并。
library(dplyr)exp1 <- data.frame(exp1)
exp1$probe_id = row.names(exp1)
exp1 <- exp1 %>% inner_join(ids_GPL14550,by="probe_id") %>% ##合并探针信息dplyr::select(-probe_id) %>% ##去掉多余信息dplyr::select(symbol, everything()) %>% #重新排列mutate(rowMean =rowMeans(.[grep("GSM", names(.))])) %>% #求出平均数arrange(desc(rowMean)) %>% #把表达量的平均值按从大到小排序distinct(symbol,.keep_all = T) %>% # 留下第一个symboldplyr::select(-rowMean) #去除rowMean这一列exp2 <- data.frame(exp2)
exp2$probe_id = row.names(exp2)
exp2 <- exp2 %>% inner_join(ids_GPL17077,by="probe_id") %>% dplyr::select(-probe_id) %>% dplyr::select(symbol, everything()) %>% mutate(rowMean =rowMeans(.[grep("GSM", names(.))])) arrange(desc(rowMean)) %>% distinct(symbol,.keep_all = T) %>% dplyr::select(-rowMean) exp = exp1 %>% inner_join(exp2,by="symbol") %>% ##合并探针信息tibble::column_to_rownames(colnames(.)[1]) # 把第一列变成行名并删除
# 先保存一下
save(exp, eSet, file = "GSE70866.Rdata")
# load('GSE70866.Rdata')
# install.packages("devtools")
# 提取临床信息
pd1 <- pData(eSet[[1]])
pd2 <- pData(eSet[[2]])
## 筛选诊断为IPF的样本
pd1 = subset(pd1,characteristics_ch1.1 == 'diagnosis: IPF')
pd2 = subset(pd2,characteristics_ch1.1 == 'diagnosis: IPF')
exp_idp = exp[,c(pd1$geo_accession,pd2$geo_accession)]
批次校正
## 批次校正
BiocManager::install("sva")
library('sva')
## 批次信息
batch = data.frame(sample = c(pd1$geo_accession,pd2$geo_accession),batch = c(pd1$platform_id,pd2$platform_id))
未批次校正前PCA
#install.packages('FactoMineR')
#install.packages('factoextra')
library("FactoMineR")
library("factoextra")
pca.plot = function(dat,col){df.pca <- PCA(t(dat), graph = FALSE)fviz_pca_ind(df.pca,geom.ind = "point",col.ind = col ,addEllipses = TRUE,legend.title = "Groups")
}
pca.plot(exp_idp,factor(batch$batch))
批次校正
## sva 批次校正
combat_exp <- ComBat(dat = as.matrix(log2(exp_idp+1)),batch = batch$batch)
pca.plot(combat_exp,factor(batch$batch))
## 保存校正后的基因表达矩阵便于后续分析
save(combat_exp, eSet, file = "GSE70866.Rdata")
注:因为只是浅复现一下,过程中可能会有些纰漏或瑕疵,希望大家批评指正。
往期内容
跟着 Cell 学作图 | 火山图进阶版
(免费教程+代码领取)|跟着Cell学作图系列合集
Q&A | 如何在论文中画出漂亮的插图?
跟着Nat Commun学作图 | 1.批量箱线图+散点+差异分析
跟着Nat Commun学作图 | 2.时间线图
跟着Nat Commun学作图 | 3.物种丰度堆积柱状图
跟着Nat Commun学作图 | 4.配对箱线图+差异分析
跟着Nature学作图 | 配对哑铃图+分组拟合曲线+分类变量热图
跟着 Nat Med. 学作图 | GSVA+limma差异通路分析+发散条形图
Front Immunol 复现 | 1. GEO数据下载及sva批次校正(PCA可视化)相关推荐
- Front Immunol 复现 | 4. 使用estimate包评估肿瘤纯度
前几天有同学问了一篇文章里的一个方法的实现,看了一下这篇文章除了qPCR验证基本都是纯生信,今天就试着来复现一下.随缘复现哈,如果阅读数据不好看的话,可能就放弃了,希望大家多多点赞.在看,转发支持. ...
- GEO数据下载及处理详细过程
GEO2R 如果出现提示,请指定GEO系列加入和平台. 单击"定义组"并输入您计划比较的样品组的名称,例如测试和控制. 将样本分配给每个组. 突出显示S ...
- GEO数据下载分析(SRA、SRR、GEM、SRX、SAMN、SRS、SRP、PRJNA全面解析)
很多时候我们需要从GEO(https://www.ncbi.nlm.nih.gov/geo/)下载RNA-seq数据,一个典型的下载页面是https://www.ncbi.nlm.nih.gov/ge ...
- GEO数据库数据下载方法总结
GEO数据下载 GEO是生信分析经常用到的数据库.经常需要从中获取表达矩阵,平台信息,meta信息等,本博文总结了几种下载GEO数据的方法,各有优劣,实际应用过程中自行选择适合自己的. 方法一:直接从 ...
- geo数据差异分析_GEO数据分析之差异基因分析
Step2-Differential-Expression-Genes 上一篇中做了:GEO数据下载和表达矩阵提取及质控.接下来是差异基因的获得. 一.差异分析 1.表达矩阵 #1.表达矩阵 load ...
- GEO数据库学习一(简介 数据下载 芯片知识)
目录 1.GEO数据库简介 2.从GEO数据库下载数据 2.1使用GEOquery包从GEO数据库下载数据 2.2了解下载函数返回的对象 2.3ExpressionSet对象简单讲解 3.芯片基础知识 ...
- 用GEOquery从GEO数据库下载数据
用GEOquery从GEO数据库下载数据 Gene Expression Omnibus database (GEO)是由NCBI负责维护的一个数据库,设计初衷是为了收集整理各种表达芯片数据,但是后来 ...
- 公共数据库挖掘第一步-GEO数据库下载表达谱数据和生存数据
欢迎关注"生信修炼手册"! 在NAD+代谢相关基因的文章中,针对来自GEO数据库的ALS患者的表达谱数据进行了挖掘,本文就以这两批GEO数据为例,来详细展示原始数据的下载过程 公共 ...
- 使用wget下载GEO数据
我们有时需要下载GEO数据,使用getGEO的话比较麻烦,特别是当我们只需要其中某一两个文件时.但是当我们直接复制文件链接,使用wget下载时,却只能下载当前的网页. 经过我的摸索,终于找到了可以使用 ...
最新文章
- tensorflow tf.data.TextLineDataset()对象 (包含来自一个或多个文本文件的行的“数据集”) 不懂是啥玩意??
- 【小白学习C++ 教程】二十一、C++ 中的STL容器Arrays和vector
- linux 定时java程序,Linux操作系统上定时运行Java程序的方法
- 顶尖学府 加州伯克利大学开发高效机器人操纵框架
- spss文件 服务器登录,spss连接远程服务器
- LeetCode(1108)——IP 地址无效化(JavaScript)
- php+彩票中奖判断,彩票算法 – PHP – 数学似乎不错,但功能是否有效?
- data transformation python_Data augmentation: 利用python进行图像扩建
- 2022年30本新年书单(要么旅行,要么读书,身体和灵魂总有一个在路上)
- 写尽自己一个人的孤独却写不出心里的寂寞
- 爬取起点小说网免费小说
- Linux下查看显卡型号
- Java基础项目——基于文本家庭简易收支记账程序
- 关于TI MMWAVE Demo 的一些经验
- php+fastcgi+apache2+php-fpm配置
- Excel分类统计数量
- linux程序 tty没了,linux – 提示自定义:如何检测何时没有tty
- java patriciatrie_以太坊源码(一)Merkle-Patricia Trie(MPT)的实现
- 波士顿动力开源代码_失去动力两年后,我如何开始开源之旅
- 武汉服务器维修哪里专业报价,入门服务器 武汉IBM X3100报价5500元