首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

人鼠同源gene转换 & 免疫浸润分析

除了所需的表达矩阵还需要Cibersort.R 的脚本,以及存储有免疫细胞特征的文件。。

1. 人&属同源gene转换

此步骤为非必须步骤,这个分析需要人的gene,我做的鼠的,所以就用同源gene代替下。

"B_A.all.xlsx" :

library(ggplot2)library(reshape2)library(ggpubr)library(dplyr)library(RColorBrewer)library(ggsci)library(tidyverse)source('Cibersort.R')

expr <- readxl::read_xlsx("B_A.all.xlsx",sheet = 1)

######################### 人鼠gene转换

library(biomaRt)

listDatasets(useMart("ensembl")) # 查看ensembl数据库中可用的生物数据集human=useMart("ensembl","hsapiens_gene_ensembl", host = "https://dec2021.archive.ensembl.org/") #检索到人类数据集mouse=useMart("ensembl","mmusculus_gene_ensembl", host = "https://dec2021.archive.ensembl.org/") #鼠listAttributes(human) # 查看可用转换的参数listAttributes(mouse)# mgi_symbol 表示小鼠的基因名,hgnc_symbol表示人基因名

mgenes <- expr$genename

mouse_gene_convert <- getLDS( #使用getLDS()将基因进行转换 values = mgenes,mart = mouse, attributes = "mgi_symbol",filters = "mgi_symbol", martL=human, attributesL = c("hgnc_symbol","chromosome_name"))

# 去掉重复genename了 expr_cib <- expr %>% mutate(avg = mean(rowSums(expr[,2:11]) )) %>% arrange(desc(avg)) %>% distinct(genename,.keep_all = TRUE) %>% filter(!is.na(genename)) %>% dplyr::select(genename,grep("A_|B_",colnames(expr))) %>% as.data.frame()

# 匹配上人的SYMBOLexpr_cib <- expr_cib %>% left_join(mouse_gene_convert,by = c("genename" = "MGI.symbol")) %>% distinct(HGNC.symbol,.keep_all = TRUE) %>% filter(!is.na(HGNC.symbol )) %>% dplyr::select(HGNC.symbol,grep("A_|B_",colnames(expr_cib))) %>% column_to_rownames("HGNC.symbol")

write.table(expr_cib,"expr_cib.txt",sep="\t",row.names = TRUE)

2. 免疫浸润分析&绘图

此步骤为非必须步骤,这个分析需要人的gene,我做的鼠的,所以就用同源gene代替下。

#LM22.txt,22种免疫细胞表达量文件,第一列为Gene symbol,其他列为22种免疫细胞。LM22.file <- "LM22.txt"

Group <- data.frame(Sample = colnames(expr_cib),group = ifelse(grepl("A_",colnames(expr_cib)),"A","B"))

#combined.expr.txt,表达矩阵文件,行名为基因名,列名为样本信息。GEO_exp.file <- "expr_cib.txt"

X <- read.table(LM22.file,header=T,sep="\t",row.names=1,check.names=F)Y <- read.table(GEO_exp.file, header=T, sep="\t",na.strings = "xxx", row.names=1,check.names=F)

any(is.na(row.names(Y)))#perm表示置换次数, QN如果是芯片设置为T,如果是测序就设置为FGEO_cibersort.results <- CIBERSORT(LM22.file ,GEO_exp.file, perm = 50, QN = F)

write.table(GEO_cibersort.results, "GEO_CIBERSORT.txt")#计算的22种免疫细胞比例结果文件,行名为样本信息,列名为免疫细胞类型。

# 提取cibersort前22列数据,23-25列为 P-value, P-value,RMSE数据cibersort_data <- as.data.frame(GEO_cibersort.results[,1:22])#将行名转化为列名cibersort_data<-rownames_to_column(cibersort_data,var="Sample")#读取样本分组文件,包括两列信息,第一列为样本名,第二列为分组信息。

#连接分组信息和cibersort结果文件cibersort<-left_join(cibersort_data,Group,by="Sample")#长宽数据转换cibersort<- melt(cibersort,id.vars=c("Sample","group"))#设置行名colnames(cibersort)<-c("Sample","Group","celltype","composition") #绘制差异分析箱线图boxplot_cibersort<- ggplot(cibersort, aes(x = celltype, y = composition))+ labs(y="Cell composition",x= "")+ geom_boxplot(aes(fill = Group),position=position_dodge(0.5),width=0.5)+ scale_fill_npg()+ #修改主题 theme_bw() + theme(axis.title = element_text(size = 12,color ="black"), axis.text = element_text(size= 12,color = "black"), panel.grid.minor.y = element_blank(), panel.grid.minor.x = element_blank(), axis.text.x = element_text(angle = 45, hjust = 1 ), panel.grid=element_blank(), legend.position = "top", legend.text = element_text(size= 12), legend.title= element_text(size= 12) ) + stat_compare_means(aes(group = Group), label = "p.signif", method = "wilcox.test", hide.ns = T)#隐藏不显著的

ggsave(file="cibersort.pdf",boxplot_cibersort,height=10,width=15)

# 长宽数据转换cibersort_plot <- melt(cibersort_data, id.vars = "Sample")

# 修改列名colnames(cibersort_plot) <- c("Sample", "celltype", "composition")

# 绘制免疫细胞含量堆叠柱状图## 自定义颜色设置colour <- c(brewer.pal(12, "Paired"), brewer.pal(8, "Dark2"), brewer.pal(12, "Set3"))ggplot(data = cibersort_plot, aes(x = Sample, y = composition, fill = celltype)) + geom_bar(position = "stack", stat = "identity") + # 绘制柱状图 scale_fill_manual(values = colour) + # 添加自定义颜色 labs(x = "", y = "", title = "Cell Proportion") + # 设置坐标轴 scale_y_continuous(expand = c(0, 0)) + # 设置与y轴的间距为0 guides(fill = guide_legend(ncol = 1)) + # 设置图例排列成一列 # 修改主题 theme_bw() + theme(legend.key = element_blank(), legend.title = element_blank(), panel.grid = element_blank(), axis.text.x = element_text(angle = 90), axis.ticks.x = element_blank(), plot.title = element_text(hjust = 0.5))

ggsave("cibersort_barplot.pdf",width=12,height=8)

1.CIBERSORT包:洞悉细胞免疫浸润的神奇工具!

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OYPnVsrlfnSl80K1qHCmNsrA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券