2016-04-18 9 views
-1

Wenn Sie den folgenden Code ausführen, haben Sie einen Datenrahmen real.dat mit 1063 Proben für 20531 Gene. Es gibt 2 zusätzliche Spalten mit den Namen time und event, wobei time die Überlebenszeit und eventdeath im Fall von 1 und 0 im Fall von censored ist.Wie bekomme ich Cox p-Wert für jedes Gen?

lung.dat <- read.table("genomicMatrix_lung") 
lung.clin.dat <- read.delim("clinical_data_lung") 

# For clinical data, get only rows which do not have NA in column "X_EVENT" 
lung.no.na.dat <- lung.clin.dat[!is.na(lung.clin.dat$X_EVENT), ] 

# Getting the transpose of main lung cancer data 
ge <- t(lung.dat) 
# Getting a vector of all the id's in the clinical data frame without any 'NA' values 
keep <- lung.no.na.dat$sampleID 

# getting only the samples(persons) for which we have a value rather than 'NA' values 
real.dat <- ge[ge[, 1] %in% keep, ] 

# adding the 2 columns from clinical data to gene expression data 
keep_again <- real.dat[, 1] 
temp_df <- lung.no.na.dat[lung.no.na.dat$sampleID %in% keep_again, ] 

# naming the columns into our gene expression data 
col_names <- ge[1, ] 
colnames(real.dat) <- col_names 

dd <- temp_df[, c('X_TIME_TO_EVENT', 'X_EVENT')] 
real.dat <- cbind(real.dat, dd) 

# renaming the 2 new added columns 
colnames(real.dat)[colnames(real.dat) == 'X_TIME_TO_EVENT'] <- 'time' 
colnames(real.dat)[colnames(real.dat) == 'X_EVENT'] <- 'event' 

Ich möchte den univariaten Cox-Regression p-Wert für jedes Gen im obigen Datenrahmen erhalten. Wie kann ich das bekommen? Sie können die Daten von here herunterladen.

Edit: Entschuldigung, dass ich nicht genug geklärt habe. Ich habe bereits versucht, es mit der coxph Funktion aus der survival Bibliothek zu bekommen. Aber auch für ein Gen, zeigt es die folgenden Fehler -

> coxph(Surv(time, event) ~ HIF3A, real.dat) Error in fitter(X, Y, strats, offset, init, control, weights = weights, : NA/NaN/Inf in foreign function call (arg 6) In addition: Warning message: In fitter(X, Y, strats, offset, init, control, weights = weights, : Ran out of iterations and did not converge

Deshalb hat ich nicht ein kleiners reproduzierbares Beispiel vorsah.

+1

bitte Ihren Code reproduzierbar helfen zu klären - es sogar einen eingebauten Lungen Datensatz ist Sie verwenden können. wir sollten nicht zusätzliche Arbeit oder Download von Daten über 20 tausend Gene von Websites Dritter tun müssen, um Ihnen zu helfen – rawr

Antwort

1

Sie wirklich univariate Regression für jedes Gen von 20531 Genen machen ??

wild an der Struktur Ihrer Daten Erraten (so ein Dummy-Set erstellen, basierend auf den Beispielen in Hilfe), und erraten, was Sie mit dem folgende Spielzeug Beispiel zu tun versuchen .....

library("survival") 
?coxph ## to see the examples 
## create dummy data 
test <- list(time=c(4,3,1,1,2,2,3), 
      event=c(1,1,1,0,1,1,0), 
      gene1=c(0,2,1,1,1,0,0), 
      gene2=c(0,0,0,0,1,1,1)) 
## Cox PH regression 
coxph(Surv(time, event) ~ gene1, test) 
coxph(Surv(time, event) ~ gene2, test) 

Möglicherweise möchten Sie Folgendes verwenden, um CIs und weitere Informationen zu erhalten.

summary(coxph(...)) 

Hoffentlich ist, dass Code reproduzierbar genug, um Ihnen die Frage

+0

Hallo, danke für Ihre Antwort. Aber da ich meine Frage sogar für ein Gen aktualisiert habe, zeigt die 'coxph'-Funktion einen Fehler an. – nafizh

+0

Also ging es eigentlich darum, die Fehlermeldung zu interpretieren? –

+0

Hi, ja, es war, Entschuldigung für meine verwirrende Frage. Aber ich habe das Problem herausgefunden. Wie sich herausstellte, waren meine Spalten ein Faktortyp, nicht numerisch. Deshalb kamen diese Fehler. Aber Ihr Beispiel half mir zu bestätigen, dass ich die richtige Formel und die Form meines Datenrahmens richtig war. In diesem Sinne akzeptiere ich deine Antwort. Vielen Dank. – nafizh