diff mudata_import_export.xml @ 0:089a6101d5d9 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/muon/ commit bcf2ec32c3d13b29da55e0e638da7ddd7162c436
author iuc
date Wed, 05 Feb 2025 10:53:15 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mudata_import_export.xml	Wed Feb 05 10:53:15 2025 +0000
@@ -0,0 +1,144 @@
+<tool id="mudata_import_export" name="MuData import and export" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@">
+    <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@
+#if $operation.mode == 'import'
+import anndata as ad
+
+mdata = mu.MuData({
+    #for $modality in $operation.modalities
+        '$modality.name': ad.read_h5ad('$modality.anndata'),
+    #end for
+    })
+    #if $make_unique
+mdata.var_names_make_unique()
+    #end if
+mdata.write_h5mu('mudata.h5mu')
+
+#else if $operation.mode == 'export'
+mdata = mu.read_h5mu('$operation.mudata_in')
+for mod in mdata.mod:
+    mdata[mod].write_h5ad(mod + '.h5ad')
+
+#end if
+
+]]></configfile>
+    </configfiles>
+    <inputs>
+        <conditional name="operation">
+            <param name="mode" type="select" label="Mode of operation">
+                <option value="import" selected="true">Import multiple Anndata objects into a MuData object</option>
+                <option value="export">Export Anndata objects from a MuData objects</option>
+            </param>
+            <when value="import">
+                <repeat name="modalities" title="Modalities" min="2" default="2">
+                    <param name="name" type="text" label="Modality name" value=""
+                        help="Name to give for the modality in the MuData object">
+                        <expand macro="sanitize_string" />
+                    </param>
+                    <param name="anndata" type="data" format="h5ad" label="Anndata object for the modality"/>
+                </repeat>
+                <param name="make_unique" type="boolean" truevalue="True" falsevalue="False" checked="true" label="Make variable names unique?"/>
+            </when>
+            <when value="export">
+                <param name="mudata_in" type="data" format="h5ad" label="Multimodal MuData object"/>
+            </when>
+        </conditional>
+        <expand macro="inputs_common_advanced" />
+    </inputs>
+    <outputs>
+        <data name="mudata_out" format="h5ad" from_work_dir="mudata.h5mu" label="MuData object built from ${on_string}">
+            <filter>operation['mode'] == 'import' </filter>
+        </data>
+        <collection name="collection_anndata" type="list" label="Anndata objects extracted from ${on_string}">
+            <discover_datasets pattern="(?P&lt;designation&gt;.*).h5ad" format="h5ad"/>
+            <filter>operation['mode'] == 'export' </filter>
+        </collection>
+        <expand macro="outputs_common_advanced"/>
+    </outputs>
+    <tests>
+        <test expect_num_outputs="2">
+            <!--Import test for RNA and ATAC modalities-->
+            <conditional name="operation">
+                <param name="mode" value="import"/>
+                <repeat name="modalities">
+                    <param name="name" value="RNA"/>
+                    <param name="anndata" location="https://zenodo.org/records/12570984/files/rna.h5ad"/>
+                </repeat>
+                <repeat name="modalities">
+                    <param name="name" value="ATAC"/>
+                    <param name="anndata" location="https://zenodo.org/records/12570984/files/atac.h5ad"/>
+                </repeat>
+                <param name="make_unique" value="True"/>
+            </conditional>
+            <section name="advanced_common">
+                <param name="show_log" value="true" />
+            </section>
+            <output name="hidden_output">
+                <assert_contents>
+                    <has_text_matching expression="mu.MuData"/>
+                    <has_text_matching expression="'RNA': ad.read"/>
+                    <has_text_matching expression="'ATAC': ad.read"/>
+                    <has_text_matching expression="var_names_make_unique()"/>
+                </assert_contents>
+            </output>
+            <output name="mudata_out" ftype="h5ad">
+                <assert_contents>
+                    <has_h5_keys keys="mod/RNA"/>
+                    <has_h5_keys keys="mod/ATAC"/>
+                    <has_h5_keys keys="var/feature_types"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="2">
+            <!--Export test for RNA and ATAC modalities-->
+            <conditional name="operation">
+                <param name="mode" value="export"/>
+                <param name="mudata_in" location="https://zenodo.org/records/12570984/files/rna_atac.h5mu"/>
+            </conditional>
+            <section name="advanced_common">
+                <param name="show_log" value="true" />
+            </section>
+            <output name="hidden_output">
+                <assert_contents>
+                    <has_text_matching expression="mu.read_h5mu"/>
+                    <has_text_matching expression="write_h5ad"/>
+                </assert_contents>
+            </output>
+            <output_collection name="collection_anndata" type="list" count="2">
+                <element name="ATAC" ftype="h5ad">
+                    <assert_contents>
+                        <has_h5_keys keys="var/gene_ids"/>
+                        <has_h5_keys keys="uns/neighbors"/>
+                        <has_h5_keys keys="obsp/connectivities"/>
+                    </assert_contents>
+                </element>
+                <element name="RNA" ftype="h5ad">
+                    <assert_contents>
+                        <has_h5_keys keys="var/gene_ids"/>
+                        <has_h5_keys keys="uns/neighbors"/>
+                        <has_h5_keys keys="obsp/connectivities"/>
+                    </assert_contents>
+                </element>
+            </output_collection>
+        </test>
+    </tests>
+    <help><![CDATA[
+    **What it does**
+        Create MuData from AnnData is a tool that allows creating a muon.MuData object out of two or more AnnData objects
+        for multimodal analysis. The multimodal data is created by combining AnnData objects as
+        h5ad files into a MuData object as a h5mu file using muon.
+        Furthermore, it runs pp.intersect_obs to keep only entries present in both modalities (AnnData objects) in the
+        final MuData file.
+    ]]></help>
+    <expand macro="citations"/>
+</tool>
\ No newline at end of file