Репродукция Front Immunol 1. Загрузка данных GEO и пакетная коррекция sva (визуализация PCA)

3eb560e1c6824b03f90604b6e04446c2.png

ФИИ

Несколько дней назад одноклассник спрашивал о реализации метода в статье.После прочтения этой статьи qPCRв основном чистое письмо за исключением проверки.Сегодня попробую воспроизвести. Повторно появляется рандомно.Если данные чтения не хорошие,можно сдаться.Надеюсь всем понравятся,смотрят и вперед в поддержку.

a41af8db76cf43da33a80a798fa1813c.png

文章标题: Исследование сигнатуры гена микроокружения, связанного с гипоксией, и модель прогнозирования идиопатического легочного фиброза.

дои: 10.3389 / фимму.2021.629854

процесс

f48864a682150fff5a06fd2f50ccd2bc.png

Демонстрационные данные и получение кода

Поставьте лайк, прочитайте эту статью, поделитесь ею со своим кругом друзей 集赞10个и 保留30分钟отправьте снимок экрана в WeChat, чтобы mzbj0002получить ее. 2022 VIP-члена получат его бесплатно .

Каноэ Notes 2022 VIP-проект

права и интересы:

  1. Примеры данных и кода всех твитов в Canoe Notes в 2022 году (включая большую часть 2021 года).

    2fdd542d0ac6b91f720c183da8fb3e21.png
  2. Группа обмена научными исследованиями Canoe Notes .

  3. Покупка за полцены 跟着Cell学作图系列合集(бесплатный учебник + коллекция кодов) | Следуйте за Cell, чтобы научиться рисовать коллекцию серий .

ПОТЕРИ:

99р/чел . Вы можете добавить WeChat: mzbj0002перевести деньги или дать вознаграждение прямо в конце статьи.

586d19b0253f4ffe6fec98193972cdf8.png
Отсканируйте QR-код, чтобы добавить WeChat

Загрузка геоданных

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

пакетная коррекция

## 批次校正
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))
712229c64b5a29b0f66ab80042ee1604.png
PCA_1

пакетная коррекция

## 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")

Примечание: поскольку это только поверхностное воспроизведение, в процессе могут быть некоторые ошибки или недостатки.Я надеюсь, что каждый может критиковать и исправлять его.

Прошлый контент

  1. Следуйте за Cell, чтобы научиться составлять карту | Расширенная версия карты вулкана

  2. (Бесплатное руководство + коллекция кодов) | Следуйте за Cell, чтобы изучить коллекцию серии рисунков

  3. Q&A | Как рисовать красивые иллюстрации в газетах?

  4. Подпишитесь на Nat Commun, чтобы научиться рисовать | 1. Пакетная блок-схема + разброс + анализ различий

  5. Подписывайтесь на Nat Commun, чтобы научиться рисовать | 2. Хронология графика

  6. Подпишитесь на Nat Commun, чтобы научиться составлять карту | 3. Гистограмма суммирования обилия видов

  7. Подписывайтесь на Nat Commun, чтобы научиться рисовать | 4. Парный блок-график + анализ различий

  8. Сопоставление с природой | Парный график гантелей + сгруппированная кривая подбора + тепловая карта категориальных переменных

  9. Следуйте за Nat Med. Научитесь составлять карту | GSVA + дифференциальный анализ пути лиммы + расходящаяся гистограмма


d8b6051a4362145ec7abe3048f3c95f2.png

рекомендация

отblog.csdn.net/weixin_45822007/article/details/124207348