# Eric Minikel # CureFFI.org # 2013-06-11 # R script to make timepoint-delay plots from in vivo survival data # read the entire table rawdata = read.table('experiments.tab',header=TRUE,quote='',comment.char='',sep='\t') # i.c. survival only examples data = subset(rawdata, infection_route == 'i.c.' & endpoint == 'survival') # create timepoints data$timepoint = 0 data$timepoint = data$treatment_started_dpi / data$control_days_to_endpoint # create symbols data$pch = 19 data$pch[data$animal_model_name!=''] = 3 main = 'subset of prion therapeutics tested in vivo' plot(data$timepoint,data$delay,pch=data$pch,xlim=c(-.2,1),ylim=c(-.5,2),xaxt='n',yaxt='n',xlab=expression(bold('timepoint')),ylab=expression(bold('delay')),main=main) text(data$timepoint,data$delay,labels=data$compound,cex=.5,pos=4) abline(h=0) axis(side=1,at=c(0,1),labels=c('i.c. infection','terminal illness'),padj=1) axis(side=1,at=seq(-.2,1,.2),labels=format(seq(-.2,1,.2),nsmall=2),padj=-.5) axis(side=2,at=c(-.5,0,.5,1,1.5),labels=c('-50%','0%','50%','100%','150%')) legend('topleft',c('Tg animals','WT animals'),pch=c(3,19)) text(x=.91,y=1.9,labels='*Where we want to be*',pos=2,col='red',cex=.5) arrows(x0=.91,y0=1.9,x1=.92,y1=2,length=.1,col='red') # include all survival experiments data = subset(rawdata, endpoint == 'survival') # create timepoints data$timepoint = 0 data$timepoint = data$treatment_started_dpi / data$control_days_to_endpoint peripheral = data$infection_route %in% c('i.p.','s.c.','i.m.','oral') data$timepoint[peripheral] = data$timepoint[peripheral]*2 - 1 # I know, it's # create symbols data$pch = 19 data$pch[data$animal_model_name!=''] = 3 main = 'subset of prion therapeutics tested in vivo' plot(data$timepoint,data$delay,pch=data$pch,xlim=c(-1.2,1),ylim=c(-.5,2),xaxt='n',yaxt='n',xlab=expression(bold('timepoint')),ylab=expression(bold('delay')),main=main) text(data$timepoint,data$delay,labels=data$compound,cex=.5,pos=4) abline(h=0) axis(side=1,at=c(-1,0,1),labels=c('i.p. infection','i.c. infection','terminal illness'),padj=1) labels = format(seq(-.8-.4,1,.2),nsmall=2) axis(side=1,at=seq(-1.2,1,.2),labels=labels,padj=-.5) axis(side=2,at=c(-.5,0,.5,1,1.5),labels=c('-50%','0%','50%','100%','150%')) text(x=.91,y=1.9,labels='*Where we want to be*',pos=2,col='red',cex=.5) arrows(x0=.91,y0=1.9,x1=.92,y1=2,length=.1,col='red') # compare oral & legally available drugs only # later I'll add columns for legal & patent status, for now this code is sort of jury-rigged data = subset(rawdata, ((treatment_route == 'oral') & !(compound %in% c('cpd-B','anle138b','DPP-1')) | compound %in% c('doxycycline','tetracycline','minocycline','fluphenazine','trimipramine'))) # create timepoints data$timepoint = 0 data$timepoint = data$treatment_started_dpi / data$control_days_to_endpoint peripheral = data$infection_route %in% c('i.p.','s.c.','i.m.','oral') data$timepoint[peripheral] = data$timepoint[peripheral]*2 - 1 # create symbols data$pch = 19 data$pch[data$animal_model_name!=''] = 3 main = 'subset of legally available compounds tested via oral administration in vivo' plot(data$timepoint,data$delay,pch=data$pch,xlim=c(-1.2,1),ylim=c(-.1,.3),xaxt='n',yaxt='n',xlab=expression(bold('timepoint')),ylab=expression(bold('delay')),main=main) text(data$timepoint,data$delay,labels=data$compound,cex=.5,pos=4) abline(h=0) axis(side=1,at=c(-1,0,1),labels=c('i.p. infection','i.c. infection','terminal illness'),padj=1) axis(side=2,at=c(0,.1,.2,.3),labels=c('0%','10%','20%','30%'))