comparison scran-normalize.R @ 3:cc768b0f41cf draft default tip

planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/main/tools/gsc_scran_normalize commit 9ab82433f375b37be5c9acb22e5deb798081dc3b
author artbio
date Thu, 07 Nov 2024 22:02:01 +0000
parents 6864acb21714
children
comparison
equal deleted inserted replaced
2:6864acb21714 3:cc768b0f41cf
1 options(show.error.messages = FALSE, 1 options(
2 error = function() { 2 show.error.messages = FALSE,
3 cat(geterrmessage(), file = stderr()) 3 error = function() {
4 q("no", 1, FALSE) 4 cat(geterrmessage(), file = stderr())
5 } 5 q("no", 1, FALSE)
6 }
6 ) 7 )
7 loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8") 8 loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8")
8 warnings() 9 warnings()
9 10
10 library(optparse) 11 library(optparse)
11 library(scran) 12 library(scran)
12 library(dynamicTreeCut) 13 library(dynamicTreeCut)
13 14
14 # Arguments 15 # Arguments
15 option_list <- list( 16 option_list <- list(
16 make_option( 17 make_option(
17 c("-d", "--data"), 18 c("-d", "--data"),
18 default = NA, 19 default = NA,
19 type = "character", 20 type = "character",
20 help = "Input file that contains count values to transform" 21 help = "Input file that contains count values to transform"
21 ), 22 ),
22 make_option( 23 make_option(
23 "--cluster", 24 "--cluster",
24 default = FALSE, 25 default = FALSE,
25 action = "store_true", 26 action = "store_true",
26 type = "logical", 27 type = "logical",
27 help = "Whether to calculate the size factor per cluster or on all cell" 28 help = "Whether to calculate the size factor per cluster or on all cell"
28 ), 29 ),
29 make_option( 30 make_option(
30 c("-m", "--method"), 31 c("-m", "--method"),
31 default = "hclust", 32 default = "hclust",
32 type = "character", 33 type = "character",
33 help = "The clustering method to use for grouping cells into cluster : hclust or igraph [default : '%default' ]" 34 help = "The clustering method to use for grouping cells into cluster : hclust or igraph [default : '%default' ]"
34 ), 35 ),
35 make_option( 36 make_option(
36 "--size", 37 "--size",
37 default = 100, 38 default = 100,
38 type = "integer", 39 type = "integer",
39 help = "Minimal number of cells in each cluster : hclust or igraph [default : '%default' ]" 40 help = "Minimal number of cells in each cluster : hclust or igraph [default : '%default' ]"
40 ), 41 ),
41 make_option( 42 make_option(
42 c("-o", "--out"), 43 c("-o", "--out"),
43 default = "res.tab", 44 default = "res.tab",
44 type = "character", 45 type = "character",
45 help = "Output name [default : '%default' ]" 46 help = "Output name [default : '%default' ]"
46 ) 47 )
47 ) 48 )
48 49
49 opt <- parse_args(OptionParser(option_list = option_list), 50 opt <- parse_args(OptionParser(option_list = option_list),
50 args = commandArgs(trailingOnly = TRUE)) 51 args = commandArgs(trailingOnly = TRUE)
52 )
51 53
52 54
53 data <- read.table( 55 data <- read.table(
54 opt$data, 56 opt$data,
55 check.names = FALSE, 57 check.names = FALSE,
56 header = TRUE, 58 header = TRUE,
57 row.names = 1, 59 row.names = 1,
58 sep = "\t" 60 sep = "\t"
59 ) 61 )
60 62
61 ## Import data as a SingleCellExperiment object 63 ## Import data as a SingleCellExperiment object
62 sce <- SingleCellExperiment(list(counts = as.matrix(data))) 64 sce <- SingleCellExperiment(list(counts = as.matrix(data)))
63 65
64 if (opt$cluster) { 66 if (opt$cluster) {
65 clusters <- quickCluster(sce, min.size = opt$size, method = opt$method) 67 clusters <- quickCluster(sce, min.size = opt$size, method = opt$method)
66 68
67 ## Compute sum factors 69 ## Compute sum factors
68 sce <- computeSumFactors(sce, cluster = clusters) 70 sce <- computeSumFactors(sce, cluster = clusters)
69 } else { 71 } else {
70 72 ## Compute sum factors
71 ## Compute sum factors 73 sce <- computeSumFactors(sce)
72 sce <- computeSumFactors(sce)
73 } 74 }
74 75
75 sce <- logNormCounts(sce) 76 sce <- logNormCounts(sce)
76 77
77 logcounts <- data.frame(genes = rownames(sce), round(logcounts(sce), digits = 5), check.names = FALSE) 78 logcounts <- data.frame(genes = rownames(sce), round(logcounts(sce), digits = 5), check.names = FALSE)
78 79
79 80
80 write.table( 81 write.table(
81 logcounts, 82 logcounts,
82 opt$out, 83 opt$out,
83 col.names = TRUE, 84 col.names = TRUE,
84 row.names = FALSE, 85 row.names = FALSE,
85 quote = FALSE, 86 quote = FALSE,
86 sep = "\t" 87 sep = "\t"
87 ) 88 )