Mercurial > repos > iuc > seurat_reduce_dimension
view reduce_dimensions.xml @ 1:46ed93e8da30 draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/seurat_v5 commit 566984b588e88225f0b3f2dae88c6fd084315e7c
| author | iuc |
|---|---|
| date | Tue, 05 Nov 2024 11:55:04 +0000 |
| parents | e49429e8d6dd |
| children |
line wrap: on
line source
<tool id="seurat_reduce_dimension" name="Seurat Run Dimensional Reduction" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@"> <description>- PCA, tSNE or UMAP</description> <macros> <import>macros.xml</import> </macros> <expand macro="bio_tools"/> <expand macro="requirements"/> <expand macro="version_command"/> <command detect_errors="exit_code"><![CDATA[ @CMD@ ]]></command> <configfiles> <configfile name="script_file"><![CDATA[ @CMD_imports@ @CMD_read_inputs@ #if $method.method == 'RunPCA' #if $method.features features_list<-paste(readLines('$method.features'), collapse=",") #end if seurat_obj<-RunPCA( seurat_obj, #if $method.assay != '' assay = '$method.assay', #end if #if $method.features features = c(unlist(strsplit(features_list, ","))), #end if npcs = $method.npcs, rev.pca = $method.rev_pca, weight.by.var = $method.weight_by_var, reduction.key = '$method.reduction_key', seed.use = $method.seed_use, approx = $method.approx, reduction.name = '$method.reduction_name' ) #if $method.print_pcs.print_pcs == 'true' sink('print_pcs.txt') print( seurat_obj[['pca']], dims = 1:$method.print_pcs.dims, nfeatures = $method.print_pcs.nfeatures ) sink() #end if #else if $method.method == 'RunTSNE' seurat_obj<-RunTSNE( seurat_obj, #if $method.reduction != '' reduction = '$method.reduction', #end if #if $method.dims dims = 1:$method.dims, #end if #if $method.assay != '' assay = '$method.assay', #end if seed.use = $method.seed_use, tsne.method = '$method.tsne_method', dim.embed = $method.dim_embed, reduction.key = '$method.reduction_key', reduction.name = '$method.reduction_name' ) #else if $method.method == 'RunUMAP' @reticulate_hack@ #if $method.run_umap_on.run_umap_on == 'features' features_list<-paste(readLines('$method.run_umap_on.features'), collapse=",") #end if seurat_obj<-RunUMAP( seurat_obj, #if $method.reduction != '' reduction = '$method.reduction', #end if #if $method.assay != '' assay = '$method.assay', #end if reduction.key = '$method.adv.reduction_key', reduction.name = '$method.adv.reduction_name', #if $method.adv.reduction_model != '' reduction.model = '$method.adv.reduction_model', #end if umap.method ='$method.umap_method.umap_method', #if $method.umap_method.umap_method == 'umap-learn' densmap = $method.umap_method.densmap.densmap, #if $method.umap_method.densmap.densmap == 'TRUE' dens.lambda = $method.umap_method.densmap.dens_lambda, dens.frac = $method.umap_method.densmap.dens_frac, dens.var.shift = $method.umap_method.densmap.dens_var_shift, #end if #end if n.neighbors = $method.n_neighbors, n.components = $method.n_components, metric = '$method.metric', #if $method.adv.n_epochs n.epochs = $method.adv.n_epochs, #end if learning.rate = $method.adv.learning_rate, min.dist = $method.adv.min_dist, spread = $method.adv.spread, set.op.mix.ratio = $method.adv.set_op_mix_ratio, local.connectivity = $method.adv.local_connectivity, repulsion.strength = $method.adv.repulsion_strength, negative.sample.rate = $method.adv.negative_sample_rate, #if $method.adv.a != '' a = '$method.adv.a', #end if #if $method.adv.b != '' b = '$method.adv.b', #end if uwot.sgd = $method.adv.uwot_sgd, seed.use = $method.adv.seed_use, angular.rp.forest = $method.adv.angular_rp_forest, #if $method.run_umap_on.run_umap_on == 'dims' dims = 1:$method.run_umap_on.dims, #else if $method.run_umap_on.run_umap_on == 'features' features = c(unlist(strsplit(features_list, ","))), slot = '$method.run_umap_on.slot', #else if $method.run_umap_on.run_umap_on == 'graph' graph = '$method.run_umap_on.graph', #else if $method.run_umap_on.run_umap_on == 'nn_name' nn.names = '$method.run_umap_on.nn_name', #end if ) #end if @CMD_rds_write_outputs@ ]]></configfile> </configfiles> <inputs> <expand macro="input_rds"/> <conditional name="method"> <param name="method" type="select" label="Method used"> <option value="RunPCA">Run a PCA dimensionality reduction using 'RunPCA'</option> <option value="RunTSNE">Run a t-SNE dimensionality reduction using 'RunTSNE'</option> <option value="RunUMAP">Run a UMAP dimensional reduction using 'RunUMAP'</option> </param> <when value="RunPCA"> <expand macro="select_assay"/> <param argument="npcs" type="integer" value="50" label="Number of PCs to compute"/> <param name="rev_pca" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Compute the PCA on the 'gene x cell' matrix instead of 'cell x gene' matrix" help="(rev.pca)"/> <param name="weight_by_var" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Weight the cell embeddings by the variance of each PC" help="(weight.by.var)"/> <param name="seed_use" type="integer" value="42" label="Set a random seed" help="(seed.use)"/> <param argument="approx" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Use truncated singular value decomposition to approximate PCA"/> <param argument="features" type="data" format="txt,tabular" optional="true" label="List of features to compute PCA on" help="text file with one feature on each line, default is variable features"/> <param name="reduction_name" type="text" value="pca" label="Name for dimensional reduction" help="(reduction.name)"> <expand macro="valid_name"/> </param> <param name="reduction_key" type="text" value="PC_" label="Dimensional reduction key" help="specifies the string before the number for the dimension names (reduction.key)"> <expand macro="valid_reduction_key"/> </param> <conditional name="print_pcs"> <param name="print_pcs" type="select" label="Output list of top genes"> <option value="false" selected="true">No</option> <option value="true">Yes</option> </param> <when value="false"> </when> <when value="true"> <param argument="dims" type="integer" value="5" label="Number of PCs to print genes for"/> <param argument="nfeatures" type="integer" value="5" label="Number of top genes to print for each PC"/> </when> </conditional> </when> <when value="RunTSNE"> <expand macro="select_reduction_pca"/> <expand macro="set_dims"/> <expand macro="select_assay"/> <param name="tsne_method" type="select" label="Select the method to use to compute the tSNE" help="(tsne.method)"> <option value="Rtsne" selected="true">Rtsne</option> <option value="FIt-SNE">FIt-SNE</option> </param> <param name="seed_use" type="integer" value="1" label="Set a random seed" help="(seed.use)"/> <param name="dim_embed" type="integer" value="2" label="Set the dimensional space of the tSNE embedding" help="(dim.embed)"/> <param name="reduction_name" type="text" value="tsne" label="Name for dimensional reduction" help="(reduction.name)"> <expand macro="valid_name"/> </param> <param name="reduction_key" type="text" value="tSNE_" label="Dimensional reduction key" help="specifies the string before the number for the dimension names (reduction.key)"> <expand macro="valid_reduction_key"/> </param> </when> <when value="RunUMAP"> <expand macro="select_reduction_pca"/> <expand macro="select_assay"/> <conditional name="umap_method"> <param name="umap_method" type="select" label="UMAP implementation to run" help="(umap.method)"> <option value="uwot" selected="true">uwot</option> <option value="uwot-learn">uwot-learn</option> <option value="umap-learn">umap-learn</option> </param> <when value="uwot"> </when> <when value="uwot-learn"> </when> <when value="umap-learn"> <conditional name="densmap"> <param argument="densmap" type="select" label="Use the density-augmented objective of densMAP"> <option value="TRUE">Yes</option> <option value="FALSE" selected="true">No</option> </param> <when value="TRUE"> <param name="dens_lambda" type="integer" optional="true" value="2" label="Control the regularization weight of densMAP density correlation term" help="(dens.lambda)"/> <param name="dens_frac" type="float" optional="true" min="0" max="1" value="0.3" label="Control the fraction of epochs where density-augmented objective is used in densMAP" help="(dens.frac)"/> <param name="dens_var_shift" type="float" optional="true" value="0.1" label="Constant to add to variance of local radii when calculating density correlation objective" help="(dens.var.shift)"/> </when> <when value="FALSE"> </when> </conditional> </when> </conditional> <param name="n_neighbors" type="integer" value="30" label="Number of neighbors to use" help="Usually in range 5-50 (n.neighbors)"/> <param name="n_components" type="integer" value="2" label="Dimension of the space to embed into" help="(n.components)"/> <param argument="metric" type="select" label="Choose metric to use to measure distances in the input space"> <option value="cosine" selected="true">cosine</option> <option value="correlation">correlation</option> <option value="euclidean">euclidean</option> <option value="manhattan">manhattan</option> <option value="hamming">hamming</option> </param> <conditional name="run_umap_on"> <param name="run_umap_on" type="select" label="Run UMAP on dimensions, features, graph or KNN output"> <option value="dims" selected="true">dims</option> <option value="features">features</option> <option value="graph">graph</option> <option value="nn_name">nn.name</option> </param> <when value="dims"> <expand macro="set_dims"/> </when> <when value="features"> <param argument="features" type="data" format="txt,tabular" optional="true" label="Run UMAP on this subset of features" help="text file with one feature on each line"/> <expand macro="select_slot_data"/> </when> <when value="graph"> <param argument="graph" type="text" optional="true" value="" label="Name of graph on which to run UMAP"> <expand macro="valid_name"/> </param> </when> <when value="nn_name"> <param name="nn_name" type="text" optional="true" value="" label="Name of KNN output on which to run UMAP" help="(nn.name)"> <expand macro="valid_name"/> </param> </when> </conditional> <section name="adv" title="Advanced Options"> <param name="reduction_model" type="text" optional="true" value="" label="DimReduct object that contains the umap model" help="(reduction.model)"/> <param name="n_epochs" type="integer" optional="true" value="" label="Set the number of training epochs to use to optimise the embedding" help="if left empty, will be set as 500 for small datasets, 200 for large datasets (n.epochs)"/> <param name="learning_rate" type="integer" value="1" label="Initial learning rate for the embedding optimization" help="(learning.rate)"/> <param name="min_dist" type="float" value="0.3" label="Control how tightly points are compressed in the embedding" help="sensible values are in the range 0.001 to 0.5 (min.dist)"/> <param argument="spread" type="integer" value="1" label="Effective spread of embedded points"/> <param name="set_op_mix_ratio" type="float" value="1.0" label="Interpolate between fuzzy union and intersection" help="(set.op.mix.ratio)"/> <param name="local_connectivity" type="integer" value="1" label="Set local connectivity" help="the number of nearest neighbors assummed to connect at local level (local.connectivity)"/> <param name="repulsion_strength" type="integer" value="1" label="Apply weighting to negative values" help="(repulsion.strength)"/> <param name="negative_sample_rate" type="integer" value="5" label="Number of negative samples to select per positive sample during optimization" help="(negative.sample.rate)"/> <param argument="a" type="text" optional="true" value="" label="Parameter 'a' of differentiable approximation of right adjoint functor" help="automatically set if left empty"/> <param argument="b" type="text" optional="true" value="" label="Parameter 'b' of differentiable approximation of right adjoint functor" help="automatically set if left empty"/> <param name="uwot_sgd" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked ="false" label="Set uwot::umap(fast_sgd = TRUE)" help="(uwot.sgd)"/> <param name="seed_use" type="integer" value="42" label="Set a random seed" help="(seed.use)"/> <param name="angular_rp_forest" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Use an angular random projection forest to initialise nearest neighbors" help="(angular.rp.forest)"/> <param name="reduction_name" type="text" value="umap" label="Name for dimensional reduction" help="(reduction.name)"> <expand macro="valid_name"/> </param> <param name="reduction_key" type="text" value="UMAP_" label="Dimensional reduction key" help="specifies the string before the number for the dimension names (reduction.key)"> <expand macro="valid_reduction_key"/> </param> </section> </when> </conditional> <expand macro="inputs_common_advanced"/> </inputs> <outputs> <expand macro="seurat_outputs"/> <expand macro="print_top_pcs"/> </outputs> <tests> <test expect_num_outputs="3"> <!-- test1: RunPCA --> <param name="seurat_rds" location="https://zenodo.org/records/13732784/files/scaled.rds"/> <conditional name="method"> <param name="method" value="RunPCA"/> <conditional name="print_pcs"> <param name="print_pcs" value="true"/> </conditional> </conditional> <section name="advanced_common"> <param name="show_log" value="true"/> </section> <output name="hidden_output"> <assert_contents> <has_text_matching expression="RunPCA"/> </assert_contents> </output> <output name="rds_out" location="https://zenodo.org/records/13732784/files/pca.rds" ftype="rds" compare="sim_size"/> <output name="top_pcs" location="https://zenodo.org/records/13732784/files/top_pcs.txt" ftype="txt"> <assert_contents> <has_text_matching expression="PC_" n="5"/> </assert_contents> </output> </test> <test expect_num_outputs="2"> <!-- test2: RuntSNE --> <param name="seurat_rds" location="https://zenodo.org/records/13732784/files/clusters.rds"/> <conditional name="method"> <param name="method" value="RunTSNE"/> <param name="seed.use" value="1"/> <param name="tsne_method" value="Rtsne"/> <param name="dim_embed" value="2"/> <param name="reduction_key" value="tSNE_"/> </conditional> <section name="advanced_common"> <param name="show_log" value="true"/> </section> <output name="hidden_output"> <assert_contents> <has_text_matching expression="RunTSNE"/> </assert_contents> </output> <output name="rds_out" location="https://zenodo.org/records/13732784/files/tSNE.rds" ftype="rds" compare="sim_size"/> </test> <test expect_num_outputs="2"> <!-- test3: RuntSNE with FIt-SNE --> <param name="seurat_rds" location="https://zenodo.org/records/13732784/files/clusters.rds"/> <conditional name="method"> <param name="method" value="RunTSNE"/> <param name="seed.use" value="1"/> <param name="tsne_method" value="FIt-SNE"/> <param name="dim_embed" value="2"/> <param name="reduction_key" value="tSNE_"/> </conditional> <section name="advanced_common"> <param name="show_log" value="true"/> </section> <output name="hidden_output"> <assert_contents> <has_text_matching expression="RunTSNE"/> </assert_contents> </output> <output name="rds_out" location="https://zenodo.org/records/13732784/files/FIt-SNE.rds" ftype="rds" compare="sim_size"/> </test> <test expect_num_outputs="2"> <!-- test4: RunUMAP --> <param name="seurat_rds" location="https://zenodo.org/records/13732784/files/clusters.rds"/> <conditional name="method"> <param name="method" value="RunUMAP"/> <param name="reduction_key" value="UMAP_"/> <conditional name="umap_method"> <param name="umap_method" value="uwot"/> </conditional> </conditional> <section name="advanced_common"> <param name="show_log" value="true"/> </section> <output name="hidden_output"> <assert_contents> <has_text_matching expression="RunUMAP"/> </assert_contents> </output> <output name="rds_out" location="https://zenodo.org/records/13732784/files/umap.rds" ftype="rds" compare="sim_size"/> </test> <test expect_num_outputs="2"> <!-- test5: RunUMAP - umap-learn --> <param name="seurat_rds" location="https://zenodo.org/records/13732784/files/clusters.rds"/> <conditional name="method"> <param name="method" value="RunUMAP"/> <param name="reduction_key" value="UMAP_"/> <conditional name="umap_method"> <param name="umap_method" value="umap-learn"/> <conditional name="densmap"> <param name="densmap" value="FALSE"/> </conditional> </conditional> </conditional> <section name="advanced_common"> <param name="show_log" value="true"/> </section> <output name="hidden_output"> <assert_contents> <has_text_matching expression="RunUMAP"/> </assert_contents> </output> <output name="rds_out" location="https://zenodo.org/records/13732784/files/umap-learn.rds" ftype="rds" compare="sim_size"/> </test> </tests> <help><![CDATA[ Seurat ====== Seurat is an R package designed for QC, analysis, and exploration of single-cell RNA-seq data. Seurat aims to enable users to identify and interpret sources of heterogeneity from single-cell transcriptomic measurements, and to integrate diverse types of single-cell data. RunPCA ====== Run a PCA dimensionality reduction. More details on the `seurat documentation <https://satijalab.org/seurat/reference/runpca>`__ RuntSNE ======= Run t-SNE dimensionality reduction on selected features. More details on the `seurat documentation <https://satijalab.org/seurat/reference/runtsne>`__ RunUMAP ======= Runs the Uniform Manifold Approximation and Projection (UMAP) dimensional reduction technique. More details on the `seurat documentation <https://satijalab.org/seurat/reference/runumap>`__ ]]></help> <expand macro="citations"/> </tool>
