R error allocMatrix

Всем привет,

Я пытался загрузить определенное количество файлов 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 ответа

Решение

Проблема в том, что все основные функции используют 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 в следующем году, и, надеюсь, они это реализуют...

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

Хенрик (автор аромата.*)

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

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

Другие вопросы по тегам