FII

前几天有同学问了一篇文章里的一个方法的实现,看了一下这篇文章除了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企划

权益:

  1. 2022年度木舟笔记所有推文示例数据及代码(含大部分2021年)。

  2. 木舟笔记科研交流群

  3. 半价购买跟着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))

PCA_1

批次校正

## sva 批次校正
combat_exp <- ComBat(dat = as.matrix(log2(exp_idp+1)),batch = batch$batch)
pca.plot(combat_exp,factor(batch$batch))

PCA_2
## 保存校正后的基因表达矩阵便于后续分析
save(combat_exp, eSet, file = "GSE70866.Rdata")

注:因为只是浅复现一下,过程中可能会有些纰漏或瑕疵,希望大家批评指正。

往期内容

  1. 跟着 Cell 学作图 | 火山图进阶版

  2. (免费教程+代码领取)|跟着Cell学作图系列合集

  3. Q&A | 如何在论文中画出漂亮的插图?

  4. 跟着Nat Commun学作图 | 1.批量箱线图+散点+差异分析

  5. 跟着Nat Commun学作图 | 2.时间线图

  6. 跟着Nat Commun学作图 | 3.物种丰度堆积柱状图

  7. 跟着Nat Commun学作图 | 4.配对箱线图+差异分析

  8. 跟着Nature学作图 | 配对哑铃图+分组拟合曲线+分类变量热图

  9. 跟着 Nat Med. 学作图 | GSVA+limma差异通路分析+发散条形图


Front Immunol 复现 | 1. GEO数据下载及sva批次校正(PCA可视化)相关推荐

  1. Front Immunol 复现 | 4. 使用estimate包评估肿瘤纯度

    前几天有同学问了一篇文章里的一个方法的实现,看了一下这篇文章除了qPCR验证基本都是纯生信,今天就试着来复现一下.随缘复现哈,如果阅读数据不好看的话,可能就放弃了,希望大家多多点赞.在看,转发支持. ...

  2. GEO数据下载及处理详细过程

    GEO2R 如果出现提示,请指定GEO系列加入和平台.        单击"定义组"并输入您计划比较的样品组的名称,例如测试和控制.        将样本分配给每个组. 突出显示S ...

  3. 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 ...

  4. GEO数据库数据下载方法总结

    GEO数据下载 GEO是生信分析经常用到的数据库.经常需要从中获取表达矩阵,平台信息,meta信息等,本博文总结了几种下载GEO数据的方法,各有优劣,实际应用过程中自行选择适合自己的. 方法一:直接从 ...

  5. geo数据差异分析_GEO数据分析之差异基因分析

    Step2-Differential-Expression-Genes 上一篇中做了:GEO数据下载和表达矩阵提取及质控.接下来是差异基因的获得. 一.差异分析 1.表达矩阵 #1.表达矩阵 load ...

  6. GEO数据库学习一(简介 数据下载 芯片知识)

    目录 1.GEO数据库简介 2.从GEO数据库下载数据 2.1使用GEOquery包从GEO数据库下载数据 2.2了解下载函数返回的对象 2.3ExpressionSet对象简单讲解 3.芯片基础知识 ...

  7. 用GEOquery从GEO数据库下载数据

    用GEOquery从GEO数据库下载数据 Gene Expression Omnibus database (GEO)是由NCBI负责维护的一个数据库,设计初衷是为了收集整理各种表达芯片数据,但是后来 ...

  8. 公共数据库挖掘第一步-GEO数据库下载表达谱数据和生存数据

    欢迎关注"生信修炼手册"! 在NAD+代谢相关基因的文章中,针对来自GEO数据库的ALS患者的表达谱数据进行了挖掘,本文就以这两批GEO数据为例,来详细展示原始数据的下载过程 公共 ...

  9. 使用wget下载GEO数据

    我们有时需要下载GEO数据,使用getGEO的话比较麻烦,特别是当我们只需要其中某一两个文件时.但是当我们直接复制文件链接,使用wget下载时,却只能下载当前的网页. 经过我的摸索,终于找到了可以使用 ...

最新文章

  1. tensorflow tf.data.TextLineDataset()对象 (包含来自一个或多个文本文件的行的“数据集”) 不懂是啥玩意??
  2. 【小白学习C++ 教程】二十一、C++ 中的STL容器Arrays和vector
  3. linux 定时java程序,Linux操作系统上定时运行Java程序的方法
  4. 顶尖学府 加州伯克利大学开发高效机器人操纵框架
  5. spss文件 服务器登录,spss连接远程服务器
  6. LeetCode(1108)——IP 地址无效化(JavaScript)
  7. php+彩票中奖判断,彩票算法 – PHP – 数学似乎不错,但功能是否有效?
  8. data transformation python_Data augmentation: 利用python进行图像扩建
  9. 2022年30本新年书单(要么旅行,要么读书,身体和灵魂总有一个在路上)
  10. 写尽自己一个人的孤独却写不出心里的寂寞
  11. 爬取起点小说网免费小说
  12. Linux下查看显卡型号
  13. Java基础项目——基于文本家庭简易收支记账程序
  14. 关于TI MMWAVE Demo 的一些经验
  15. php+fastcgi+apache2+php-fpm配置
  16. Excel分类统计数量
  17. linux程序 tty没了,linux – 提示自定义:如何检测何时没有tty
  18. java patriciatrie_以太坊源码(一)Merkle-Patricia Trie(MPT)的实现
  19. 波士顿动力开源代码_失去动力两年后,我如何开始开源之旅
  20. 武汉服务器维修哪里专业报价,入门服务器 武汉IBM X3100报价5500元

热门文章

  1. Java开发基础面试知识点
  2. python第三次作业
  3. crawler(2)
  4. 计算机二级工作表不会,计算机二级Office:Excel工作簿与工作表操作
  5. perl/tk_在Perl / Tk中使用高级小部件
  6. 收藏向:看完此篇让你轻松玩转领英
  7. 假如工资有段位,你是个啥?
  8. 【Proteus仿真】按键设置+数码管显示
  9. 自定义控件-视觉特效
  10. MIUI——添加学校邮箱到电子邮件解决方案