view seurat_plot.xml @ 0:95d79f1134f0 draft default tip

planemo upload commit 0264c359f1d638bbbbab515a3502231f679cdcf6
author ebi-gxa
date Sat, 02 Mar 2024 10:40:08 +0000
parents
children
line wrap: on
line source

<tool id="seurat_plot" name="Plot" profile="18.01" version="@SEURAT_VERSION@+galaxy0">
    <description>with Seurat</description>
    <macros>
        <import>seurat_macros.xml</import>
    </macros>
    <expand macro="requirements" />
    <expand macro="version" />
    <command detect_errors="exit_code"><![CDATA[
    @INPUT_OBJ_PREAMBLE@
    seurat-plot.R
    @INPUT_OBJECT@
    @OUTPUT_PLOT@
    --plot-type '$plot_type.plot_type_selector'


    #if str($plot_type.plot_type_selector) == 'DimPlot':

    #if $plot_type.dims
    --dims '$plot_type.dims'
    #end if


    #if $plot_type.cells
    --cells '$plot_type.cells'
    #end if


    #if $plot_type.cols
    --cols '$plot_type.cols'
    #end if


    #if $plot_type.pt_size
    --pt-size '$plot_type.pt_size'
    #end if


    #if $plot_type.reduction
    --reduction '$plot_type.reduction'
    #end if


    #if $plot_type.group_by
    --group-by '$plot_type.group_by'
    #end if


    #if $plot_type.split_by
    --split-by '$plot_type.split_by'
    #end if


    #if $plot_type.shape_by
    --shape-by '$plot_type.shape_by'
    #end if


    #if $plot_type.order
    --order '$plot_type.order'
    #end if

        $plot_type.shuffle


    --seed '$plot_type.seed'

        $plot_type.label


    --label-size '$plot_type.label_size'


    --label-color '$plot_type.label_color'

        $plot_type.label_box

        $plot_type.repel


    #if $plot_type.cells_highlight
    --cells-highlight '$plot_type.cells_highlight'
    #end if


    #if $plot_type.cols_highlight
    --cols-highlight '$plot_type.cols_highlight'
    #end if


    #if $plot_type.sizes_highlight
    --sizes-highlight '$plot_type.sizes_highlight'
    #end if


    #if $plot_type.na_value
    --na-value '$plot_type.na_value'
    #end if


    #if $plot_type.ncol
    --ncol '$plot_type.ncol'
    #end if

    #elif str($plot_type.plot_type_selector) == 'DoHeatmap':

    #if $plot_type.features
    --features '$plot_type.features'
    #end if


    #if $plot_type.cells
    --cells '$plot_type.cells'
    #end if


    #if $plot_type.group_by
    --group-by '$plot_type.group_by'
    #end if

        $plot_type.group_bar


    #if $plot_type.group_colors
    --group-colors '$plot_type.group_colors'
    #end if


    #if $plot_type.disp_min
    --disp-min '$plot_type.disp_min'
    #end if


    #if $plot_type.disp_max
    --disp-max '$plot_type.disp_max'
    #end if


    --slot '$plot_type.slot'


    #if $plot_type.assay
    --assay '$plot_type.assay'
    #end if

        $plot_type.label


    #if $plot_type.size
    --size '$plot_type.size'
    #end if


    #if $plot_type.hjust
    --hjust '$plot_type.hjust'
    #end if


    #if $plot_type.angle
    --angle '$plot_type.angle'
    #end if

        $plot_type.raster

        $plot_type.draw_lines


    #if $plot_type.lines_width
    --lines-width '$plot_type.lines_width'
    #end if


    #if $plot_type.group_bar_height
    --group-bar-height '$plot_type.group_bar_height'
    #end if

        $plot_type.combine

    #elif str($plot_type.plot_type_selector) == 'RidgePlot':

    --features '$plot_type.features'


    #if $plot_type.cols_ridgeplot
    --cols-ridgeplot '$plot_type.cols_ridgeplot'
    #end if


    #if $plot_type.idents
    --idents '$plot_type.idents'
    #end if

        $plot_type.sort


    #if $plot_type.assay
    --assay '$plot_type.assay'
    #end if


    #if $plot_type.group_by
    --group-by '$plot_type.group_by'
    #end if

        $plot_type.same_y_lims

        $plot_type.log


    #if $plot_type.ncol
    --ncol '$plot_type.ncol'
    #end if


    #if $plot_type.slot
    --slot '$plot_type.slot'
    #end if

        $plot_type.stack


    #if $plot_type.fill_by
    --fill-by '$plot_type.fill_by'
    #end if

    #elif str($plot_type.plot_type_selector) == 'FeaturePlot':

    --features '$plot_type.features'


    #if $plot_type.dims
    --dims '$plot_type.dims'
    #end if


    #if $plot_type.cells
    --cells '$plot_type.cells'
    #end if


    #if $plot_type.cols_feature_plot
    --cols-feature-plot '$plot_type.cols_feature_plot'
    #end if


    #if $plot_type.pt_size
    --pt-size '$plot_type.pt_size'
    #end if

        $plot_type.order


    #if $plot_type.min_cutoff
    --min-cutoff '$plot_type.min_cutoff'
    #end if


    #if $plot_type.max_cutoff
    --max-cutoff '$plot_type.max_cutoff'
    #end if


    #if $plot_type.reduction
    --reduction '$plot_type.reduction'
    #end if


    #if $plot_type.split_by
    --split-by '$plot_type.split_by'
    #end if


    --keep-scale '$plot_type.keep_scale'


    #if $plot_type.shape_by
    --shape-by '$plot_type.shape_by'
    #end if


    #if $plot_type.slot
    --slot '$plot_type.slot'
    #end if

        $plot_type.blend


    #if $plot_type.blend_threshold
    --blend-threshold '$plot_type.blend_threshold'
    #end if

        $plot_type.label


    #if $plot_type.label_size
    --label-size '$plot_type.label_size'
    #end if

        $plot_type.repel


    #if $plot_type.ncol
    --ncol '$plot_type.ncol'
    #end if

        $plot_type.coord_fixed

        $plot_type.by_col

    #elif str($plot_type.plot_type_selector) == 'VlnPlot':

    --features '$plot_type.features'


    #if $plot_type.cols
    --cols '$plot_type.cols'
    #end if


    #if $plot_type.pt_size
    --pt-size '$plot_type.pt_size'
    #end if


    #if $plot_type.idents
    --idents '$plot_type.idents'
    #end if

        $plot_type.sort


    #if $plot_type.assay
    --assay '$plot_type.assay'
    #end if


    #if $plot_type.group_by
    --group-by '$plot_type.group_by'
    #end if


    #if $plot_type.split_by
    --split-by '$plot_type.split_by'
    #end if


    #if $plot_type.adjust
    --adjust '$plot_type.adjust'
    #end if

        $plot_type.same_y_lims

        $plot_type.log


    #if $plot_type.ncol
    --ncol '$plot_type.ncol'
    #end if


    #if $plot_type.slot
    --slot '$plot_type.slot'
    #end if

        $plot_type.split_plot

        $plot_type.stack


    #if $plot_type.fill_by
    --fill-by '$plot_type.fill_by'
    #end if

        $plot_type.flip

    #elif str($plot_type.plot_type_selector) == 'DotPlot':

    #if $plot_type.assay
    --assay '$plot_type.assay'
    #end if


    --features '$plot_type.features'


    #if $plot_type.cols_dot_plot
    --cols-dot-plot '$plot_type.cols_dot_plot'
    #end if


    #if $plot_type.col_min
    --col-min '$plot_type.col_min'
    #end if


    #if $plot_type.col_max
    --col-max '$plot_type.col_max'
    #end if


    #if $plot_type.dot_min
    --dot-min '$plot_type.dot_min'
    #end if


    #if $plot_type.dot_scale
    --dot-scale '$plot_type.dot_scale'
    #end if


    #if $plot_type.idents
    --idents '$plot_type.idents'
    #end if


    #if $plot_type.group_by
    --group-by '$plot_type.group_by'
    #end if


    #if $plot_type.split_by
    --split-by '$plot_type.split_by'
    #end if

        $plot_type.cluster_idents

        $plot_type.scale


    #if $plot_type.scale_by
    --scale-by '$plot_type.scale_by'
    #end if

    #end if


    #if $enable_output_rds_file
    --output-rds-file '$output_rds_file'
    #end if


    --plot-format '$plot_format'


    --units '$units'


    --dpi '$dpi'

    $limitsize


    #if $bg
    --bg '$bg'
    #end if



    ]]></command>
    <inputs>
        <expand macro="input_object_params" />
        <conditional name="plot_type">
        <param label="Plot_type_selector" name="plot_type_selector" argument="--plot_type_selector" type="select"  help="Either FeaturePlot, RidgePlot, DimPlot, VlnPlot or DotPlot.">
            <option value="DimPlot">DimPlot</option>
            <option value="DoHeatmap">DoHeatmap</option>
            <option value="RidgePlot">RidgePlot</option>
            <option value="FeaturePlot" selected="true">FeaturePlot</option>
            <option value="VlnPlot">VlnPlot</option>
            <option value="DotPlot">DotPlot</option>
        </param>
        <when value="DimPlot">
            <param label="Dims" optional='true' value='1,2' name="dims" argument="--dims" type="text"   help="Dimensions to plot, must be a two-length numeric vector specifying x- and y-dimensions"/>
            <param label="Cells" optional='true' name="cells" argument="--cells" type="text"   help="Vector of cells to plot (default is all cells)"/>
            <param label="Cols" optional='true' name="cols" argument="--cols" type="text"   help="Vector of colors, each color corresponds to an identity class. This may also be a single character or numeric value corresponding to a palette as specified by brewer.pal.info. By default, ggplot2 assigns colors. We also include a number of palettes from the pals package. See 'DiscretePalette' for details."/>
            <param label="Pt size" optional='true' name="pt_size" argument="--pt-size" type="integer"   help="Adjust point size for plotting"/>
            <param label="Reduction" optional='true' name="reduction" argument="--reduction" type="text"   help="Which dimensionality reduction to use. If not specified, first searches for umap, then tsne, then pca"/>
            <param label="Group by" optional='true' name="group_by" argument="--group-by" type="text"   help="Name of one or more metadata columns to group (color) cells by (for example, orig.ident); pass 'ident' to group by identity class"/>
            <param label="Split by" optional='true' name="split_by" argument="--split-by" type="text"   help="Name of a metadata column to split plot by; see 'FetchData' for more details"/>
            <param label="Shape by" optional='true' name="shape_by" argument="--shape-by" type="text"   help="If NULL, all points are circles (default). You can specify any cell attribute (that can be pulled with FetchData) allowing for both different colors and different shapes on cells.  Only applicable if raster is FALSE."/>
            <param label="Order" optional='true' name="order" argument="--order" type="text"   help="Specify the order of plotting for the idents. This can be useful for crowded plots if points of interest are being buried. Provide either a full list of valid idents or a subset to be plotted last (on top)"/>
            <param label="Shuffle" optional='true' value='false' name="shuffle" argument="--shuffle" type="boolean"  truevalue='--shuffle' falsevalue='' checked='false' help="Whether to randomly shuffle the order of points. This can be useful for crowded plots if points of interest are being buried. (default is FALSE)"/>
            <param label="Seed" optional='true' value='1' name="seed" argument="--seed" type="integer"   help="Sets the seed if randomly shuffling the order of points."/>
            <param label="Label" optional='true' value='false' name="label" argument="--label" type="boolean"  truevalue='--label' falsevalue='' checked='false' help="Whether to label the clusters"/>
            <param label="Label size" optional='true' value='4' name="label_size" argument="--label-size" type="integer"   help="Sets size of labels"/>
            <param label="Label color" optional='true' value='black' name="label_color" argument="--label-color" type="text"   help="Sets the color of the label text"/>
            <param label="Label box" optional='true' value='false' name="label_box" argument="--label-box" type="boolean"  truevalue='--label-box' falsevalue='' checked='false' help="Whether to put a box around the label text (geom_text vs geom_label)"/>
            <param label="Repel" optional='true' value='false' name="repel" argument="--repel" type="boolean"  truevalue='--repel' falsevalue='' checked='false' help="Repel labels"/>
            <param label="Cells highlight" optional='true' name="cells_highlight" argument="--cells-highlight" type="text"   help="A list of character or numeric vectors of cells to highlight. If only one group of cells desired, can simply pass a vector instead of a list. If set, colors selected cells to the color(s) in  'cols.highlight'  and other cells black (white if dark.theme = TRUE); will also resize to the size(s) passed to 'sizes.highlight'."/>
            <param label="Cols highlight" optional='true' value='#DE2D26' name="cols_highlight" argument="--cols-highlight" type="text"   help="A vector of colors to highlight the cells as; will repeat to the length groups in cells.highlight. Comma separated."/>
            <param label="Sizes highlight" optional='true' value='1' name="sizes_highlight" argument="--sizes-highlight" type="integer"   help="Size of highlighted cells; will repeat to the length groups in cells.highlight"/>
            <param label="Na value" optional='true' value='grey50' name="na_value" argument="--na-value" type="text"   help="Color value for NA points when using custom scale"/>
            <param label="Ncol" optional='true' name="ncol" argument="--ncol" type="integer"   help="Number of columns for display when combining plots"/>
        </when>
        <when value="DoHeatmap">
            <param label="Features" optional='true' name="features" argument="--features" type="text"   help="A vector of features to plot, defaults to VariableFeatures of the object."/>
            <param label="Cells" optional='true' name="cells" argument="--cells" type="text"   help="A vector of cells to plot, comma separated"/>
            <param label="Group by" optional='true' value='ident' name="group_by" argument="--group-by" type="text"   help="A vector of variables to group cells by; pass 'ident' to group by cell identity classes"/>
            <param label="Group bar" optional='true' value='true' name="group_bar" argument="--do-not-group-bar" type="boolean"  truevalue='' falsevalue='--do-not-group-bar' checked='true' help="Add a color bar showing group status for cells"/>
            <param label="Group colors" optional='true' name="group_colors" argument="--group-colors" type="text"   help="Colors to use for the color bar, comma separated."/>
            <param label="Disp min" optional='true' value='-2' name="disp_min" argument="--disp-min" type="integer"   help="Minimum display value (all values below are clipped)"/>
            <param label="Disp max" optional='true' name="disp_max" argument="--disp-max" type="integer"   help="Maximum display value (all values above are clipped); defaults to 2.5 if slot is 'scale.data', 6 otherwise"/>
            <param label="Slot" name="slot" argument="--slot" type="select"  help="Data slot to use, choose from raw.data, data, or scale.data">
            <option value="scale.data" selected="true">Scale data</option>
            <option value="data">Data</option>
            <option value="raw.data">Raw data</option>
        </param>
            <param label="Assay" optional='true' name="assay" argument="--assay" type="text"   help="Assay to pull from"/>
            <param label="Label" optional='true' value='true' name="label" argument="--do-not-label" type="boolean"  truevalue='' falsevalue='--do-not-label' checked='true' help="Label the cell identies above the color bar"/>
            <param label="Size" optional='true' value='5' name="size" argument="--size" type="integer"   help="Size of text above color bar"/>
            <param label="Hjust" optional='true' value='0' name="hjust" argument="--hjust" type="integer"   help="Horizontal justification of text above color bar"/>
            <param label="Angle" optional='true' value='45' name="angle" argument="--angle" type="integer"   help="Angle of text above color bar"/>
            <param label="Raster" optional='true' value='true' name="raster" argument="--do-not-raster" type="boolean"  truevalue='' falsevalue='--do-not-raster' checked='true' help="If true, plot with geom_raster, else use geom_tile. geom_raster may look blurry on some viewing applications such as Preview due to how the raster is interpolated. Set this to FALSE if you are encountering that issue (note that plots may take longer to produce/render)."/>
            <param label="Draw lines" optional='true' value='true' name="draw_lines" argument="--do-not-draw-lines" type="boolean"  truevalue='' falsevalue='--do-not-draw-lines' checked='true' help="Include white lines to separate the groups"/>
            <param label="Lines width" optional='true' name="lines_width" argument="--lines-width" type="integer"   help="Integer number to adjust the width of the separating white lines. Corresponds to the number of cells between each group."/>
            <param label="Group bar height" optional='true' value='0' name="group_bar_height" argument="--group-bar-height" type="integer"   help="Scale the height of the color bar"/>
            <param label="Combine" optional='true' value='true' name="combine" argument="--do-not-combine" type="boolean"  truevalue='' falsevalue='--do-not-combine' checked='true' help="Combine plots into a single patchwork or ed ggplot object. If FALSE return a list of ggplot objects."/>
        </when>
        <when value="RidgePlot">
            <param label="Features" optional='true' value='' name="features" argument="--features" type="text"   help="Features to plot (gene expression, metrics, PC scores, anything that can be retreived by FetchData)"/>
            <param label="Cols-ridgeplot" optional='true' name="cols_ridgeplot" argument="--cols-ridgeplot" type="text"   help="Colors to use for plotting, comma separated"/>
            <param label="Idents" optional='true' name="idents" argument="--idents" type="text"   help="Which classes to include in the plot (default is all)"/>
            <param label="Sort" optional='true' value='false' name="sort" argument="--sort" type="boolean"  truevalue='--sort' falsevalue='' checked='false' help="Sort identity classes (on the x-axis) by the average expression of the attribute being potted, can also pass 'increasing' or 'decreasing' to change sort direction"/>
            <param label="Assay" optional='true' name="assay" argument="--assay" type="text"   help="Name of assay to use, defaults to the active assay"/>
            <param label="Group by" optional='true' name="group_by" argument="--group-by" type="text"   help="Group (color) cells in different ways (for example, orig.ident)"/>
            <param label="Same y lims" optional='true' value='false' name="same_y_lims" argument="--same-y-lims" type="boolean"  truevalue='--same-y-lims' falsevalue='' checked='false' help="Set all the y-axis limits to the same values"/>
            <param label="Log" optional='true' value='false' name="log" argument="--log" type="boolean"  truevalue='--log' falsevalue='' checked='false' help="plot the feature axis on log scale"/>
            <param label="Ncol" optional='true' name="ncol" argument="--ncol" type="integer"   help="Number of columns if multiple plots are displayed"/>
            <param label="Slot" optional='true' value='data' name="slot" argument="--slot" type="text"   help="Use non-normalized counts data for plotting"/>
            <param label="Stack" optional='true' value='false' name="stack" argument="--stack" type="boolean"  truevalue='--stack' falsevalue='' checked='false' help="Horizontally stack plots for each feature"/>
            <param label="Fill by" optional='true' value='feature' name="fill_by" argument="--fill-by" type="text"   help="Color violins/ridges based on either 'feature' or 'ident'"/>
        </when>
        <when value="FeaturePlot">
            <param label="Features"  name="features" argument="--features" type="text"   help="Vector of features to plot. Features can come from: an assay feature (e.g. a gene name - MS4A1), a column name from meta.data (e.g. mitochondrial percentage - percent.mito), a column name from a DimReduc object corresponding to the cell embedding values (e.g. the PC 1 scores - PC_1)."/>
            <param label="Dims" optional='true' value='1,2' name="dims" argument="--dims" type="text"   help="Dimensions to plot, must be a two-length numeric vector specifying x- and y-dimensions"/>
            <param label="Cells" optional='true' name="cells" argument="--cells" type="text"   help="Vector of cells to plot (default is all cells)"/>
            <param label="Cols-feature-plot" optional='true' value='lightgrey,blue' name="cols_feature_plot" argument="--cols-feature-plot" type="text"   help="The two colors to form the gradient over. Provide as string vector with the first color corresponding to low values, the second to high. Also accepts a Brewer color scale or vector of colors."/>
            <param label="Pt size" optional='true' name="pt_size" argument="--pt-size" type="integer"   help="Adjust point size for plotting"/>
            <param label="Order" optional='true' value='false' name="order" argument="--order" type="boolean"  truevalue='--order' falsevalue='' checked='false' help="Boolean determining whether to plot cells in order of expression. Can be useful if cells expressing given feature are getting buried."/>
            <param label="Min cutoff" optional='true' name="min_cutoff" argument="--min-cutoff" type="text"   help="Vector of minimum cutoff values for each feature, may specify quantile in the form of 'q##' where '##' is the quantile (eg, 'q1', 'q10')"/>
            <param label="Max cutoff" optional='true' name="max_cutoff" argument="--max-cutoff" type="text"   help="Vector of maximum cutoff values for each feature, may specify quantile in the form of 'q##' where '##' is the quantile (eg, 'q1', 'q10')"/>
            <param label="Reduction" optional='true' name="reduction" argument="--reduction" type="text"   help="Which dimensionality reduction to use. If not specified, first searches for umap, then tsne, then pca"/>
            <param label="Split by" optional='true' name="split_by" argument="--split-by" type="text"   help="A factor in object metadata to split the feature plot by, pass ident to split by cell identity; similar to the old FeatureHeatmap."/>
            <param label="Keep scale" name="keep_scale" argument="--keep-scale" type="select"  help="How to handle the color scale across multiple plots.">
            <option value="feature" selected="true">By row/feature scaling: The plots for each individual feature are scaled to the maximum expression of the feature across the conditions provided to 'split.by'.</option>
            <option value="all">Universal scaling: The plots for all features and conditions are scaled to the maximum expression value for the feature with the highest overall expression.</option>
            <option value="None">No scaling: Each individual plot is scaled to the maximum expression value of the feature in the condition provided to 'split.by'. Be aware setting NULL will result in color scales that are not comparable between plots.</option>
        </param>
            <param label="Shape by" optional='true' name="shape_by" argument="--shape-by" type="text"   help="If NULL, all points are circles (default). You can specify any cell attribute (that can be pulled with FetchData) allowing for both different colors and different shapes on cells.  Only applicable if 'raster' is FALSE) ."/>
            <param label="Slot" optional='true' value='data' name="slot" argument="--slot" type="text"   help="Which slot to pull expression data from?"/>
            <param label="Blend" optional='true' value='false' name="blend" argument="--blend" type="boolean"  truevalue='--blend' falsevalue='' checked='false' help="Scale and blend expression values to visualize coexpression of two features"/>
            <param label="Blend threshold" optional='true' value='0' name="blend_threshold" argument="--blend-threshold" type="integer"   help="The color cutoff from weak signal to strong signal; ranges from 0 to 1."/>
            <param label="Label" optional='true' value='false' name="label" argument="--label" type="boolean"  truevalue='--label' falsevalue='' checked='false' help="Whether to label the clusters"/>
            <param label="Label size" optional='true' value='4' name="label_size" argument="--label-size" type="integer"   help="Sets size of labels"/>
            <param label="Repel" optional='true' value='false' name="repel" argument="--repel" type="boolean"  truevalue='--repel' falsevalue='' checked='false' help="Repel labels"/>
            <param label="Ncol" optional='true' name="ncol" argument="--ncol" type="integer"   help="Number of columns to combine multiple feature plots to, ignored if split.by is not NULL"/>
            <param label="Coord fixed" optional='true' value='false' name="coord_fixed" argument="--coord-fixed" type="boolean"  truevalue='--coord-fixed' falsevalue='' checked='false' help="Plot cartesian coordinates with fixed aspect ratio"/>
            <param label="By col" optional='true' value='true' name="by_col" argument="--do-not-by-col" type="boolean"  truevalue='' falsevalue='--do-not-by-col' checked='true' help="If splitting by a factor, plot the splits per column with the features as rows; ignored if blend = TRUE."/>
        </when>
        <when value="VlnPlot">
            <param label="Features" optional='true' value='' name="features" argument="--features" type="text"   help="Features to plot (gene expression, metrics, PC scores, anything that can be retreived by FetchData)"/>
            <param label="Cols" optional='true' name="cols" argument="--cols" type="text"   help="Colors to use for plotting, comma separated."/>
            <param label="Pt size" optional='true' name="pt_size" argument="--pt-size" type="integer"   help="Point size for geom_violin"/>
            <param label="Idents" optional='true' name="idents" argument="--idents" type="text"   help="Which classes to include in the plot (default is all)"/>
            <param label="Sort" optional='true' value='false' name="sort" argument="--sort" type="boolean"  truevalue='--sort' falsevalue='' checked='false' help="Sort identity classes (on the x-axis) by the average expression of the attribute being potted, can also pass 'increasing' or 'decreasing' to change sort direction"/>
            <param label="Assay" optional='true' name="assay" argument="--assay" type="text"   help="Name of assay to use, defaults to the active assay"/>
            <param label="Group by" optional='true' name="group_by" argument="--group-by" type="text"   help="Group (color) cells in different ways (for example, orig.ident)"/>
            <param label="Split by" optional='true' name="split_by" argument="--split-by" type="text"   help="A variable to split the violin plots by,"/>
            <param label="Adjust" optional='true' value='1' name="adjust" argument="--adjust" type="integer"   help="Adjust parameter for geom_violin"/>
            <param label="Same y lims" optional='true' value='false' name="same_y_lims" argument="--same-y-lims" type="boolean"  truevalue='--same-y-lims' falsevalue='' checked='false' help="Set all the y-axis limits to the same values"/>
            <param label="Log" optional='true' value='false' name="log" argument="--log" type="boolean"  truevalue='--log' falsevalue='' checked='false' help="plot the feature axis on log scale"/>
            <param label="Ncol" optional='true' name="ncol" argument="--ncol" type="integer"   help="Number of columns if multiple plots are displayed"/>
            <param label="Slot" optional='true' value='data' name="slot" argument="--slot" type="text"   help="Use non-normalized counts data for plotting"/>
            <param label="Split plot" optional='true' value='false' name="split_plot" argument="--split-plot" type="boolean"  truevalue='--split-plot' falsevalue='' checked='false' help="plot each group of the split violin plots by multiple or single violin shapes."/>
            <param label="Stack" optional='true' value='false' name="stack" argument="--stack" type="boolean"  truevalue='--stack' falsevalue='' checked='false' help="Horizontally stack plots for each feature"/>
            <param label="Fill by" optional='true' value='feature' name="fill_by" argument="--fill-by" type="text"   help="Color violins/ridges based on either 'feature' or 'ident'"/>
            <param label="Flip" optional='true' value='false' name="flip" argument="--flip" type="boolean"  truevalue='--flip' falsevalue='' checked='false' help="flip plot orientation (identities on x-axis)"/>
        </when>
        <when value="DotPlot">
            <param label="Assay" optional='true' name="assay" argument="--assay" type="text"   help="Name of assay to use, defaults to the active assay"/>
            <param label="Features" optional='true' value='' name="features" argument="--features" type="text"   help="Input vector of features, or named list of feature vectors if feature-grouped panels are desired (replicates the functionality of the old SplitDotPlotGG)"/>
            <param label="Cols-dot-plot" optional='true' value='yellow,lightgrey,blue' name="cols_dot_plot" argument="--cols-dot-plot" type="text"   help="Colors to plot: the name of a palette from RColorBrewer::brewer.pal.info , a pair of colors defining a gradient, or 3+ colors defining multiple gradients (if split.by is set)"/>
            <param label="Col min" optional='true' value='-2' name="col_min" argument="--col-min" type="integer"   help="Minimum scaled average expression threshold (everything smaller will be set to this)"/>
            <param label="Col max" optional='true' value='2' name="col_max" argument="--col-max" type="integer"   help="Maximum scaled average expression threshold (everything larger will be set to this)"/>
            <param label="Dot min" optional='true' value='0' name="dot_min" argument="--dot-min" type="integer"   help="The fraction of cells at which to draw the smallest dot (default is 0). All cell groups with less than this expressing the given gene will have no dot drawn."/>
            <param label="Dot scale" optional='true' value='6' name="dot_scale" argument="--dot-scale" type="integer"   help="Scale the size of the points, similar to cex"/>
            <param label="Idents" optional='true' name="idents" argument="--idents" type="text"   help="Identity classes to include in plot (default is all)"/>
            <param label="Group by" optional='true' name="group_by" argument="--group-by" type="text"   help="Factor to group the cells by"/>
            <param label="Split by" optional='true' name="split_by" argument="--split-by" type="text"   help="Factor to split the groups by (replicates the functionality of the old SplitDotPlotGG); see  'FetchData' for more details."/>
            <param label="Cluster idents" optional='true' value='false' name="cluster_idents" argument="--cluster-idents" type="boolean"  truevalue='--cluster-idents' falsevalue='' checked='false' help="Whether to order identities by hierarchical clusters based on given features, default is FALSE"/>
            <param label="Scale" optional='true' value='true' name="scale" argument="--do-not-scale" type="boolean"  truevalue='' falsevalue='--do-not-scale' checked='true' help="Determine whether the data is scaled, will be done by default"/>
            <param label="Scale by" name="scale_by" argument="--scale-by" type="select"  help="Scale the size of the points by 'size' or by 'radius'">
            <option value="size">Size</option>
            <option value="radius" selected="true">Radius</option>
        </param>
        </when>
    </conditional>
        <param label="Plot-format" name="plot_format" argument="--plot-format" type="select"  help="Format to use, either PNG, EPS, PostScript, TeX, PDF, JPEG, TIFF or SVG">
            <option value="png" selected="true">PNG</option>
            <option value="eps">EPS</option>
            <option value="ps">PostScript</option>
            <option value="tex">TeX (pictex)</option>
            <option value="pdf">PDF</option>
            <option value="jpg">JPG</option>
            <option value="tiff">TIFF</option>
            <option value="svg">SVG</option>
        </param>
        <param label="Units" name="units" argument="--units" type="select"  help="Units for the plot dimensions.">
            <option value="cm" selected="true">Centimeters</option>
            <option value="in">Inches</option>
            <option value="mm">Milimeters</option>
            <option value="px">Pixels</option>
        </param>
        <param label="Dpi" name="dpi" argument="--dpi" type="select"  help="Plot resolution. Also accepts a string input: retina (320), print (300), or screen (72). Applies only to raster output types.">
            <option value="320">Retina</option>
            <option value="300" selected="true">Print</option>
            <option value="72">screen</option>
        </param>
        <param label="Limitsize" optional='true' value='true' name="limitsize" argument="--do-not-limitsize" type="boolean"  truevalue='' falsevalue='--do-not-limitsize' checked='true' help="When TRUE (the default) ggsave() will not save images larger than 50x50 inches, to prevent the common error of specifying dimensions in pixels."/>
        <param label="Bg" optional='true' name="bg" argument="--bg" type="text"   help="Background colour. If NULL, uses the plot.background fill value from the plot theme."/>
        <param label="Enable_output_rds_file" optional='true' value='false' name="enable_output_rds_file" argument="--enable_output_rds_file" type="boolean"  truevalue='--enable_output_rds_file' falsevalue='' checked='false' help="Enable output output_rds_file"/>

    </inputs>
    <outputs>
        <expand macro="plot_output_files_format" format="png"  />
        <expand macro="plot_output_files_format" format="pdf"  />
        <expand macro="plot_output_files_format" format="eps"  />
        <expand macro="plot_output_files_format" format="jpg"  />
        <expand macro="plot_output_files_format" format="ps"  />
        <expand macro="plot_output_files_format" format="tiff"  />
        <expand macro="plot_output_files_format" format="svg"  />

        <data label="${tool.name} on ${on_string}: Output-rds-file" name="output_rds_file" format='?'>
        <filter>enable_output_rds_file</filter>
    </data>
    </outputs>
    <tests>
      <!-- MANUAL TESTS -->
      <test>
        <param name="rds_seurat_file" ftype="rdata" value="UMAP_result_integrated.rds"/>
        <param name="plot_type_selector" value="FeaturePlot"/>
        <param name="features" value="GPC5-AS1,MAFB,FAP,PPY"/>
        <output name="plot_out_png" ftype="png" >
          <assert_contents>
            <has_size value="195414" delta="32000"/>
          </assert_contents>
        </output>
      </test>
      <test>
        <param name="rds_seurat_file" ftype="rdata" value="UMAP_result_integrated.rds"/>
        <param name="plot_type_selector" value="VlnPlot"/>
        <param name="features" value="GPC5-AS1,MAFB,FAP,PPY"/>
        <param name="plot_format" value="pdf"/>
        <output name="plot_out_pdf" ftype="pdf" >
          <assert_contents>
            <has_size value="1239200" delta="123000"/>
          </assert_contents>
        </output>
      </test>
      <test>
        <param name="rds_seurat_file" ftype="rdata" value="UMAP_result_integrated.rds"/>
        <param name="plot_type_selector" value="RidgePlot"/>
        <param name="features" value="GPC5-AS1,MAFB,FAP,PPY"/>
        <param name="plot_format" value="eps"/>
        <output name="plot_out_eps" ftype="eps" >
          <assert_contents>
            <has_size value="84892" delta="8400"/>
          </assert_contents>
        </output>
      </test>
      <test>
        <param name="rds_seurat_file" ftype="rdata" value="UMAP_result_integrated.rds"/>
        <param name="plot_type_selector" value="DotPlot"/>
        <param name="features" value="GPC5-AS1,MAFB,FAP,PPY"/>
        <param name="plot_format" value="ps"/>
        <output name="plot_out_ps" ftype="ps" >
          <assert_contents>
            <has_size value="16615" delta="1600"/>
          </assert_contents>
        </output>
      </test>
      <test>
        <param name="rds_seurat_file" ftype="rdata" value="UMAP_result_integrated.rds"/>
        <param name="plot_type_selector" value="DoHeatmap"/>
        <param name="features" value="GPC5-AS1,MAFB,FAP,PPY"/>
        <output name="plot_out_png" ftype="png" >
          <assert_contents>
            <has_size value="83227" delta="8600"/>
          </assert_contents>
        </output>
      </test>
      <!-- END MANUAL TESTS -->
    </tests>
<help>
<!-- MANUAL HELP -->
<![CDATA[
.. class:: infomark

**What it does**

@SEURAT_INTRO@

This tool produces the different plots available on Seurat.

-----

**Inputs**

* Seurat object or compatible (can be specified in different formats)
* Plot type (can be specified in different formats)
* Potential compulsory options for each plot type

All the rest of the parameters are optional.

-----

**Outputs**

* A plot in the specified format
* Optionally, an RDS object with the ggplo2 plot.

@VERSION_HISTORY@

]]>
<!-- END MANUAL HELP -->
</help>
    <expand macro="citations" />
</tool>