library(ggplot2)
library(ggridges)

topMuts=filter(varData,AD>0)%>%
  subset(!is.na(Symbol))%>%
    group_by(Symbol)%>%
    summarize(nSamps=n_distinct(individualID))%>%
    filter(nSamps>1)%>%
    dplyr::select(Symbol)%>%
  subset(Symbol!="")

topMuts<-union("TP53",topMuts$Symbol)

other.cols<-c('Sample','Age','Sex','MicroTissueQuality','Location','Size','Clinical.Status')

other.samps<-unique(varData$specimenID)
norms<-grep('normal',other.samps)
tums<-grep('tumor',other.samps)
other.samps<-other.samps[-c(norms,tums)]

  vd<-varData%>%
    subset(specimenID%in%other.samps)%>%
    mutate(AD=as.numeric(AD))%>%
    filter(Symbol%in%topMuts)%>%
    #mutate(AD=as.numeric(AD))%>%
   # tidyr::separate(specimenID,into=c('patient','sample'),sep='_',fill="right")%>%
    #filter(sample!='patient')%>%
    dplyr::select(-c(synid,specimenID,other.cols))%>%
    tidyr::pivot_wider(names_from=individualID,values_from=AD,values_fn=list(AD=mean),
                       values_fill=list(AD=0.0))%>%
    tidyr::pivot_longer(-Symbol,names_to="individualID",values_to="AD")%>%
    subset(!is.na(AD))

drug.gene.cors<-vd%>%
  drugMutationsCor(pat.drug=pat.drug,.)

##now get topMuts again
updatedMuts<-drug.gene.cors%>%
  subset(AD>0)%>%
  group_by(Symbol)%>%
  summarize(numPats=n_distinct(individualID))%>%
  filter(numPats>2)%>%
  ungroup()%>%
  dplyr::select(Symbol)%>%
  distinct()

ggplot(drug.gene.cors,aes(x=corVal))+geom_density_ridges(aes(fill=Metric,y=drug,alpha=0.8))+scale_fill_viridis_d()

indivPlots<-drug.gene.cors%>%
  subset(Metric=='AUC')%>%
  filter(Symbol%in%updatedMuts$Symbol)%>%
  plotTumorGrowthCorrelations(minCor=0.8)

cowplot::plot_grid(plotlist=indivPlots)
ggsave('allMUtCors.pdf',width=12,height=12)

Now that we have the correlation values, which gene mutations are correlated with which drugs?

library(pheatmap)
p.order<-pat.drug%>%subset(drug=='everolimus')%>%
  arrange(TGI)%>%
  dplyr::select(individualID)

tgi<-pat.drug%>%
  dplyr::select(drug,individualID,TGI)%>%
  tidyr::pivot_wider(values_from='TGI',names_from='drug')%>%
  tibble::column_to_rownames('individualID')
auc<-pat.drug%>%dplyr::select(drug,individualID,AUC)%>%tidyr::pivot_wider(values_from='AUC',names_from='drug',values_fill=list(AUC=0.0))%>%tibble::column_to_rownames('individualID')

mmat<-drug.gene.cors%>%
  filter(abs(corVal)>0.8)%>%
  ungroup()%>%
  dplyr::select(Symbol,AD,individualID)%>%distinct()%>%
  tidyr::pivot_wider(names_from=individualID,values_from=AD,values_fill=list(AD=0.0))%>%
  tibble::column_to_rownames('Symbol')
p.order<-intersect(p.order$individualID,colnames(mmat))
pheatmap(log(0.01+mmat[,p.order]),cluster_cols=FALSE,annotation_col=auc,clustering_method='ward.D2',filename = 'correlatedMuts.pdf')


sgosline/mpnstXenoModeling documentation built on Dec. 10, 2022, 8:33 a.m.