Mercurial > repos > iuc > anndata_import
changeset 16:923dcc644832 draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit 08ce25c9b0ae236d3c0c352119de9db6b56c2925
| author | iuc |
|---|---|
| date | Sat, 29 Mar 2025 07:37:24 +0000 |
| parents | 13cf83ced60c |
| children | |
| files | import.xml test-data/trimmed_barcode.tabular test-data/trimmed_gene.tabular test-data/trimmed_matrix.mtx |
| diffstat | 4 files changed, 9665 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/import.xml Sat Jan 11 21:11:06 2025 +0000 +++ b/import.xml Sat Mar 29 07:37:24 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><