-Inf содержание в матрице веса позиции

Что это означает, когда у меня есть содержимое -Inf в некоторых позициях матрицы весов позиций?

Я использую пакет seqLogo. Для построения seqLogo:

library(seqLogo)

seqLogo(weight_matrix, ic.scale=TRUE, xaxis=TRUE, yaxis=TRUE, xfontsize=15, yfontsize=15)

и я имею:

Ошибка в seqLogo(weight_matrix, ic.scale = TRUE, ось x = TRUE, ось y = TRUE,: сумма столбцов PWM должна составлять 1,0


person JJJ    schedule 21.02.2018    source источник
comment
Я загружаю набор данных ядерных оснований в R и хочу создать матрицу частоты позиций и матрицу весов позиций. Проблема в том, что в позициях матрицы частот, где у меня стоит 0, в ШИМ у меня -Inf. Я также хочу сделать seqLogo, поэтому -Inf мешает мне это сделать?   -  person JJJ    schedule 21.02.2018
comment
Поскольку log2(0/0.25) равно -Inf, дополнительную информацию см. в Википедии.   -  person zx8754    schedule 21.02.2018
comment
Мешает ли параметр -Inf создавать seqLogo? Потому что я получил ошибку, и мне интересно, является ли причиной -Inf.   -  person JJJ    schedule 21.02.2018
comment
Из ошибки видно, что сумма столбца должна быть равна 1, так как сумма вероятностей не может быть больше 1.   -  person zx8754    schedule 21.02.2018
comment
См.: Принятие ответов: как это работает?.   -  person zx8754    schedule 28.02.2018


Ответы (1)


Из ошибки видно, что сумма столбца должна быть равна 1. Так как это сумма вероятностей, которая не может быть больше 1. См. пример:

Ниже работает нормально, используя пример матрицы m из пакета seqLogo:

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)
person zx8754    schedule 21.02.2018