Repository 'seurat_clustering'
hg clone https://toolshed.g2.bx.psu.edu/repos/iuc/seurat_clustering

Changeset 0:94f1b9c7286f (2024-09-11)
Next changeset 1:51eb02d9b17a (2024-11-05)
Commit message:
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/seurat_v5 commit a9214c07b0cc929a51fd92a369bb89c675b6c88d
added:
macros.xml
neighbors_clusters_markers.xml
b
diff -r 000000000000 -r 94f1b9c7286f macros.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml Wed Sep 11 10:21:37 2024 +0000
[
b'@@ -0,0 +1,437 @@\n+<macros>\n+    <token name="@TOOL_VERSION@">5.0</token>\n+    <token name="@VERSION_SUFFIX@">0</token>\n+    <token name="@PROFILE@">23.0</token>\n+    <xml name="requirements">\n+        <requirements>\n+            <requirement type="package" version="@TOOL_VERSION@">r-seurat</requirement>\n+            <requirement type="package" version="1.2.1">fit-sne</requirement>\n+            <requirement type="package" version="3.58.1">bioconductor-limma</requirement>\n+            <requirement type="package" version="1.28.0">bioconductor-mast</requirement>\n+            <requirement type="package" version="1.42.0">bioconductor-deseq2</requirement>\n+            <requirement type="package" version="2.1.3">r-svglite</requirement>\n+            <requirement type="package" version="1.1">r-metap</requirement>\n+            <requirement type="package" version="1.14.0">bioconductor-glmGamPoi</requirement>\n+            <requirement type="package" version="0.5.3">umap-learn</requirement> <!-- https://github.com/satijalab/seurat/issues/8283 -->\n+            <requirement type="package" version="0.10.2">leidenalg</requirement>\n+            <requirement type="package" version="1.2.0">r-harmony</requirement>\n+            <requirement type="package" version="1.18.0">bioconductor-batchelor</requirement>\n+            <requirement type="package" version="2.0.0">numpy</requirement>\n+            <requirement type="package" version="2.2.2">pandas</requirement>\n+        </requirements>\n+    </xml>\n+    <xml name="citations">\n+        <citations>\n+            <citation type="doi">10.1038/s41587-023-01767-y</citation>\n+        </citations>\n+    </xml>\n+    <xml name="sanitize_query" token_validinitial="string.printable">\n+        <sanitizer>\n+            <valid initial="@VALIDINITIAL@">\n+                <remove value="&apos;" />\n+            </valid>\n+       </sanitizer>\n+    </xml>\n+    <xml name="sanitize_vectors" token_validinitial="string.digits">\n+        <sanitizer>\n+            <valid initial="@VALIDINITIAL@">\n+                <add value=","/>\n+            </valid>\n+        </sanitizer>\n+    </xml>\n+    <xml name="version_command">\n+        <version_command><![CDATA[\n+echo $(R --version | grep version | grep -v GNU)", Seurat version" $(R --vanilla --slave -e "library(Seurat); cat(sessionInfo()\\$otherPkgs\\$DESeq2\\$Version)" 2> /dev/null | grep -v -i "WARNING: ")\n+        ]]></version_command>\n+    </xml>\n+\n+    <token name="@CMD_imports@"><![CDATA[\n+library(Seurat)\n+    ]]>\n+    </token>\n+    <token name="@reticulate_hack@"><![CDATA[\n+library(reticulate)\n+## HACK: CI biocontainers do not contain a useable conda binary, just the env.\n+##  see: https://github.com/galaxyproject/tools-iuc/issues/5585#issuecomment-1803773923\n+is_biocontainer = grepl("^# cmd: /opt/conda/bin/",\n+                        paste0(reticulate:::python_info_condaenv_find("/usr/local/"),\n+                               "-none"))\n+if (is_biocontainer) {\n+   ## conda detection false positive\n+   assignInNamespace("is_conda_python", function(x) FALSE, ns="reticulate")\n+   use_python("/usr/local/bin/python")\n+} else {\n+   conda_path = Sys.getenv("CONDA_PREFIX")\n+   if (conda_path != "") {\n+      ## Active conda env found\n+      use_python(file.path(conda_path, "bin", "python3"))\n+   } else {\n+      ## Not biocontainer or conda, assume system python\n+      use_python("/usr/bin/python3")\n+   }\n+}]]>\n+    </token>\n+    <xml name="input_rds">\n+        <param name="seurat_rds" type="data" format="rds" label="Input file with the Seurat object"/>\n+    </xml>\n+    <token name="@CMD_read_inputs@"><![CDATA[\n+seurat_obj = readRDS(\'seurat.rds\')\n+        ]]>\n+    </token>\n+    <token name="@CMD_read_expression_matrix@"><![CDATA[\n+counts<-read.table("matrix.tab", header=TRUE, row.names=1, sep="\\t")\n+    ]]>]\n+    </token>\n+    <token name="@CMD@"><![CDATA[\n+cp \'$seurat_rds\' seurat.rds &&\n+cat \'$script_file\' > $hidden_output &&\n+Rscript \'$script_file\' >> $hidden_output\n+    ]]>\n+    </token>\n+ '..b'le"/>\n+    </xml>\n+    <xml name="plot_2_dims">\n+        <param name="dims_1" type="integer" value="1" label="Dimension to plot on x axis"/>\n+        <param name="dims_2" type="integer" value="2" label="Dimension to plot on y axis"/>\n+    </xml>\n+    <xml name="plot_projected_and_balanced">\n+        <param argument="projected" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Use reduction values for full dataset" help="i.e. projected dimensional reduction values"/>\n+        <param argument="balanced" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Return an equal number of genes with + and - scores"/>\n+    </xml>\n+    <xml name="plot_disp_min_max">\n+        <param name="disp_min" type="float" optional="true" value="-2.5" label="Minimum display value" help="all values below are clipped (disp.min)"/>\n+        <param name="disp_max" type="float" optional="true" value="" label="Maximum display value" help="all values above are clipped. Defaults to 2.5 if slot is scale.data, otherwise defaults to 6 (disp.max)"/>\n+    </xml>\n+    <xml name="plot_shuffle_and_seed">\n+        <conditional name="shuffle">\n+            <param argument="shuffle" type="select" label="Randomly shuffle order of points" help="can help with crowded plots if points of interest are hidden">\n+                <option value="TRUE">Yes</option>\n+                <option value="FALSE" selected="true">No</option>\n+            </param>\n+            <when value="TRUE">\n+                <param argument="seed" type="integer" value="1" label="Set random seed for shuffling"/>\n+            </when>\n+            <when value="FALSE"></when>\n+        </conditional>\n+    </xml>\n+    <xml name="plot_order">\n+        <param argument="order" type="text" optional="true" value="" label="Specify the order of plotting for the idents" help="a full comma-separated list or the ident to be plotted last on the top">\n+            <expand macro="valid_list"/>\n+        </param>\n+    </xml>\n+    <xml name="plot_group_by">\n+        <param name="group_by" type="text" optional="true" value="" label="Factor to group cells by" help="(group.by)"/>\n+    </xml>\n+    <xml name="plot_split_by">\n+        <param name="split_by" type="text" optional="true" value="" label="Factor or identity to split the plot by" help="(split.by)"/>\n+    </xml>\n+    <xml name="plot_alpha">\n+        <param argument="alpha" type="integer" value="1" label="Alpha value for points"/>\n+    </xml>\n+    <xml name="plot_pt_size">\n+        <param name="pt_size" type="float" optional="true" value="" label="Point size for plot" help="(pt.size)"/>\n+    </xml>\n+    <xml name="plot_smooth">\n+        <param argument="smooth" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Smooth the graph"/>\n+    </xml>\n+    <xml name="plot_ncol">\n+        <param argument="ncol" type="integer" optional="true" value="" label="Number of columns to display"/>\n+    </xml>\n+    <xml name="raster_select">\n+        <conditional name="raster">\n+            <param argument="raster" type="select" label="Convert points to raster format" help="NULL will automatically use raster if more than 100,000 points plotted">\n+                <option value="NULL" selected="true">NULL</option>\n+                <option value="TRUE">TRUE</option>\n+                <option value="FALSE">FALSE</option>\n+            </param>\n+            <when value="NULL"></when>\n+            <when value="TRUE">\n+                <param name="raster_x" type="integer" value="512" label="Horizontal length of raster plot (pixels)"/>\n+                <param name="raster_y" type="integer" value="512" label="Vertical height of raster plot (pixels)"/>\n+            </when>\n+            <when value="FALSE"></when>\n+        </conditional>\n+    </xml>\n+    <xml name="raster_boolean">\n+        <param argument="raster" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Convert to raster format"/>\n+    </xml>\n+</macros>\n'
b
diff -r 000000000000 -r 94f1b9c7286f neighbors_clusters_markers.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/neighbors_clusters_markers.xml Wed Sep 11 10:21:37 2024 +0000
[
b'@@ -0,0 +1,831 @@\n+<tool id="seurat_clustering" name="Seurat Find Clusters" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@">\n+    <description>- Neighbors and Markers</description>\n+    <macros>\n+        <import>macros.xml</import>\n+    </macros>\n+    <expand macro="requirements"/>\n+    <expand macro="version_command"/>\n+    <command detect_errors="exit_code"><![CDATA[\n+@CMD@\n+    ]]></command>\n+    <configfiles>\n+        <configfile name="script_file"><![CDATA[\n+@CMD_imports@\n+@CMD_read_inputs@\n+\n+#if $method.method == \'FindNeighbors\'\n+seurat_obj<-FindNeighbors(\n+    seurat_obj,\n+    #if $method.reduction != \'\'\n+    reduction = \'$method.reduction\',\n+    #end if\n+    #if $method.dims != \'\'\n+    dims = 1:$method.dims,\n+    #end if\n+    k.param = $method.k_param,\n+    nn.method = \'$method.nn_method.nn_method\',\n+    #if $method.nn_method.nn_method == \'rann\'\n+    nn.eps = $method.nn_method.nn_eps,\n+    #else if $method.nn_method.nn_method == \'annoy\'\n+    annoy.metric = \'$method.nn_method.annoy_metric\',\n+    #end if\n+    compute.snn = $method.adv.compute_snn.compute_snn,\n+    #if $method.adv.compute_snn.compute_snn == \'TRUE\'\n+        #if $method.adv.compute_snn.prune_snn\n+        prune.snn = $method.adv.compute_snn.prune_snn,\n+        #end if\n+        distance.matrix = $method.adv.compute_snn.distance_matrix,\n+    #else if $method.adv.compute_snn.compute_snn == \'FALSE\'\n+        distance.matrix = $method.adv.compute_snn.distance_matrix.distance_matrix,\n+        #if $method.adv.compute_snn.distance_matrix.distance_matrix == \'FALSE\'\n+        return.neighbor = $method.adv.compute_snn.distance_matrix.return_neighbor,\n+        #end if\n+    #end if\n+    l2.norm = $method.adv.l2_norm,\n+    n.trees = $method.adv.n_trees\n+)\n+\n+#else if $method.method == \'FindMultiModalNeighbors\'\n+seurat_obj<-FindMultiModalNeighbors(\n+    seurat_obj,\n+    reduction.list = list(\'$method.reduction_1\', \'$method.reduction_2\'),\n+    dims.list = list(1:$method.dims_1, 1:$method.dims_2),\n+    k.nn = $method.k_nn,\n+    knn.graph.name = \'$method.adv.knn_graph_name\',\n+    snn.graph.name = \'$method.adv.snn_graph_name\',\n+    weighted.nn.name = \'$method.adv.weighted_nn_name\',\n+    #if $method.adv.modality_weight_name != \'\'\n+    modality.weight.name = \'$method.adv.modality_weight_name\',\n+    #end if\n+    knn.range = $method.adv.knn_range\n+)\n+\n+#else if $method.method == \'FindClusters\'\n+@reticulate_hack@\n+seurat_obj<-FindClusters(\n+    seurat_obj,\n+    modularity.fxn = $method.modularity_fxn,\n+    resolution = $method.resolution,\n+    algorithm = $method.algorithm.algorithm,\n+    #if $method.algorithm.algorithm == \'4\'\n+        #if $method.algorithm.initial_membership\n+        initial.membership = $method.algorithm.initial_membership,\n+        #end if\n+        #if $method.algorithm.node_sizes\n+        node.sizes = $method.algorithm.node_sizes,\n+        #end if\n+        method = \'$method.algorithm.method_cluster\',\n+    #end if\n+    n.start = $method.n_start,\n+    n.iter = $method.n_iter,\n+    random.seed = $method.random_seed,\n+    #if $method.graph_name != \'\'\n+    graph.name = \'$method.graph_name\',\n+    #end if\n+    #if $method.cluster_name != \'\'\n+    cluster.name = \'$method.cluster_name\'\n+    #end if\n+)\n+\n+#else if $method.method == \'FindAllMarkers\'\n+\n+    #if $method.features\n+    features_list<-paste(readLines(\'$method.features\'), collapse=",")\n+    #end if\n+\n+seurat_obj<-FindAllMarkers(\n+    seurat_obj,\n+    #if $method.features\n+        features = c(unlist(strsplit(features_list, ","))),\n+    #end if\n+    logfc.threshold = $method.logfc_threshold,\n+    test.use = \'$method.test_use.test_use\',\n+    #if $method.test_use.test_use == \'negbinom\'\n+        #if $method.test_use.latent_vars != \'\'\n+        latent.vars = c(unlist(strsplit(gsub(" ", "", \'$method.test_use.latent_vars\'), ","))),\n+        #end if\n+        min.cells.feature = $method.test_use.min_cells_feature,\n+    #else if $method.test_use.test_use == \'poisson\'\n+        #if $method.test_use.latent'..b'ors>`__\n+\n+FindClusters\n+============\n+\n+Identify clusters of cells by a shared nearest neighbor (SNN) modularity optimization based clustering algorithm.\n+\n+First calculate k-nearest neighbors and construct the SNN graph. Then optimize the modularity function to determine clusters.\n+\n+More details on the `seurat documentation\n+<https://satijalab.org/seurat/reference/findclusters>`__\n+\n+\n+FindAllMarkers\n+==============\n+\n+Find markers (differentially expressed genes) for each of the identity classes in a dataset\n+\n+Outputs a matrix containing a ranked list of putative markers, and associated statistics (p-values, ROC score, etc.)\n+\n+Methods:\n+\n+"wilcox" : Identifies differentially expressed genes between two groups of cells using a Wilcoxon Rank Sum test (default); will use a fast implementation by Presto if installed\n+\n+"wilcox_limma" : Identifies differentially expressed genes between two groups of cells using the limma implementation of the Wilcoxon Rank Sum test; set this option to reproduce results from Seurat v4\n+\n+"bimod" : Likelihood-ratio test for single cell gene expression, (McDavid et al., Bioinformatics, 2013)\n+\n+"roc" : Identifies \'markers\' of gene expression using ROC analysis. For each gene, evaluates (using AUC) a classifier built on that gene alone, to classify between two groups of cells. An AUC value of 1 means that expression values for this gene alone can perfectly classify the two groupings (i.e. Each of the cells in cells.1 exhibit a higher level than each of the cells in cells.2). An AUC value of 0 also means there is perfect classification, but in the other direction. A value of 0.5 implies that the gene has no predictive power to classify the two groups. Returns a \'predictive power\' (abs(AUC-0.5) * 2) ranked matrix of putative differentially expressed genes.\n+\n+"t" : Identify differentially expressed genes between two groups of cells using Student\'s t-test.\n+\n+"negbinom" : Identifies differentially expressed genes between two groups of cells using a negative binomial generalized linear model. Use only for UMI-based datasets\n+\n+"poisson" : Identifies differentially expressed genes between two groups of cells using a poisson generalized linear model. Use only for UMI-based datasets\n+\n+"LR" : Uses a logistic regression framework to determine differentially expressed genes. Constructs a logistic regression model predicting group membership based on each feature individually and compares this to a null model with a likelihood ratio test.\n+\n+"MAST" : Identifies differentially expressed genes between two groups of cells using a hurdle model tailored to scRNA-seq data. Utilizes the MAST package to run the DE testing.\n+\n+"DESeq2" : Identifies differentially expressed genes between two groups of cells based on a model using DESeq2 which uses a negative binomial distribution (Love et al, Genome Biology, 2014).This test does not support pre-filtering of genes based on average difference (or percent detection rate) between cell groups. However, genes may be pre-filtered based on their minimum detection rate (min.pct) across both cell groups.\n+\n+More details on the `seurat documentation\n+<https://satijalab.org/seurat/reference/findallmarkers>`__\n+\n+FindMarkers\n+===========\n+\n+Find markers (differentially expressed genes) for identity classes (clusters) or groups of cells\n+\n+Outputs a data.frame with a ranked list of putative markers as rows, and associated statistics as columns (p-values, ROC score, etc., depending on the test used (test.use)).\n+\n+Methods - as for FindAllMarkers\n+\n+More details on the `seurat documentation\n+<https://satijalab.org/seurat/reference/findmarkers>`__\n+\n+FindConservedMarkers\n+====================\n+\n+Finds markers that are conserved between the groups\n+\n+Uses metap::minimump as meta.method.\n+\n+More details on the `seurat documentation\n+<https://satijalab.org/seurat/reference/findconservedmarkers>`__\n+\n+    ]]></help>\n+    <expand macro="citations"/>\n+</tool>\n\\ No newline at end of file\n'