【问题标题】:Scatter gene expression plot microarray data散点基因表达图微阵列数据
【发布时间】:2017-03-23 19:27:33
【问题描述】:

我的问题是如何制作散点图以显示过度表达和表达不足基因的颜色。目前散点图仅显示黑色。我想在图表上用红色表示过度表达的基因,用蓝色表示表达不足的基因。我附上了散点图的快照和 .我需要代码方面的帮助。它在 R 中。此代码生成的散点图仅以黑色显示所有内容。

显示一组与另一组的散点图

dataA <- rowMeans(filtered_condensed$E[,7:9])
dataB <- rowMeans(filtered_condensed$E[,10:12])

par(family="mono")

meanX = dataA
meanY= dataB


plot(meanX, meanY, main = "Expression in OPCs vs oligodendrocyte ",
    xlab="OPCs log2 expression: group1", ylab="oligodendrocyte log2 expression: group2", cex=0.5, cex.lab= 0.9, title(cex.main=2, font.main=7))
abline(-1, 1, col='purple', lty="dashed")
abline(1, 1, col="purple", lty="dashed")

【问题讨论】:

  • 在寻求绘图帮助时,您应该提供某种形式的 reproducible example 以及示例输入数据。提供指向描述您要实现的目标的图像的链接。
  • 嗨。我不确定为什么它不起作用,但我附上了几张我的代码图片和生成的散点图。
  • 我是这个平台的新手。此刻的代码如下
  • imgur.com/a/sTkHv - 这里是代码图片和图表的链接
  • 感谢您编辑我的帖子!这是一个带有红色和蓝色基因表达的图表示例......我不确定如何更改代码以对散点图执行相同的操作。 imgur.com/a/sTkHv

标签: r plot scatter


【解决方案1】:

我将在此处添加一些示例数据进行测试:

set.seed(23)
meanX <- runif(1000)
meanY <- meanX + rnorm(1000)

由于您在不同的截距处有 1 的斜率,因此您可以通过查看 X 和 Y 值之间的差异来轻松计算在线上方和下方的斜率。然后我只是在极值之上画了彩色点

plot(meanX, meanY, main = "Expression in OPCs vs oligodendrocyte ",
    xlab="OPCs log2 expression: group1", 
    ylab="oligodendrocyte log2 expression: group2", 
    cex=0.5, cex.lab= 0.9, title(cex.main=2, font.main=7))
abline(-1, 1, col='purple', lty="dashed")
abline(1, 1, col="purple", lty="dashed")
above <- meanY-meanX > 1
points(meanX[above], meanY[above], col="red", cex=0.5)
below <- meanY-meanX < -1
points(meanX[below], meanY[below], col="blue", cex=0.5)

这会产生以下情节

【讨论】:

  • 非常感谢。我已经纠正了我的情节。目前看起来是这样的。如何更改 x 轴尺寸?我目前正在使用 xlim=c(6, 20) 并且此代码无法应用于图表。请查看图表的当前照片:imgur.com/a/sTkHv
  • 如何发布代码?是不是用''关闭代码然后贴在灰色区域下?
  • 您将xlim= 命令放在哪里?它需要在第一次调用plot()。似乎不太可能会被忽略。您不应该在 cmets 中发布代码,但您可以将文本格式化为代码,就像我在上面对 xlim 所做的那样,通过将其包围在单个反引号中。
  • plot(meanX, meanY, main = "Expression in OPCs vs oligodendrocyte ", xlab="OPCs log2 expression: group1", ylab="oligodendrocyte log2 expression: group2", cex=0.5, cex.lab= 0.9, title(cex.main=2, font.main=7), xlim=c(6, 20))这是我写代码的方式,xlim在代码的末尾,被忽略了
  • 我无法重现。如果我将xlim=c(-1,2) 放入上面的plot() 示例中,它就可以正常工作。