# HG changeset patch # User ebi-gxa # Date 1591607324 14400 # Node ID b8eb50bd397c97478a8a7110176d94c81ad74efb # Parent d868221262d574f795b3132e3b72d7ee195fea9d "planemo upload for repository https://github.com/ebi-gene-expression-group/container-galaxy-sc-tertiary/tree/develop/tools/tertiary-analysis/scanpy commit bcab272f6785d5967b1ec68acf5390ec3ace49fd" diff -r d868221262d5 -r b8eb50bd397c anndata_operations.xml --- a/anndata_operations.xml Fri Jun 05 09:11:44 2020 -0400 +++ b/anndata_operations.xml Mon Jun 08 05:08:44 2020 -0400 @@ -1,5 +1,5 @@ - + modifies metadata and flags genes scanpy_macros2.xml @@ -7,11 +7,25 @@ import scanpy as sc +import anndata +from numpy import all import logging adata = sc.read('input.h5') @@ -34,6 +48,42 @@ logging.warning('No genes starting with {} found, skip calculating expression of {} genes'.format('${flag.startswith}', '${flag.flag}')) #end for +#if $copy_o.default and len($copy_o.obs_keys) > 0: +#for $i, $obs_s in enumerate($copy_o.obs_sources): +ad_s = sc.read('obs_source_${i}.h5') +if adata.n_obs == ad_s.n_obs and all(adata.obs_names == ad_s.obs_names): + #for $j, $o_key in enumerate($copy_o.obs_keys): + keys_to_copy = (k for k in ad_s.obs.keys() if "${o_key.contains}" in k) + for k_to_copy in keys_to_copy: + adata.obs[[k_to_copy+"_${i}"]] = ad_s.obs[[k_to_copy]] + if k_to_copy in ad_s.uns.keys(): + adata.uns[k_to_copy+"_${i}"] = ad_s.uns[k_to_copy] + #end for +else: + logging.warning("Observation source ${i} AnnData file is not compatible to be merged to main AnnData file, different cell names.") +#end for +#end if + + +#if $copy_e.default and len($copy_e.embedding_keys) > 0: +#for $i, $obs_s in enumerate($copy_e.embedding_sources): +ad_s = sc.read('embedding_source_${i}.h5') +if adata.n_obs == ad_s.n_obs and all(adata.obs_names == ad_s.obs_names): + #for $j, $e_key in enumerate($copy_e.embedding_keys): + keys_to_copy = (k for k in ad_s.obsm.keys() if "${e_key.contains}" in k) + for k_to_copy in keys_to_copy: + adata.obsm[k_to_copy+"_${i}"] = ad_s.obsm[k_to_copy] + #end for +else: + logging.warning("Embedding source ${i} AnnData file is not compatible to be merged to main AnnData file, different cell names.") +#end for +#end if + +#if $sanitize_varm: +if hasattr(adata, 'raw') and hasattr(adata.raw, 'X') and hasattr(adata.raw, 'var'): + new_ad = anndata.AnnData(X=adata.raw.X, obs=adata.obs, var=adata.raw.var) + adata.raw = new_ad +#end if if len(qc_vars) > 0: pct_top = [${top_genes}] @@ -69,6 +119,29 @@ + + + + + + + + + + + + + + + + + + + + + + +