diff import.xml @ 15:bfac01f0393b draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit 08ce25c9b0ae236d3c0c352119de9db6b56c2925
author iuc
date Sat, 29 Mar 2025 07:35:15 +0000
parents 47ecd3ed0564
children
line wrap: on
line diff
--- a/import.xml	Sat Jan 11 21:09:09 2025 +0000
+++ b/import.xml	Sat Mar 29 07:35:15 2025 +0000
@@ -1,4 +1,4 @@
-<tool id="anndata_import" name="Import Anndata" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@">
+<tool id="anndata_import" name="Import Anndata" version="@TOOL_VERSION@+galaxy2" profile="@PROFILE@">
     <description>from different formats</description>
     <macros>
         <import>macros.xml</import>
@@ -85,6 +85,26 @@
 
 #else if $in.adata_format == 'umi_tools'
 adata = ad.read_umi_tools('umi_tools_input.gz')
+
+#else if $in.adata_format == 'custom'
+import pandas as pd
+
+adata = ad.read_mtx(filename='$in.mtx')
+adata = adata.transpose().copy()
+
+obs = pd.read_csv('$in.obs', sep='\t', index_col=0)
+var = pd.read_csv('$in.var', sep='\t', index_col=0)
+
+if adata.shape[0] != obs.shape[0]:
+    raise ValueError(f"Mismatch: adata has {adata.shape[0]} cells, but obs has {obs.shape[0]} rows.")
+
+if adata.shape[1] != var.shape[0]:
+    raise ValueError(f"Mismatch: adata has {adata.shape[1]} genes, but var has {var.shape[0]} rows.")
+
+
+adata.obs = obs
+adata.var = var
+
 #end if
 adata.write('anndata.h5ad', compression='gzip')
 print(adata)
@@ -98,6 +118,7 @@
                 <option value="10x_h5">H5 format from Cell ranger or not</option>
                 <option value="mtx">Matrix Market (mtx), from Cell ranger or not</option>
                 <option value="umi_tools">UMI tools count matrix</option>
+                <option value="custom">custom (with annotated cells and genes tables)</option>
             </param>
             <when value="loom">
                 <param name="input" type="data" format="loom" label="Annotated data matrix"/>
@@ -136,6 +157,11 @@
             <when value="umi_tools">
                 <param name="input" type="data" format="tabular" label="condensed count matrix from UMI tools"/>
             </when>
+            <when value="custom">
+                <param name="mtx" type="data" format="mtx" label="Matrix in Matrix Market format"/>
+                <param name="obs" type="data" format="tabular,tabular.gz" label="Annotated cells (first column will be obs_index)"/>
+                <param name="var" type="data" format="tabular,tabular.gz" label="Annotated genes (first column will be var_index)"/>
+            </when>
         </conditional>
     </inputs>
     <outputs>
@@ -273,6 +299,22 @@
                 </assert_contents>
             </output>
         </test>
+        <test expect_num_outputs="1">
+            <conditional name="in">
+                <param name="adata_format" value="custom"/>
+                <param name="mtx" value="trimmed_matrix.mtx"/>
+                <param name="obs" value="trimmed_barcode.tabular"/>
+                <param name="var" value="trimmed_gene.tabular"/>
+            </conditional>
+            <assert_stdout>
+                <has_text_matching expression="1000 × 500"/>
+            </assert_stdout>
+            <output name="anndata" ftype="h5ad">
+                <assert_contents>
+                    <has_h5_keys keys="var/symbol,var/mito"/>
+                </assert_contents>
+            </output>
+        </test>
     </tests>
     <help><![CDATA[