gespeR-package {gespeR} | R Documentation |
This package provides a model to deconvolute off-target confounded RNAi knockdown phentypes, and methods to investigate concordance between ranked lists of (estimated) phenotypes. The regularized linear regression model can be fitted using two different strategies. (a) Cross-validation over regularization parameters optimising the mean-squared-error of the model and (b) stability selection of covariates (genes) based on a method by Nicolai Meinshausen et al.
Fabian Schmich | Computational Biology Group, ETH ZURICH | fabian.schmich@bsse.ethz.ch
Fabian Schmich et. al, Deconvoluting Off-Target Confounded RNA Interference Screens (2014).
# Read phenotypes phenos <- lapply(LETTERS[1:4], function(x) { sprintf("Phenotypes_screen_%s.txt", x) }) phenos <- lapply(phenos, function(x) { Phenotypes(system.file("extdata", x, package="gespeR"), type = "SSP", col.id = 1, col.score = 2) }) phenos plot(phenos[[1]]) # Read target relations tr <- lapply(LETTERS[1:4], function(x) { sprintf("TR_screen_%s.rds", x) }) tr <- lapply(tr, function(x) { TargetRelations(system.file("extdata", x, package="gespeR")) }) tr[[1]] tempfile <- paste(tempfile(pattern = "file", tmpdir = tempdir()), ".rds", sep="") tr[[1]] <- unloadValues(tr[[1]], writeValues = TRUE, path = tempfile) tr[[1]] tr[[1]] <- loadValues(tr[[1]]) tr[[1]] # Fit gespeR models with cross validation res.cv <- lapply(1:length(phenos), function(i) { gespeR(phenotypes = phenos[[i]], target.relations = tr[[i]], mode = "cv", alpha = 0.5, ncores = 1) }) summary(res.cv[[1]]) res.cv[[1]] plot(res.cv[[1]]) # Extract scores ssp(res.cv[[1]]) gsp(res.cv[[1]]) head(scores(res.cv[[1]])) # Fit gespeR models with stability selection res.stab <- lapply(1:length(phenos), function(i) { gespeR(phenotypes = phenos[[i]], target.relations = tr[[i]], mode = "stability", nbootstrap = 100, fraction = 0.67, threshold = 0.75, EV = 1, weakness = 0.8, ncores = 1) }) summary(res.stab[[1]]) res.stab[[1]] plot(res.stab[[1]]) # Extract scores ssp(res.stab[[1]]) gsp(res.stab[[1]]) head(scores(res.stab[[1]])) # Compare concordance between stability selected GSPs and SSPs conc.gsp <- concordance(lapply(res.stab, gsp)) conc.ssp <- concordance(lapply(res.stab, ssp)) pl.gsp <- plot(conc.gsp) + ggtitle("GSPs\n") pl.ssp <- plot(conc.ssp) + ggtitle("SSPs\n") if (require(grid)) { grid.newpage() pushViewport(viewport(layout = grid.layout(1, 2) ) ) print(pl.gsp, vp = viewport(layout.pos.row = 1, layout.pos.col = 1)) print(pl.ssp, vp = viewport(layout.pos.row = 1, layout.pos.col = 2)) } else { plot(pl.gsp) plot(pl.ssp) }