- 位置权重矩阵中的内容

时间:2018-02-21 16:12:48

标签: r bioinformatics bioconductor

当我在位置权重矩阵的某些位置有内容时,这是什么意思?

我正在使用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列必须加起来

1 个答案:

答案 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)