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, но вы все равно можете подумать об обновлении в любом случае.