2016-06-29 34 views
0

Ich versuche, die mclust Methode auf eine .FCS Format-Datei zu verwenden (die ein Durchflusszytometrie-Format-Datei ist) und wir lesen Sie diese Datei in R als flowFrame-Objekt.kein Verfahren zur Nötigung dieser S4 Klasse auf einen Vektor für die Nutzung von mclust

install.packages("openCyto") # since the old version sefaulted my R session 
library(openCyto) 
library( flowCore) 
library( mclust) 

trial1=read.FCS("export_Alcina TregMAIT_AV 10-1974 P1_CD4.fcs") 
a=as.matrix(trial1) 

Anmerkung der Redaktion: einige dieser Bioconductor Pakete sind und Sie sollten für die Umwelt nach den Hilfeseiten installieren.

jedoch mclust akzeptiert nicht die .fcs Datei als Matrix & ich versuchte, es zu einer Matrix mit der Funktion as.matrix, und ich erhalte diesen Fehler zu konvertieren:

Error in as.vector(data) : 
    no method for coercing this S4 class to a vector 

I‘ Ich habe ähnliche Fragen gefunden, wo sie erklären, dass Sie importMethodsFrom(S4Vectors,as.matrix) in den NAMESPACE von mclust hinzufügen müssen, was ich tat. Ich habe auch importMethodsFrom(BiocGenerics,as.vector) im NAMESPACE von mclust. Ich bin jedoch immer noch nicht in der Lage, mclust zu verwenden.

P.S. Jeder Rat oder jede Lesung wäre willkommen!

Wenn jemand andere Clustering-Methoden, die GMM-Modell verwenden, die .FCS-Format ohne Konvertierung akzeptieren könnte, würde ich mich sehr freuen.

+0

Sie müssen einen Zeiger auf einen Speicherort für ein Beispiel einer .FCS-Datei angeben und anzeigen, welche Methoden verwendet wurden, um sie in den R-Arbeitsbereich zu bringen. Vermutlich haben Sie eine Bibliothek oder Bibliotheken geladen und Code ausgeführt, diese jedoch noch nicht implementiert. Bearbeiten Sie Ihre Frage, um sie aufzunehmen. –

+0

Hallo, ich habe die read.FCS-Funktion des flowCore-Pakets verwendet, um es zu öffnen. Bring es in R. Die .fcs-Datei war bereits im Arbeitsverzeichnis, tu einfach: trial1 = read.FCS ("export_Alcina TregMAIT_AV 10-1974 P1_CD4.fcs "). try1 = read.FCS ("export_Alcina TregMAIT_AV 10-1974 P1_CD4.fcs") a = as.matrix (trial1) Ich habe die Bibliotheken openCyto, flowCore, mclust ausgeführt. – Anara

Antwort

0

Ich habe Ihre Frage bearbeitet, um zu zeigen, was Sie ursprünglich getan haben sollten und auch nicht später (anstatt Code in einen Kommentar einzugeben, sollten Sie geantwortet haben, indem Sie die Frage wie vorgeschlagen bearbeiten.) Meine Antwort basiert auf dem ersten Beispiel in flowCore::read.FCS (da Sie auch keinen Zeiger auf das Dataset, das Sie von der Festplatte geladen haben, enthalten), also statt "trial1" werde ich auf das Objekt "samp" verweisen, das ich diesen Code ausführen.

Die „samp“ Objekt gibt nun diese von class und str:

> class(samp) 
[1] "flowFrame" 
attr(,"package") 
[1] "flowCore" 
str(samp) 
Formal class 'flowFrame' [package "flowCore"] with 3 slots 
    [email protected] exprs  : num [1:10000, 1:8] 382 628 1023 373 1023 ... 
    .. ..- attr(*, "dimnames")=List of 2 
    .. .. ..$ : NULL 
    .. .. ..$ : Named chr [1:8] "FSC-H" "SSC-H" "FL1-H" "FL2-H" ... 
    .. .. .. ..- attr(*, "names")= chr [1:8] "$P1N" "$P2N" "$P3N" "$P4N" ... 
    .. ..- attr(*, "ranges")= num [1:8] 1023 1023 10000 10000 10000 ... 
    [email protected] parameters :Formal class 'AnnotatedDataFrame' [package "Biobase"] with 4 slots 
    .. .. [email protected] varMetadata  :'data.frame': 5 obs. of 1 variable: 
    .. .. .. ..$ labelDescription: chr [1:5] "Name of Parameter" "Description of Parameter" "Range of Parameter" "Minimum Parameter Value after Transforamtion" ... 
    .. .. [email protected] data    :'data.frame': 8 obs. of 5 variables: 
    .. .. .. ..$ name :Class 'AsIs' Named chr [1:8] "FSC-H" "SSC-H" "FL1-H" "FL2-H" ... 
    .. .. .. .. .. ..- attr(*, "names")= chr [1:8] "$P1N" "$P2N" "$P3N" "$P4N" ... 
    .. .. .. ..$ desc :Class 'AsIs' Named chr [1:8] "FSC-H" "SSC-H" NA NA ... 
    .. .. .. .. .. ..- attr(*, "names")= chr [1:8] "$P1S" "$P2S" "$P3S" "$P4S" ... 
    .. .. .. ..$ range : num [1:8] 1024 1024 1024 1024 1024 ... 
    .. .. .. ..$ minRange: num [1:8] 0 0 1 1 1 0 1 0 
    .. .. .. ..$ maxRange: num [1:8] 1023 1023 10000 10000 10000 ... 
    .. .. [email protected] dimLabels  : chr [1:2] "rowNames" "columnNames" 
    .. .. [email protected] .__classVersion__:Formal class 'Versions' [package "Biobase"] with 1 slot 
    .. .. .. .. [email protected] .Data:List of 1 
    .. .. .. .. .. ..$ : int [1:3] 1 1 0 
    [email protected] description:List of 164 
    .. ..$ FCSversion    : chr "2" 
    .. ..$ $BYTEORD     : chr "4,3,2,1" 
    .. ..$ $DATATYPE     : chr "F" 
    #----- output truncated ----------- 

So „samp“ ist kein rechteckige Gegenstände in irgendeinem Sinne, sondern eine komplexe Liste mit vielen der zugehörigen Informationen in Attributen . Meine Vermutung ist, dass Sie die Informationen in der @ exprs Knoten, die ist eine Matrix wollen.

Eine weitere Schwierigkeit besteht darin, dass es keine Funktion mclust im mclust Paket Mamed ist, obwohl bei ?mclust suchen wir ein Beispiel sehen Sie die Verwendung einer Mclust Funktion zu demonstrieren. R ist unnachgiebig in seinem Beharren auf korrekte Großschreibung von Funktionsnamen.