批量处理——两基因不同组别中的相关性展现

R

相比于网页工具,使用编程语言处理科研数据的一大优势,在于高度的定制化,以及批量处理数据的快捷性和高效性

目录
批量处理——for循环批量计算组间差异
批量处理——apply批量计算组间差异
批量处理——for循环画图
批量处理——for循环迁移文件
批量处理——基因之间的相关性
批量处理——基因与免疫细胞的相关性
批量处理——基因与免疫细胞的相关性
批量处理——两基因不同组别中的相关性

对于批量处理数据的方法,之前使用for循环和apply语句进行处理过,但是不够系统,学习果子生信课程后有一个清晰的认识,写下来,一是可以调用方便,二是自己写过之后,才能算是完全掌握。当然一切以解决问题为主,不陷于技术深究。

批量计算基因和基因之间的相关性,也是一项很好的应用。

场景

之前在批量处理——两基因不同组别中的相关性,得到了两组基因在不同组别中的相关性。具体数据样式如下:


最重要的两列数据,一个是相关性系数,一个是p值

绘图

利用ggplot2画图,将别人的代码拆解开

data$group = ifelse(data$p.value <= 0.05,ifelse(data$cor>=0,"1","2"),"3")
data$group = factor(data$group,levels = c("1","2","3"),labels = c("pos","neg","none"))

先根据p值进行分组

确定一些基本的参数

  label=c("all","none","BRCA");
  shape = 21;size=5;alpha=0.6;
  colour="black";stroke = 1.5;
  labelcolor = "black";
  box.padding = 0.6; max.overlaps = Inf;
  legend.position="top"

这个时候就可以画图了

p=ggplot(data,aes(-log10(p.value),cor ,fill = group))+
  geom_point(size=size,alpha=alpha,shape =shape,colour=colour,stroke =stroke)+
  scale_y_continuous(expand = c(0,0),limits = c(-1.1,1.1),breaks = seq(-1,1,0.2))+
  scale_x_log10(limits = c(0.01, 1000),breaks = c(0.01,0.1,10,1000))+
  geom_hline(yintercept = 0,size=1.2)+
  geom_vline(xintercept = -log10(0.05),size=1.2)+
  labs(x=bquote(-log[10]~italic("P")),y=paste0(data$method[1]," correlation (r)"))+
  theme(legend.position=legend.position)+
  theme_gpsa()
p

这一部分主要就使用了相关性系数和p值,得到这样的结果


然后加上自己需要标注的数据,这也是ggplot2的一些操作

p + geom_text_repel(data=subset(data, data$type %in% 'BRCA'),
                    aes(label= 'BRCA'),col=labelcolor,box.padding = box.padding, max.overlaps = max.overlaps)

后记:因为这一部分其实更多的是画图的功底,前面得到的数据,可以使用ggplot2函数进行绘制,这个其实是个硬功夫,需要长期的实践。了解一些基本绘图语法(例如ggplot2),大部分时候,有需求,直接搜索相关代码,轮子拿来用就好

批量处理,再加上把代码封装成函数,这个操作将会使代码变得更简洁,可读性更强。

你可能感兴趣的:(批量处理——两基因不同组别中的相关性展现)