diff signac-createObject.R @ 0:6e0b320d8b6a draft default tip

"planemo upload commit dc808171975d0012e25bd7b32adc7a5a5c56a145-dirty"
author gaelcge
date Tue, 02 Aug 2022 19:11:27 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/signac-createObject.R	Tue Aug 02 19:11:27 2022 +0000
@@ -0,0 +1,110 @@
+#!/usr/bin/env Rscript
+
+# Load optparse we need to check inputs
+
+suppressPackageStartupMessages(require(optparse))
+
+# Load common functions
+
+suppressPackageStartupMessages(require(workflowscriptscommon))
+
+# parse options
+
+option_list = list(
+  make_option(
+    c("--h5-file"),
+    action = "store",
+    default = NA,
+    type = 'character',
+    help = "Filtered peak BC matrix file in h5 format."
+  ),
+  make_option(
+    c("--metadata"),
+    action = "store",
+    default = NA,
+    type = 'character',
+    help = "Metadata file."
+  ),
+  make_option(
+    c("--genome"),
+    action = "store",
+    default = NA,
+    type = 'character',
+    help = "Genome version."
+  ),
+    make_option(
+    c("--output-object-file"),
+    action = "store",
+    default = NA,
+    type = 'character',
+    help = "File name in which to store serialized R matrix object."
+  ),
+  make_option(
+    c("--fragment-file"),
+    action = "store",
+    default = NA,
+    type = 'character',
+    help = "Fragment file from CellRanger-ATAC."
+  ),
+    make_option(
+    c("--min-cells"),
+    action = "store",
+    default = NA,
+    type = 'character',
+    help = "Lower number of cells identified per peak."
+  ),
+    make_option(
+    c("--min-features"),
+    action = "store",
+    default = NA,
+    type = 'character',
+    help = "Minimum number of features per cell to be retained."
+  )
+)
+
+opt <- wsc_parse_args(option_list)
+
+suppressPackageStartupMessages(require(Seurat))
+suppressPackageStartupMessages(require(Signac))
+
+atac_h5_matrix <- Read10X_h5(filename = opt$h5_file)
+print(paste("counts:",dim(atac_h5_matrix)))
+
+metadata <- read.csv(
+  file = opt$metadata,
+  header = TRUE,
+  row.names = 1
+)
+print(paste("metadata:",dim(metadata)))
+
+chrom_assay <- CreateChromatinAssay(
+  counts = atac_h5_matrix,
+  sep = c(":", "-"),
+  genome = opt$genome,
+  fragments = opt$fragment_file,
+  min.cells = as.numeric(opt$min_cells),
+  min.features = as.numeric(opt$min_features)
+)
+print(chrom_assay)
+
+#metadata <- subset(metadata,rownames(metadata) %in% colnames(chrom_assay))
+
+signac_object <- CreateSeuratObject(
+  counts = chrom_assay,
+  assay = "peaks",
+  meta.data = metadata
+)
+print(signac_object)
+print(signac_object[['peaks']])
+print(granges(signac_object))
+# cat(c(
+#   '# Object summary', 
+#   capture.output(print(signac_object)), 
+#   '\n# Metadata sample', 
+#   capture.output(head(signac_object@meta.data))
+# ), 
+# sep = '\n')
+
+# Output to a serialized R object
+
+saveRDS(signac_object, file = opt$output_object_file)