bioinfoer

找回密码
立即注册
搜索
热搜: 活动 交友 discuz
发新帖

0

收听

12

听众

400

主题
发表于 前天 22:16 | 查看: 12| 回复: 1

背景

用之前泛癌分析https://bioinfoer.com/forum.php?mod=viewthread&tid=610&extra=page%3D1输出的基因在TCGA + GTEx的表达量TPM值(easy_input.csv文件)作为输入,用gganatogram画出感兴趣的基因在各个器官里的表达分布。

应用场景

gganatogramR包介绍:https://github.com/jespermaag/gganatogram

环境设置

#devtools::install_github("jespermaag/gganatogram")
library(gganatogram)
library(stringr)
library(gridExtra)

Sys.setenv(LANGUAGE = "en") #显示英文报错信息
options(stringsAsFactors = FALSE) #禁止chr转成factor

输入文件预处理

如果你的数据已经整理成very_easy_input.csv的格式,就可以跳过这步,进入“开始画图”。

此处以前面提到的easy_input.csv文件为例,需要把TCGA的癌症名称跟包里的organ对应上。

参照GEPIA help的Differential analysis:http://gepia.cancer-pku.cn/help.html,在此基础上添加gganatogram包的organ,整理成TCGA_organ.txt文件。

# TCGA和GTEx的tumor和normal的TPM
df <- read.csv("easy_input.csv", row.names = 1)
head(df)
df$tt <- paste(df$tissue, df$type2, sep = "_")
df.median <- aggregate(.~tt, df[,3:4], median)
df.median$TCGA <- str_split_fixed(df.median$tt, "_",2)[,1]
df.median$type <- str_split_fixed(df.median$tt, "_",2)[,2]
df.median$tt <- NULL

### 把TCGA癌症名称缩写换成gganatogram包里的organ
#根据背景知识,已整理成TCGA_organ
#Name列来源:https://cn.bing.com/translator
TCGA.organ <- read.table("TCGA_organ.txt", sep = "\t", header = T)
TCGA.organ[,c(1:2,4)]

TCGA.organ.tpm <- merge(TCGA.organ[,c(1,4)], df.median, by = "TCGA")
TCGA.organ.tpm$TCGA <- NULL
TCGA.organ.tpm <- TCGA.organ.tpm[TCGA.organ.tpm$organ != "",]
# 男人
hgMale_key_tpm <- merge(hgMale_key, TCGA.organ.tpm, by = "organ")
hgMale_key_tpm$value <- hgMale_key_tpm$tpm #替换掉原来的value
hgMale_key_tpm$tpm <- NULL
write.csv(hgMale_key_tpm,"very_easy_input_Male.csv", quote = F, row.names = F)
# 女人
hgFemale_key_tpm <- merge(hgFemale_key, TCGA.organ.tpm, by = "organ")
hgFemale_key_tpm$value <- hgFemale_key_tpm$tpm
hgFemale_key_tpm$tpm <- NULL
write.csv(hgFemale_key_tpm,"very_easy_input_Female.csv", quote = F, row.names = F)

附: 查看gganatogram包里的organ:

#男人
hgMale_key$organ
#女人
#hgFemale_key$organ
#男女差异
setdiff(hgMale_key$organ, hgFemale_key$organ)

#雄鼠
#mmMale_key$organ
#雌鼠
#mmFemale_key$organ

#细胞
#cell_key[['cell']]$organ

#支持的其他物种
names(other_key)
#以拟南芥为例查看organ
#other_key[["arabidopsis_thaliana"]]$organ

开始画图

very_easy_input.csv,organ对应的数值。

  • 第一列是组织器官名,必须跟包里的organ一致
  • 第二列color,每种organ给一种颜色
  • 第三列组织所在的系统
  • 第四列数值,可以是基因表达量,或者其他临床指标。
  • 第五列tumor和normal

其中第一列和第四列为必需

此处以人类为例,分别画男人和女人,对比tumor和normal。

还可以男女都画,然后ps成一半男一半女。

其他物种按照very_easy_input_*.csv的格式整理好数据,就可以套用了

#画女人
hgFemale_tpm <- read.csv("very_easy_input_Female.csv")
head(hgFemale_tpm)
hgFemale_tpm$type <- hgFemale_tpm$type.y #或对比不同的系统,换成type.x

#注意:
#fill里要么是color,要么是value,你自己数据的列名要跟它一致
#facet_wrap里的type,必须是type,你自己数据的列名要跟它一致
hgFemale <- gganatogram(data=hgFemale_tpm, 
                        fillOutline='white', #没有organ的位置用白色填充
                        #human、mouse或cell,其他物种拉丁名用names(other_key)查看
                        organism='human', 
                        sex='female', #性别
                        fill="value") + #还可以用color列填充
  facet_wrap(~type) + #对比tumor和normal
  #用value填充时,可以设置渐变色
  scale_fill_gradient(low = "white", high = "red") + 
  labs(fill = "Log2(TPM + 1)") + 
  coord_cartesian(ylim = c(-120, 0))+ #不画小腿,如果想画到脚,就去掉这行
  theme_void() #不画坐标轴

hgFemale

#画男人
hgMale_tpm <- read.csv("very_easy_input_Male.csv")
head(hgMale_tpm)
hgMale_tpm$type <- hgMale_tpm$type.y
hgMale <- gganatogram(data=hgMale_tpm, fillOutline='white', organism='human', sex='male', fill="value") + 
  facet_wrap(~type) +
  scale_fill_gradient(low = "white", high = "green") +
  labs(fill = "Log2(TPM + 1)") + 
  coord_cartesian(ylim = c(-120, 0)) +
  theme_void()

hgMale

#组图并保存到pdf文件
pdf("gganatogram.pdf")
grid.arrange(hgFemale, hgMale, ncol=1)
dev.off()

上图有些组织被盖住了,分开画更清晰。

hgFemale_tpm$type <- hgFemale_tpm$type.x #换成type.x
gganatogram(data=hgFemale_tpm, 
            fillOutline='white',
            organism='human', 
            sex='female', 
            fill="color") + #用color列的颜色填充
  facet_wrap(~type) + 
  theme_void()

收藏回复 显示全部楼层 道具 举报

发表于 前天 22:18

文中所用数据可以关注公众号“生信喵实验柴”

发送关键词“20250507”获取

回复 显示全部楼层 道具 举报

您需要登录后才可以回帖 登录 | 立即注册

QQ|Archiver|手机版|小黑屋|bioinfoer ( 萌ICP备20244422号 )

GMT+8, 2025-11-22 01:22 , Processed in 0.070177 second(s), 34 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表