ClusterMarkers

Markers for clusters of all or selected T/B cells.

This process is extended from MarkersFinder from the biopipen package.
MarkersFinder is a pipen process that wraps the Seurat::FindMarkers() function, and performs enrichment analysis for the markers found.

The enrichment analysis is done by enrichr.

Note

Since this process is extended from MarkersFinder, other environment variables from MarkersFinder are also available.
However, they should not be used in this process. Other environment variables are used for more complicated cases for marker finding (See MarkersFinder for more details).

If you are using pipen-board to run the pipeline (see here and here), you may see the other environment variables of this process are hidden and readonly.

Input

  • srtobj: The seurat object loaded by SeuratPreparing If you have your Seurat object prepared by yourself, you can also use it here, but you should make sure that the object has been processed by PrepSCTFindMarkers if data is not normalized using SCTransform.

Output

  • outdir: Default: {{in.srtobj | stem0}}.markers.
    The output directory for the markers and plots

Environment Variables

  • ncores (type=int): Default: 1.
    Number of cores to use for parallel computing for some Seurat procedures.
  • dbs (list): Default: ['KEGG_2021_Human', 'MSigDB_Hallmark_2020'].
    The dbs to do enrichment analysis for significant markers See below for all libraries.
    https://maayanlab.cloud/Enrichr/#libraries
  • sigmarkers: Default: p_val_adj < 0.05 & avg_log2FC > 0.
    An expression passed to dplyr::filter() to filter the significant markers for enrichment analysis.
    Available variables are p_val, avg_log2FC, pct.1, pct.2 and p_val_adj. For example, "p_val_adj < 0.05 & abs(avg_log2FC) > 1" to select markers with adjusted p-value < 0.05 and absolute log2 fold change > 1.
  • enrich_style (choice): Default: enrichr.
    The style of the enrichment analysis.
    The enrichment analysis will be done by EnrichIt() from enrichit.
    Two styles are available:
    • enrichr: enrichr style enrichment analysis (fisher's exact test will be used).
    • clusterprofiler: clusterProfiler style enrichment analysis (hypergeometric test will be used).
    • clusterProfiler: alias for clusterprofiler
  • assay: The assay to use.
  • error (flag): Default: False.
    Error out if no/not enough markers are found or no pathways are enriched.
    If False, empty results will be returned.
  • subset: An expression to subset the cells for each case.
  • cache (type=auto): Default: /tmp.
    Where to cache the results.
    If True, cache to outdir of the job. If False, don't cache.
    Otherwise, specify the directory to cache to.
  • rest (ns): Rest arguments for Seurat::FindMarkers().
    Use - to replace . in the argument name. For example, use min-pct instead of min.pct.
  • allmarker_plots_defaults (ns): Default options for the plots for all markers when ident-1 is not specified.
    • plot_type: The type of the plot.
      See https://pwwang.github.io/scplotter/reference/FeatureStatPlot.html.
      Available types are violin, box, bar, ridge, dim, heatmap and dot.
    • more_formats (type=list): Default: [].
      The extra formats to save the plot in.
    • save_code (flag): Default: False.
      Whether to save the code to generate the plot.
    • devpars (ns): The device parameters for the plots.
      • res (type=int): Default: 100.
        The resolution of the plots.
      • height (type=int): The height of the plots.
      • width (type=int): The width of the plots.
    • order_by: Default: desc(abs(avg_log2FC)).
      an expression to order the markers, passed by dplyr::arrange().
    • genes: Default: 10.
      The number of top genes to show or an expression passed to dplyr::filter() to filter the genes.
    • <more>: Other arguments passed to scplotter::FeatureStatPlot().
  • allmarker_plots (type=json): Default: {'Top 10 markers of all clusters': Diot({'plot_type': 'heatmap'})}.
    All marker plot cases.
    The keys are the names of the cases and the values are the dicts inherited from allmarker_plots_defaults.
  • allenrich_plots_defaults (ns): Default options for the plots to generate for the enrichment analysis.
    • plot_type: Default: heatmap.
      The type of the plot.
    • devpars (ns): The device parameters for the plots.
      • res (type=int): Default: 100.
        The resolution of the plots.
      • height (type=int): The height of the plots.
      • width (type=int): The width of the plots.
    • <more>: See https://pwwang.github.io/scplotter/reference/EnrichmentPlot.html.
  • allenrich_plots (type=json): Default: {}.
    Cases of the plots to generate for the enrichment analysis.
    The keys are the names of the cases and the values are the dicts inherited from allenrich_plots_defaults.
    The cases under envs.cases can inherit this options.
  • marker_plots_defaults (ns): Default options for the plots to generate for the markers.
    • plot_type: The type of the plot.
      See https://pwwang.github.io/scplotter/reference/FeatureStatPlot.html.
      Available types are violin, box, bar, ridge, dim, heatmap and dot.
      There are two additional types available - volcano_pct and volcano_log2fc.
    • more_formats (type=list): Default: [].
      The extra formats to save the plot in.
    • save_code (flag): Default: False.
      Whether to save the code to generate the plot.
    • devpars (ns): The device parameters for the plots.
      • res (type=int): Default: 100.
        The resolution of the plots.
      • height (type=int): The height of the plots.
      • width (type=int): The width of the plots.
    • order_by: Default: desc(abs(avg_log2FC)).
      an expression to order the markers, passed by dplyr::arrange().
    • genes: Default: 10.
      The number of top genes to show or an expression passed to dplyr::filter() to filter the genes.
    • <more>: Other arguments passed to scplotter::FeatureStatPlot().
      If plot_type is volcano_pct or volcano_log2fc, they will be passed to scplotter::VolcanoPlot().
  • marker_plots (type=json): Default: {'Volcano Plot (diff_pct)': Diot({'plot_type': 'volcano_pct'}), 'Volcano Plot (log2FC)': Diot({'plot_type': 'volcano_log2fc'}), 'Dot Plot': Diot({'plot_type': 'dot'})}.
    Cases of the plots to generate for the markers.
    Plot cases. The keys are the names of the cases and the values are the dicts inherited from marker_plots_defaults.
    The cases under envs.cases can inherit this options.
  • enrich_plots_defaults (ns): Default options for the plots to generate for the enrichment analysis.
  • enrich_plots (type=json): Default: {'Bar Plot': Diot({'plot_type': 'bar', 'ncol': 1, 'top_term': 10})}.
    Cases of the plots to generate for the enrichment analysis.
    The keys are the names of the cases and the values are the dicts inherited from enrich_plots_defaults.
    The cases under envs.cases can inherit this options.
  • overlaps_defaults (ns): Default options for investigating the overlapping of significant markers between different cases or comparisons.
    This means either ident-1 should be empty, so that they can be expanded to multiple comparisons.
    • sigmarkers: The expression to filter the significant markers for each case.
      If not provided, envs.sigmarkers will be used.
    • plot_type (choice): Default: venn.
      The type of the plot to generate for the overlaps.
      • venn: Use plotthis::VennDiagram().
      • upset: Use plotthis::UpsetPlot().
    • more_formats (type=list): Default: [].
      The extra formats to save the plot in.
    • save_code (flag): Default: False.
      Whether to save the code to generate the plot.
    • devpars (ns): The device parameters for the plots.
      • res (type=int): Default: 100.
        The resolution of the plots.
      • height (type=int): The height of the plots.
      • width (type=int): The width of the plots.
    • <more>: More arguments pased to plotthis::VennDiagram() (https://pwwang.github.io/plotthis/reference/venndiagram1.html) or plotthis::UpsetPlot() (https://pwwang.github.io/plotthis/reference/upsetplot1.html)
  • overlaps (type=json): Default: {}.
    Cases for investigating the overlapping of significant markers between different cases or comparisons.
    The keys are the names of the cases and the values are the dicts inherited from overlaps_defaults.
    There are two situations that we can perform overlaps:
    1. If ident-1 is not specified, the overlaps can be performed between different comparisons.
    2. If each is specified, the overlaps can be performed between different cases, where in each case, ident-1 must be specified.