Run DrVAEN on dataset: GSE65185


1. Dataset summary

Melanoma biopsies pre and post MAPKi treatment were sent for RNAseq analysis.

2. Get and prepare dataset

The gene expression profile can be downloaded fron the GEO website (GSE65185_CuffnormFPKM.txt.gz).

The genes will be mapped to our backend gene list that are used for drug response prediction. The full gene list is here

  #setwd("/path/to/GitHub/Figure/Figure5/GSE65185")

  cur.genes = read.table("key.genes.txt", as.is=T)
  cur.genes = cur.genes[,1]

  val.RPKM = read.table("GSE65185_CuffnormFPKM.txt", header=T, as.is=T)

  match(cur.genes, val.RPKM[,1]) -> ii
  summary(ii)

  new.RPKM = val.RPKM[ii, -1]
  apply(new.RPKM, 2, function(u){u[is.na(u)] = 0; u} ) -> raw.RPKM
  rownames(raw.RPKM) = cur.genes

  log2.raw.RPKM = log2(raw.RPKM + 1)

  write.table(format(log2.raw.RPKM, digits=4),file="GSE33072.Expr.tsv", row.names=T, quote=F, sep="\t")
              

3. Predict drug responses using DrVAEN.

Once the gene expression matrix file is genereted, we can upload the file to DrVAEN to get the predicted drug response data.

Then download the predicted responses for further analysis.

4. Further analysis: Survival analysis using the drug response data and survival data.

Here we present the example codes for the analysis.The patient survival data is available here

  library("survminer")
  library("survival")

  ##############################################################################################################
  gdsc = read.delim("GDSC.A.pred_GSE65185.txt", as.is=T)
  gsub("\\.", "-", gdsc[,1]) -> ss
  gdsc[,1] = ss
  new.GSE = gdsc[grep("baseline", gdsc[,1]),]

  pfs.dat = read.table("PFS.txt")
  paste("Pt", pfs.dat[,1],"-baseline", sep="")  -> ss
  pfs.dat[,1] = ss

  intersect(pfs.dat[,1], new.GSE[,1]) -> ss
  pfs.dat[match(ss, pfs.dat[,1]), ] -> pfs.dat
  new.GSE[match(ss, new.GSE[,1]), ] -> new.GSE
  cbind(pfs.dat, new.GSE[, "PLX.4720"]) -> new3

  Y1 = Surv(new3[,2], rep(1, nrow(new3)) )
  xvector = ifelse(new3[,3] > median(new3[,3]), "HR", "LR")
  new3[,3] = as.numeric(as.character(new3[,3]))

  coxph(Y1 ~ xvector)

  png("GDSC.png")
  dat = data.frame(cbind(OS_YEAR=new3[,2], OS=rep(1, nrow(new3)), X=xvector))
  dat[,1] = as.numeric(as.character(dat[,1]))
  fit = survfit( Surv(as.numeric(as.character(OS_YEAR)), as.numeric(OS)) ~ X, data=dat)
  g1 = ggsurvplot(fit, data=dat , risk.table = TRUE,pval = TRUE,break.time.by = 50, ggtheme = theme_minimal())
  print(g1)
  dev.off()