Mercurial > repos > iuc > sleuth
view sleuth.R @ 2:d6b5fc94062c draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/sleuth commit 10e44e324ee754d81a1b9d990ee0932b37e7a9bc
author | iuc |
---|---|
date | Thu, 08 Jun 2023 19:57:53 +0000 |
parents | d3e447dd52c8 |
children |
line wrap: on
line source
library(sleuth, quietly = TRUE, warn.conflicts = FALSE) library(annotables, quietly = TRUE, warn.conflicts = FALSE) library(argparse, quietly = TRUE, warn.conflicts = FALSE) library(tidyverse) # setup R error handling to go to stderr options( show.error.messages = FALSE, error = function() { cat(geterrmessage(), file = stderr()) q("no", 1, FALSE) } ) # we need that to not crash galaxy with an UTF8 error on German LC settings. loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8") ################################################################################ ### Input Processing ################################################################################ # Collect arguments from command line parser <- ArgumentParser(description = "Sleuth R script") parser$add_argument("--factorLevel", action = "append", required = FALSE) parser$add_argument("--factorLevel_counts", action = "append", required = FALSE) parser$add_argument("--factorLevel_n", action = "append", required = FALSE) parser$add_argument("--cores", type = "integer", required = FALSE) parser$add_argument("--normalize", action = "store_true", required = FALSE) parser$add_argument("--nbins", type = "integer", required = FALSE) parser$add_argument("--lwr", type = "numeric", required = FALSE) parser$add_argument("--upr", type = "numeric", required = FALSE) parser$add_argument("--metadata_file", action = "append", required = FALSE) parser$add_argument("--experiment_design", required = FALSE) args <- parser$parse_args() if (args$experiment_design == "complex") { ## Complex experiment design ############################ s2c <- read.table(file = args$metadata_file, header = TRUE, sep = "\t") s2c$path <- file.path("./kallisto_outputs/", paste(s2c$path, ".h5", sep = "")) for (f in args$factorLevel_counts) { file.rename(f, paste(f, ".h5", sep = "")) } so <- sleuth_prep(s2c, full_model = ~ condition, num_cores = 1) so <- sleuth_fit(so) } else { ## Simple experiment design ########################### conditions <- c() for (x in seq_along(args$factorLevel)) { temp <- append(conditions, rep(args$factorLevel[[x]])) conditions <- temp } sample_names <- gsub(".fastq.+", "", basename(args$factorLevel_counts)) design <- data.frame(list( sample = sample_names, condition = conditions, path = args$factorLevel_counts )) so <- sleuth_prep(design, cores = args$cores, normalize = args$normalize) } so <- sleuth_fit( so, ~ condition, "full", n_bins = args$nbins, lwr = args$lwr, upr = args$upr ) so <- sleuth_fit( so, ~ 1, "reduced", n_bins = args$nbins, lwr = args$lwr, upr = args$upr ) so <- sleuth_lrt(so, "reduced", "full") sleuth_table <- sleuth_results(so, "reduced:full", "lrt", show_all = FALSE) write.table( sleuth_table, file = "sleuth_table.tab", quote = FALSE, sep = "\t", col.names = TRUE, row.names = FALSE ) outputFile <- file.path(getwd(), "pca_plot.pdf") pdf(file = outputFile, height = 6, width = 9) plot_pca(so, color_by = "condition") dev.off() outputFile <- file.path(getwd(), "group_density.pdf") pdf(file = outputFile, height = 6, width = 9) plot_group_density( so, use_filtered = TRUE, units = "est_counts", trans = "log", grouping = setdiff(colnames(so$sample_to_covariates), "sample"), offset = 1 ) dev.off()