## ----setup, include=FALSE----------------------------------------------------- knitr::opts_chunk$set(echo = TRUE, comment = '##', results = 'markup', warning = FALSE) ## ---- eval=FALSE-------------------------------------------------------------- # if(!requireNamespace("BiocManager", quietly = TRUE)) # install.packages("BiocManager") # BiocManager::install("retrofit") ## ---- load_library, echo = FALSE---------------------------------------------- library(retrofit) ## ---- data-------------------------------------------------------------------- data("vignetteSimulationData") x = vignetteSimulationData$n10m3_x ## ---- decompose initialization------------------------------------------------ iterations = 10 L = 20 ## ---- decompose--------------------------------------------------------------- result = retrofit::decompose(x, L=L, iterations=iterations, verbose=TRUE) H = result$h W = result$w Th = result$th ## ---- load_retrofit_results--------------------------------------------------- H = vignetteSimulationData$results_4k_iterations$decompose$h W = vignetteSimulationData$results_4k_iterations$decompose$w Th = vignetteSimulationData$results_4k_iterations$decompose$th ## ---- retrofit reproducibility, eval = FALSE---------------------------------- # iterations = 4000 # set.seed(12) # result = retrofit::decompose(x, L=L, iterations=iterations) ## ---- reference--------------------------------------------------------------- sc_ref_w = vignetteSimulationData$sc_ref_w ## ---- annotate---------------------------------------------------------------- K = 10 result = retrofit::annotateWithCorrelations(sc_ref=sc_ref_w, K=K, decomp_w=W, decomp_h=H) H_annotated = result$h W_annotated = result$w ranked_cells = result$ranked_cells ## ---- retrofit---------------------------------------------------------------- iterations = 10 L = 20 K = 10 result = retrofit::retrofit(x, sc_ref=sc_ref_w, iterations=iterations, L=L, K=K) ## ---- visualize_correlations-------------------------------------------------- # correlation between true and estimated cell-type proportions correlations = stats::cor(sc_ref_w[ranked_cells], W_annotated[,ranked_cells]) ranked_correlations = sort(diag(correlations), decreasing=TRUE) df = data.frame(x=1:length(ranked_correlations), y=ranked_correlations, label_x1=1, label_x2=2, label_y=seq(from=0.5, by=-0.05, length.out=10), label_cell=ranked_cells, label_corr=format(round(ranked_correlations, digits=4))) gg <- ggplot2::ggplot(df,ggplot2::aes(x=x, y=y, group=1)) + ggplot2::geom_line(ggplot2::aes(x=x, y=y)) + ggplot2::geom_point(ggplot2::aes(x=x, y=y)) + ggplot2::theme_bw() + ggplot2::theme(axis.text.x=ggplot2::element_blank()) + ggplot2::ylim(0, 1.05) + ggplot2::ylab(expression(paste("Correlation (",W^0,",",widetilde(W),")"))) + ggplot2::geom_text(data=df, ggplot2::aes(x=label_x1, y=label_y, label=label_corr), size=4, hjust=0) + ggplot2::geom_text(data=df, ggplot2::aes(x=label_x2, y=label_y, label=label_cell), size=4, hjust=0) plot(gg) ## ---- visualize_rmse---------------------------------------------------------- H_true = vignetteSimulationData$sc_ref_h H_est = H_annotated corrH = sort(diag(stats::cor(H_true,H_est)), decreasing=TRUE, na.last=TRUE) df = data.frame(x=seq(0,1,length.out = 1000), y=corrH) df_text = data.frame(x=0.2, y=0.6, label = c(paste("RETROFIT:", round(DescTools::AUC(x=seq(0,1,length.out = 1000), y=corrH),digits=3)))) gg <- ggplot2::ggplot(df, ggplot2::aes(x=x,y=y)) + ggplot2::geom_line() + ggplot2::scale_color_manual('gray30') + ggplot2::xlab("Normalized Rank") + ggplot2::ylab(expression(paste("Correlation (",H,",",widetilde(H),")"))) + ggplot2::theme_bw() + ggplot2::geom_text(data = df_text, ggplot2::aes(label = label)) plot(gg) ## ----------------------------------------------------------------------------- sessionInfo()