Mercurial > repos > iuc > mudata_import_export
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<designation>.*).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
