通过计算每个细胞系的生物复制对的 Pearson 相关系数来测试生物复制的质量。
A<-data.frame(A1=rnorm(100), A2=rnorm(100),
A3=rnorm(100), B1=rnorm(100),
B2=rnorm(100))
某些数据案例有两个重复数据,而其他数据是三个重复数据且不包含缺失值。如何获得这样的图来比较重复?
通过计算每个细胞系的生物复制对的 Pearson 相关系数来测试生物复制的质量。
A<-data.frame(A1=rnorm(100), A2=rnorm(100),
A3=rnorm(100), B1=rnorm(100),
B2=rnorm(100))
某些数据案例有两个重复数据,而其他数据是三个重复数据且不包含缺失值。如何获得这样的图来比较重复?
这是一种可能的方法。不过,可能有一种更简洁的方法可以做到这一点。
首先,找出哪些列是哪些列的复制品。
fullnames<-colnames(A)
basenames<-substr(fullnames,1,nchar(fullnames)-1)
repnum<-as.integer(substr(fullnames,nchar(fullnames),nchar(fullnames)))
现在计算相关矩阵,并提取您需要的数据:
ca<-cor(A)
corMask<-upper.tri(ca) & basenames[col(ca)]==basenames[row(ca)]
corSub<-ca[corMask]
nameSub<-basenames[row(ca)[corMask]]
repnumSub<-apply(cbind(repnum[row(ca[corMask]],repnum[col(ca[corMask]]),1,paste,collapse="-")
然后画出情节:
require(ggplot2)
plotdata<-data.frame(name=nameSub,cor=corSub,replicas=repnumSub)
ggplot(plotdata,aes(x=name,y=cor,pch=replicas))+geom_point()
这是它的样子,具有以下示例数据集:
set.seed(123)
A<-data.frame(A1=rnorm(100), A2=rnorm(100),A3=rnorm(100),
B1=rnorm(100),B2=rnorm(100),
C1=rnorm(100),C2=rnorm(100),C3=rnorm(100))
然后,您可以添加颜色或更改绘图限制等,使其看起来像您想要的那样。
我建议更好的表示方法是使用热图。热图可视化重复之间的相关性。因此,来自同一批次的复制品将显示出比其他细胞系更高的相关性。因此,最终您会在热图中的单元格的对角线上看到接近 1.0 的值。热图还显示来自不同细胞系的重复之间的相关性较差。要执行这样的绘图功能,您可以使用heatmap.2
{gplot} 包。