--- a +++ b/Cox_DCAP.R @@ -0,0 +1,71 @@ +library("xgboost") +library("ipred") +library("survival") +library("survivalROC") +library("glmnet") +library('kernlab') +library('plyr') +library('caret') + +setwd('D:/brca') + +kx2=read.csv('data_cox2.csv',row.names= 1) +sdata=read.csv('brca_go.csv',row.names= 1) +data1=t(sdata) + +j=6 +set.seed(j) +k=10 +folds <- createFolds(as.data.frame(t(kx2)),k) +results<-matrix(nrow = k, ncol=6) +im=matrix(nrow=500,ncol=30) +eva<-matrix(nrow = nrow(kx2), ncol=k) +count=0 +for(i in 1:k){ + testset <- kx2[folds[[i]],] + trainset <- kx2[-folds[[i]],] + te_xg=data1[folds[[i]],] + tr_xg=data1[-folds[[i]],] + x=trainset[,-c(1:2)] + x=as.matrix(x) + tc=trainset$time + tc[tc==0]=0.001 + y=Surv(tc,trainset$status) + cv.fit<-cv.glmnet(x,y,family="cox",maxit=10000,alpha=0,nfold=5) + fit<-glmnet(x,y,family="cox",alpha=0) + tt=predict(fit,x,s=cv.fit$lambda.min) + x2=testset[,-c(1:2)] + x2=as.matrix(x2) + tc2=testset$time + tc2[tc2==0]=0.001 + y2=Surv(tc2,testset$status) + tt2=predict(fit,x2,s=cv.fit$lambda.min) + y_xgtr=tt; + x_xgtr=tr_xg + x_xgtr=as.matrix(x_xgtr) + x_xgte=te_xg + x_xgte=as.matrix(x_xgte) + bst <- xgboost(x_xgtr, y_xgtr, + max_depth =3, eta =0.25, nrounds =6, min_child_weight=2, + objective = "reg:linear",eval_metric = "rmse") + pred <- predict(bst, x_xgte) + eva[(count+1):(count+nrow(tt2)),1]<-tc2 + eva[(count+1):(count+nrow(tt2)),2]<-testset$status + eva[(count+1):(count+nrow(tt2)),3]=tt2 + eva[(count+1):(count+nrow(tt2)),4]=pred + count=count+nrow(tt2) + +} + +tc3=eva[,1] +st3=eva[,2] +rk3=eva[,3] +rk4=eva[,4] + +y3=Surv(tc3,st3) +ci_Cox=survConcordance(formula = y3~ rk3) +ci_Cox$concordance +ci_XGB=survConcordance(formula = y3~ rk4) +ci_XGB$concordance + +