Frage

HALLO alle,

Ich habe versucht, eine bestimmte Menge an Affymetrix CEL-Dateien zu laden, mit dem Standard BioConductor Befehl (R 2.8.1 auf 64-Bit-Linux, 72 GB RAM)

abatch<-ReadAffy()

Aber ich bekomme immer wieder diese Meldung:

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

Was ist die allgemeine Bedeutung dieses allocMatrix Fehler entdeckt? Gibt es eine Möglichkeit die maximale Größe zu erhöhen?

Danke

War es hilfreich?

Lösung

Das Problem ist, dass alle Kernfunktionen INTs anstelle von LONGs für R Objekte zu erzeugen. Zum Beispiel Ihre Fehlermeldung kommt von Array.c in / src / main

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

wo nr und nc ganze Zahlen sind, erzeugt vor, für die Anzahl der Zeilen und Spalten der Matrix stehen:

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

Also, um es kurz zu schneiden, alles im Quellcode sollte LONG geändert werden, möglicherweise nicht nur in Array.c aber in den meisten Kernfunktionen, und das wäre etwas Neuschreiben erfordern. Sorry für die nicht mehr nützlich sein, aber ich denke, das ist die einzige Lösung ist. Alternativ können Sie für R 3.x zum nächsten Jahr warten können, und hoffentlich werden sie diese umzusetzen ...

Andere Tipps

Wenn Sie versuchen, auf riesige affymetrix Datensätze zu arbeiten, könnten Sie mehr Glück haben Pakete von aroma.affymetrix .

Auch Bioconductor ist ein (vor allem) schnell bewegendes Projekt und Sie in der Regel, um jegliche Fortsetzung „Unterstützung“ zu bekommen, um die neueste Version von R Upgrade gefragt werden (Hilfe auf der BioC Mailingliste). Ich sehe, dass Thrawn erwähnt auch ein ähnliches Problem mit R 2.10 mit, aber Sie könnten immer noch darüber nachdenken, sowieso zu aktualisieren.

ich in diesen Thread zufällig gestoßen. . Nein, das Aroma * Rahmen wird durch die allocMatrix () Begrenzung der ints und sehnt mich nicht darauf beschränkt, da es keine Daten adressiert den regelmäßigen Adressraum allein mit - anstatt es Teilmengen auch über das Dateisystem. Es hält nie und nie lädt die kompletten in den Speicher gesetzt Daten jederzeit. Grundsätzlich ist das Dateisystem setzt die Grenze, nicht den RAM noch den Adressraum von Ihnen OS.

/ Henrik (Autor von Aroma. *)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top