TCGA癌症成对样品分析(待补充)

################################################################################
# 1. TCGA 表达数据与导入
## https://xenabrowser.net/ 首先从xena上选好癌症类型,下载表达数据, download as "expr.tsv", 去除无表达值的样品
################################################################################

rm(list = ls())
library (stringr)
library (tidyverse)

## 读取表达信息
expr <- read.table("expr.tsv",header = T, stringsAsFactors = F, quote = "",check.names = F)

##查看数据结构
expr[1:3,1:4]

## 查看肿瘤、正常样品: FALSE=Normal, TRUE=Tumor
table(str_sub(expr$sample,14,15)<10)

################################################################################
# 2. 从TCGA表达矩阵里拆出配对样本
################################################################################
##配对样本的共同点是病人ID(前12位)一致,根据这个来匹配即可。

##先拆分成tumor和normal两个矩阵,根据ID的14和15位来拆, 14-15>10: Normal, 414-15<=10: Tumor 
expr_nor = expr[str_sub(expr$sample,14,15) > 10,]
expr_tum = expr[str_sub(expr$sample,14,15)<=10,]

## 有normal样本的病人的ID,是normal组样本ID的前12位,也是expr_nor的行名。

## 然后将tumor矩阵中与patient相匹配的样本名选出来,能匹配到的就会被挑出来。%in% or match 都是R语言里的神技能:match 更好,排序一致。
k<- match(str_sub(expr_nor$sample,1,12),str_sub(expr_tum$sample,1,12))
expr_tum_paired <- expr_tum[k,]

##可以把表达矩阵拼回去:
expr_paired <- rbind(expr_nor,expr_tum_paired)
expr_paired$Type <-ifelse(str_sub(expr_paired$sample,14,15) > 10, "Normal", "Tumor")

#dim(expr_paired)
save(expr_paired,file="expr_paired.Rdata")

################################################################################
# 3. 成对样本表达差异分析:ggpaired 函数
################################################################################

## 3.1 单基因分析
rm(list = ls())
load("expr_paired.Rdata")

library(ggpubr)
library(ggstatsplot)
library(ggsci)
gene="YTHDF1" ## 选择要查看的基因
ggpaired(expr_paired, x="Type", y=gene, color = "Type", line.color = "lightblue", point.size = 1.5,
         font.label = list(size = 16, color = "black"),
         ggtheme=theme_bw(),repel = TRUE,
         Tile=gene,
         ylab= "Expression(Log2(nCount+1))",
         xlab=" Tissue Type",
         line.size = 0.5, palette = "aaas")+ stat_compare_means(paired = TRUE)

ggsave(file=paste0(gene,".png"),width = 300,height = 450)

## 3.2 多基因批量基因分析、组图

library(ggplotify)

p=list()

gene_nb <- length(colnames(expr_paired))-2
for ( i in 1:gene_nb){
  gene<-colnames(expr_paired)[i+1]
  p[[i]] <-ggpaired(expr_paired, x="Type", y=gene, color = "Type", 
                    line.color = "lightblue", point.size = 1.5,
                    font.label = list(size = 16, color = "black"),
                    ggtheme=theme_bw(), repel = TRUE,
                    title=gene,
                    ylab= "Expression(Log2(nCount+1))",
                    xlab=" Tissue Type",
                    line.size = 0.5, palette = "aaas")
    + stat_compare_means(paired = TRUE)
  ggsave( p[[i]], file=paste0(gene,".png"),width = 300,height = 450)
  
}

### 组图
cowplot::plot_grid(plotlist = p,
                   labels =LETTERS[1:gene_nb],
                   ncol=2)

## 3.3 单基因多癌症种-成对分析(待补充)
### 同上下载不同癌症的成对样品所有基因的表达数据,整理好数据
### 批量做图、组图

你可能感兴趣的:(TCGA癌症成对样品分析(待补充))