# HG changeset patch # User iuc # Date 1567535132 14400 # Node ID 2e41b35b5bdd5a596d3b0892da92a60eefcee329 # Parent 4887c4c6984714528393231dada7d84af79f7fad "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/scater commit 61f3899168453092fd25691cf31871a3a350fd3b" diff -r 4887c4c69847 -r 2e41b35b5bdd README.md --- a/README.md Thu Jul 18 11:12:33 2019 -0400 +++ b/README.md Tue Sep 03 14:25:32 2019 -0400 @@ -20,6 +20,13 @@ ## Command-line usage +The scripts require the installation of scater and few other R/BioConductor packages. An easy way to install them is to create a [conda](https://conda.io/) environment using the `environment.yml` file distributed together with these wrappers: + +``` +conda env create -f environment.yml +conda activate scater +``` + For help with any of the following scripts, run: ` --help` diff -r 4887c4c69847 -r 2e41b35b5bdd environment.yml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/environment.yml Tue Sep 03 14:25:32 2019 -0400 @@ -0,0 +1,14 @@ +name: scater +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconductor-loomexperiment=1.2.0 + - bioconductor-scater=1.12.2 + - r-ggpubr=0.2.2 + - r-mvoutlier=2.0.9 + - r-optparse=1.6.2 + - r-rtsne=0.15 + - r-scales=1.0.0 + - r-workflowscriptscommon=0.0.4 diff -r 4887c4c69847 -r 2e41b35b5bdd macros.xml --- a/macros.xml Thu Jul 18 11:12:33 2019 -0400 +++ b/macros.xml Tue Sep 03 14:25:32 2019 -0400 @@ -1,11 +1,11 @@ - 1.10.1 + 1.12.2 bioconductor-scater r-optparse r-workflowscriptscommon - bioconductor-loomexperiment + bioconductor-loomexperiment diff -r 4887c4c69847 -r 2e41b35b5bdd scater-manual-filter.R --- a/scater-manual-filter.R Thu Jul 18 11:12:33 2019 -0400 +++ b/scater-manual-filter.R Tue Sep 03 14:25:32 2019 -0400 @@ -31,6 +31,13 @@ help = "Minimum library size (mapped reads) to filter cells on" ), make_option( + c("-e", "--expressed-genes"), + action = "store", + default = 0, + type = 'numeric', + help = "Minimum number of expressed genes to filter cells on" + ), + make_option( c("-m", "--percent-counts-MT"), action = "store", default = 100, @@ -71,6 +78,14 @@ print(paste("After filtering out low library counts: ", ncol(scle), "cells and", nrow(scle), "features.")) + +# Filter low expressed genes +to_keep <- scle$total_features_by_counts > opt$expressed_genes +scle <- scle[, to_keep] + +print(paste("After filtering out low expressed: ", ncol(scle), "cells and", nrow(scle), "features.")) + + # Filter out high MT counts to_keep <- scle$pct_counts_MT < opt$percent_counts_MT scle <- scle[, to_keep] diff -r 4887c4c69847 -r 2e41b35b5bdd scater-plot-dist-scatter.R --- a/scater-plot-dist-scatter.R Thu Jul 18 11:12:33 2019 -0400 +++ b/scater-plot-dist-scatter.R Tue Sep 03 14:25:32 2019 -0400 @@ -9,6 +9,7 @@ library(LoomExperiment) library(scater) library(ggpubr) +library(scales) # parse options @@ -26,10 +27,17 @@ default = NA, type = 'character', help = "Path of the PDF output file to save plot to." + ), + make_option( + c("-l", "--log-scale"), + action="store_true", + default=FALSE, + type = 'logical', + help = "Plot on log scale (recommended for large datasets)." ) ) -opt <- wsc_parse_args(option_list, mandatory = c('input_loom', 'output_plot_file')) +opt <- wsc_parse_args(option_list, mandatory = c('input_loom', 'output_plot_file', 'log_scale')) # Check parameter values @@ -51,12 +59,21 @@ read_bins <- max(total_counts / 1e6) / 20 feat_bins <- max(total_features) / 20 -#make the plots +# Make the plots plot <- ggplot(cf_dm, aes(x=total_counts / 1e6, y=total_features)) + geom_point(shape=1) + geom_smooth() + xlab("Read count (millions)") + ylab("Feature count") + ggtitle("Scatterplot of reads vs features") plot1 <- qplot(total_counts / 1e6, geom="histogram", binwidth = read_bins, ylab="Number of cells", xlab = "Read counts (millions)", fill=I("darkseagreen3")) + ggtitle("Read counts per cell") plot2 <- qplot(total_features, geom="histogram", binwidth = feat_bins, ylab="Number of cells", xlab = "Feature counts", fill=I("darkseagreen3")) + ggtitle("Feature counts per cell") plot3 <- plotColData(scle, y="pct_counts_MT", x="total_features_by_counts") + ggtitle("% MT genes") + geom_point(shape=1) + theme(text = element_text(size=15)) + theme(plot.title = element_text(size=15)) -final_plot <- ggarrange(plot1, plot2, plot, plot3, ncol=2, nrow=2) -ggsave(opt$output_plot_file, final_plot, device="pdf") +if (! opt$log_scale){ + final_plot <- ggarrange(plot1, plot2, plot, plot3, ncol=2, nrow=2) + ggsave(opt$output_plot_file, final_plot, device="pdf") +} else { + plot_log_both <- plot + scale_x_continuous(trans = 'log10') + scale_y_continuous(trans = 'log10') + plot1_log <- plot1 + scale_y_continuous(trans = 'log10') + plot2_log <- plot2 + scale_y_continuous(trans = 'log10') + plot3_log <- plot3 + scale_y_log10(labels=number) + final_plot_log <- ggarrange(plot1_log, plot2_log, plot_log_both, plot3_log, ncol=2, nrow=2) + ggsave(opt$output_plot_file, final_plot_log, device="pdf") +} diff -r 4887c4c69847 -r 2e41b35b5bdd scater-plot-dist-scatter.xml --- a/scater-plot-dist-scatter.xml Thu Jul 18 11:12:33 2019 -0400 +++ b/scater-plot-dist-scatter.xml Tue Sep 03 14:25:32 2019 -0400 @@ -4,15 +4,18 @@ macros.xml - r-ggpubr + r-ggpubr + r-scales + @@ -20,8 +23,14 @@ + + + + + +