转录组单细胞组联合分析相关性图

1. 相关性散点图展示

d3fdd706c6cf8c2f4ea2d390ecb3bbc.png

2. 代码块

options(warn = -1)
RNA = read.table('./细胞A/RNA.txt',header =T,sep = '\t')
RNA =RNA[,-4]
RNA1 <- RNA[!duplicated(RNA$gene_symbol),]
rownames(RNA1) <- RNA1[,1]
RNA1 <- RNA1[,-1]
RNA2 = RNA1[,c(4:7,1:3)]
RNA3 <- log(RNA2+1)
#dat1 = RNA2
#dat1<-dat1[!apply(dat1,1,function(x){sum(floor(x)==0)>1}),]
library(limma)
group <- c(rep("young",4),rep("aged",3)) 
group <- factor(group)
design <- model.matrix(~0 + group)
colnames(design) <- levels(group)
contrast.matrix <- makeContrasts(aged - young,  
                                levels=design)
contrast.matrix
fit <- lmFit(RNA3,design)
fit2 <- contrasts.fit(fit, contrast.matrix) 
fit2 <- eBayes(fit2)
allDiff1=topTable(fit2,adjust='fdr',coef=1,number=Inf) 
allDiff = na.omit(allDiff1)
write.csv(allDiff, file = "young_vs_aged_rna.csv" )
allDiff = allDiff %>% tibble::rownames_to_column('id')
table(allDiff$adj.P.Val> 0.05)
### 分泌蛋白差异分析

pro = read.table('./细胞A/sepro.txt',header =T,sep = '\t')
pro1 <- pro[!duplicated(pro$Gene.name),]
rownames(pro1) <- pro1[,1]
pro1 <- pro1[,-1]
pro1 = pro1[,c(4:6,1:3)]
head(pro1)
pro1 <- log(pro1+1)
head(pro1)
pro1 = na.omit(pro1)
library(limma)
group <- c(rep("young",3),rep("aged",3)) 
group <- factor(group)
design <- model.matrix(~0 + group)
colnames(design) <- levels(group)
contrast.matrix <- makeContrasts(aged - young,  
                                 levels=design)
contrast.matrix
fit <- lmFit(pro1,design)
fit2 <- contrasts.fit(fit, contrast.matrix) 
fit2 <- eBayes(fit2)
allDiff1=topTable(fit2,adjust='fdr',coef=1,number=Inf) 
limma.na <- na.omit(allDiff1)
write.csv(limma.na, file = "young_vs_aged_pro.csv" )
library(tibble)
limma.na = limma.na %>% tibble::rownames_to_column('id')
head(limma.na,2)
combine= merge(allDiff,limma.na,
by.x="id",
by.y="id",
suffixes = c("_RNA","_Protein") ,
all.x=FALSE,
all.y=FALSE)
dim(combine)
write.csv(combine,"RNA_protein3.csv",row.names=FALSE)
library(dplyr)
library(ggplot2)
library(ggrepel)
colnames(combine)
data <- data.frame(combine[c(1,2,6,8,12)])
tail(data)
data1 = data %>% 
mutate(part = case_when(
    logFC_RNA > 0  & adj.P.Val_RNA < 0.05 & adj.P.Val_Protein < 0.05 & logFC_Protein > 0  ~ "mRNA and Protein enriched in Aged",
    logFC_RNA < 0 & logFC_Protein < 0 & adj.P.Val_RNA < 0.05 & adj.P.Val_Protein < 0.05 ~ "mRNA and Protein enriched in Young",
    adj.P.Val_Protein  > 0.05 | data$adj.P.Val_RNA > 0.05  ~ ' No sig(p.adj > 0.05)' ,
    TRUE ~  'mRNA and protein with opposite exprssion '))
table(data1$part)
mycolor <- c("#8B0000","#191970","black","gray80")
cor = round(cor(data$logFC_RNA,data$logFC_Protein,method = 'spearman'),2)
lab = paste('Spearman','\n',"correlation=",cor,sep="", '\n', 'p-value < 2.2e-16')
cor.test(data$logFC_RNA,data$logFC_Protein,method = 'spearman')
data1$part = factor(data1$part,levels= c("mRNA and Protein enriched in Aged",
                                     "mRNA and Protein enriched in Young",
                                     'mRNA and protein with opposite exprssion ',
                                     ' No sig(p.adj > 0.05)'))
p1 = ggplot(data1,aes(logFC_Protein,logFC_RNA,color=part))+
geom_point(size=2)+
    scale_colour_manual(name="",values=alpha(mycolor,0.7))+
geom_hline(yintercept = c(0),
size = 0.5,
color = "grey40",
lty = "solid")+
geom_vline(xintercept = c(0),
size = 0.5,
color = "grey40",
lty = "solid")
reg<-lm(formula = logFC_Protein ~ logFC_RNA,
   data=data1)                      
#get intercept and slope value
coeff<-coefficients(reg)          
intercept<-coeff[1]
slope<- coeff[2]
p1
library(dplyr) # 用于数据处理
top_5 <- bind_rows(   
  data1 %>%
    filter(part == 'mRNA and Protein enriched in Aged') %>%
    arrange(adj.P.Val_RNA, desc(logFC_RNA)) %>%
    head(5),
  data1 %>%
    filter(part == 'mRNA and Protein enriched in Young') %>%
    arrange(adj.P.Val_RNA, desc(logFC_RNA)) %>%
    head(5)
)
diy = data1 %>% filter(id %in% c('Vcan')) 
plog  = rbind(top_5,diy)
p1+
  geom_label_repel(data = plog,
                   aes(label = id),
                   box.padding = unit(0.5, "lines"),
        point.padding = unit(0.8, "lines"), segment.color = "black", show.legend = FALSE) +
theme_bw()+
theme(legend.position = c(.3,.9)) + 
xlab('Cell Proteome Level\nLog2Fold Change(Aged/Young)')+
ylab('Cell RNA Level\nLog2Fold Change(Aged/Young)')+
theme(text = element_text(size = 13)) +
#ggtitle("Log2 fold change: Young vs Aged") +
theme(plot.title = element_text(hjust = 0.5))+
geom_abline(intercept = intercept, slope = slope, color="grey", 
               linetype="solid", size=0.5)+
theme(legend.background=element_rect(fill=rgb(1,1,1,alpha=0.001),colour=NA))+
annotate("text", x=2, y=-3, label=lab, color = "black")
#geom_text(x = 2, y = -3, label = lab,color = 'black',family = 'sans')
ggsave('A-cell.pdf')
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容