Mercurial > repos > iuc > dropletutils
comparison scripts/dropletutils.Rscript @ 1:94ee8160ace3 draft
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/dropletutils/ commit 40d4a92c62d75fe931baba8657cde006a26d84cf"
| author | iuc | 
|---|---|
| date | Mon, 26 Aug 2019 05:06:15 -0400 | 
| parents | 1335bf5bcd0e | 
| children | 58105e5efa8d | 
   comparison
  equal
  deleted
  inserted
  replaced
| 0:1335bf5bcd0e | 1:94ee8160ace3 | 
|---|---|
| 4 stop("Please provide the config file") | 4 stop("Please provide the config file") | 
| 5 } | 5 } | 
| 6 | 6 | 
| 7 suppressWarnings(suppressPackageStartupMessages(require(DropletUtils))) | 7 suppressWarnings(suppressPackageStartupMessages(require(DropletUtils))) | 
| 8 suppressWarnings(suppressPackageStartupMessages(require(Matrix))) | 8 suppressWarnings(suppressPackageStartupMessages(require(Matrix))) | 
| 9 suppressWarnings(suppressPackageStartupMessages(require(scater))) | |
| 9 | 10 | 
| 10 source(args[1]) | 11 source(args[1]) | 
| 11 | 12 | 
| 12 ## Helper functions | 13 ## Helper functions | 
| 13 setSparse <- function(obj){ | 14 setSparse <- function(obj){ | 
| 32 | 33 | 
| 33 | 34 | 
| 34 read10xFiles <- function(filein, typein){ | 35 read10xFiles <- function(filein, typein){ | 
| 35 sce <- NULL | 36 sce <- NULL | 
| 36 if (typein == "tsv"){ | 37 if (typein == "tsv"){ | 
| 37 dat <- read.table(filein, header = TRUE, sep='\t', stringsAsFactors=FALSE, quote="", row.names=1) | 38 ## Exploding memory problems occured here | 
| 38 sce <- SingleCellExperiment(assays = list(counts = as.matrix(dat))) | 39 ## - solution is to use the readSparseCounts function from scater | 
| 40 sce <- SingleCellExperiment(assays = list(counts = readSparseCounts(filein))) | |
| 39 } | 41 } | 
| 40 else if (typein == "h5ad"){ | 42 else if (typein == "h5ad"){ | 
| 41 sce <- read10xCounts(filein, col.names=T, type="HDF5") # use barcodes.tsv as column names | 43 sce <- read10xCounts(filein, col.names=T, type="HDF5") # use barcodes.tsv as column names | 
| 42 } | 44 } | 
| 43 else if (typein == "directory"){ | 45 else if (typein == "directory"){ | 
| 89 | 91 | 
| 90 | 92 | 
| 91 doDefaultDrops <- function(files, dparams, in.type="directory", out.type="h5ad"){ | 93 doDefaultDrops <- function(files, dparams, in.type="directory", out.type="h5ad"){ | 
| 92 sce <- read10xFiles(files$infile, in.type) | 94 sce <- read10xFiles(files$infile, in.type) | 
| 93 | 95 | 
| 94 dparams$m = as.matrix(counts(sce)) | 96 dparams$m = counts(sce) | 
| 95 called <- do.call(defaultDrops, c(dparams)) | 97 called <- do.call(defaultDrops, c(dparams)) | 
| 96 print(table(called)) | 98 print(table(called)) | 
| 97 | 99 | 
| 98 # Filtered | 100 # Filtered | 
| 99 sce.filtered <- sce[,called] | 101 sce.filtered <- sce[,called] | 
| 104 | 106 | 
| 105 doBarcodeRankings <- function(files, bparams, in.type="directory"){ | 107 doBarcodeRankings <- function(files, bparams, in.type="directory"){ | 
| 106 sce <- read10xFiles(files$infile, in.type) | 108 sce <- read10xFiles(files$infile, in.type) | 
| 107 | 109 | 
| 108 bparams$... <- NULL ## hack | 110 bparams$... <- NULL ## hack | 
| 109 bparams$m = as.matrix(counts(sce)) | 111 bparams$m = counts(sce) | 
| 110 | 112 | 
| 111 br.out <- do.call(barcodeRanks, c(bparams)) | 113 br.out <- do.call(barcodeRanks, c(bparams)) | 
| 112 | 114 | 
| 113 png(files$plot) | 115 png(files$plot) | 
| 114 plot(br.out$rank, br.out$total, log="xy", xlab="(log) Rank", ylab="(log) Total Number of Barcodes") | 116 plot(br.out$rank, br.out$total, log="xy", xlab="(log) Rank", ylab="(log) Total Number of Barcodes") | 
