Reproducción de Front Immunol | 1. Descarga de datos GEO y corrección por lotes de sva (visualización PCA)

3eb560e1c6824b03f90604b6e04446c2.png

FII

Hace unos días, un compañero de clase preguntó sobre la implementación de un método en un artículo. Después de leer este artículo qPCR, básicamente es pura letra, excepto la verificación. Hoy intentaré reproducirlo. Reaparece al azar. Si los datos de lectura no son buenos, puede darse por vencido. Espero que a todos les guste, miren y envíen apoyo.

a41af8db76cf43da33a80a798fa1813c.png

文章标题: Investigación de un modelo de predicción y firma génica del microambiente relacionado con la inmunidad a la hipoxia para la fibrosis pulmonar idiopática.

doi: 10.3389 / fimmu.2021.629854

proceso

f48864a682150fff5a06fd2f50ccd2bc.png

Muestra de datos y recogida de códigos

Dale me gusta, lee este artículo, compártelo con tu círculo de amigos 集赞10个y 保留30分钟envía una captura de pantalla a WeChat para mzbj0002recibirlo. Los miembros VIP de 2022 lo recibirán gratis .

Proyecto VIP Canoe Notes 2022

derechos e intereses:

  1. Datos de muestra y código de todos los tweets en Canoe Notes en 2022 (incluida la mayor parte de 2021).

    2fdd542d0ac6b91f720c183da8fb3e21.png
  2. Canoa Notas Grupo de Intercambio de Investigación Científica .

  3. Compra a mitad de precio 跟着Cell学作图系列合集(tutorial gratis + colección de códigos)|Sigue a Cell para aprender a dibujar una colección de series .

PEAJE:

99¥/persona . Puede agregar WeChat: mzbj0002transferir dinero o dar una recompensa directamente al final del artículo.

586d19b0253f4ffe6fec98193972cdf8.png
Escanea el código QR para agregar WeChat

Descarga de datos GEO

GSE70866Hay dos GPL, que deben extraerse y anotarse por separado.

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)

Las matrices de expresión génica se anotaron y fusionaron.

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) %>% # 留下第一个symbol
  dplyr::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)]

corrección por lotes

## 批次校正
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 antes de la corrección por lotes

#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))
712229c64b5a29b0f66ab80042ee1604.png
PCA_1

corrección por lotes

## sva 批次校正
combat_exp <- ComBat(dat = as.matrix(log2(exp_idp+1)),
                     batch = batch$batch)
pca.plot(combat_exp,factor(batch$batch))
588fa3c1c8a8b48f7c10ba59cdc2e071.png
PCA_2
## 保存校正后的基因表达矩阵便于后续分析
save(combat_exp, eSet, file = "GSE70866.Rdata")

Nota: Debido a que es solo una reproducción superficial, puede haber algunos errores o fallas en el proceso, espero que todos puedan criticarlo y corregirlo.

Contenido pasado

  1. Sigue a Cell para aprender a mapear | Mapa de volcanes versión avanzada

  2. (Tutorial gratuito + Colección de códigos)|Siga a Cell para aprender Colección de series de dibujos

  3. Preguntas y respuestas | ¿Cómo dibujar bellas ilustraciones en papeles?

  4. Sigue a Nat Commun para aprender a dibujar | 1. Diagrama de caja por lotes + dispersión + análisis de diferencias

  5. Sigue a Nat Commun para aprender a dibujar | 2. Gráfico de línea de tiempo

  6. Sigue a Nat Commun para aprender a mapear | 3. Histograma de apilamiento de abundancia de especies

  7. Sigue a Nat Commun para aprender a dibujar | 4. Diagrama de caja emparejado + análisis de diferencias

  8. Mapeo con la naturaleza | Gráfica emparejada con mancuernas + Curva de ajuste agrupada + Mapa de calor de variables categóricas

  9. Siga a Nat Med. Aprenda a mapear | GSVA + análisis de vías diferenciales limma + gráfico de barras divergentes


d8b6051a4362145ec7abe3048f3c95f2.png

Supongo que te gusta

Origin blog.csdn.net/weixin_45822007/article/details/124207348
Recomendado
Clasificación