当我在位置权重矩阵的某些位置有内容时,这是什么意思?
我正在使用seqLogo包。用于绘制seqLogo:
library(seqLogo)
seqLogo(weight_matrix, ic.scale=TRUE, xaxis=TRUE, yaxis=TRUE, xfontsize=15, yfontsize=15)
我有:
seqLogo中的错误(weight_matrix,ic.scale = TRUE,xaxis = TRUE,yaxis = TRUE,:PWM列必须加起来
答案 0 :(得分:1)
从错误来看很明显,列总和必须等于1.因为它是概率的总和,它不能超过1.参见示例:
以下工作正常,使用 seqLogo 包中的示例 m 矩阵:
library(seqLogo)
# get example matrix
mFile <- system.file("Exfiles/pwm1", package="seqLogo")
m <- read.table(mFile)
# check if all columns have sum of 1
colSums(m)
# V1 V2 V3 V4 V5 V6 V7 V8
# 1 1 1 1 1 1 1 1
# plot, all great!
seqLogo(m)
现在,让我们更改其中一个值,以便列总和大于1.这会给我们带来错误。
m[1, 1] <- 1
# check if all columns have sum of 1
# V1 V2 V3 V4 V5 V6 V7 V8
# 2 1 1 1 1 1 1 1
seqLogo(m)
# Error in seqLogo(m) : Columns of PWM must add up to 1.0
其他原因可能是已记录的矩阵值。如果他们然后使用以下方法将它们转换回概率:
plotMatrix <- 2 ^ weight_matrix * 0.25
然后绘图:
seqLogo(plotMatrix)