Created r format(Sys.Date(),"%m/%d/%y")
require(immunoSeqR) require(ggplot2) require(gridExtra) require(reshape2) require(knitr) require(rmarkdown) first_run <- FALSE verbose=FALSE r <- function(){render('~/Documents/emj/ImmunoseqResults/immunoSeqR/scripts/rmd/pd1.Rmd', output_file='~/Documents/emj/ImmunoseqResults/new/pd1.pdf', intermediates_dir='~/Documents/emj/ImmunoseqResults/new/')} opts_chunk$set(warning=FALSE)
dict <- readRDS('~/Documents/emj/ImmunoseqResults/data/pd1/dict.Rds') stats <- readRDS('~/Documents/emj/ImmunoseqResults/data/pd1/stats.Rds') plot_ds <- readRDS('~/Documents/emj/ImmunoseqResults/data/pd1/plot_ds.Rds') load('~/Documents/emj/ImmunoseqResults/data/pd1/olm.Rda') sum.ds <- readRDS('~/Documents/emj/ImmunoseqResults/data/pd1/sum.ds.Rds')
\includegraphics[width=\textwidth]{/home/ahopkins/Documents/emj/figures/J14113_timeline.pdf}
The data set contains r sum.ds$nsamp
samples, of r sum.ds$ntypes
types.
There are r format(sum.ds$unique.tcr,big.mark=',')
unique TCRs, collapsed from r
format(sum.ds$total.tcr,big.mark=',')
distinct productive CDR3 sequences. This represents an
average synonymity of r round(sum.ds$avg.syn,3)
. The maximum synonymity (in the parent data
set) was r sum.ds$max.syn
(clone sequence r sum.ds$max.syn.aa
).\par
The available metadata fields in the dictionary are: r paste(names(dict)[-1],collapse=', ')
. The statistics computed are r paste(names(stats)[names(stats)!='fn'],collapse=', ')
.
\clearpage
iseqr_plot_factor(plot_ds,'Total Sequences','type') + geom_hline(yintercept=100) + scale_y_log10(breaks=c(10,100,1000,10000))
# remove low read count samples w <- which(plot_ds[,'Total Sequences']<100) plot_ds <- plot_ds[-w,] #
x_val <- 'response' #metrics <- names(stats[names(stats)!='fn'])[c(1,2,3)] metrics <- 'Clonality' types <- levels(plot_ds$type) for(b in metrics){ l <- vector('list') for(a in types[1:3]){ l[[a]] <- iseqr_plot_factor(plot_ds,b,x_val,a) } l2 <- vector('list') for(a in types[4:5]){ l2[[a]] <- iseqr_plot_factor(plot_ds,b,x_val,a) } do.call(grid.arrange,c(l,ncol=length(types))) do.call(grid.arrange,c(l2,ncol=length(types))) }
\clearpage
w <- grep('Log',names(plot_ds)) l <- vector('list') m <- vector('list') n <- vector('list') for(a in seq(length(w))){ l[[a]] <- iseqr_plot_factor(plot_ds,names(plot_ds)[w[a]],'response','POST2') + geom_hline(yintercept=0,alpha=0.1) + ggtitle('PRE to POST2') m[[a]] <- iseqr_plot_factor(plot_ds,names(plot_ds)[w[a]],'response','POST3') + geom_hline(yintercept=0,alpha=0.1) + ggtitle('PRE to POST3') n[[a]] <- iseqr_plot_factor(plot_ds,names(plot_ds)[w[a]],'response','PDACPOST') + geom_hline(yintercept=0,alpha=0.1) + ggtitle('PDACPRE to PDACPOST') } do.call(grid.arrange,c(l,ncol=length(w))) cat('\n\n') do.call(grid.arrange,c(m,ncol=length(w))) cat('\n\n') do.call(grid.arrange,c(n,ncol=length(w)))
\clearpage
\begin{center} \begin{tabular}{l l} Arm 1 & Cy + GVAX + LM + PD1 \ Arm 2 & Cy + GVAX + LM \ \end{tabular} \end{center}
x_val <- 'arm' #metrics <- names(stats[names(stats)!='fn'])[c(1,2,3)] metrics <- 'Clonality' types <- levels(plot_ds$type) for(b in metrics){ l <- vector('list') for(a in types[1:3]){ l[[a]] <- iseqr_plot_factor(plot_ds,b,x_val,a) } l2 <- vector('list') for(a in types[4:5]){ l2[[a]] <- iseqr_plot_factor(plot_ds,b,x_val,a) } do.call(grid.arrange,c(l,ncol=length(types))) do.call(grid.arrange,c(l2,ncol=length(types))) }
\clearpage
w <- grep('Log',names(plot_ds)) l <- vector('list') m <- vector('list') n <- vector('list') for(a in seq(length(w))){ l[[a]] <- iseqr_plot_factor(plot_ds,names(plot_ds)[w[a]],'arm','POST2') + geom_hline(yintercept=0,alpha=0.1) + ggtitle('PRE to POST2') m[[a]] <- iseqr_plot_factor(plot_ds,names(plot_ds)[w[a]],'arm','POST3') + geom_hline(yintercept=0,alpha=0.1) + ggtitle('PRE to POST3') n[[a]] <- iseqr_plot_factor(plot_ds,names(plot_ds)[w[a]],'arm','PDACPOST') + geom_hline(yintercept=0,alpha=0.1) + ggtitle('PDACPRE to PDACPOST') } do.call(grid.arrange,c(l,ncol=length(w))) cat('\n\n') do.call(grid.arrange,c(m,ncol=length(w))) cat('\n\n') do.call(grid.arrange,c(n,ncol=length(w)))
rownames(mm) <- paste0(dict$patient,dict$type) colnames(mm) <- rownames(mm) w <- c(which(dict$response=='NR'),which(dict$response=='R')) tdict <- dict[w,] tmm <- mm[w,w] tmm.m <- melt(tmm) g <- ggplot(tmm.m,aes(x=Var1,y=Var2)) + geom_tile(aes(fill=value)) + coord_fixed() + scale_fill_gradient(low='white',high='black',na.value='white')+ theme(axis.text=element_text(size=5,colour=tdict$response), axis.text.x=element_text(angle=90,hjust=1,vjust=0.5))+ xlab('') + ylab('') + ggtitle('Morisita Overlap') g
\clearpage
w <- grep('Number of Expanded',names(plot_ds)) g <- iseqr_plot_factor(plot_ds,names(plot_ds)[w],'response',type='POST2') + xlab('Response') f <- iseqr_plot_factor(plot_ds,names(plot_ds)[w],'arm',type='POST2') + xlab('Arm') grid.arrange(g,f,ncol=2) w <- grep('Number of Expanded',names(plot_ds)) g <- iseqr_plot_factor(plot_ds,names(plot_ds)[w],'response',type='POST3') + xlab('Response') f <- iseqr_plot_factor(plot_ds,names(plot_ds)[w],'arm',type='POST3') + xlab('Arm') grid.arrange(g,f,ncol=2)
\clearpage
x_val <- 'sex' #metrics <- names(stats[names(stats)!='fn'])[c(1,2,3)] metrics <- 'Clonality' types <- levels(plot_ds$type) for(b in metrics){ l <- vector('list') for(a in types[1:3]){ l[[a]] <- iseqr_plot_factor(plot_ds,b,x_val,a) } l2 <- vector('list') for(a in types[4:5]){ l2[[a]] <- iseqr_plot_factor(plot_ds,b,x_val,a) } do.call(grid.arrange,c(l,ncol=length(types))) do.call(grid.arrange,c(l2,ncol=length(types))) }
\clearpage
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.