view cosg.xml @ 1:fe5996e87b41 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/cosg/ commit d1eee788f207ac0077cb5fea82a3f32cc4980e40
author iuc
date Tue, 05 Nov 2024 13:32:17 +0000
parents cf880680fd0b
children
line wrap: on
line source

<tool id="cosg" name="COSG" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@profile@">
    <description>Cell marker gene identification</description>
    <macros>
        <import>macros.xml</import>
    </macros>
    <xrefs>
        <xref type="bio.tools">cosg</xref>
    </xrefs>
    <expand macro="requirements">
    </expand>
    <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_options.groups != 'all'
    #set $method_options.groups=[$groups]
#end if

cosg.cosg(adata,
        groupby='$method_options.groupby',
        groups='$method_options.groups',
        n_genes_user=$method_options.n_genes_user,
        mu=$advanced_options.mu,   
        remove_lowly_expressed=$advanced_options.filter_expression.remove_lowly_expressed,
        #if $advanced_options.filter_expression.remove_lowly_expressed == "True"
        expressed_pct=$advanced_options.filter_expression.expressed_pct,  
        #end ifs
        key_added='$advanced_options.key_added',
        use_raw=$advanced_options.layer_selection.use_raw,
        #if $advanced_options.layer_selection.use_raw == "False"
        #if $advanced_options.layer_selection.layer
        layer='$advanced_options.layer_selection.layer',
        #end if
        #end if
        reference='$advanced_options.reference'
        )

df=pd.DataFrame(adata.uns['cosg']['names']).T
df.to_csv('marker.tsv', sep='\t', index=True)

@CMD_anndata_write_outputs@
]]></configfile>
    </configfiles>
    <inputs>
        <expand macro="inputs_anndata"/>
        <section name="method_options" title="Method Options" expanded="true">
            <param argument="groupby" type="text" value="" optional="false" label="The key of the cell groups in .obs"/>
            <param argument="groups" type="text" value="all" optional="false" label="Subset of cell groups" help="e.g. 'g1','g2','g3'."/>
            <param argument="n_genes_user" type="integer" value="50" min="1" label="The number of genes that appear in the returned tables"/>
        </section>
        <section name="advanced_options" title="Advanced Options">
            <param argument="mu" type="float" value="1.0" min="0.0" max="1.0" label="The penalty restricting marker genes expressing in non-target cell groups" help="Larger value represents more strict restrictions. mu should be >= 0, and by default, mu = 1."/>
            <conditional name="filter_expression">
                <param name="remove_lowly_expressed" type="select" label="Remove lowly expressed genes" help="If yes, genes that express a percentage of target cells smaller than a specific value (`expressed_pct`) are not considered as marker genes for the target cells.">
                    <option value="False">No</option>
                    <option value="True">Yes</option>
                </param>
                <when value="False"/>
                <when value="True">
                    <param argument="expressed_pct" type="float" value="0.1" min="0.01" max="1.0" label="Percentage of target cells" help="Genes that express a percentage of target cells smaller than a specific value (`expressed_pct`) are not considered as marker genes for the target cells."/>
                </when>
            </conditional>
            <param argument="key_added" type="text" value="cosg" optional="false" label="The key in adata.uns information is saved to.">
                <validator type="empty_field"/>
            </param>
            <conditional name="layer_selection">
                <param name="use_raw" type="select" label="Use raw attribute of adata if present to perform tests on." help="If use_raw is set to True then adata.raw.X if it exists.">
                    <option value="False">No</option>
                    <option value="True">Yes</option>
                </param>
                <when value="False">
                    <param argument="layer" type="text" value="" label="Key from adata.layers whose value will be used to perform tests on." help="If empty then adata.X will be used. If use_raw is set to True then adata.raw.X. If layers specified then use adata.layers[layer]."/>
                </when>
                <when value="True"/>
            </conditional>
            <param argument="reference" type="text" value="rest" optional="false" label="If a group identifier, compare with respect to this group." help=" If you use the keyword 'rest', compare each group to the union of the rest of the group.">
                <validator type="empty_field"/>
            </param>
        </section>
        <expand macro="inputs_common_advanced"/>
    </inputs>
    <outputs>
        <expand macro="anndata_outputs"/>
        <data name="marker_out" format="tabular" from_work_dir="marker.tsv" label="${tool.name} on ${on_string}: Markers"/>
    </outputs>
    <tests>
        <test expect_num_outputs="3">
            <!-- test 1 -->
            <param name="adata" value="tl.rank_genes_groups.newton-cg.pbmc68k_highly_reduced.h5ad" />
            <param name="groupby" value="bulk_labels"/>
            <section name="advanced_common">
                <param name="show_log" value="true" />
            </section>
            <output name="hidden_output">
                <assert_contents>
                    <has_text_matching expression="cosg.cosg"/>
                    <has_text_matching expression="groupby='bulk_labels'"/>
                    <has_text_matching expression="groups='all'"/>
                    <has_text_matching expression="n_genes_user=50"/>
                    <has_text_matching expression="mu=1.0"/>
                    <has_text_matching expression="remove_lowly_expressed=False"/>
                    <has_text_matching expression="key_added='cosg'"/>
                    <has_text_matching expression="use_raw=False"/>
                    <has_text_matching expression="reference='rest'"/>
                </assert_contents>
            </output>
            <output name="anndata_out" file="cosg.rank_genes_groups.newton-cg.pbmc68k_highly_reduced_1.h5ad" ftype="h5ad">
                <assert_contents>
                    <has_h5_keys keys="obs, var, uns" />
                </assert_contents>
            </output>
            <output name="marker_out" file="marker_1.tsv" ftype="tabular" compare="sim_size">
                <assert_contents>
                    <has_n_columns n="51" />
                </assert_contents>
            </output>
        </test>
        <test expect_num_outputs="3">
            <!-- test 2 -->
            <param name="adata" value="tl.rank_genes_groups.newton-cg.pbmc68k_highly_reduced.h5ad" />
            <param name="groupby" value="louvain"/>
            <param name="remove_lowly_expressed" value="True" />
            <section name="advanced_common">
                <param name="show_log" value="true" />
            </section>
            <output name="hidden_output">
                <assert_contents>
                    <has_text_matching expression="cosg.cosg"/>
                    <has_text_matching expression="groupby='louvain'"/>
                    <has_text_matching expression="groups='all'"/>
                    <has_text_matching expression="n_genes_user=50"/>
                    <has_text_matching expression="mu=1.0"/>
                    <has_text_matching expression="remove_lowly_expressed=True"/>
                    <has_text_matching expression="expressed_pct=0.1"/>
                    <has_text_matching expression="key_added='cosg'"/>
                    <has_text_matching expression="use_raw=False"/>
                    <has_text_matching expression="reference='rest'"/>
                </assert_contents>
            </output>
            <output name="anndata_out" file="cosg.rank_genes_groups.newton-cg.pbmc68k_highly_reduced_2.h5ad" ftype="h5ad">
                <assert_contents>
                    <has_h5_keys keys="obs, var, uns" />
                </assert_contents>
            </output>
            <output name="marker_out" file="marker_2.tsv" ftype="tabular">
                <assert_contents>
                    <has_n_columns n="51" />
                </assert_contents>
            </output>
        </test>
        <test expect_num_outputs="3">
            <!-- test 3 -->
            <param name="adata" value="tl.rank_genes_groups.newton-cg.pbmc68k_highly_reduced.h5ad" />
            <param name="groupby" value="bulk_labels"/>
            <param name="use_raw" value="True"/>
            <section name="advanced_common">
                <param name="show_log" value="true" />
            </section>
            <output name="hidden_output">
                <assert_contents>
                    <has_text_matching expression="cosg.cosg"/>
                    <has_text_matching expression="groupby='bulk_labels'"/>
                    <has_text_matching expression="groups='all'"/>
                    <has_text_matching expression="n_genes_user=50"/>
                    <has_text_matching expression="mu=1.0"/>
                    <has_text_matching expression="remove_lowly_expressed=False"/>
                    <has_text_matching expression="key_added='cosg'"/>
                    <has_text_matching expression="use_raw=True"/>
                    <has_text_matching expression="reference='rest'"/>
                </assert_contents>
            </output>
            <output name="anndata_out" file="cosg.rank_genes_groups.newton-cg.pbmc68k_highly_reduced_3.h5ad" ftype="h5ad">
                <assert_contents>
                    <has_h5_keys keys="obs, var, uns" />
                </assert_contents>
            </output>
            <output name="marker_out" file="marker_3.tsv" ftype="tabular">
                <assert_contents>
                    <has_n_columns n="51" />
                </assert_contents>
            </output>
        </test>
    </tests>
    <help><![CDATA[
Marker gene identification for single-cell sequencing data using COSG.
============================================================================================================

Accurate and fast cell marker gene identification with COSG

COSG is a cosine similarity-based method for more accurate and scalable marker gene identification.

- COSG is a general method for cell marker gene identification across different data modalities, e.g., scRNA-seq, scATAC-seq and spatially resolved transcriptome data. 
- Marker genes or genomic regions identified by COSG are more indicative and with greater cell-type specificity.
- COSG is ultrafast for large-scale datasets, and is capable of identifying marker genes for one million cells in less than two minutes.

Here is the R version for COSG, and the Python version is hosted in https://github.com/genecell/COSG.

    ]]></help>
    <expand macro="citations"/>
</tool>