R ошибка allocMatrix - PullRequest
       13

R ошибка allocMatrix

3 голосов
/ 30 ноября 2009

Привет всем,

Я пытался загрузить определенное количество файлов Affymetrix CEL, используя стандартную команду BioConductor (R 2.8.1 на 64-разрядной ОС Linux, 72 ГБ ОЗУ)

abatch<-ReadAffy()

Но я продолжаю получать это сообщение:

Error in read.affybatch(filenames = l$filenames, phenoData = l$phenoData,  : 
  allocMatrix: too many elements specified

Каков общий смысл этой ошибки allocMatrix? Есть ли способ увеличить его максимальный размер?

Спасибо

Ответы [ 3 ]

5 голосов
/ 01 декабря 2009

Проблема в том, что все основные функции используют INT вместо LONG для генерации R объектов. Например, ваше сообщение об ошибке приходит из array.c в / src / main

if ((double)nr * (double)nc > INT_MAX)
    error(_("too many elements specified"));

где nr и nc - сгенерированные ранее целые числа, обозначающие количество строк и столбцов вашей матрицы:

nr = asInteger(snr);
nc = asInteger(snc);

Итак, чтобы сократить это, все в исходном коде должно быть изменено на LONG, возможно, не только в array.c, но и в большинстве основных функций, и это потребует некоторого переписывания. Извините, что не помогал, но я думаю, что это единственное решение. В качестве альтернативы вы можете подождать R 3.x в следующем году, и, надеюсь, они реализуют это ...

1 голос
/ 11 января 2010

Я наткнулся на эту тему случайно. Нет, фреймворк aroma. * Не ограничивается ограничением allocMatrix () в типах ints и long, потому что он не обращается к данным, используя только обычное адресное пространство - вместо этого он также поднастраивает через файловую систему. Он никогда не хранится и никогда не загружает полный набор данных в память в любое время. По сути, файловая система устанавливает ограничение, а не объем оперативной памяти и адресного пространства вашей ОС.

/ Henrik (автор аромата. *)

1 голос
/ 30 ноября 2009

Если вы пытаетесь работать с огромными наборами данных affymetrix, вам может повезти, если вы используете пакеты из aroma.affymetrix .

Кроме того, bioconductor - это (особенно) быстро развивающийся проект, и вам, как правило, предлагается обновить его до последней версии R, чтобы получить дальнейшую «поддержку» (помощь в списке рассылки BioC). Я вижу, что Траун также упоминает о наличии аналогичной проблемы с R 2.10, но вы все равно можете подумать об обновлении.

...