Pregunta

Hola a todos,

Estaba intentando cargar una cierta cantidad de archivos CEL de Affymetrix, con el comando estándar BioConductor (R 2.8.1 en Linux de 64 bits, 72 GB de RAM)

abatch<-ReadAffy()

Pero sigo recibiendo este mensaje:

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

¿Cuál es el significado general de este error allocMatrix? ¿Hay alguna forma de aumentar su tamaño máximo?

Gracias

¿Fue útil?

Solución

El problema es que todas las funciones principales usan INTs en lugar de LONGs para generar objetos R. Por ejemplo, su mensaje de error proviene de array.c en / src / main

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

donde nr y nc son números enteros generados anteriormente, que representan el número de filas y columnas de su matriz:

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

Entonces, para acortarlo, todo en el código fuente debe cambiarse a LONG, posiblemente no solo en array.c sino en la mayoría de las funciones principales, y eso requeriría una reescritura. Perdón por no ser más útil, pero supongo que esta es la única solución. Alternativamente, puede esperar R 3.x el próximo año, y esperamos que implementen esto ...

Otros consejos

Si está intentando trabajar en grandes conjuntos de datos affymetrix, es posible que tenga más suerte usando paquetes de aroma.affymetrix .

Además, el bioconductor es (particularmente) un proyecto de rápido movimiento y, por lo general, se le pedirá que actualice a la última versión de R para obtener un "soporte" continuo. (Ayuda en la lista de correo de BioC). Veo que Thrawn también menciona que tiene un problema similar con R 2.10, pero igual podría pensar en actualizar de todos modos.

Me topé con este hilo por casualidad. No, el marco aroma. * No está limitado por la limitación allocMatrix () de ints y longs, ya que no aborda los datos utilizando solo el espacio de direcciones regular, sino que también los subconjuntos a través del sistema de archivos. Nunca retiene y nunca carga el conjunto de datos completo en la memoria en ningún momento. Básicamente, el sistema de archivos establece el límite, no la RAM ni el espacio de direcciones de su sistema operativo.

/ Henrik (autor del aroma. *)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top