changeset 1:05304c5c195d draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit 8ef5f7c6f8728608a3f05bb51e11b642b84a05f5"
author iuc
date Wed, 16 Oct 2019 06:27:55 -0400
parents b2a6ce371781
children 6a1a3dab235a
files inspect.xml macros.xml test-data/manipulate.add_annotation_obs.h5ad test-data/manipulate.add_annotation_var.h5ad test-data/manipulate.filter_obs_key.h5ad test-data/manipulate.filter_var_index.h5ad test-data/obs_add_annotation.tabular test-data/pp.neighbors_umap_euclidean.recipe_weinreb17.paul15_subsample.h5ad test-data/pp.pca.krumsiek11.h5ad test-data/tl.diffmap.h5ad test-data/tl.draw_graph.h5ad test-data/tl.paga.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad test-data/tl.rank_genes_groups.krumsiek11.h5ad test-data/tl.tsne.h5ad test-data/tl.umap.h5ad test-data/var_add_annotation.tabular
diffstat 16 files changed, 994 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/inspect.xml	Wed Apr 10 03:25:39 2019 -0400
+++ b/inspect.xml	Wed Oct 16 06:27:55 2019 -0400
@@ -11,20 +11,27 @@
     <configfiles>
         <configfile name="script_file"><![CDATA[
 @CMD_imports@
+import pandas as pd
+from scipy import io
+
+pd.options.display.precision = 15
 
 adata = ad.read('$input')
 
 #if $inspect.info == 'general'
 with open('$general', 'w') as f:
     print(adata, file=f)
+
 #else if $inspect.info == 'X'
 adata.to_df().to_csv('$X', sep='\t')
+
 #else if $inspect.info == 'obs'
 adata.obs.to_csv('$obs', sep='\t')
+
 #else if $inspect.info == 'var'
 adata.var.to_csv('$var', sep='\t')
+
 #else if $inspect.info == 'chunk_X'
-import pandas as pd
     #if $inspect.chunk.info == 'random'
 X = adata.chunk_X(select=$inspect.chunk.size, replace=$inspect.chunk.replace)
     #else
@@ -32,6 +39,45 @@
 X = adata.chunk_X(select=$select)
     #end if
 pd.DataFrame(X).to_csv('$chunk_X', sep='\t')
+
+#else if $inspect.info == 'uns'
+    #if $inspect.uns_info == 'neighbors'
+io.mmwrite('uns_neighbors_connectivities.mtx', adata.uns['neighbors']['connectivities'])
+io.mmwrite('uns_neighbors_distances.mtx', adata.uns['neighbors']['distances'])
+    #else if $inspect.uns_info == 'paga'
+io.mmwrite('uns_paga_connectivities.mtx', adata.uns['paga']['connectivities'])
+io.mmwrite('uns_paga_connectivities_tree.mtx', adata.uns['paga']['connectivities_tree'])
+    #else if $inspect.uns_info == 'pca'
+pd.DataFrame(adata.uns['pca']['variance']).to_csv("$uns_pca_variance", sep="\t", index = False)
+pd.DataFrame(adata.uns['pca']['variance_ratio']).to_csv("$uns_pca_variance_ratio", sep="\t", index = False)
+    #else if $inspect.uns_info == 'rank_genes_groups'
+pd.DataFrame(adata.uns['rank_genes_groups']['logfoldchanges']).to_csv("$uns_rank_genes_groups_logfoldchanges", sep="\t", index = False)
+pd.DataFrame(adata.uns['rank_genes_groups']['names']).to_csv("$uns_rank_genes_groups_names", sep="\t", index = False)
+pd.DataFrame(adata.uns['rank_genes_groups']['pvals']).to_csv("$uns_rank_genes_groups_pvals", sep="\t", index = False)
+pd.DataFrame(adata.uns['rank_genes_groups']['pvals_adj']).to_csv("$uns_rank_genes_groups_pvals_adj", sep="\t", index = False)
+pd.DataFrame(adata.uns['rank_genes_groups']['scores']).to_csv("$uns_rank_genes_groups_scores", sep="\t", index = False)
+    #end if
+
+#else if $inspect.info == 'obsm'
+    #if $inspect.obsm_info == 'X_pca' 
+pd.DataFrame(adata.obsm['X_pca']).to_csv("$obsm_X_pca", sep="\t", index = False)
+    #else if $inspect.obsm_info == 'X_umap' 
+pd.DataFrame(adata.obsm['X_umap']).to_csv("$obsm_X_umap", sep="\t", index = False)
+    #else if $inspect.obsm_info == 'X_tsne' 
+pd.DataFrame(adata.obsm['X_tsne']).to_csv("$obsm_X_tsne", sep="\t", index = False)
+    #else if $inspect.obsm_info == 'X_draw_graph'
+for key in adata.obsm.keys():
+    if key.startswith('X_draw_graph'):
+        pd.DataFrame(adata.obsm[key]).to_csv(key, sep="\t", index = False)
+    #else if $inspect.obsm_info == 'X_diffmap'
+pd.DataFrame(adata.obsm['X_diffmap']).to_csv("$obsm_X_diffmap", sep="\t", index = False)
+    #end if
+
+#else if $inspect.info == 'varm'
+    #if $inspect.varm_info == 'PCs' 
+pd.DataFrame(adata.varm['PCs']).to_csv("$varm_PCs", sep="\t", index = False)
+    #end if
+
 #end if
 ]]></configfile>
     </configfiles>
@@ -42,16 +88,40 @@
                 <option value="general">General information about the object</option>
                 <option value="X">The full data matrix</option>
                 <option value="chunk_X">A chunk of the data matrix</option>
-                <option value="obs">Key-indexed observations annotation</option>
-                <option value="var">Key-indexed annotation of variables/features</option>
-                <!--<option value="uns">Unstructured annotation</option>!-->
+                <option value="obs">Key-indexed observations annotation (obs)</option>
+                <option value="var">Key-indexed annotation of variables/features (var)</option>
+                <option value="uns">Unstructured annotation (uns)</option>
+                <option value="obsm">Multi-dimensional observations annotation (obsm)</option>
+                <option value="varm">Multi-dimensional variables annotation (varm)</option>
             </param>
             <when value="general"/>
             <when value="X"/>
+            <when value="chunk_X">
+                <expand macro="params_chunk_X"/>
+            </when>
             <when value="obs"/>
             <when value="var"/>
-            <when value="chunk_X">
-                <expand macro="params_chunk_X"/>
+            <when value="uns">
+                <param name="uns_info" type="select" label="What to inspect in uns?">
+                    <option value="neighbors">Neighbors</option>
+                    <option value="paga">PAGA</option>
+                    <option value="pca">PCA</option>
+                    <option value="rank_genes_groups">Rank gene groups (rank_genes_groups)</option>
+                </param>
+            </when>
+            <when value="obsm">
+                <param name="obsm_info" type="select" label="Which annotation to inspect for the observations?">
+                    <option value="X_pca">PCA coordinates (X_pca)</option>
+                    <option value="X_umap">UMAP coordinates (X_umap)</option>
+                    <option value="X_tsne">tSNE coordinates (X_tsne)</option>
+                    <option value="X_draw_graph">Coordinates of graph layout (X_draw_graph)</option>
+                    <option value="X_diffmap">Diffusion map representation of data (X_diffmap)</option>
+                </param>
+            </when>
+            <when value="varm">
+                <param name="varm_info" type="select" label="Which annotation to inspect for the variables?">
+                    <option value="PCs">Principal components containing the loadings</option>
+                </param>
             </when>
         </conditional>
     </inputs>
@@ -71,9 +141,62 @@
         <data name="chunk_X" format="tabular" label="${tool.name} on ${on_string}: Observations annotation">
             <filter>inspect['info'] == 'chunk_X'</filter>
         </data>
+        <data name="uns_neighbors_connectivities" format="mtx" from_work_dir="uns_neighbors_connectivities.mtx" label="${tool.name} on ${on_string}: Weighted adjacency matrix of the neighborhood graph of data points">
+            <filter>inspect['info'] == 'uns' and inspect['uns_info'] == 'neighbors'</filter>
+        </data>
+        <data name="uns_neighbors_distances" format="mtx" from_work_dir="uns_neighbors_distances.mtx" label="${tool.name} on ${on_string}: Distances for each pair of neighbors">
+            <filter>inspect['info'] == 'uns' and inspect['uns_info'] == 'neighbors'</filter>
+        </data>
+        <data name="uns_paga_connectivities" format="mtx" from_work_dir="uns_paga_connectivities.mtx" label="${tool.name} on ${on_string}: Full adjacency matrix of the abstracted graph">
+            <filter>inspect['info'] == 'uns' and inspect['uns_info'] == 'paga'</filter>
+        </data>
+        <data name="uns_paga_connectivities_tree" format="mtx" from_work_dir="uns_paga_connectivities_tree.mtx" label="${tool.name} on ${on_string}: Adjacency matrix of the tree-like subgraph">
+            <filter>inspect['info'] == 'uns' and inspect['uns_info'] == 'paga'</filter>
+        </data>
+        <data name="uns_pca_variance" format="tabular" label="${tool.name} on ${on_string}: Ratio of explained variance for PCA">
+            <filter>inspect['info'] == 'uns' and inspect['uns_info'] == 'pca'</filter>
+        </data>
+        <data name="uns_pca_variance_ratio" format="tabular" label="${tool.name} on ${on_string}: Explained variance, equivalent to the eigenvalues of the covariance matrix, for PCA">
+            <filter>inspect['info'] == 'uns' and inspect['uns_info'] == 'pca'</filter>
+        </data>
+        <data name="uns_rank_genes_groups_names" format="tabular" label="${tool.name} on ${on_string}: Names for rank genes">
+            <filter>inspect['info'] == 'uns' and inspect['uns_info'] == 'rank_genes_groups'</filter>
+        </data>
+        <data name="uns_rank_genes_groups_scores" format="tabular" label="${tool.name} on ${on_string}: Z-scores for rank genes">
+            <filter>inspect['info'] == 'uns' and inspect['uns_info'] == 'rank_genes_groups'</filter>
+        </data>
+        <data name="uns_rank_genes_groups_logfoldchanges" format="tabular" label="${tool.name} on ${on_string}: Log2 fold changes for rank genes">
+            <filter>inspect['info'] == 'uns' and inspect['uns_info'] == 'rank_genes_groups'</filter>
+        </data>
+        <data name="uns_rank_genes_groups_pvals" format="tabular" label="${tool.name} on ${on_string}: P-values for rank genes">
+            <filter>inspect['info'] == 'uns' and inspect['uns_info'] == 'rank_genes_groups'</filter>
+        </data>
+        <data name="uns_rank_genes_groups_pvals_adj" format="tabular" label="${tool.name} on ${on_string}: Adjusted p-values for rank genes">
+            <filter>inspect['info'] == 'uns' and inspect['uns_info'] == 'rank_genes_groups'</filter>
+        </data>
+        <data name="obsm_X_pca" format="tabular" label="${tool.name} on ${on_string}: PCA coordinates for observations">
+            <filter>inspect['info'] == 'obsm' and inspect['obsm_info'] == 'X_pca'</filter>
+        </data>
+        <data name="obsm_X_umap" format="tabular" label="${tool.name} on ${on_string}: UMAP coordinates for observations">
+            <filter>inspect['info'] == 'obsm' and inspect['obsm_info'] == 'X_umap'</filter>
+        </data>
+        <data name="obsm_X_tsne" format="tabular" label="${tool.name} on ${on_string}: tSNE coordinates for observations">
+            <filter>inspect['info'] == 'obsm' and inspect['obsm_info'] == 'X_tsne'</filter>
+        </data>
+        <collection name="obsm_X_draw_graph" type="list" label="${tool.name} on ${on_string}: Coordinates of graph layout">
+            <discover_datasets pattern="X_draw_graph_(?P&lt;designation&gt;.*)" format="tabular"/>
+            <filter>inspect['info'] == 'obsm' and inspect['obsm_info'] == 'X_draw_graph'</filter>
+        </collection>
+        <data name="obsm_X_diffmap" format="tabular" label="${tool.name} on ${on_string}: Diffusion map representation for observations">
+            <filter>inspect['info'] == 'obsm' and inspect['obsm_info'] == 'X_diffmap'</filter>
+        </data>
+        <data name="varm_PCs" format="tabular" label="${tool.name} on ${on_string}: Principal components containing the loadings for variables">
+            <filter>inspect['info'] == 'varm' and inspect['varm_info'] == 'PCs'</filter>
+        </data>
     </outputs>
     <tests>
         <test>
+            <!-- test 1: general info -->
             <param name="input" value="krumsiek11.h5ad"/>
             <conditional name="inspect">
                 <param name="info" value="general"/>
@@ -81,6 +204,7 @@
             <output name="general" value="inspect.general.txt"/>
         </test>
         <test>
+            <!-- test 2: X -->
             <param name="input" value="krumsiek11.h5ad"/>
             <conditional name="inspect">
                 <param name="info" value="X"/>
@@ -91,6 +215,7 @@
             <output name="X" value="inspect.X.tabular" ftype="tabular"/>
         </test>
         <test>
+            <!-- test 3: obs -->
             <param name="input" value="krumsiek11.h5ad"/>
             <conditional name="inspect">
                 <param name="info" value="obs"/>
@@ -101,6 +226,7 @@
             <output name="obs" value="inspect.obs.tabular" ftype="tabular"/>
         </test>
         <test>
+            <!-- test 4: var -->
             <param name="input" value="krumsiek11.h5ad"/>
             <conditional name="inspect">
                 <param name="info" value="var"/>
@@ -111,6 +237,7 @@
             <output name="var" value="inspect.var.tabular" ftype="tabular"/>
         </test>
         <test>
+            <!-- test 5: chunk_X, specified -->
             <param name="input" value="krumsiek11.h5ad"/>
             <conditional name="inspect">
                 <param name="info" value="chunk_X"/>
@@ -126,6 +253,7 @@
             <output name="chunk_X" value="inspect.chunk_X.specified.tabular" ftype="tabular"/>
         </test>
         <test>
+            <!-- test 6: chunk_X, random -->
             <param name="input" value="krumsiek11.h5ad"/>
             <conditional name="inspect">
                 <param name="info" value="chunk_X"/>
@@ -146,6 +274,211 @@
                 </assert_contents>
             </output>
         </test>
+        <test>
+            <!-- test 7: uns, neighbors -->
+            <param name="input" value="pp.neighbors_umap_euclidean.recipe_weinreb17.paul15_subsample.h5ad"/>
+            <conditional name="inspect">
+                <param name="info" value="uns"/>
+                <param name="uns_info" value="neighbors"/>
+            </conditional>
+            <output name="uns_neighbors_connectivities" ftype="mtx">
+                <assert_contents>
+                    <has_text_matching expression="100	100	1248" />
+                    <has_text_matching expression="4.880" />
+                </assert_contents>
+            </output>
+            <output name="uns_neighbors_distances" ftype="mtx">
+                <assert_contents>
+                    <has_text_matching expression="100	100	1400" />
+                    <has_text_matching expression="4.973" />
+                    <has_text_matching expression="4.877" />
+                </assert_contents>
+            </output>
+        </test>
+        <test>
+            <!-- test 8: uns, paga -->
+            <param name="input" value="tl.paga.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad"/>
+            <conditional name="inspect">
+                <param name="info" value="uns"/>
+                <param name="uns_info" value="paga"/>
+            </conditional>
+            <output name="uns_paga_connectivities" ftype="mtx">
+                <assert_contents>
+                    <has_text_matching expression="16	16	97" />
+                    <has_text_matching expression="1.000" />
+                    <has_text_matching expression="8.839" />
+                </assert_contents>
+            </output>
+            <output name="uns_paga_connectivities_tree" ftype="mtx">
+                <assert_contents>
+                    <has_text_matching expression="16	16	15" />
+                    <has_text_matching expression="1.000" />
+                </assert_contents>
+            </output>
+        </test>
+        <test>
+            <!-- test 9: uns, pca -->
+            <param name="input" value="pp.pca.krumsiek11.h5ad"/>
+            <conditional name="inspect">
+                <param name="info" value="uns"/>
+                <param name="uns_info" value="pca"/>
+            </conditional>
+            <output name="uns_pca_variance">
+                <assert_contents>
+                    <has_text_matching expression="0.75409454" />
+                    <has_text_matching expression="3.2818672e-05" />
+                    <has_n_columns n="1" />
+                </assert_contents>
+            </output>
+            <output name="uns_pca_variance_ratio">
+                <assert_contents>
+                    <has_text_matching expression="0.039053127" />
+                    <has_text_matching expression="0.00013167" />
+                    <has_n_columns n="1" />
+                </assert_contents>
+            </output>
+        </test>
+        <test>
+            <!-- test 10: uns, rank_gene_groups -->
+            <param name="input" value="tl.rank_genes_groups.krumsiek11.h5ad"/>
+            <conditional name="inspect">
+                <param name="info" value="uns"/>
+                <param name="uns_info" value="rank_genes_groups"/>
+            </conditional>
+            <output name="uns_rank_genes_groups_names">
+                <assert_contents>
+                    <has_n_columns n="5" />
+                    <has_text_matching expression="Ery\tMk\tMo\tNeu\tprogenitor"/>
+                    <has_text_matching expression="Gata1\tFog1\tCebpa\tFli1\tGata2"/>
+                    <has_text_matching expression="EgrNab\tEgrNab\tSCL\tSCL\tGfi1"/>
+                </assert_contents>
+            </output>
+            <output name="uns_rank_genes_groups_scores">
+                <assert_contents>
+                    <has_n_columns n="5" />
+                    <has_text_matching expression="Ery\tMk\tMo\tNeu\tprogenitor"/>
+                    <has_text_matching expression="18.86\d{4}"/>
+                    <has_text_matching expression="17.85\d{4}"/>
+                    <has_text_matching expression="-2.63\d{4}"/>
+                    <has_text_matching expression="-2.98\d{4}"/>
+                    <has_text_matching expression="-6.41\d{4}"/>
+                </assert_contents>
+            </output>
+            <output name="uns_rank_genes_groups_logfoldchanges">
+                <assert_contents>
+                    <has_n_columns n="5" />
+                </assert_contents>
+            </output>
+            <output name="uns_rank_genes_groups_pvals">
+                <assert_contents>
+                    <has_n_columns n="5" />
+                    <has_text_matching expression="1.8000"/>
+                </assert_contents>
+            </output>
+            <output name="uns_rank_genes_groups_pvals_adj">
+                <assert_contents>
+                    <has_n_columns n="5" />
+                    <has_text_matching expression="1.98004"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test>
+            <!-- test 11: obsm, X_pca -->
+            <param name="input" value="pp.pca.krumsiek11.h5ad"/>
+            <conditional name="inspect">
+                <param name="info" value="obsm"/>
+                <param name="obsm_info" value="X_pca"/>
+            </conditional>
+            <output name="obsm_X_pca">
+                <assert_contents>
+                    <has_text_matching expression="0.00030471283" />
+                    <has_text_matching expression="3.4109413e-05" />
+                    <has_text_matching expression="-0.6401007" />
+                    <has_n_columns n="10" />
+                </assert_contents>
+            </output>
+        </test>
+        <test>
+            <!-- test 12: obsm_info, X_umap -->
+            <param name="input" value="tl.umap.h5ad"/>
+            <conditional name="inspect">
+                <param name="info" value="obsm"/>
+                <param name="obsm_info" value="X_umap"/>
+            </conditional>
+            <output name="obsm_X_umap">
+                <assert_contents>
+                    <has_text text="1.664" />
+                    <has_text text="5.425" />
+                    <has_text text="-1.748" />
+                    <has_text text="-9.714" />
+                    <has_n_columns n="2" />
+                </assert_contents>
+            </output>
+        </test>
+        <test>
+            <!-- test 13: obsm_info, X_tsne -->
+            <param name="input" value="tl.tsne.h5ad"/>
+            <conditional name="inspect">
+                <param name="info" value="obsm"/>
+                <param name="obsm_info" value="X_tsne"/>
+            </conditional>
+            <output name="obsm_X_tsne">
+                <assert_contents>
+                    <has_text text="14.301989" />
+                    <has_text text="-19.447426" />
+                    <has_n_columns n="2" />
+                </assert_contents>
+            </output>
+        </test>
+        <test>
+            <!-- test 14: obsm_info, X_draw_graph -->
+            <param name="input" value="tl.draw_graph.h5ad"/>
+            <conditional name="inspect">
+                <param name="info" value="obsm"/>
+                <param name="obsm_info" value="X_draw_graph"/>
+            </conditional>
+            <output_collection name="obsm_X_draw_graph">
+                <element name="fr">
+                    <assert_contents>
+                        <has_text text="-39.77" />
+                        <has_text text="-24.83" />
+                        <has_text text="-34.34" />
+                        <has_text text="-22.34" />
+                        <has_n_columns n="2" />
+                    </assert_contents>
+                </element>
+            </output_collection>
+        </test>
+        <test>
+            <!-- test 15: obsm_info, X_diffmap -->
+            <param name="input" value="tl.diffmap.h5ad"/>
+            <conditional name="inspect">
+                <param name="info" value="obsm"/>
+                <param name="obsm_info" value="X_diffmap"/>
+            </conditional>
+            <output name="obsm_X_diffmap">
+                <assert_contents>
+                    <has_text text="0.1006" />
+                    <has_text text="-0.0619" />
+                    <has_n_columns n="15" />
+                </assert_contents>
+            </output>
+        </test>
+        <test>
+            <!-- test 16: varm_info, PCs -->
+            <param name="input" value="pp.pca.krumsiek11.h5ad"/>
+            <conditional name="inspect">
+                <param name="info" value="varm"/>
+                <param name="varm_info" value="PCs"/>
+            </conditional>
+            <output name="varm_PCs">
+                <assert_contents>
+                    <has_text_matching expression="0.2352" />
+                    <has_text_matching expression="-0.0492" />
+                    <has_n_columns n="10" />
+                </assert_contents>
+            </output>
+        </test>
     </tests>
     <help><![CDATA[
 **What it does**
--- a/macros.xml	Wed Apr 10 03:25:39 2019 -0400
+++ b/macros.xml	Wed Oct 16 06:27:55 2019 -0400
@@ -1,11 +1,11 @@
 <macros>
-    <token name="@VERSION@">0.6.19</token>
+    <token name="@VERSION@">0.6.22.post1</token>
     <token name="@GALAXY_VERSION@">galaxy0</token>
     <xml name="requirements">
         <requirements>
             <requirement type="package" version="@VERSION@">anndata</requirement>
-            <requirement type="package" version="1.4">scanpy</requirement>
             <requirement type="package" version="2.0.17">loompy</requirement>
+            <requirement type="package" version="2.9.0">h5py</requirement>
             <yield />
         </requirements>
     </xml>
Binary file test-data/manipulate.add_annotation_obs.h5ad has changed
Binary file test-data/manipulate.add_annotation_var.h5ad has changed
Binary file test-data/manipulate.filter_obs_key.h5ad has changed
Binary file test-data/manipulate.filter_var_index.h5ad has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/obs_add_annotation.tabular	Wed Oct 16 06:27:55 2019 -0400
@@ -0,0 +1,641 @@
+annot1	annot2
+0	progenitor
+1	progenitor
+2	progenitor
+3	progenitor
+4	progenitor
+5	progenitor
+6	progenitor
+7	progenitor
+8	progenitor
+9	progenitor
+10	progenitor
+11	progenitor
+12	progenitor
+13	progenitor
+14	progenitor
+15	progenitor
+16	progenitor
+17	progenitor
+18	progenitor
+19	progenitor
+20	progenitor
+21	progenitor
+22	progenitor
+23	progenitor
+24	progenitor
+25	progenitor
+26	progenitor
+27	progenitor
+28	progenitor
+29	progenitor
+30	progenitor
+31	progenitor
+32	progenitor
+33	progenitor
+34	progenitor
+35	progenitor
+36	progenitor
+37	progenitor
+38	progenitor
+39	progenitor
+40	progenitor
+41	progenitor
+42	progenitor
+43	progenitor
+44	progenitor
+45	progenitor
+46	progenitor
+47	progenitor
+48	progenitor
+49	progenitor
+50	progenitor
+51	progenitor
+52	progenitor
+53	progenitor
+54	progenitor
+55	progenitor
+56	progenitor
+57	progenitor
+58	progenitor
+59	progenitor
+60	progenitor
+61	progenitor
+62	progenitor
+63	progenitor
+64	progenitor
+65	progenitor
+66	progenitor
+67	progenitor
+68	progenitor
+69	progenitor
+70	progenitor
+71	progenitor
+72	progenitor
+73	progenitor
+74	progenitor
+75	progenitor
+76	progenitor
+77	progenitor
+78	progenitor
+79	progenitor
+80	Mo
+81	Mo
+82	Mo
+83	Mo
+84	Mo
+85	Mo
+86	Mo
+87	Mo
+88	Mo
+89	Mo
+90	Mo
+91	Mo
+92	Mo
+93	Mo
+94	Mo
+95	Mo
+96	Mo
+97	Mo
+98	Mo
+99	Mo
+100	Mo
+101	Mo
+102	Mo
+103	Mo
+104	Mo
+105	Mo
+106	Mo
+107	Mo
+108	Mo
+109	Mo
+110	Mo
+111	Mo
+112	Mo
+113	Mo
+114	Mo
+115	Mo
+116	Mo
+117	Mo
+118	Mo
+119	Mo
+120	Mo
+121	Mo
+122	Mo
+123	Mo
+124	Mo
+125	Mo
+126	Mo
+127	Mo
+128	Mo
+129	Mo
+130	Mo
+131	Mo
+132	Mo
+133	Mo
+134	Mo
+135	Mo
+136	Mo
+137	Mo
+138	Mo
+139	Mo
+140	Mo
+141	Mo
+142	Mo
+143	Mo
+144	Mo
+145	Mo
+146	Mo
+147	Mo
+148	Mo
+149	Mo
+150	Mo
+151	Mo
+152	Mo
+153	Mo
+154	Mo
+155	Mo
+156	Mo
+157	Mo
+158	Mo
+159	Mo
+0	progenitor
+1	progenitor
+2	progenitor
+3	progenitor
+4	progenitor
+5	progenitor
+6	progenitor
+7	progenitor
+8	progenitor
+9	progenitor
+10	progenitor
+11	progenitor
+12	progenitor
+13	progenitor
+14	progenitor
+15	progenitor
+16	progenitor
+17	progenitor
+18	progenitor
+19	progenitor
+20	progenitor
+21	progenitor
+22	progenitor
+23	progenitor
+24	progenitor
+25	progenitor
+26	progenitor
+27	progenitor
+28	progenitor
+29	progenitor
+30	progenitor
+31	progenitor
+32	progenitor
+33	progenitor
+34	progenitor
+35	progenitor
+36	progenitor
+37	progenitor
+38	progenitor
+39	progenitor
+40	progenitor
+41	progenitor
+42	progenitor
+43	progenitor
+44	progenitor
+45	progenitor
+46	progenitor
+47	progenitor
+48	progenitor
+49	progenitor
+50	progenitor
+51	progenitor
+52	progenitor
+53	progenitor
+54	progenitor
+55	progenitor
+56	progenitor
+57	progenitor
+58	progenitor
+59	progenitor
+60	progenitor
+61	progenitor
+62	progenitor
+63	progenitor
+64	progenitor
+65	progenitor
+66	progenitor
+67	progenitor
+68	progenitor
+69	progenitor
+70	progenitor
+71	progenitor
+72	progenitor
+73	progenitor
+74	progenitor
+75	progenitor
+76	progenitor
+77	progenitor
+78	progenitor
+79	progenitor
+80	Ery
+81	Ery
+82	Ery
+83	Ery
+84	Ery
+85	Ery
+86	Ery
+87	Ery
+88	Ery
+89	Ery
+90	Ery
+91	Ery
+92	Ery
+93	Ery
+94	Ery
+95	Ery
+96	Ery
+97	Ery
+98	Ery
+99	Ery
+100	Ery
+101	Ery
+102	Ery
+103	Ery
+104	Ery
+105	Ery
+106	Ery
+107	Ery
+108	Ery
+109	Ery
+110	Ery
+111	Ery
+112	Ery
+113	Ery
+114	Ery
+115	Ery
+116	Ery
+117	Ery
+118	Ery
+119	Ery
+120	Ery
+121	Ery
+122	Ery
+123	Ery
+124	Ery
+125	Ery
+126	Ery
+127	Ery
+128	Ery
+129	Ery
+130	Ery
+131	Ery
+132	Ery
+133	Ery
+134	Ery
+135	Ery
+136	Ery
+137	Ery
+138	Ery
+139	Ery
+140	Ery
+141	Ery
+142	Ery
+143	Ery
+144	Ery
+145	Ery
+146	Ery
+147	Ery
+148	Ery
+149	Ery
+150	Ery
+151	Ery
+152	Ery
+153	Ery
+154	Ery
+155	Ery
+156	Ery
+157	Ery
+158	Ery
+159	Ery
+0	progenitor
+1	progenitor
+2	progenitor
+3	progenitor
+4	progenitor
+5	progenitor
+6	progenitor
+7	progenitor
+8	progenitor
+9	progenitor
+10	progenitor
+11	progenitor
+12	progenitor
+13	progenitor
+14	progenitor
+15	progenitor
+16	progenitor
+17	progenitor
+18	progenitor
+19	progenitor
+20	progenitor
+21	progenitor
+22	progenitor
+23	progenitor
+24	progenitor
+25	progenitor
+26	progenitor
+27	progenitor
+28	progenitor
+29	progenitor
+30	progenitor
+31	progenitor
+32	progenitor
+33	progenitor
+34	progenitor
+35	progenitor
+36	progenitor
+37	progenitor
+38	progenitor
+39	progenitor
+40	progenitor
+41	progenitor
+42	progenitor
+43	progenitor
+44	progenitor
+45	progenitor
+46	progenitor
+47	progenitor
+48	progenitor
+49	progenitor
+50	progenitor
+51	progenitor
+52	progenitor
+53	progenitor
+54	progenitor
+55	progenitor
+56	progenitor
+57	progenitor
+58	progenitor
+59	progenitor
+60	progenitor
+61	progenitor
+62	progenitor
+63	progenitor
+64	progenitor
+65	progenitor
+66	progenitor
+67	progenitor
+68	progenitor
+69	progenitor
+70	progenitor
+71	progenitor
+72	progenitor
+73	progenitor
+74	progenitor
+75	progenitor
+76	progenitor
+77	progenitor
+78	progenitor
+79	progenitor
+80	Mk
+81	Mk
+82	Mk
+83	Mk
+84	Mk
+85	Mk
+86	Mk
+87	Mk
+88	Mk
+89	Mk
+90	Mk
+91	Mk
+92	Mk
+93	Mk
+94	Mk
+95	Mk
+96	Mk
+97	Mk
+98	Mk
+99	Mk
+100	Mk
+101	Mk
+102	Mk
+103	Mk
+104	Mk
+105	Mk
+106	Mk
+107	Mk
+108	Mk
+109	Mk
+110	Mk
+111	Mk
+112	Mk
+113	Mk
+114	Mk
+115	Mk
+116	Mk
+117	Mk
+118	Mk
+119	Mk
+120	Mk
+121	Mk
+122	Mk
+123	Mk
+124	Mk
+125	Mk
+126	Mk
+127	Mk
+128	Mk
+129	Mk
+130	Mk
+131	Mk
+132	Mk
+133	Mk
+134	Mk
+135	Mk
+136	Mk
+137	Mk
+138	Mk
+139	Mk
+140	Mk
+141	Mk
+142	Mk
+143	Mk
+144	Mk
+145	Mk
+146	Mk
+147	Mk
+148	Mk
+149	Mk
+150	Mk
+151	Mk
+152	Mk
+153	Mk
+154	Mk
+155	Mk
+156	Mk
+157	Mk
+158	Mk
+159	Mk
+0	progenitor
+1	progenitor
+2	progenitor
+3	progenitor
+4	progenitor
+5	progenitor
+6	progenitor
+7	progenitor
+8	progenitor
+9	progenitor
+10	progenitor
+11	progenitor
+12	progenitor
+13	progenitor
+14	progenitor
+15	progenitor
+16	progenitor
+17	progenitor
+18	progenitor
+19	progenitor
+20	progenitor
+21	progenitor
+22	progenitor
+23	progenitor
+24	progenitor
+25	progenitor
+26	progenitor
+27	progenitor
+28	progenitor
+29	progenitor
+30	progenitor
+31	progenitor
+32	progenitor
+33	progenitor
+34	progenitor
+35	progenitor
+36	progenitor
+37	progenitor
+38	progenitor
+39	progenitor
+40	progenitor
+41	progenitor
+42	progenitor
+43	progenitor
+44	progenitor
+45	progenitor
+46	progenitor
+47	progenitor
+48	progenitor
+49	progenitor
+50	progenitor
+51	progenitor
+52	progenitor
+53	progenitor
+54	progenitor
+55	progenitor
+56	progenitor
+57	progenitor
+58	progenitor
+59	progenitor
+60	progenitor
+61	progenitor
+62	progenitor
+63	progenitor
+64	progenitor
+65	progenitor
+66	progenitor
+67	progenitor
+68	progenitor
+69	progenitor
+70	progenitor
+71	progenitor
+72	progenitor
+73	progenitor
+74	progenitor
+75	progenitor
+76	progenitor
+77	progenitor
+78	progenitor
+79	progenitor
+80	Neu
+81	Neu
+82	Neu
+83	Neu
+84	Neu
+85	Neu
+86	Neu
+87	Neu
+88	Neu
+89	Neu
+90	Neu
+91	Neu
+92	Neu
+93	Neu
+94	Neu
+95	Neu
+96	Neu
+97	Neu
+98	Neu
+99	Neu
+100	Neu
+101	Neu
+102	Neu
+103	Neu
+104	Neu
+105	Neu
+106	Neu
+107	Neu
+108	Neu
+109	Neu
+110	Neu
+111	Neu
+112	Neu
+113	Neu
+114	Neu
+115	Neu
+116	Neu
+117	Neu
+118	Neu
+119	Neu
+120	Neu
+121	Neu
+122	Neu
+123	Neu
+124	Neu
+125	Neu
+126	Neu
+127	Neu
+128	Neu
+129	Neu
+130	Neu
+131	Neu
+132	Neu
+133	Neu
+134	Neu
+135	Neu
+136	Neu
+137	Neu
+138	Neu
+139	Neu
+140	Neu
+141	Neu
+142	Neu
+143	Neu
+144	Neu
+145	Neu
+146	Neu
+147	Neu
+148	Neu
+149	Neu
+150	Neu
+151	Neu
+152	Neu
+153	Neu
+154	Neu
+155	Neu
+156	Neu
+157	Neu
+158	Neu
+159	Neu
Binary file test-data/pp.neighbors_umap_euclidean.recipe_weinreb17.paul15_subsample.h5ad has changed
Binary file test-data/pp.pca.krumsiek11.h5ad has changed
Binary file test-data/tl.diffmap.h5ad has changed
Binary file test-data/tl.draw_graph.h5ad has changed
Binary file test-data/tl.paga.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad has changed
Binary file test-data/tl.rank_genes_groups.krumsiek11.h5ad has changed
Binary file test-data/tl.tsne.h5ad has changed
Binary file test-data/tl.umap.h5ad has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/var_add_annotation.tabular	Wed Oct 16 06:27:55 2019 -0400
@@ -0,0 +1,12 @@
+annot1	annot2
+1	a
+2	b
+3	c
+4	d
+5	e
+6	f
+7	g
+8	h
+9	i
+10	j
+11	k