Ich erhalte Microarray-Daten von NCBI mit der getgeodata()
Methode. Dies liefert eine Struktur, mit einem Feld Daten, die eine DataMatrix ist, wobei jede Spalte eine andere Probe darstellt und Zeilen die Sonden darstellen. Aus irgendeinem Grund, jede Zelle in der Data Matrix ist selbst ein Data Matrix 1x1 und so, wenn ich versuche, wie etwas zu tun:Abflachung einer DataMatrix von DataMatrices
am_accession = getgeodata('GSE2034')
am_data_adj = rmabackadj(am_accession.Data)
Matlab führt den Fehler:
Error using rmabackadj (line 80) Probe intensity values must be numeric and real.
Ich glaube, ich muss flacht die DataMatrix so ab, dass die Werte in den 1x1 DataMatrices die Werte in der größeren DataMatrix sind, aber ich bin nicht sicher, wie dies in Matlab zu erreichen ist.
Irgendeine Idee, wie man das macht (idiomatisch)?
Es ist eine interessante Datenstruktur; Ich bin nicht darüber gekommen. Sie können Dinge wie 'MyData (:, 'Spaltenname') 'oder' MyData ([1: 5], {'Spaltenname1', 'Spaltenname2'})' tun. Das ist ziemlich cool; schön zu wissen, dass das existiert. –
scheint einem R data.frame ähnlich zu sein. Die DataMatrix in einer DataMatrix ist jedoch nur komisch, auch wenn sie so gespeichert wird - sie macht die Variable Inspektionsansicht unbrauchbar. – merv
Es ist sinnvoll, wenn Sie eine Teilmenge erhalten möchten, bei der Sie immer noch die Möglichkeit haben, nach Zeilen-/Spaltennamen zu suchen (d. H. Es handelt sich um eine Teilmenge desselben Typs). Die wirkliche Schwäche ist die Unfähigkeit von matlab, Operatoren zu verketten, also müssen Sie temporäre Variablen überall zuweisen, d. H. Tun 'd = Daten (1: 10,1: 10); d.double() 'anstelle von' Data (1: 10,1: 10) .double() 'oder sogar' Data.double() (1: 10,1: 10) ' –