annotate signac-geneactivity.R @ 0:6e0b320d8b6a draft default tip

"planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
author gaelcge
date Tue, 02 Aug 2022 19:11:27 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
1 #!/usr/bin/env Rscript
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
2
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
3 # Load optparse we need to check inputs
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
4
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
5 suppressPackageStartupMessages(require(optparse))
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
6
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
7 # Load common functions
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
8
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
9 suppressPackageStartupMessages(require(workflowscriptscommon))
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
10
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
11 # parse options
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
12 option_list = list(
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
13 make_option(
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
14 c("--signac-object"),
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
15 action = "store",
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
16 default = NA,
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
17 type = 'character',
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
18 help = "A Seurat object."
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
19 ),
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
20 make_option(
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
21 c("--fragment-file"),
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
22 action = "store",
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
23 default = NA,
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
24 type = 'character',
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
25 help = "Fragments file."
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
26 ),
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
27 make_option(
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
28 c("--assay"),
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
29 action = "store",
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
30 default = NULL,
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
31 type = 'character',
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
32 help = "Assay."
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
33 ),
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
34 make_option(
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
35 c("--features"),
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
36 action = "store",
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
37 default = NA,
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
38 type = 'character',
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
39 help = "Features."
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
40 ),
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
41 make_option(
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
42 c("--extend-upstream"),
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
43 action = "store",
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
44 default = NA,
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
45 type = 'numeric',
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
46 help = "Number of bases to extend upstream of the TSS."
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
47 ),
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
48 make_option(
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
49 c("--extend-downstream"),
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
50 action = "store",
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
51 default = NA,
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
52 type = 'numeric',
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
53 help = "Number of bases to extend downstream of the TSS."
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
54 ),
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
55 make_option(
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
56 c("--biotypes"),
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
57 action = "store",
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
58 default = NA,
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
59 type = 'character',
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
60 help = "Gene biotypes to include. If NULL, use all biotypes in the gene annotation."
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
61 ),
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
62 make_option(
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
63 c("--max-width"),
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
64 action = "store",
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
65 default = NA,
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
66 type = 'numeric',
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
67 help = "Maximum allowed gene width for a gene to be quantified."
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
68 ),
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
69 make_option(
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
70 c("--output-object-file"),
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
71 action = "store",
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
72 default = NA,
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
73 type = 'character',
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
74 help = "File name in which to store serialized R matrix object."
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
75 )
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
76 )
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
77
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
78 opt <- wsc_parse_args(option_list)
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
79
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
80 suppressPackageStartupMessages(require(Seurat))
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
81 suppressPackageStartupMessages(require(Signac))
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
82
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
83 set.seed(1234)
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
84
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
85 if (! file.exists(opt$signac_object)){
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
86 stop((paste('File', opt$signac_object, 'does not exist')))
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
87 }
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
88
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
89 signac_object <- readRDS(file = opt$signac_object)
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
90
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
91 signac_object@assays$peaks@fragments[[1]]@path <- opt$fragment_file
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
92
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
93 # Check features
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
94 features <- NULL
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
95 if (! is.null(opt$features) && opt$features != 'NULL'){
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
96 if (file.exists(opt$features)){
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
97 features <- readLines(opt$features)
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
98 }
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
99 }
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
100
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
101 # Check assay
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
102 assay <- NULL
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
103 if (! is.null(opt$assay) && opt$assay != 'NULL'){
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
104 assay <- opt$assay
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
105 }
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
106
6e0b320d8b6a "planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
gaelcge
parents:
diff changeset
107 saveRDS(GeneActivity(object = signac_object, assay = assay, features = features, extend.upstream = opt$extend_upstream, extend.downstream = opt$extend_downstream, biotypes = opt$biotypes, max.width = opt$max_width), file = opt$output_object_file)