Mercurial > repos > iuc > genomic_super_signature
comparison gss.R @ 0:d0cbe6cc1f04 draft default tip
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/genomic_super_signature commit 1aadd5dce3b254e7714c2fdd39413029fd4b9b7a"
| author | iuc |
|---|---|
| date | Wed, 12 Jan 2022 19:07:45 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:d0cbe6cc1f04 |
|---|---|
| 1 suppressPackageStartupMessages(library(optparse)) | |
| 2 | |
| 3 ### Parsing command line ------------------------------------------------------- | |
| 4 option_list <- list( | |
| 5 make_option(c("--input"), type = "character", | |
| 6 default = NULL, help = "Count matrix in tsv format"), | |
| 7 make_option(c("--model"), type = "character", | |
| 8 default = NULL, help = "RAVmodel to apply. | |
| 9 Currently 'C2' and 'PLIERpriors' are available"), | |
| 10 make_option(c("--method"), type = "character", | |
| 11 default = formals(GenomicSuperSignature::validate)$method), | |
| 12 make_option(c("--maxFrom"), type = "character", | |
| 13 default = formals(GenomicSuperSignature::validate)$maxFrom), | |
| 14 make_option(c("--level"), type = "character", | |
| 15 default = formals(GenomicSuperSignature::validate)$level), | |
| 16 make_option(c("--scale"), type = "character", | |
| 17 default = formals(GenomicSuperSignature::validate)$scale), | |
| 18 make_option(c("--outDir"), type = "character", | |
| 19 default = NULL, help = "Output file name"), | |
| 20 make_option(c("--validate"), type = "character", | |
| 21 default = NULL, help = "Path to save validate.csv"), | |
| 22 make_option(c("--html"), type = "character", | |
| 23 default = NULL, help = "Path to save HTML report"), | |
| 24 make_option(c("--numOut"), type = "integer", | |
| 25 default = 3, help = "The number of top validated RAVs to check"), | |
| 26 make_option(c("--toolDir"), type = "character", | |
| 27 default = ".", help = "Directory containing the tool scripts (e.g. gss.Rmd") | |
| 28 ) | |
| 29 | |
| 30 opt <- parse_args(OptionParser(option_list = option_list), | |
| 31 args = commandArgs(trailingOnly = TRUE)) | |
| 32 input <- opt$input | |
| 33 model <- opt$model | |
| 34 out_dir <- opt$outDir | |
| 35 num_out <- opt$numOut | |
| 36 | |
| 37 if (is.null(input)) stop("Need --input.") | |
| 38 if (is.null(model)) stop("Need --model.") | |
| 39 if (is.null(out_dir)) stop("Need --outDir.") | |
| 40 | |
| 41 input_name <- basename(tools::file_path_sans_ext(input)) | |
| 42 out_dir <- normalizePath(out_dir) | |
| 43 | |
| 44 suppressPackageStartupMessages(library(GenomicSuperSignature)) | |
| 45 dat <- as.matrix(read.table(file = input, header = TRUE, sep = "\t", | |
| 46 row.names = 1)) | |
| 47 if (model %in% c("C2", "PLIERpriors")) { | |
| 48 rav_model <- getModel(model) | |
| 49 } else { | |
| 50 rav_model <- readRDS(model) | |
| 51 } | |
| 52 | |
| 53 | |
| 54 | |
| 55 ### validate ------------------------------------------------------------------- | |
| 56 val_all <- validate(dat, rav_model) | |
| 57 validated_ind <- validatedSignatures(val_all, num.out = num_out, | |
| 58 swCutoff = 0, indexOnly = TRUE) | |
| 59 n <- min(num_out, length(validated_ind), na.rm = TRUE) | |
| 60 | |
| 61 ### Save tables in csv --------------------------------------------------------- | |
| 62 # Validation | |
| 63 if (is.null(opt$validate)) { | |
| 64 output_fname <- file.path(out_dir, paste0(input_name, "_validate.csv")) | |
| 65 } else { | |
| 66 output_fname <- opt$validate | |
| 67 } | |
| 68 write.csv(val_all, | |
| 69 file = output_fname, | |
| 70 row.names = TRUE) | |
| 71 | |
| 72 # GSEA | |
| 73 for (i in seq_len(n)) { | |
| 74 rav_num <- validated_ind[i] | |
| 75 rav_name <- paste0("RAV", rav_num) | |
| 76 res <- gsea(rav_model)[[rav_name]] | |
| 77 | |
| 78 output_fname <- paste0(input_name, "_genesets_RAV", rav_num, ".csv") | |
| 79 write.csv(res, | |
| 80 file = file.path(out_dir, output_fname), | |
| 81 row.names = TRUE) | |
| 82 } | |
| 83 | |
| 84 # Related prior studies | |
| 85 for (i in seq_len(n)) { | |
| 86 rav_num <- validated_ind[i] | |
| 87 res <- findStudiesInCluster(rav_model, rav_num) | |
| 88 | |
| 89 output_fname <- paste0(input_name, "_literatures_RAV", rav_num, ".csv") | |
| 90 write.csv(res, | |
| 91 file = file.path(out_dir, output_fname), | |
| 92 row.names = TRUE) | |
| 93 } | |
| 94 | |
| 95 ### Create a report ------------------------------------------------------------ | |
| 96 if (is.null(opt$html)) { | |
| 97 output_fname <- file.path(out_dir, paste0("GSS-", input_name, "-", | |
| 98 format(Sys.Date(), format = "%Y%m%d"), ".html")) | |
| 99 } else { | |
| 100 output_fname <- opt$html | |
| 101 | |
| 102 } | |
| 103 rmarkdown::render( | |
| 104 file.path(opt$toolDir, "gss.Rmd"), params = list( | |
| 105 val_all = val_all, | |
| 106 dat = dat, | |
| 107 RAVmodel = rav_model, | |
| 108 inputName = input_name, | |
| 109 numOut = num_out | |
| 110 ), | |
| 111 output_file = output_fname, | |
| 112 intermediates_dir = ".", | |
| 113 knit_root_dir = "." | |
| 114 ) |
