changeset 1:20cfb9f3dded draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/scanpy/ commit 8ef5f7c6f8728608a3f05bb51e11b642b84a05f5"
author iuc
date Wed, 16 Oct 2019 06:29:43 -0400
parents 0e212e42ef88
children dc2de14881ba
files README.md README.rst cluster_reduce_dimension.xml macros.xml test-data/blobs.h5ad test-data/pl.clustermap.krumsiek11.png test-data/pl.dotplot.krumsiek11.png test-data/pl.draw_graph.png test-data/pl.highly_variable_genes.seurat.blobs.png test-data/pl.pca_overview.pp.pca.krumsiek11.png test-data/pl.rank_genes_groups.rank_genes_groups.krumsiek11.png test-data/pl.rank_genes_groups_violin.Ery.png test-data/pl.rank_genes_groups_violin.Mk.png test-data/pl.rank_genes_groups_violin.Mo.png test-data/pl.rank_genes_groups_violin.Neu.png test-data/pl.rank_genes_groups_violin.progenitor.png test-data/pl.scatter.krumsiek11.png test-data/pl.scatter.umap.pbmc68k_reduced.png test-data/pl.stacked_violin.krumsiek11.png test-data/pp.calculate_qc_metrics.sparce_csr_matrix.h5ad test-data/pp.combat.blobs.h5ad test-data/pp.downsample_counts.random-randint.h5ad test-data/pp.filter_cells.krumsiek11-max_genes.h5ad test-data/pp.filter_cells.krumsiek11-min_counts.h5ad test-data/pp.filter_cells.number_per_cell.krumsiek11-max_genes.tabular test-data/pp.filter_genes.krumsiek11-min_counts.h5ad test-data/pp.filter_genes.number_per_gene.krumsiek11-min_counts.tabular test-data/pp.filter_genes.number_per_gene.pbmc68k_reduced-max_cells.tabular test-data/pp.filter_genes_dispersion.krumsiek11-seurat.h5ad test-data/pp.filter_genes_dispersion.per_gene.krumsiek11-cell_ranger.tabular test-data/pp.filter_genes_dispersion.per_gene.krumsiek11-seurat.tabular test-data/pp.filter_rank_genes_groups.h5ad test-data/pp.highly_variable_genes.krumsiek11-cell_ranger.h5ad test-data/pp.highly_variable_genes.seurat.blobs.h5ad test-data/pp.log1p.krumsiek11.h5ad test-data/pp.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad test-data/pp.neighbors_umap_euclidean.recipe_weinreb17.paul15_subsample.h5ad test-data/pp.normalize_per_cell.obs.krumsiek11.tabular test-data/pp.normalize_total.krumsiek11.h5ad test-data/pp.pca.krumsiek11.h5ad test-data/pp.recipe_seurat.recipe_zheng17.h5ad test-data/pp.recipe_weinreb17.paul15_subsample.updated.h5ad test-data/pp.recipe_zheng17.random-randint.h5ad test-data/pp.regress_out.krumsiek11.h5ad test-data/pp.scale.krumsiek11.h5ad test-data/pp.scale_max_value.krumsiek11.h5ad test-data/pp.sqrt.krumsiek11.h5ad test-data/pp.subsample.krumsiek11_fraction.h5ad test-data/sparce_csr_matrix.h5ad test-data/tl.diffmap.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.X_diffmap.tabular test-data/tl.diffmap.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad test-data/tl.dpt.diffmap.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad test-data/tl.dpt.diffmap.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.obs.tabular test-data/tl.draw_graph.pp.neighbors_umap_euclidean.recipe_weinreb17.paul15_subsample.h5ad test-data/tl.leiden.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad test-data/tl.louvain.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad test-data/tl.paga.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad test-data/tl.pca.krumsiek11.h5ad test-data/tl.rank_genes_groups.krumsiek11.h5ad test-data/tl.rank_genes_groups.liblinear.krumsiek11.h5ad test-data/tl.rank_genes_groups.newton-cg.pbmc68k_reduced.h5ad test-data/tl.score_genes.krumsiek11.h5ad test-data/tl.score_genes.krumsiek11.obs.tabular test-data/tl.score_genes_cell_cycle.krumsiek11.h5ad test-data/tl.score_genes_cell_cycle.krumsiek11.obs.tabular test-data/tl.tsne.krumsiek11.h5ad test-data/tl.umap.neighbors_umap_euclidean.recipe_weinreb17.paul15_subsample.h5ad
diffstat 67 files changed, 492 insertions(+), 4048 deletions(-) [+]
line wrap: on
line diff
--- a/README.md	Mon Mar 04 10:13:44 2019 -0500
+++ b/README.md	Wed Oct 16 06:29:43 2019 -0400
@@ -1,138 +1,115 @@
 Scanpy
 ======
 
-## Classification of methods into steps
+1. Inspect & Manipulate (`inspect.xml`)
 
-Steps:
+    Methods | Description
+    --- | ---
+    `pp.calculate_qc_metrics` | Calculate quality control metrics
+    `pp.neighbors` | Compute a neighborhood graph of observations
+    `tl.score_genes` | Score a set of genes
+    `tl.score_genes_cell_cycle` | Score cell cycle gene
+    `tl.rank_genes_groups` | Rank genes for characterizing groups
+    `tl.marker_gene_overlap` | Calculate an overlap score between data-deriven marker genes and provided markers (**not working for now**)
+    `pp.log1p` | Logarithmize the data matrix.
+    `pp.scale` | Scale data to unit variance and zero mean
+    `pp.sqrt` | Square root the data matrix
 
-1. Filtering
+2. Filter (`filter.xml`)
 
     Methods | Description
     --- | ---
     `pp.filter_cells` | Filter cell outliers based on counts and numbers of genes expressed.
     `pp.filter_genes` | Filter genes based on number of cells or counts.
-    `pp.filter_genes_dispersion` | Extract highly variable genes
+    `tl.filter_rank_genes_groups` | Filters out genes based on fold change and fraction of genes expressing the gene within and outside the groupby categories (**to fix**)
     `pp.highly_variable_genes` | Extract highly variable genes
     `pp.subsample` | Subsample to a fraction of the number of observations
-    `queries.gene_coordinates` | (Could not find...)
-    `queries.mitochondrial_genes` | Retrieves Mitochondrial gene symbols for specific organism through BioMart for filtering
-
-2. Quality Plots
-
-   These are in-between stages used to measure the effectiveness of a Filtering/Normalisation/Conf.Removal stage either after processing or prior to.
+    `pp.downsample_counts` | Downsample counts so that each cell has no more than target_counts
 
-    Methods | Description | Notes
-    --- | --- | ---
-    `pp.calculate_qc_metrics` | Calculate quality control metrics
-    `pl.violin` | violin plot of features, lib. size, or subsets of. 
-    `pl.stacked_violin` | Same as above but for multiple series of features or cells
-
-3. Normalization
+3. Normalize (`normalize.xml`)
 
     Methods | Description
     --- | ---
-    `pp.normalize_per_cell` | Normalize total counts per cell
+    `pp.normalize_total` | Normalize counts per cell
     `pp.recipe_zheng17` | Normalization and filtering as of [Zheng17]
     `pp.recipe_weinreb17` | Normalization and filtering as of [Weinreb17]
     `pp.recipe_seurat` | Normalization and filtering as of Seurat [Satija15]
-    `pp.log1p` | Logarithmize the data matrix.
-    `pp.scale` | Scale data to unit variance and zero mean
-    `pp.sqrt` | 
-    `pp.downsample_counts` | Downsample counts so that each cell has no more than target_counts
 
-4. Conf. removal
+4. Remove confounders (`remove_confounder.xml`)
 
     Methods | Description
     --- | ---
    `pp.regress_out` | Regress out unwanted sources of variation
    `pp.mnn_correct` | Correct batch effects by matching mutual nearest neighbors
-   `pp.dca` | Deep count autoencoder to denoise the data
-   `pp.magic` | Markov Affinity-based Graph Imputation of Cells (MAGIC) API to denoise
-   `tl.sim` | Simulate dynamic gene expression data [Wittman09]
-   `pp.calculate_qc_metrics` | Calculate quality control metrics
-   `tl.score_genes` | Score a set of genes
-   `tl.score_genes_cell_cycle` | Score cell cycle genes
-   `tl.cyclone` | Assigns scores and predicted class to observations based on cell-cycle genes [Scialdone15]
-   `tl.sandbag` | Calculates pairs of genes serving as markers for each cell-cycle phase [Scialdone15]
+   `pp.combat` | ComBat function for batch effect correction
 
-5. Clustering and Heatmaps
+5. Clustering, embedding and trajectory inference (`cluster_reduce_dimension.xml`)
 
     Methods | Description
     --- | ---
-    `tl.leiden` | Cluster cells into subgroups [Traag18] [Levine15]
-    `tl.louvain` | Cluster cells into subgroups [Blondel08] [Levine15] [Traag17]
+    `tl.louvain` | Cluster cells into subgroups
+    `tl.leiden` | Cluster cells into subgroups
     `tl.pca` | Principal component analysis
     `pp.pca` | Principal component analysis (appears to be the same func...)
     `tl.diffmap` | Diffusion Maps
     `tl.tsne` | t-SNE
     `tl.umap` | Embed the neighborhood graph using UMAP
-    `tl.phate` | PHATE
-    `pp.neighbors` | Compute a neighborhood graph of observations
-    `tl.rank_genes_groups` | Rank genes for characterizing groups
-    `pl.rank_genes_groups` | 
-    `pl.rank_genes_groups_dotplot` | 
-    `pl.rank_genes_groups_heatmap` | 
-    `pl.rank_genes_groups_matrixplot` | 
-    `pl.rank_genes_groups_stacked_violin` | 
-    `pl.rank_genes_groups_violin` | 
-    `pl.matrix_plot` | 
-    `pl.heatmap` | 
-    `pl.highest_expr_genes` | 
-    `pl.diffmap` | 
+    `tl.draw_graph` | Force-directed graph drawing
+    `tl.dpt` | Infer progression of cells through geodesic distance along the graph
+    `tl.paga` | Mapping out the coarse-grained connectivity structures of complex manifolds
+
+6. Plot (`plot.xml`)
+
+    1. Generic
+
+        Methods | Description
+        --- | ---
+        `pl.scatter` | Scatter plot along observations or variables axes
+        `pl.heatmap` | Heatmap of the expression values of set of genes
+        `pl.dotplot` | Makes a dot plot of the expression values
+        `pl.violin` | Violin plot
+        `pl.stacked_violin` | Stacked violin plots
+        `pl.matrixplot` | Heatmap of the mean expression values per cluster
+        `pl.clustermap` | Hierarchically-clustered heatmap
     
-6. Cluster Inspection and plotting
+    2. Preprocessing
 
-    Methods that draw out the clusters computed in the previous stage, not heatmap or pseudotime related.
+        Methods | Description
+        --- | ---
+        `pl.highest_expr_genes` | Plot the fraction of counts assigned to each gene over all cells
+        `pl.highly_variable_genes` | Plot dispersions versus means for genes
+
+    3. PCA
 
-    Methods | Description 
-    --- | --- 
-    `pl.clustermap` |
-    `pl.phate` | 
-    `pl.dotplot` | 
-    `pl.draw_graph` | (really general purpose, would not implement directly)
-    `pl.filter_genes_dispersion` | (depreciated for 'highly_variable_genes')
-    `pl.matrix` | (could not find in API)
-    `pl.pca` | 
-    `pl.pca_loadings` | 
-    `pl.pca_overview` | 
-    `pl.pca_variance_ratio` | 
-    `pl.ranking` | (not sure what this does...)
-    `pl.scatter` | ([very general purpose](https://icb-scanpy.readthedocs-hosted.com/en/latest/api/scanpy.api.pl.scatter.html), would not implement directly)
-    `pl.set_rcParams_defaults` | 
-    `pl.set_rcParams_scanpy` | 
-    `pl.sim` | 
-    `pl.tsne` | 
-    `pl.umap` | 
+        Methods | Description
+        --- | ---
+        `pl.pca` | Scatter plot in PCA coordinates
+        `pl.pca_loadings` | Rank genes according to contributions to PCs
+        `pl.pca_variance_ratio` | Scatter plot in PCA coordinates
+        `pl.pca_overview` | Plot PCA results
 
-7. Branch/Between-Cluster Inspection
+    4. Embeddings
 
-    Pseudotime analysis, relies on initial clustering.
+        Methods | Description
+        --- | ---
+        `pl.tsne` | Scatter plot in tSNE basis
+        `pl.umap` | Scatter plot in UMAP basis
+        `pl.diffmap` | Scatter plot in Diffusion Map basis
+        `pl.draw_graph` | Scatter plot in graph-drawing basis
 
-    Methods | Description
-    --- | ---
-    `tl.dpt` | Infer progression of cells through geodesic distance along the graph [Haghverdi16] [Wolf17i]
-    `pl.dpt_groups_pseudotime` | 
-    `pl.dpt_timeseries` | 
-    `tl.paga_compare_paths` | 
-    `tl.paga_degrees` | 
-    `tl.paga_expression_entropies` | 
-    `tl.paga` | Generate cellular maps of differentiation manifolds with complex topologies [Wolf17i]
-    `pl.paga` | 
-    `pl.paga_adjacency` | 
-    `pl.paga_compare` | 
-    `pl.paga_path` | 
-    `pl.timeseries` | 
-    `pl.timeseries_as_heatmap` | 
-    `pl.timeseries_subplot` | 
+    5. Branching trajectories and pseudotime, clustering
 
+        Methods | Description
+        --- | ---
+        `pl.dpt_groups_pseudotime` | Plot groups and pseudotime
+        `pl.dpt_timeseries` | Heatmap of pseudotime series
+        `pl.paga` | Plot the abstracted graph through thresholding low-connectivity edges
+        `pl.paga_compare` | Scatter and PAGA graph side-by-side
+        `pl.paga_path` | Gene expression and annotation changes along paths
 
-Methods to sort | Description
---- | --- 
-`tl.ROC_AUC_analysis` | (could not find in API)
-`tl.correlation_matrix` | (could not find in API)
-`rtools.mnn_concatenate` | (could not find in API)
-`utils.compute_association_matrix_of_groups` | (could not find in API) 
-`utils.cross_entropy_neighbors_in_rep` | (could not find in API)
-`utils.merge_groups` | (could not find in API)
-`utils.plot_category_association` | (could not find in API)
-`utils.select_groups` | (could not find in API)
\ No newline at end of file
+    6. Marker genes
+
+        Methods | Description
+        --- | ---
+        `pl.rank_genes_groups` | Plot ranking of genes using dotplot plot
+        `pl.rank_genes_groups_violin` | Plot ranking of genes for all tested comparisons
--- a/README.rst	Mon Mar 04 10:13:44 2019 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-The different methods from Scanpy have been grouped by themes:
-
-1. Filter in `filter.xml`
-  - Filter cell outliers based on counts and numbers of genes expressed, using `pp.filter_cells`
-  - Filter genes based on number of cells or counts, using `pp.filter_genes`
-  - Extract highly variable genes, using `pp.filter_genes_dispersion`
-  - `tl.highly_variable_genes` (need to be added)
-  - Subsample to a fraction of the number of observations, using `pp.subsample`
-  - `queries.gene_coordinates` (need to be added)
-  - `queries.mitochondrial_genes` (need to be added)
-
-2. Normalize in `normalize.xml`
-  - Normalize total counts per cell, using `pp.normalize_per_cell`
-  - Normalization and filtering as of Zheng et al. (2017), using `pp.recipe_zheng17`
-  - Normalization and filtering as of Weinreb et al (2017), using `pp.recipe_weinreb17`
-  - Normalization and filtering as of Seurat et al (2015), using `pp.recipe_seurat`
-  - Logarithmize the data matrix, using `pp.log1p`
-  - Scale data to unit variance and zero mean, using `pp.scale`
-  - Square root the data matrix, using `pp.sqrt`
-  - Downsample counts, using `pp.downsample_counts`
-
-3. Remove confounder in `remove_confounders.xml`
-  - Regress out unwanted sources of variation, using `pp.regress_out`
-  - `pp.mnn_correct` (need to be added)
-  - `pp.mnn_correct` (need to be added)
-  - `pp.magic` (need to be added)
-  - `tl.sim` (need to be added)
-  - `pp.calculate_qc_metrics` (need to be added)
-  - Score a set of genes, using `tl.score_genes`
-  - Score cell cycle genes, using `tl.score_genes_cell_cycle`
-  - `tl.cyclone` (need to be added)
-  - `tl.andbag` (need to be added)
-
-4. Cluster and reduce dimension in `cluster_reduce_dimension.xml`
-  - `tl.leiden` (need to be added)
-  - Cluster cells into subgroups, using `tl.louvain`
-  - Computes PCA (principal component analysis) coordinates, loadings and variance decomposition, using `pp.pca`
-  - Computes PCA (principal component analysis) coordinates, loadings and variance decomposition, using `tl.pca`
-  - Diffusion Maps, using `tl.diffmap`
-  - t-distributed stochastic neighborhood embedding (tSNE), using `tl.tsne`
-  - Embed the neighborhood graph using UMAP, using `tl.umap`
-  - `tl.phate` (need to be added)
-  - Compute a neighborhood graph of observations, using `pp.neighbors`
-  - Rank genes for characterizing groups, using `tl.rank_genes_groups`
-
-4. Inspect
-  - `tl.paga_compare_paths` (need to be added)
-  - `tl.paga_degrees` (need to be added)
-  - `tl.paga_expression_entropies` (need to be added)
-  - Generate cellular maps of differentiation manifolds with complex topologies, using `tl.paga`
-  - Infer progression of cells through geodesic distance along the graph, using `tl.dpt`
-
-5. Plot
-  1. Generic
-    - Scatter plot along observations or variables axes, using `pl.scatter`
-    - Heatmap of the expression values of set of genes, using `pl.heatmap`
-    - Makes a dot plot of the expression values, using `pl.dotplot`
-    - Violin plot, using `pl.violin`
-    - `pl.stacked_violin` (need to be added)
-    - Heatmap of the mean expression values per cluster, using `pl.matrixplot`
-    - Hierarchically-clustered heatmap, using `pl.clustermap`
-    - `pl.ranking` 
-
-  2. Preprocessing
-    - Plot the fraction of counts assigned to each gene over all cells, using `pl.highest_expr_genes`
-    - Plot dispersions versus means for genes, using `pl.filter_genes_dispersion`
-    - `pl.highly_variable_genes` (need to be added)
-    - `pl.calculate_qc_metrics` (need to be added)
-  
-  3. PCA
-    - Scatter plot in PCA coordinates, using `pl.pca`
-    - Rank genes according to contributions to PCs, using `pl.pca_loadings`
-    - Scatter plot in PCA coordinates, using `pl.pca_variance_ratio`
-    - Plot PCA results, using `pl.pca_overview`
-  
-  4. Embeddings
-    - Scatter plot in tSNE basis, using `pl.tsne`
-    - Scatter plot in UMAP basis, using `pl.umap`
-    - Scatter plot in Diffusion Map basis, using `pl.diffmap`
-    - `pl.draw_graph` (need to be added)
-
-  5. Branching trajectories and pseudotime, clustering
-    - Plot groups and pseudotime, using `pl.dpt_groups_pseudotime`
-    - Heatmap of pseudotime series, using `pl.dpt_timeseries`
-    - Plot the abstracted graph through thresholding low-connectivity edges, using `pl.paga`
-    - `pl.paga_compare` (need to be added)
-    - `pl.paga_path` (need to be added)
-
-  6. Marker genes: 
-    - Plot ranking of genes using dotplot plot, using `pl.rank_gene_groups`
-    - `pl.rank_genes_groups_dotplot` (need to be added)
-    - `pl.rank_genes_groups_heatmap` (need to be added)
-    - `pl.rank_genes_groups_matrixplot` (need to be added)
-    - `pl.rank_genes_groups_stacked_violin` (need to be added)
-    - `pl.rank_genes_groups_violin` (need to be added)
-
-  7. Misc
-    - `pl.phate` (need to be added)
-    - `pl.matrix` (need to be added)
-    - `pl.paga_adjacency` (need to be added)
-    - `pl.timeseries` (need to be added)
-    - `pl.timeseries_as_heatmap` (need to be added)
-    - `pl.timeseries_subplot` (need to be added)
-    
-  
\ No newline at end of file
--- a/cluster_reduce_dimension.xml	Mon Mar 04 10:13:44 2019 -0500
+++ b/cluster_reduce_dimension.xml	Wed Oct 16 06:29:43 2019 -0400
@@ -1,32 +1,46 @@
-<tool id="scanpy_cluster_reduce_dimension" name="Cluster and reduce dimension with scanpy" version="@galaxy_version@">
-    <description></description>
+<tool id="scanpy_cluster_reduce_dimension" name="Cluster," version="@galaxy_version@">
+    <description>infer trajectories and embed with scanpy</description>
     <macros>
         <import>macros.xml</import>
         <xml name="pca_inputs">
-            <param name="n_comps" type="integer" min="0" value="50" label="Number of principal components to compute" help=""/>
-            <param name="dtype" type="text" value="float32" label="Numpy data type string to which to convert the result" help=""/>
+            <param argument="n_comps" type="integer" min="0" value="50" label="Number of principal components to compute" help=""/>
+            <param argument="dtype" type="text" value="float32" label="Numpy data type string to which to convert the result" help=""/>
             <conditional name="pca">
-                <param name="chunked" type="select" label="Type of PCA?">
+                <param argument="chunked" type="select" label="Type of PCA?">
                     <option value="True">Incremental PCA on segments (incremental PCA automatically zero centers and ignores settings of `random_seed` and `svd_solver`)</option>
                     <option value="False" selected="true">Full PCA</option>
                 </param>
                 <when value="True">
-                    <param name="chunk_size" type="integer" min="0" value="" label="chunk_size" help="Number of observations to include in each chunk"/>
+                    <param argument="chunk_size" type="integer" min="0" value="" label="chunk_size" help="Number of observations to include in each chunk"/>
                 </when>
                 <when value="False">
-                    <param name="zero_center" type="boolean" truevalue="True" falsevalue="False" checked="true"
+                    <param argument="zero_center" type="boolean" truevalue="True" falsevalue="False" checked="true"
                         label="Compute standard PCA from covariance matrix?"
                         help="If not, it omits zero-centering variables (uses *TruncatedSVD* from scikit-learn), which allows to handle sparse input efficiently."/>
                     <expand macro="svd_solver"/> 
-                    <param name="random_state" type="integer" value="0" label="Initial states for the optimization" help=""/>
+                    <param argument="random_state" type="integer" value="0" label="Initial states for the optimization" help=""/>
                 </when>
             </conditional>
+            <param argument="use_highly_variable" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Use highly variable genes only?" help="They should be use if they have been determined beforehand."/>
         </xml>
-        <token name="@CMD_pca_outputs@"><![CDATA[
-np.savetxt('$X_pca', adata.obsm['X_pca'], delimiter='\t')
-np.savetxt('$PCs', adata.varm['PCs'], delimiter='\t')
-np.savetxt('$variance', adata.uns['pca']['variance'], delimiter='\t')
-np.savetxt('$variance_ratio', adata.uns['pca']['variance_ratio'], delimiter='\t')
+        <xml name="param_random_state">
+            <param argument="random_state" type="integer" value="0" label="Random state" help="Change the initialization of the optimization."/>
+        </xml>
+        <xml name="param_use_weights">
+            <param argument="use_weights" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Use weights from knn graph?"/>
+        </xml>
+        <token name="@CMD_pca_help@"><![CDATA[
+The PCA is computed using the implementation of *scikit-learn*.
+
+The returned AnnData object contains:
+
+- PCA coordinates in the multi-dimensional observation annotation (obsm)
+- Principal components containing the loadings in the multi-dimensional variable annotation (varm)
+- The variance decomposition in the unstructured annotation (uns)
+    - Ratio of explained variance for PCA (variance)
+    - Explained variance, equivalent to the eigenvalues of the covariance matrix
+
+This data is accessible using the inspect tool for AnnData
 ]]></token>
         <token name="@CMD_pca_params@"><![CDATA[
     data=adata,
@@ -35,41 +49,14 @@
     copy=False,
     chunked=$method.pca.chunked,
 #if $method.pca.chunked == 'True'
-    chunk_size=$method.pca.chunk_size
+    chunk_size=$method.pca.chunk_size,
 #else
-    zero_center='$method.pca.zero_center',
+    zero_center=$method.pca.zero_center,
     svd_solver='$method.pca.svd_solver',
-    random_state=$method.pca.random_state
+    random_state=$method.pca.random_state,
 #end if
+    use_highly_variable=$method.use_highly_variable
 ]]></token>
-        <xml name="penalty">
-            <param argument="penalty" type="select" label="Norm used in the penalization" help="">
-                <option value="l1">l1</option>
-                <option value="l2">l2</option>
-                <option value="customized">customized</option>
-            </param>
-        </xml>
-        <xml name="custom_penalty">
-            <param argument="pen" type="text" value="" label="Norm used in the penalization" help=""/>
-        </xml>
-        <xml name="fit_intercept">
-            <param argument="fit_intercept" type="boolean" truevalue="True" falsevalue="False" checked="true"
-                label="Should a constant (a.k.a. bias or intercept) be added to the decision function?" help=""/>
-        </xml>
-        <xml name="random_state">
-            <param argument="random_state" type="integer" value="" optional="true"
-                label="The seed of the pseudo random number generator to use when shuffling the data" help=""/>
-        </xml>
-        <xml name="max_iter">
-            <param argument="max_iter" type="integer" min="0" value="100" label="Maximum number of iterations taken for the solvers to converge" help=""/>
-        </xml>
-        <xml name="multi_class">
-            <param argument="multi_class" type="select" label="Multi class" help="">
-                <option value="ovr">ovr: a binary problem is fit for each label</option>
-                <option value="multinomial">multinomial: the multinomial loss fit across the entire probability distribution, even when the data is binary</option>
-                <option value="auto">auto: selects ‘ovr’ if the data is binary and otherwise selects ‘multinomial’</option>
-            </param>
-        </xml>
     </macros>
     <expand macro="requirements"/>
     <expand macro="version_command"/>
@@ -90,20 +77,33 @@
     #end if
     random_state=$method.random_state,
     key_added='$method.key_added',
+    directed=$method.directed,
+    use_weights=$method.use_weights,
     copy=False)
-#elif $method.method == 'pp.pca'
+
+#else if $method.method == 'tl.leiden'
+sc.tl.leiden(
+    adata=adata,
+    resolution=$method.resolution,
+    random_state=$method.random_state,
+    key_added='$method.key_added',
+    use_weights=$method.use_weights,
+    n_iterations=$method.n_iterations,
+    copy=False)
+
+#else if $method.method == 'pp.pca'
 sc.pp.pca(@CMD_pca_params@)
-@CMD_pca_outputs@
-#elif $method.method == 'tl.pca'
+
+#else if $method.method == 'tl.pca'
 sc.tl.pca(@CMD_pca_params@)
-@CMD_pca_outputs@
-#elif $method.method == 'tl.diffmap'
+
+#else if $method.method == 'tl.diffmap'
 sc.tl.diffmap(
     adata=adata,
     n_comps=$method.n_comps,
     copy =False)
-np.savetxt('$X_diffmap', adata.obsm['X_diffmap'], delimiter='\t')
-#elif $method.method == 'tl.tsne'
+
+#else if $method.method == 'tl.tsne'
 sc.tl.tsne(
     adata=adata,
     #if $method.n_pcs
@@ -113,9 +113,10 @@
     early_exaggeration=$method.early_exaggeration,
     learning_rate=$method.learning_rate,
     random_state=$method.random_state,
+    use_fast_tsne=$method.use_fast_tsne,
     copy=False)
-np.savetxt('$X_tsne', adata.obsm['X_tsne'], delimiter='\t') 
-#elif $method.method == 'tl.umap'
+
+#else if $method.method == 'tl.umap'
 sc.tl.umap(
     adata=adata,
     min_dist=$method.min_dist,
@@ -130,88 +131,49 @@
     init_pos='$method.init_pos',
     random_state=$method.random_state,
     copy=False)
-np.savetxt('$X_umap', adata.obsm['X_umap'], delimiter='\t')
-#elif $method.method == 'pp.neighbors'
-sc.pp.neighbors(
+
+#else if $method.method == 'tl.draw_graph'
+
+    #if str($method.adjacency) != 'None'
+from scipy import io
+adjacency = io.mmread('$method.adjacency')
+    #end if
+
+sc.tl.draw_graph(
     adata=adata,
-    n_neighbors=$method.n_neighbors,
-    #if $method.n_pcs
-    n_pcs=$method.n_pcs,
-    #end if
-    knn=$method.knn,
+    layout='$method.layout',
+#if str($method.root) != ''
+    #set $root=([int(x.strip()) for x in str($method.root).split(',')])
+    root=$root,
+#end if
     random_state=$method.random_state,
-    method='$method.pp_neighbors_method',
-    metric='$method.metric',
-    copy=False)
-#elif $method.method == 'tl.rank_genes_groups'
-sc.tl.rank_genes_groups(
-    adata=adata,
-    groupby='$method.groupby',
-    use_raw=$method.use_raw,
-    #if str($method.groups) != ''
-    groups='$method.groups',
+    #if str($method.init_pos) != ''
+    init_pos='$method.init_pos',
     #end if
-    #if $method.ref.rest == 'rest'
-    reference='$method.ref.rest',
-    #else
-    reference='$method.ref.reference',
+    #if str($method.adjacency) != 'None'
+    adjacency=adjacency,
     #end if
-    n_genes=$method.n_genes,
-    method='$method.tl_rank_genes_groups_method.method',
-    #if $method.tl_rank_genes_groups_method.method == 'logreg'
-    solver='$method.tl_rank_genes_groups_method.solver.solver',
-        #if $method.tl_rank_genes_groups_method.solver.solver == 'newton-cg'
-    penalty='l2',
-    fit_intercept=$method.tl_rank_genes_groups_method.solver.fit_intercept,
-    max_iter=$method.tl_rank_genes_groups_method.solver.max_iter,
-    multi_class='$method.tl_rank_genes_groups_method.solver.multi_class',
-        #else if $method.tl_rank_genes_groups_method.solver.solver == 'lbfgs'
-    penalty='l2',
-    fit_intercept=$method.tl_rank_genes_groups_method.solver.fit_intercept,
-    max_iter=$method.tl_rank_genes_groups_method.solver.max_iter,
-    multi_class='$method.tl_rank_genes_groups_method.solver.multi_class',
-        #else if $method.tl_rank_genes_groups_method.solver.solver == 'liblinear'
-            #if $method.tl_rank_genes_groups_method.solver.penalty.penalty == 'l1'
-    penalty='l1',
-            #else if $method.tl_rank_genes_groups_method.solver.penalty.penalty == 'l2'
-    penalty='l2',
-    dual=$method.tl_rank_genes_groups_method.solver.penalty.dual,
-            #else
-    penalty='$method.tl_rank_genes_groups_method.solver.penalty.pen',
-            #end if
-    fit_intercept=$method.tl_rank_genes_groups_method.solver.intercept_scaling.fit_intercept,
-            #if $method.tl_rank_genes_groups_method.solver.intercept_scaling.fit_intercept == 'True'
-    intercept_scaling=$method.tl_rank_genes_groups_method.solver.intercept_scaling.intercept_scaling,
-            #end if
-            #if $method.tl_rank_genes_groups_method.solver.random_state
-    random_state=$method.tl_rank_genes_groups_method.solver.random_state,
-            #end if
-        #else if $method.tl_rank_genes_groups_method.solver.solver == 'sag'
-    penalty='l2',
-    fit_intercept=$method.tl_rank_genes_groups_method.solver.fit_intercept,
-            #if $method.tl_rank_genes_groups_method.solver.random_state
-    random_state=$method.tl_rank_genes_groups_method.solver.random_state,
-            #end if
-    max_iter=$method.tl_rank_genes_groups_method.solver.max_iter,
-    multi_class='$method.tl_rank_genes_groups_method.solver.multi_class',
-        #else if $method.tl_rank_genes_groups_method.solver.solver == 'saga'
-            #if $method.tl_rank_genes_groups_method.solver.penalty.penalty == 'l1'
-    penalty='l1',
-            #else if $method.tl_rank_genes_groups_method.solver.penalty.penalty == 'l2'
-    penalty='l2',
-            #else
-    penalty='$method.tl_rank_genes_groups_method.solver.penalty.pen',
-            #end if
-    fit_intercept=$method.tl_rank_genes_groups_method.solver.fit_intercept,
-    multi_class='$method.tl_rank_genes_groups_method.solver.multi_class',
-        #end if
-    tol=$method.tl_rank_genes_groups_method.tol,
-    C=$method.tl_rank_genes_groups_method.c,
+    #if str($method.key_ext) != ''
+    key_ext='$method.key_ext',
     #end if
-    only_positive=$method.only_positive)
-pd.options.display.precision = 15
-pd.DataFrame(adata.uns['rank_genes_groups']['names']).to_csv("$names", sep="\t", index = False)
-pd.DataFrame(adata.uns['rank_genes_groups']['scores']).to_csv("$scores", sep="\t", index = False)
+    copy=False)
+
+#else if $method.method == "tl.paga"
+sc.tl.paga(
+    adata=adata,
+    groups='$method.groups',
+    use_rna_velocity=$method.use_rna_velocity,
+    model='$method.model',
+    copy=False)
+
+#else if $method.method == "tl.dpt"
+sc.tl.dpt(
+    adata=adata,
+    n_dcs=$method.n_dcs,
+    n_branchings=$method.n_branchings,
+    min_group_size=$method.min_group_size,
+    allow_kendall_tau_shift=$method.allow_kendall_tau_shift,
+    copy=False)
 #end if
 
 @CMD_anndata_write_outputs@
@@ -221,16 +183,16 @@
         <expand macro="inputs_anndata"/>
         <conditional name="method">
             <param argument="method" type="select" label="Method used for plotting">
-                <!--<option value="tl.leiden">, using `tl.leiden`</option>!-->
                 <option value="tl.louvain">Cluster cells into subgroups, using `tl.louvain`</option>
+                <option value="tl.leiden">Cluster cells into subgroups, using `tl.leiden`</option>
                 <option value="pp.pca">Computes PCA (principal component analysis) coordinates, loadings and variance decomposition, using `pp.pca`</option>
                 <option value="tl.pca">Computes PCA (principal component analysis) coordinates, loadings and variance decomposition, using `tl.pca`</option>
                 <option value="tl.diffmap">Diffusion Maps, using `tl.diffmap`</option>
                 <option value="tl.tsne">t-distributed stochastic neighborhood embedding (tSNE), using `tl.tsne`</option>
                 <option value="tl.umap">Embed the neighborhood graph using UMAP, using `tl.umap`</option>
-                <!--<option value="tl.phate">, using `tl.phate`</option>!-->
-                <option value="pp.neighbors">Compute a neighborhood graph of observations, using `pp.neighbors`</option>
-                <option value="tl.rank_genes_groups">Rank genes for characterizing groups, using `tl.rank_genes_groups`</option>
+                <option value="tl.draw_graph">Force-directed graph drawing, using `tl.draw_graph`</option>
+                <option value="tl.dpt">Infer progression of cells through geodesic distance along the graph, using `tl.dpt`</option>
+                <option value="tl.paga">Generate cellular maps of differentiation manifolds with complex topologies, using `tl.paga`</option>
             </param>
             <when value="tl.louvain">
                 <conditional name="flavor">
@@ -245,8 +207,17 @@
                     </when>
                     <when value="igraph"/>
                 </conditional>
-                <param argument="random_state" type="integer" value="0" label="Random state" help="Change the initialization of the optimization."/>
+                <expand macro="param_random_state"/>
                 <param argument="key_added" type="text" value="louvain" optional="true" label="Key under which to add the cluster labels" help=""/>
+                <param argument="directed" type="boolean" truevalue="True" falsevalue="False" checked="true" label="Interpret the adjacency matrix as directed graph?"/>
+                <expand macro="param_use_weights"/>
+            </when>
+            <when value="tl.leiden">
+                <param argument="resolution" type="float" value="1" label="Coarseness of the clusterin" help="Higher values lead to more clusters"/>
+                <expand macro="param_random_state"/>
+                <param argument="key_added" type="text" value="leiden" label="Key under which to add the cluster labels" help=""/>
+                <expand macro="param_use_weights"/>
+                <param argument="n_iterations" type="integer" value="-1" label="How many iterations of the Leiden clustering algorithm to perform." help="Positive values above 2 define the total number of iterations to perform, -1 has the algorithm run until it reaches its optimal clustering."/>
             </when>
             <when value="pp.pca">
                 <expand macro="pca_inputs"/>
@@ -263,6 +234,7 @@
                 <param name="early_exaggeration" type="float" value="12.0" label="Early exaggeration" help="Controls how tight natural clusters in the original space are in the embedded space and how much space will be between them. For larger values, the space between natural clusters will be larger in the embedded space. Again, the choice of this parameter is not very critical. If the cost function increases during initial optimization, the early exaggeration factor or the learning rate might be too high."/>
                 <param name="learning_rate" type="float" value="1000" label="Learning rate" help="The learning rate can be a critical parameter. It should be between 100 and 1000. If the cost function increases during initial optimization, the early exaggeration factor or the learning rate might be too high. If the cost function gets stuck in a bad local minimum increasing the learning rate helps sometimes."/>
                 <param name="random_state" type="integer" value="0" label="Random state" help="Change this to use different intial states for the optimization"/>
+                <param argument="use_fast_tsne" type="boolean" truevalue="True" falsevalue="False" checked="true" label="Use the MulticoreTSNE package if possible?"/>
             </when>
             <when value="tl.umap">
                 <param argument="min_dist" type="float" value="0.5" label="Effective minimum distance between embedded points" help="Smaller values will result in a more clustered/clumped embedding where nearby points on the manifold are drawn closer together, while larger values will result on a more even dispersal of points. The value should be set relative to the `spread` value, which determines the scale at which embedded points will be spread out. The default of in the `umap-learn` package is 0.1."/>
@@ -277,158 +249,39 @@
                     <option value="spectral" selected="true">Spectral embedding of the graph</option>
                     <option value="random">Initial embedding positions at random</option>
                 </param>
-                <param argument="random_state" type="integer" value="0" label="Random state" help="Change this to use different intial states for the optimization"/>
+                <expand macro="param_random_state"/>
+            </when>
+            <when value="tl.draw_graph">
+                <expand macro="param_layout"/>
+                <expand macro="param_root"/>
+                <expand macro="param_random_state"/>
+                <param argument="init_pos" type="text" optional="true" value="" label="Precomputed coordinates for initialization" help="It should be a valid 2d observation (e.g. paga)"/>
+                <param argument="adjacency" type="data" format="mtx" optional="true" label="Sparse adjacency matrix of the graph" help="If not set, it uses the unstructured annotation (uns) / neighbors / connectivities"/>
+                <param argument="key_ext" type="text" optional="true" value="" label="External key" help="If not set, it appends `layout`"/>
             </when>
-            <when value="pp.neighbors">
-                <param argument="n_neighbors" type="integer" min="0" value="15" label="The size of local neighborhood (in terms of number of neighboring data points) used for manifold approximation" help="Larger values result in more global views of the manifold, while smaller values result in more local data being preserved. In general values should be in the range 2 to 100. If `knn` is `True`, number of nearest neighbors to be searched. If `knn` is `False`, a Gaussian kernel width is set to the distance of the `n_neighbors` neighbor."/>
-                <param argument="n_pcs" type="integer" min="0" value="" optional="true" label="Number of PCs to use" help=""/>
-                <param argument="knn" type="boolean" truevalue="True" falsevalue="False" checked="true" label="Use a hard threshold to restrict the number of neighbors to n_neighbors?" help="If true, it considers a knn graph. Otherwise, it uses a Gaussian Kernel to assign low weights to neighbors more distant than the `n_neighbors` nearest neighbor."/>
-                <param argument="random_state" type="integer" value="0" label="Numpy random seed" help=""/>
-                <param name="pp_neighbors_method" argument="method" type="select" label="Method for computing connectivities" help="">
-                    <option value="umap">umap (McInnes et al, 2018)</option>
-                    <option value="gauss">gauss: Gauss kernel following (Coifman et al 2005) with adaptive width (Haghverdi et al 2016)</option>
-                </param>
-                <param argument="metric" type="select" label="Distance metric" help="">
-                    <expand macro="distance_metric_options"/>
+            <when value="tl.dpt">
+                <param argument="n_dcs" type="integer" min="0" value="10" label="Number of diffusion components to use" help=""/>
+                <param argument="n_branchings" type="integer" min="0" value="0" label="Number of branchings to detect" help=""/>
+                <param argument="min_group_size" type="float" min="0" value="0.01" label="Min group size" help="During recursive splitting of branches ('dpt groups') for `n_branchings` &gt; 1, do not consider groups that contain less than `min_group_size` data points. If a float, `min_group_size` refers to a fraction of the total number of data points."/>
+                <param argument="allow_kendall_tau_shift" type="boolean" truevalue="True" falsevalue="False" checked="true" label="Allow Kendal tau shift?" help="If a very small branch is detected upon splitting, shift away from maximum correlation in Kendall tau criterion of Haghverdi et al (2016) to stabilize the splitting."/>
+            </when>
+            <when value="tl.paga">
+                <param argument="groups" type="text" value="louvain" label="Key for categorical in the input" help="You can pass your predefined groups by choosing any categorical annotation of observations (`adata.obs`)."/>
+                <param argument="use_rna_velocity" type="boolean" truevalue="False" falsevalue="False" checked="false" label="Use RNA velocity to orient edges in the abstracted graph and estimate transitions?" help="Requires that `adata.uns` contains a directed single-cell graph with key `['velocyto_transitions']`. This feature might be subject to change in the future."/>
+                <param argument="model" type="select" label="PAGA connectivity model" help="">
+                    <option value="v1.2">v1.2</option>
+                    <option value="v1.0">v1.0</option>
                 </param>
             </when>
-            <when value="tl.rank_genes_groups">
-                <param argument="groupby" type="text" value="" label="The key of the observations grouping to consider" help=""/>
-                <expand macro="param_use_raw"/>
-                <param argument="groups" type="text" value="" label="Subset of groups to which comparison shall be restricted" help="e.g. ['g1', 'g2', 'g3']. If not passed, a ranking will be generated for all groups."/>
-                <conditional name="ref">
-                    <param name="rest" type="select" label="Comparison">
-                        <option value="rest">Compare each group to the union of the rest of the group</option>
-                        <option value="group_id">Compare with respect to a specific group</option>
-                    </param>
-                    <when value="rest"/>
-                    <when value="group_id">
-                        <param argument="reference" type="text" value="" label="Group identifier with respect to which compare"/>
-                    </when>
-                </conditional>
-                <param argument="n_genes" type="integer" min="0" value="100" label="The number of genes that appear in the returned tables" help=""/>
-                <conditional name="tl_rank_genes_groups_method">
-                    <param argument="method" type="select" label="Method">
-                        <option value="t-test">t-test</option>
-                        <option value="wilcoxon">Wilcoxon-Rank-Sum</option>
-                        <option value="t-test_overestim_var" selected="true">t-test with overestimate of variance of each group</option>
-                        <option value="logreg">Logistic regression</option>
-                    </param>
-                    <when value="t-test"/>
-                    <when value="wilcoxon"/>
-                    <when value="t-test_overestim_var"/>
-                    <when value="logreg">
-                        <conditional name="solver">
-                            <param argument="solver" type="select" label="Algorithm to use in the optimization problem" help="For small datasets, ‘liblinear’ is a good choice, whereas ‘sag’ and ‘saga’ are faster for large ones. For multiclass problems, only ‘newton-cg’, ‘sag’, ‘saga’ and ‘lbfgs’ handle multinomial loss; ‘liblinear’ is limited to one-versus-rest schemes. ‘newton-cg’, ‘lbfgs’ and ‘sag’ only handle L2 penalty, whereas ‘liblinear’ and ‘saga’ handle L1 penalty.">
-                                <option value="newton-cg">newton-cg</option>
-                                <option value="lbfgs">lbfgs</option>
-                                <option value="liblinear">liblinear</option>
-                                <option value="sag">sag</option>
-                                <option value="saga">saga</option>
-                            </param>
-                            <when value="newton-cg">
-                                <expand macro="fit_intercept"/>
-                                <expand macro="max_iter"/>
-                                <expand macro="multi_class"/>
-                            </when>
-                            <when value="lbfgs">
-                                <expand macro="fit_intercept"/>
-                                <expand macro="max_iter"/>
-                                <expand macro="multi_class"/>
-                            </when>
-                            <when value="liblinear">
-                                <conditional name="penalty">
-                                    <expand macro="penalty"/>
-                                    <when value="l1"/>
-                                    <when value="l2">
-                                        <param argument="dual" type="boolean" truevalue="True" falsevalue="False" checked="false"
-                                            label="Dual (not primal) formulation?" help="Prefer primal when n_samples > n_features"/>
-                                    </when>
-                                    <when value="customized">
-                                        <expand macro="custom_penalty"/>
-                                    </when>
-                                </conditional>
-                                <conditional name="intercept_scaling">
-                                    <param argument="fit_intercept" type="select"
-                                        label="Should a constant (a.k.a. bias or intercept) be added to the decision function?" help="">
-                                        <option value="True">Yes</option>
-                                        <option value="False">No</option>
-                                    </param>
-                                    <when value="True">
-                                        <param argument="intercept_scaling" type="float" value="1.0"
-                                            label="Intercept scaling"
-                                            help="x becomes [x, self.intercept_scaling], i.e. a 'synthetic' feature with constant value equal to intercept_scaling is appended to the instance vector. The intercept becomes intercept_scaling * synthetic_feature_weight."/>
-                                    </when>
-                                    <when value="False"/>
-                                </conditional>
-                                <expand macro="random_state"/>
-                            </when>
-                            <when value="sag">
-                                <expand macro="fit_intercept"/>
-                                <expand macro="random_state"/>
-                                <expand macro="max_iter"/>
-                                <expand macro="multi_class"/>
-                            </when>
-                            <when value="saga">
-                                <conditional name="penalty">
-                                    <expand macro="penalty"/>
-                                    <when value="l1"/>
-                                    <when value="l2"/>
-                                    <when value="customized">
-                                        <expand macro="custom_penalty"/>
-                                    </when>
-                                </conditional>
-                                <expand macro="fit_intercept"/>
-                                <expand macro="multi_class"/>
-                            </when>
-                        </conditional>
-                        <param argument="tol" type="float" value="1e-4" label="Tolerance for stopping criteria" help=""/>
-                        <param argument="c" type="float" value="1.0" label="Inverse of regularization strength"
-                            help="It must be a positive float. Like in support vector machines, smaller values specify stronger regularization."/>
-                    </when>
-                </conditional>
-                <param argument="only_positive" type="boolean" truevalue="True" falsevalue="False" checked="true"
-                    label="Only consider positive differences?" help=""/>
-            </when>
-        </conditional>
-        <expand macro="anndata_output_format"/>
+        </conditional>            
     </inputs>
     <outputs>
         <expand macro="anndata_outputs"/>
-        <data name="X_pca" format="tabular" label="${tool.name} on ${on_string}: PCA representation of data">
-            <filter>method['method'] == 'pp.pca' or method['method'] == 'tl.pca'</filter>
-        </data>
-        <data name="PCs" format="tabular" label="${tool.name} on ${on_string}: Principal components containing the loadings">
-            <filter>method['method'] == 'pp.pca' or method['method'] == 'tl.pca'</filter>
-        </data>
-        <data name="variance_ratio" format="tabular" label="${tool.name} on ${on_string}: Ratio of explained variance">
-            <filter>method['method'] == 'pp.pca' or method['method'] == 'tl.pca'</filter>
-        </data>
-        <data name="variance" format="tabular" label="${tool.name} on ${on_string}: Explained variance, equivalent to the eigenvalues of the covariance matrix">
-            <filter>method['method'] == 'pp.pca' or method['method'] == 'tl.pca'</filter>
-        </data>
-        <data name="X_diffmap" format="tabular" label="${tool.name} on ${on_string}: Diffusion map representation">
-            <filter>method['method'] == 'tl.diffmap'</filter>
-        </data>
-        <data name="X_tsne" format="tabular" label="${tool.name} on ${on_string}: tSNE coordinates">
-            <filter>method['method'] == 'tl.tsne'</filter>
-        </data>
-        <data name="X_umap" format="tabular" label="${tool.name} on ${on_string}: UMAP coordinates">
-            <filter>method['method'] == 'tl.umap'</filter>
-        </data>
-        <data name="names" format="tabular" label="${tool.name} on ${on_string}: Gene names">
-            <filter>method['method'] == 'tl.rank_genes_groups'</filter>
-        </data>
-        <data name="scores" format="tabular" label="${tool.name} on ${on_string}: Scores">
-            <filter>method['method'] == 'tl.rank_genes_groups'</filter>
-        </data>
     </outputs>
     <tests>
-        <test expect_num_outputs="1">
-            <conditional name="input">
-                <param name="format" value="h5ad" />
-                <param name="adata" value="pp.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad" />
-            </conditional>
+        <test>
+            <!-- test 1 -->
+            <param name="adata" value="pp.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad" />
             <conditional name="method">
                 <param name="method" value="tl.louvain"/>
                 <conditional name="flavor">
@@ -437,8 +290,9 @@
                 </conditional>
                 <param name="random_state" value="10"/>
                 <param name="key_added" value="louvain"/>
+                <param name="directed" value="true"/>
+                <param name="use_weights" value="false"/>
             </conditional>
-            <param name="anndata_output_format" value="h5ad" />
             <assert_stdout>
                 <has_text_matching expression="sc.tl.louvain"/>
                 <has_text_matching expression="adata=adata"/>
@@ -446,70 +300,63 @@
                 <has_text_matching expression="resolution=1.0"/>
                 <has_text_matching expression="random_state=10"/>
                 <has_text_matching expression="key_added='louvain'"/>
+                <has_text_matching expression="directed=True"/>
+                <has_text_matching expression="use_weights=False"/>
             </assert_stdout>
-            <output name="anndata_out_h5ad" file="tl.louvain.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad" ftype="h5" compare="sim_size"/>
+            <output name="anndata_out" file="tl.louvain.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad" ftype="h5ad" compare="sim_size"/>
         </test>
-        <test expect_num_outputs="5">
-            <conditional name="input">
-                <param name="format" value="h5ad" />
-                <param name="adata" value="krumsiek11.h5ad" />
+        <test>
+            <!-- test 2 -->
+            <param name="adata" value="pp.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad" />
+            <conditional name="method">
+                <param name="method" value="tl.leiden"/>
+                <param name="random_state" value="1"/>
+                <param name="random_state" value="10"/>
+                <param name="key_added" value="leiden"/>
+                <param name="use_weights" value="false"/>
+                <param name="n_iterations" value="-1"/>
             </conditional>
+            <assert_stdout>
+                <has_text_matching expression="sc.tl.leiden"/>
+                <has_text_matching expression="resolution=1"/>
+                <has_text_matching expression="random_state=10"/>
+                <has_text_matching expression="key_added='leiden'"/>
+                <has_text_matching expression="use_weights=False"/>
+                <has_text_matching expression="n_iterations=-1"/>
+            </assert_stdout>
+            <output name="anndata_out" file="tl.leiden.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad" ftype="h5ad" compare="sim_size"/>
+        </test>
+        <test>
+            <!-- test 2 -->
+            <param name="adata" value="krumsiek11.h5ad" />
             <conditional name="method">
                 <param name="method" value="pp.pca"/>
                 <param name="n_comps" value="50"/>
                 <param name="dtype" value="float32"/>
                 <conditional name="pca">
                     <param name="chunked" value="False"/>
-                    <param name="zero_center" value="True"/>
+                    <param name="zero_center" value="true"/>
                     <param name="svd_solver" value="auto"/>
                     <param name="random_state" value="0"/>
                 </conditional>
+                <param name="use_highly_variable" value="false"/>
             </conditional>
-            <param name="anndata_output_format" value="h5ad" />
             <assert_stdout>
                 <has_text_matching expression="sc.pp.pca"/>
                 <has_text_matching expression="n_comps=50"/>
                 <has_text_matching expression="dtype='float32'"/>
                 <has_text_matching expression="copy=False"/>
                 <has_text_matching expression="chunked=False"/>
-                <has_text_matching expression="zero_center='True'"/>
+                <has_text_matching expression="zero_center=True"/>
                 <has_text_matching expression="svd_solver='auto'"/>
                 <has_text_matching expression="random_state=0"/>
+                <has_text_matching expression="use_highly_variable=False"/>
             </assert_stdout>
-            <output name="anndata_out_h5ad" file="pp.pca.krumsiek11.h5ad" ftype="h5" compare="sim_size"/>
-            <output name="X_pca">
-                <assert_contents>
-                    <has_text_matching expression="-2.579\d{15}e-01" />
-                    <has_text_matching expression="3.452\d{15}e-01" />
-                    <has_text_matching expression="-6.088\d{15}e-03" />
-                    <has_n_columns n="10" />
-                </assert_contents>
-            </output>
-            <output name="PCs">
-                <assert_contents>
-                    <has_text_matching expression="-2.285\d{15}e-01" />
-                    <has_text_matching expression="-3.042\d{15}e-01" />
-                    <has_text_matching expression="-2.863\d{15}e-02" />
-                    <has_text_matching expression="1.294\d{15}e-01" />
-                    <has_n_columns n="10" />
-                </assert_contents>
-            </output>
-            <output name="variance_ratio">
-                <assert_contents>
-                    <has_text_matching expression="2.148\d{15}e-01" />
-                    <has_text_matching expression="7.596\d{15}e-02" />
-                    <has_text_matching expression="5.033\d{15}e-03" />
-                    <has_text_matching expression="2.801\d{15}e-05" />
-                    <has_n_columns n="1" />
-                </assert_contents>
-            </output>
-            <output name="variance" file="pp.pca.variance.krumsiek11.tabular" />
+            <output name="anndata_out" file="pp.pca.krumsiek11.h5ad" ftype="h5ad" compare="sim_size"/>
         </test>
-        <test expect_num_outputs="5">
-            <conditional name="input">
-                <param name="format" value="h5ad" />
-                <param name="adata" value="krumsiek11.h5ad" />
-            </conditional>
+        <!--<test>
+            < test 3 >
+            <param name="adata" value="krumsiek11.h5ad" />
             <conditional name="method">
                 <param name="method" value="pp.pca"/>
                 <param name="n_comps" value="20"/>
@@ -518,8 +365,8 @@
                     <param name="chunked" value="True"/>
                     <param name="chunk_size" value="50"/>
                 </conditional>
+                <param name="use_highly_variable" value="false"/>
             </conditional>
-            <param name="anndata_output_format" value="h5ad" />
             <assert_stdout>
                 <has_text_matching expression="sc.pp.pca"/>
                 <has_text_matching expression="data=adata"/>
@@ -528,45 +375,14 @@
                 <has_text_matching expression="copy=False"/>
                 <has_text_matching expression="chunked=True"/>
                 <has_text_matching expression="chunk_size=50"/>
+                <has_text_matching expression="use_highly_variable=False"/>
             </assert_stdout>
-            <output name="anndata_out_h5ad" file="pp.pca.krumsiek11_chunk.h5ad" ftype="h5" compare="sim_size"/>
-            <output name="X_pca">
-                <assert_contents>
-                    <has_text_matching expression="1.290\d{15}e-03" />
-                    <has_text_matching expression="9.231\d{15}e-04" />
-                    <has_text_matching expression="-3.498\d{15}e-02" />
-                    <has_text_matching expression="-4.921\d{15}e-03" />
-                    <has_n_columns n="10" />
-                </assert_contents>
-            </output>
-            <output name="PCs">
-                <assert_contents>
-                    <has_text_matching expression="2.35298924\d\d\d\d\d\d\d\d\d\de-0\d" />
-                    <has_text_matching expression="2.4286999\d\d\d\d\d\d\d\d\d\d\de-0\d" />
-                    <has_n_columns n="10" />
-                </assert_contents>
-            </output>
-            <output name="variance_ratio">
-                <assert_contents>
-                    <has_text text="6.4362" />
-                    <has_text text="2.7348" />
-                    <has_n_columns n="1" />
-                </assert_contents>
-            </output>
-            <output name="variance">
-                <assert_contents>
-                    <has_text_matching expression="7.540\d{15}e-01" />
-                    <has_text_matching expression="1.173\d{15}e-03" />
-                    <has_text_matching expression="3.204\d{15}e-05" />
-                    <has_n_columns n="1" />
-                </assert_contents>
-            </output>
+            <output name="anndata_out" file="pp.pca.krumsiek11_chunk.h5ad" ftype="h5ad" compare="sim_size"/>
         </test>
-        <test expect_num_outputs="5">
-            <conditional name="input">
-                <param name="format" value="h5ad" />
-                <param name="adata" value="krumsiek11.h5ad" />
-            </conditional>
+        -->
+        <test>
+            <!-- test 3 -->
+            <param name="adata" value="krumsiek11.h5ad" />
             <conditional name="method">
                 <param name="method" value="tl.pca"/>
                 <param name="n_comps" value="50"/>
@@ -577,75 +393,36 @@
                     <param name="svd_solver" value="auto"/>
                     <param name="random_state" value="0"/>
                 </conditional>
+                <param name="use_highly_variable" value="false"/>
             </conditional>
-            <param name="anndata_output_format" value="h5ad" />
             <assert_stdout>
                 <has_text_matching expression="sc.tl.pca"/>
                 <has_text_matching expression="n_comps=50"/>
                 <has_text_matching expression="dtype='float32'"/>
                 <has_text_matching expression="copy=False"/>
                 <has_text_matching expression="chunked=False"/>
-                <has_text_matching expression="zero_center='True'"/>
+                <has_text_matching expression="zero_center=True"/>
                 <has_text_matching expression="svd_solver='auto'"/>
+                <has_text_matching expression="use_highly_variable=False"/>
             </assert_stdout>
-            <output name="anndata_out_h5ad" file="tl.pca.krumsiek11.h5ad" ftype="h5" compare="sim_size"/>
-            <output name="X_pca">
-                <assert_contents>
-                    <has_text_matching expression="-6.366\d{15}e-01" />
-                    <has_text_matching expression="5.702\d{15}e-03" />
-                    <has_text_matching expression="1.862\d{15}e-02" />
-                    <has_text_matching expression="-6.861\d{15}e-02" />
-                    <has_n_columns n="10" />
-                </assert_contents>
-            </output>
-            <output name="PCs">
-                <assert_contents>
-                    <has_text_matching expression="1.341\d{15}e-01" />
-                    <has_text_matching expression="-3.478\d{15}e-03" />
-                    <has_text_matching expression="-4.890\d{15}e-02" />
-                    <has_text_matching expression="-2.628\d{15}e-02" />
-                    <has_n_columns n="10" />
-                </assert_contents>
-            </output>
-            <output name="variance_ratio">
-                <assert_contents>
-                    <has_text_matching expression="6.436\d{15}e-01" />
-                    <has_text_matching expression="1.316\d{15}e-04" />
-                    <has_text_matching expression="2.801\d{15}e-05" />
-                    <has_n_columns n="1" />
-                </assert_contents>
-            </output>
-            <output name="variance">
-                <assert_contents>
-                    <has_text_matching expression="4.575\d{15}e-02" />
-                    <has_text_matching expression="2.166\d{15}e-02" />
-                    <has_text_matching expression="5.896\d{15}e-03" />
-                    <has_n_columns n="1" />
-                </assert_contents>
-            </output>
+            <output name="anndata_out" file="tl.pca.krumsiek11.h5ad" ftype="h5ad" compare="sim_size"/>
         </test>
-        <test expect_num_outputs="2">
-            <conditional name="input">
-                <param name="format" value="h5ad" />
-                <param name="adata" value="pp.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad" />
-            </conditional>
+        <test>
+            <!-- test 4 -->
+            <param name="adata" value="pp.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad" />
             <conditional name="method">
                 <param name="method" value="tl.diffmap"/>
                 <param name="n_comps" value="15"/>
             </conditional>
-            <param name="anndata_output_format" value="h5ad" />
             <assert_stdout>
                 <has_text_matching expression="sc.tl.diffmap"/>
                 <has_text_matching expression="n_comps=15"/>
             </assert_stdout>
-            <output name="anndata_out_h5ad" file="tl.diffmap.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad" ftype="h5" compare="sim_size"/>
-            <output name="X_diffmap" file="tl.diffmap.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.X_diffmap.tabular"/>
+            <output name="anndata_out" file="tl.diffmap.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad" ftype="h5ad" compare="sim_size"/>
         </test>
-        <test expect_num_outputs="2">
-            <conditional name="input">
-                <param name="format" value="h5ad" />
-                <param name="adata" value="krumsiek11.h5ad" />
-            </conditional>
+        <test>
+            <!-- test 5 -->
+            <param name="adata" value="krumsiek11.h5ad" />
             <conditional name="method">
                 <param name="method" value="tl.tsne"/>
                 <param name="n_pcs" value="10"/>
@@ -653,8 +430,8 @@
                 <param name="early_exaggeration" value="12.0"/>
                 <param name="learning_rate" value="1000"/>
                 <param name="random_state" value="0"/>
+                <param name="use_fast_tsne" value="true"/>
             </conditional>
-            <param name="anndata_output_format" value="h5ad" />
             <assert_stdout>
                 <has_text_matching expression="sc.tl.tsne"/>
                 <has_text_matching expression="n_pcs=10"/>
@@ -662,15 +439,13 @@
                 <has_text_matching expression="early_exaggeration=12.0"/>
                 <has_text_matching expression="learning_rate=1000.0"/>
                 <has_text_matching expression="random_state=0"/>
+                <has_text_matching expression="use_fast_tsne=True"/>
             </assert_stdout>
-            <output name="anndata_out_h5ad" file="tl.tsne.krumsiek11.h5ad" ftype="h5" compare="sim_size"/>
-            <output name="X_tsne" file="tl.tsne.krumsiek11_X_tsne.tabular"/>
+            <output name="anndata_out" file="tl.tsne.krumsiek11.h5ad" ftype="h5ad" compare="sim_size"/>
         </test>
-        <test expect_num_outputs="2" >
-            <conditional name="input">
-                <param name="format" value="h5ad" />
-                <param name="adata" value="pp.neighbors_umap_euclidean.recipe_weinreb17.paul15_subsample.h5ad" />
-            </conditional>
+        <test>
+            <!-- test 6 -->
+            <param name="adata" value="pp.neighbors_umap_euclidean.recipe_weinreb17.paul15_subsample.h5ad" />
             <conditional name="method">
                 <param name="method" value="tl.umap"/>
                 <param name="min_dist" value="0.5"/>
@@ -683,7 +458,6 @@
                 <param name="init_pos" value="spectral"/>
                 <param name="random_state" value="0"/>
             </conditional>
-            <param name="anndata_output_format" value="h5ad" />
             <assert_stdout>
                 <has_text_matching expression="sc.tl.umap"/>
                 <has_text_matching expression="min_dist=0.5"/>
@@ -696,263 +470,67 @@
                 <has_text_matching expression="init_pos='spectral'"/>
                 <has_text_matching expression="random_state=0"/>
             </assert_stdout>
-            <output name="anndata_out_h5ad" file="tl.umap.neighbors_umap_euclidean.recipe_weinreb17.paul15_subsample.h5ad" ftype="h5" compare="sim_size">
-                <assert_contents>
-                    <has_h5_keys keys="X, obs, obsm, uns, var" />
-                </assert_contents>
-            </output>
-            <output name="X_umap">
-                <assert_contents>
-                    <has_text text="2.31791388" />
-                    <has_text text="-4.8602690" />
-                    <has_text text="-1.8031970" />
-                    <has_text text="2.31166780" />
-                    <has_n_columns n="2" />
-                </assert_contents>
-            </output>
-        </test>
-        <test expect_num_outputs="1">
-            <conditional name="input">
-                <param name="format" value="h5ad" />
-                <param name="adata" value="pp.recipe_weinreb17.paul15_subsample.h5ad" />
-            </conditional>
-            <conditional name="method">
-                <param name="method" value="pp.neighbors"/>
-                <param name="n_neighbors" value="15"/>
-                <param name="knn" value="True"/>
-                <param name="random_state" value="0"/>
-                <param name="pp_neighbors_method" value="umap"/>
-                <param name="metric" value="euclidean"/>
-            </conditional>
-            <param name="anndata_output_format" value="h5ad" />
-            <assert_stdout>
-                <has_text_matching expression="sc.pp.neighbors"/>
-                <has_text_matching expression="n_neighbors=15"/>
-                <has_text_matching expression="knn=True"/>
-                <has_text_matching expression="random_state=0"/>
-                <has_text_matching expression="method='umap'"/>
-                <has_text_matching expression="metric='euclidean'"/>
-            </assert_stdout>
-            <output name="anndata_out_h5ad" file="pp.neighbors_umap_euclidean.recipe_weinreb17.paul15_subsample.h5ad" ftype="h5" compare="sim_size">
+            <output name="anndata_out" file="tl.umap.neighbors_umap_euclidean.recipe_weinreb17.paul15_subsample.h5ad" ftype="h5ad" compare="sim_size">
                 <assert_contents>
                     <has_h5_keys keys="X, obs, obsm, uns, var" />
                 </assert_contents>
             </output>
         </test>
-        <test expect_num_outputs="1">
-            <conditional name="input">
-                <param name="format" value="h5ad" />
-                <param name="adata" value="pp.recipe_weinreb17.paul15_subsample.h5ad" />
-            </conditional>
+        <test>
+            <!-- test 7 -->
+            <param name="adata" value="pp.neighbors_umap_euclidean.recipe_weinreb17.paul15_subsample.h5ad"/>
             <conditional name="method">
-                <param name="method" value="pp.neighbors"/>
-                <param name="n_neighbors" value="15"/>
-                <param name="knn" value="True"/>
-                <param name="pp_neighbors_method" value="gauss"/>
-                <param name="metric" value="braycurtis"/>
+                <param name="method" value="tl.draw_graph"/>
+                <param name="layout" value="fa"/>
+                <param name="random_state" value="0"/>
             </conditional>
-            <param name="anndata_output_format" value="h5ad" />
-            <assert_stdout>
-                <has_text_matching expression="sc.pp.neighbors"/>
-                <has_text_matching expression="n_neighbors=15"/>
-                <has_text_matching expression="knn=True"/>
-                <has_text_matching expression="random_state=0"/>
-                <has_text_matching expression="method='gauss'"/>
-                <has_text_matching expression="metric='braycurtis'"/>
-            </assert_stdout>
-            <output name="anndata_out_h5ad" file="pp.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad" ftype="h5" compare="sim_size"/>
-        </test>
-        <test expect_num_outputs="3">
-            <conditional name="input">
-                <param name="format" value="h5ad" />
-                <param name="adata" value="krumsiek11.h5ad" />
-            </conditional>
-            <conditional name="method">
-                <param name="method" value="tl.rank_genes_groups"/>
-                <param name="groupby" value="cell_type"/>
-                <param name="use_raw" value="True"/>
-                <conditional name="ref">
-                    <param name="rest" value="rest"/>
-                </conditional>
-                <param name="n_genes" value="100"/>
-                <conditional name="tl_rank_genes_groups_method">
-                    <param name="method" value="t-test_overestim_var"/>
-                </conditional>
-                <param name="only_positive" value="True"/>
-            </conditional>
-            <param name="anndata_output_format" value="h5ad" />
             <assert_stdout>
-                <has_text_matching expression="sc.tl.rank_genes_groups"/>
-                <has_text_matching expression="groupby='cell_type'"/>
-                <has_text_matching expression="use_raw=True"/>
-                <has_text_matching expression="reference='rest'"/>
-                <has_text_matching expression="n_genes=100"/>
-                <has_text_matching expression="method='t-test_overestim_var'"/>
-                <has_text_matching expression="only_positive=True"/>
+                <has_text_matching expression="sc.tl.draw_graph"/>
+                <has_text_matching expression="layout='fa'"/>
+                <has_text_matching expression="random_state=0"/>
             </assert_stdout>
-            <output name="anndata_out_h5ad" file="tl.rank_genes_groups.krumsiek11.h5ad" ftype="h5" compare="sim_size"/>
-            <output name="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="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="anndata_out" file="tl.draw_graph.pp.neighbors_umap_euclidean.recipe_weinreb17.paul15_subsample.h5ad" ftype="h5ad" compare="sim_size"/>
         </test>
-        <test expect_num_outputs="3">
-            <conditional name="input">
-                <param name="format" value="h5ad" />
-                <param name="adata" value="pbmc68k_reduced.h5ad" />
-            </conditional>
+        <test>
+            <!-- test 8 -->
+            <param name="adata" value="pp.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad"/>
             <conditional name="method">
-                <param name="method" value="tl.rank_genes_groups"/>
-                <param name="groupby" value="louvain"/>
-                <param name="use_raw" value="True"/>
-                <conditional name="ref">
-                    <param name="rest" value="rest"/>
-                </conditional>
-                <param name="n_genes" value="100"/>
-                <conditional name="tl_rank_genes_groups_method">
-                    <param name="method" value="logreg"/>
-                    <conditional name="solver">
-                        <param name="solver" value="newton-cg"/>
-                        <param name="fit_intercept" value="True"/>
-                        <param name="max_iter" value="100"/>
-                        <param name="multi_class" value="auto"/>
-                    </conditional>
-                    <param name="tol" value="1e-4"/>
-                    <param name="c" value="1.0"/>
-                </conditional>
-                <param name="only_positive" value="True"/>
+                <param name="method" value="tl.paga"/>
+                <param name="groups" value="paul15_clusters"/>
+                <param name="use_rna_velocity" value="False"/>
+                <param name="model" value="v1.2"/>
             </conditional>
-            <param name="anndata_output_format" value="h5ad" />
             <assert_stdout>
-                <has_text_matching expression="sc.tl.rank_genes_groups"/>
-                <has_text_matching expression="groupby='louvain'"/>
-                <has_text_matching expression="use_raw=True"/>
-                <has_text_matching expression="reference='rest'"/>
-                <has_text_matching expression="n_genes=100"/>
-                <has_text_matching expression="method='logreg'"/>
-                <has_text_matching expression="solver='newton-cg'"/>
-                <has_text_matching expression="penalty='l2'"/>
-                <has_text_matching expression="fit_intercept=True"/>
-                <has_text_matching expression="max_iter=100"/>
-                <has_text_matching expression="multi_class='auto'"/>
-                <has_text_matching expression="tol=0.0001"/>
-                <has_text_matching expression="C=1.0"/>
-                <has_text_matching expression="only_positive=True"/>
+                <has_text_matching expression="sc.tl.paga"/>
+                <has_text_matching expression="groups='paul15_clusters'"/>
+                <has_text_matching expression="use_rna_velocity=False"/>
+                <has_text_matching expression="model='v1.2'"/>
             </assert_stdout>
-            <output name="anndata_out_h5ad" ftype="h5">
-                <assert_contents>
-                    <has_h5_keys keys="X, obs, obsm, raw.X, raw.var, uns, var" />
-                </assert_contents>
-            </output>
-            <output name="names">
-                <assert_contents>
-                    <has_n_columns n="7" />
-                    <has_text_matching expression="IL32\tFCGR3A\tFCER1A\tLTB\tCPVL\tIGJ\tPRSS57"/>
-                    <has_text_matching expression="KIAA0101\tFCER1G\tHLA-DMA\tHLA-DQA1\tNAAA\tMANF\tCCDC104"/>
-                    <has_text_matching expression="CCNB2\t"/>
-                </assert_contents>
-            </output>
-            <output name="scores">
-                <assert_contents>
-                    <has_n_columns n="7" />
-                    <has_text_matching expression="0.088\d+"/>
-                    <has_text_matching expression="0.114\d+"/>
-                    <has_text_matching expression="0.034\d+"/>
-                    <has_text_matching expression="0.035\d+"/>
-                    <has_text_matching expression="0.041\d+"/>
-                </assert_contents>
-            </output>
+            <output name="anndata_out" file="tl.paga.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad" ftype="h5ad" compare="sim_size"/>
         </test>
-        <test expect_num_outputs="3">
-            <conditional name="input">
-                <param name="format" value="h5ad" />
-                <param name="adata" value="pbmc68k_reduced.h5ad" />
-            </conditional>
+        <test>
+            <!-- test 9 -->
+            <param name="adata" value="tl.diffmap.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad" />
             <conditional name="method">
-                <param name="method" value="tl.rank_genes_groups"/>
-                <param name="groupby" value="louvain"/>
-                <param name="use_raw" value="True"/>
-                <conditional name="ref">
-                    <param name="rest" value="rest"/>
-                </conditional>
-                <param name="n_genes" value="100"/>
-                <conditional name="tl_rank_genes_groups_method">
-                    <param name="method" value="logreg"/>
-                    <conditional name="solver">
-                        <param name="solver" value="liblinear"/>
-                        <conditional name="penalty">
-                            <param name="penalty" value="l2"/>
-                            <param name="dual" value="False"/>
-                            <conditional name="intercept_scaling">
-                                <param name="fit_intercept" value="True"/>
-                                <param name="intercept_scaling" value="1.0" />
-                            </conditional>
-                            <param name="random_state" value="1"/>
-                        </conditional>
-                    </conditional>
-                    <param name="tol" value="1e-4"/>
-                    <param name="c" value="1.0"/>
-                </conditional>
-                <param name="only_positive" value="True"/>
+                <param name="method" value="tl.dpt"/>
+                <param name="n_dcs" value="15"/>
+                <param name="n_branchings" value="1"/>
+                <param name="min_group_size" value="0.01"/>
+                <param name="allow_kendall_tau_shift" value="True"/>
             </conditional>
-            <param name="anndata_output_format" value="h5ad" />
             <assert_stdout>
-                <has_text_matching expression="sc.tl.rank_genes_groups"/>
-                <has_text_matching expression="groupby='louvain'"/>
-                <has_text_matching expression="use_raw=True"/>
-                <has_text_matching expression="reference='rest'"/>
-                <has_text_matching expression="n_genes=100"/>
-                <has_text_matching expression="method='logreg'"/>
-                <has_text_matching expression="solver='liblinear'"/>
-                <has_text_matching expression="penalty='l2'"/>
-                <has_text_matching expression="dual=False"/>
-                <has_text_matching expression="fit_intercept=True"/>
-                <has_text_matching expression="intercept_scaling=1.0"/>
-                <has_text_matching expression="tol=0.0001"/>
-                <has_text_matching expression="C=1.0"/>
-                <has_text_matching expression="only_positive=True"/>
+                <has_text_matching expression="sc.tl.dpt"/>
+                <has_text_matching expression="n_dcs=15"/>
+                <has_text_matching expression="n_branchings=1"/>
+                <has_text_matching expression="min_group_size=0.01"/>
+                <has_text_matching expression="allow_kendall_tau_shift=True"/>
             </assert_stdout>
-            <output name="anndata_out_h5ad" ftype="h5">
-                <assert_contents>
-                    <has_h5_keys keys="X, obs, obsm, raw.X, raw.var, uns, var" />
-                </assert_contents>
-            </output>
-            <output name="names">
-                <assert_contents>
-                    <has_n_columns n="7" />
-                    <has_text_matching expression="AES\tLST1\tRNASE6\tPLAC8\tCST3\tSEC11C\tNASP"/>
-                    <has_text_matching expression="GIMAP4\tMIS18BP1\tLILRB4\tTUBA4A\tCOMTD1\tSLC25A4\tLEPROT"/>
-                    <has_text_matching expression="GGH\tLYN\tMAGOHB\tAL928768.3\tITGB2-AS1\tCENPH\tASRGL1"/>
-                </assert_contents>
-            </output>
-            <output name="scores">
-                <assert_contents>
-                    <has_n_columns n="7" />
-                    <has_text_matching expression="0.1680\d{4}\t0.2156\d{4}\t0.281\d{4}\t0.2100\d{4}\t0.2332\d{4}\t0.1586\d{4}\t0.12057\d{4}"/>
-                    <has_text_matching expression="0.0784\d{4}\t0.0699\d{4}\t0.06912\d{4}\t0.05364\d{4}\t0.03933\d{4}\t0.03994\d{4}\t0.0411\d{4}"/>
-                    <has_text_matching expression="0.06232\d{4}\t0.05563\d{4}\t0.0565\d{4}\t0.04164\d{4}\t0.02636\d{4}\t0.03002\d{4}\t0.032\d{4}"/>
-                </assert_contents>
-            </output>
+            <output name="anndata_out" file="tl.dpt.diffmap.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad" ftype="h5ad" compare="sim_size"/>
         </test>
     </tests>
     <help><![CDATA[
-Cluster cells into subgroups, using `tl.louvain`
-================================================
+Cluster cells into subgroups (`tl.louvain`)
+===========================================
 
 Cluster cells using the Louvain algorithm (Blondel et al, 2008) in the implementation
 of Traag et al,2017. The Louvain algorithm has been proposed for single-cell
@@ -961,25 +539,33 @@
 This requires to run `pp.neighbors`, first.
 
 More details on the `scanpy documentation
-<https://scanpy.readthedocs.io/en/latest/api/scanpy.api.tl.louvain.html#scanpy.api.tl.louvain>`_
+<https://icb-scanpy.readthedocs-hosted.com/en/stable/api/scanpy.tl.louvain.html>`_
+
+Cluster cells into subgroups (`tl.leiden`)
+==========================================
+
+Cluster cells using the Leiden algorithm (Traag et al, 2018), an improved version of the Louvain algorithm (Blondel et al, 2008).
+
+The Louvain algorithm has been proposed for single-cell analysis by Levine et al, 2015.
+
+More details on the `scanpy documentation
+<https://icb-scanpy.readthedocs-hosted.com/en/stable/api/scanpy.tl.leiden.html>`_
 
 Computes PCA (principal component analysis) coordinates, loadings and variance decomposition, using `pp.pca`
 ============================================================================================================
 
-It uses the implementation of *scikit-learn*.
+@CMD_pca_outputs@
 
 More details on the `scanpy documentation
-<https://scanpy.readthedocs.io/en/latest/api/scanpy.api.pp.pca.html#scanpy.api.pp.pca>`__
+<https://icb-scanpy.readthedocs-hosted.com/en/stable/api/scanpy.pp.pca.html>`__
 
 Computes PCA (principal component analysis) coordinates, loadings and variance decomposition, using `tl.pca`
 ============================================================================================================
 
-It uses the implementation of *scikit-learn*.
-
-Diffusion Maps
+@CMD_pca_outputs@
 
 More details on the `scanpy documentation
-<https://scanpy.readthedocs.io/en/latest/api/scanpy.api.tl.pca.html#scanpy.api.tl.pca>`__
+<https://icb-scanpy.readthedocs-hosted.com/en/stable/api/scanpy.tl.pca.html>`__
 
 Diffusion Maps, using `tl.diffmap`
 ==================================
@@ -996,10 +582,12 @@
 `method=='umap'`. Differences between these options shouldn't usually be
 dramatic.
 
-It returns `X_diffmap`, diffusion map representation of data, which is the right eigen basis of the transition matrix with eigenvectors as columns.
+The diffusion map representation of data are added to the return AnnData in the multi-dimensional 
+observations annotation (obsm). It is the right eigen basis of the transition matrix with eigenvectors 
+as colum. It can be accessed using the inspect tool for AnnData
 
 More details on the `scanpy documentation
-<https://scanpy.readthedocs.io/en/latest/api/scanpy.api.tl.diffmap.html#scanpy.api.tl.diffmap>`__
+<https://icb-scanpy.readthedocs-hosted.com/en/stable/api/scanpy.tl.diffmap.html>`__
 
 t-distributed stochastic neighborhood embedding (tSNE), using `tl.tsne`
 =======================================================================
@@ -1011,7 +599,7 @@
 It returns `X_tsne`, tSNE coordinates of data.
 
 More details on the `scanpy documentation
-<https://scanpy.readthedocs.io/en/latest/api/scanpy.api.tl.tsne.html#scanpy.api.tl.tsne>`__
+<https://icb-scanpy.readthedocs-hosted.com/en/stable/api/scanpy.tl.tsne.html>`__
 
 Embed the neighborhood graph using UMAP, using `tl.umap`
 ========================================================
@@ -1027,34 +615,90 @@
 (McInnes et al, 2018). For a few comparisons of UMAP with tSNE, see this `preprint
 <https://doi.org/10.1101/298430>`__.
 
-It returns `X_umap`, UMAP coordinates of data.
+The UMAP coordinates of data are added to the return AnnData in the multi-dimensional 
+observations annotation (obsm). This data is accessible using the inspect tool for AnnData
+
+More details on the `scanpy documentation
+<https://icb-scanpy.readthedocs-hosted.com/en/stable/api/scanpy.tl.umap.html>`__
+
+Force-directed graph drawing, using `tl.draw_graph`
+===================================================
+
+Force-directed graph drawing describes a class of long-established algorithms for visualizing graphs. 
+It has been suggested for visualizing single-cell data by Islam et al, 11. 
+Many other layouts as implemented in igraph are available. Similar approaches have been used by 
+Zunder et al, 2015 or Weinreb et al, 2016.
+
+This is an alternative to tSNE that often preserves the topology of the data better. 
+This requires to run `pp.neighbors`, first.
+
+The default layout (ForceAtlas2) uses the package fa2.
+
+The coordinates of graph layout are added to the return AnnData in the multi-dimensional 
+observations annotation (obsm). This data is accessible using the inspect tool for AnnData.
 
 More details on the `scanpy documentation
-<https://scanpy.readthedocs.io/en/latest/api/scanpy.api.tl.umap.html#scanpy.api.tl.umap>`__
+<https://icb-scanpy.readthedocs-hosted.com/en/stable/api/scanpy.tl.draw_graph.html>`__
+
+Infer progression of cells through geodesic distance along the graph (`tl.dpt`)
+===============================================================================
 
-Compute a neighborhood graph of observations, using `pp.neighbors`
-==================================================================
+Reconstruct the progression of a biological process from snapshot
+data. `Diffusion Pseudotime` has been introduced by Haghverdi et al (2016) and
+implemented within Scanpy (Wolf et al, 2017). Here, we use a further developed
+version, which is able to deal with disconnected graphs (Wolf et al, 2017) and can
+be run in a `hierarchical` mode by setting the parameter
+`n_branchings>1`. We recommend, however, to only use
+`tl.dpt` for computing pseudotime (`n_branchings=0`) and
+to detect branchings via `paga`. For pseudotime, you need
+to annotate your data with a root cell. 
 
-The neighbor search efficiency of this heavily relies on UMAP (McInnes et al, 2018),
-which also provides a method for estimating connectivities of data points -
-the connectivity of the manifold (`method=='umap'`). If `method=='diffmap'`,
-connectivities are computed according to Coifman et al (2005), in the adaption of
-Haghverdi et al (2016).
+This requires to run `pp.neighbors`, first. In order to
+reproduce the original implementation of DPT, use `method=='gauss'` in
+this. Using the default `method=='umap'` only leads to minor quantitative
+differences, though.
+
+
+If `n_branchings==0`, no field `dpt_groups` will be written.
+
+- dpt_pseudotime : Array of dim (number of samples) that stores the pseudotime of each cell, that is, the DPT distance with respect to the root cell.
+- dpt_groups : Array of dim (number of samples) that stores the subgroup id ('0','1', ...) for each cell. The groups  typically correspond to 'progenitor cells', 'undecided cells' or 'branches' of a process.
+
+The tool is similar to the R package `destiny` of Angerer et al (2016).
+
+More details on the `tl.dpt scanpy documentation
+<https://icb-scanpy.readthedocs-hosted.com/en/stable/api/scanpy.tl.dpt.html>`_
 
-More details on the `scanpy documentation
-<https://scanpy.readthedocs.io/en/latest/api/scanpy.api.pp.neighbors.html#scanpy.api.pp.neighbors>`__
+
+Generate cellular maps of differentiation manifolds with complex topologies (`tl.paga`)
+=======================================================================================
 
-Rank genes for characterizing groups, using `tl.rank_genes_groups`
-==================================================================
+By quantifying the connectivity of partitions (groups, clusters) of the
+single-cell graph, partition-based graph abstraction (PAGA) generates a much
+simpler abstracted graph (*PAGA graph*) of partitions, in which edge weights
+represent confidence in the presence of connections. By tresholding this
+confidence in `paga`, a much simpler representation of data
+can be obtained.
 
-It returns:
+The confidence can be interpreted as the ratio of the actual versus the
+expected value of connetions under the null model of randomly connecting
+partitions. We do not provide a p-value as this null model does not
+precisely capture what one would consider "connected" in real data, hence it
+strongly overestimates the expected value. See an extensive discussion of
+this in Wolf et al (2017).
+
+Together with a random walk-based distance measure, this generates a partial
+coordinatization of data useful for exploring and explaining its variation.
 
-- `Gene names`: Gene names ordered in column by group id and in rows according to scores
-- `Scores`: Score for each gene (rows) for each group (columns), same order as for the names
+The returned AnnData object contains:
+
+- Full adjacency matrix of the abstracted graph, weights correspond to confidence in the connectivities of partition (connectivities)
+- Adjacency matrix of the tree-like subgraph that best explains the topology (connectivities_tree)
 
-More details on the `scanpy documentation
-<https://scanpy.readthedocs.io/en/latest/api/scanpy.api.tl.rank_genes_groups.html#scanpy.api.tl.rank_genes_groups>`__
+These datasets are stored in the unstructured annotation (uns) and can be accessed using the inspect tool for AnnData objects
 
+More details on the `tl.paga scanpy documentation
+<https://icb-scanpy.readthedocs-hosted.com/en/stable/api/scanpy.tl.paga.html>`_
     ]]></help>
     <expand macro="citations"/>
 </tool>
--- a/macros.xml	Mon Mar 04 10:13:44 2019 -0500
+++ b/macros.xml	Wed Oct 16 06:29:43 2019 -0400
@@ -1,10 +1,12 @@
 <macros>
-    <token name="@version@">1.4</token>
+    <token name="@version@">1.4.4</token>
     <token name="@galaxy_version@"><![CDATA[@version@+galaxy0]]></token>
     <xml name="requirements">
         <requirements>
             <requirement type="package" version="@version@">scanpy</requirement>
             <requirement type="package" version="2.0.17">loompy</requirement>
+            <requirement type="package" version="2.9.0">h5py</requirement>
+            <requirement type="package" version="0.7.0">leidenalg</requirement>
             <yield />
         </requirements>
     </xml>
@@ -14,102 +16,33 @@
         </citations>
     </xml>
     <xml name="version_command">
-        <version_command><![CDATA[python -c "import scanpy.api as sc;print('scanpy version: %s' % sc.__version__)"]]></version_command>
+        <version_command><![CDATA[python -c "import scanpy as sc;print('scanpy version: %s' % sc.__version__)"]]></version_command>
     </xml>
     <token name="@CMD@"><![CDATA[
+cp '$adata' 'anndata.h5ad' &&
 cat '$script_file' &&
-python '$script_file'
+python '$script_file' &&
+ls .
     ]]>
     </token>
     <token name="@CMD_imports@"><![CDATA[
-import scanpy.api as sc
+import scanpy as sc
 import pandas as pd
 import numpy as np
     ]]>
     </token>
     <xml name="inputs_anndata">
-        <conditional name="input">
-            <param name="format" type="select" label="Format for the annotated data matrix">
-                <option value="loom">loom</option>
-                <option value="h5ad">h5ad-formatted hdf5 (anndata)</option>
-            </param>
-            <when value="loom">
-                <param name="adata" type="data" format="loom" label="Annotated data matrix"/>
-                <param name="sparse" type="boolean" truevalue="True" falsevalue="False" checked="true" label="Is the data matrix to read sparse?"/>
-                <param name="cleanup" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Cleanup?"/>
-                <param name="x_name" type="text" value="spliced" label="X_name"/>
-                <param name="obs_names" type="text" value="CellID" label="obs_names"/>
-                <param name="var_names" type="text" value="Gene" label="var_names"/>
-            </when>
-            <when value="h5ad">
-                <param name="adata" type="data" format="h5" label="Annotated data matrix"/>
-            </when>
-        </conditional>
+        <param name="adata" type="data" format="h5ad" label="Annotated data matrix"/>
     </xml>
     <token name="@CMD_read_inputs@"><![CDATA[
-#if $input.format == 'loom'
-adata = sc.read_loom(
-    '$input.adata',
-    sparse=$input.sparse,
-    cleanup=$input.cleanup,
-    X_name='$input.x_name',
-    obs_names='$input.obs_names',
-    var_names='$input.var_names')
-#else if $input.format == 'h5ad'
-adata = sc.read_h5ad('$input.adata')
-#end if
+adata = sc.read('anndata.h5ad')
 ]]>
     </token>
-    <xml name="anndata_output_format">
-        <param name="anndata_output_format" type="select" label="Format to write the annotated data matrix">
-            <option value="loom">loom</option>
-            <option value="h5ad">h5ad-formatted hdf5 (anndata)</option>
-        </param>
-    </xml>
-    <xml name="anndata_modify_output_input">
-        <conditional name="modify_anndata">
-            <param name="modify_anndata" type="select" label="Return modify annotate data matrix?">
-                <option value="true">Yes</option>
-                <option value="false">No</option>
-            </param>
-            <when value="true">
-                <expand macro="anndata_output_format"/>
-            </when>
-            <when value="false"/>
-        </conditional>
-    </xml>
     <xml name="anndata_outputs">
-        <data name="anndata_out_h5ad" format="h5" from_work_dir="anndata.h5ad" label="${tool.name} on ${on_string}: Annotated data matrix">
-            <filter>anndata_output_format == 'h5ad'</filter>
-        </data>
-        <data name="anndata_out_loom" format="loom" from_work_dir="anndata.loom" label="${tool.name} on ${on_string}: Annotated data matrix">
-            <filter>anndata_output_format == 'loom'</filter>
-        </data>
-    </xml>
-    <xml name="anndata_modify_outputs">
-        <data name="anndata_out_h5ad" format="h5" from_work_dir="anndata.h5ad" label="${tool.name} on ${on_string}: Annotated data matrix">
-            <filter>modify_anndata['modify_anndata'] == 'true' and modify_anndata['anndata_output_format'] == 'h5ad'</filter>
-        </data>
-        <data name="anndata_out_loom" format="loom" from_work_dir="anndata.loom" label="${tool.name} on ${on_string}: Annotated data matrix">
-            <filter>modify_anndata['modify_anndata'] == 'true' and modify_anndata['anndata_output_format'] == 'loom'</filter>
-        </data>
+        <data name="anndata_out" format="h5ad" from_work_dir="anndata.h5ad" label="${tool.name} (${method.method}) on ${on_string}: Annotated data matrix"/>
     </xml>
     <token name="@CMD_anndata_write_outputs@"><![CDATA[
-#if $anndata_output_format == 'loom'
-adata.write_loom('anndata.loom')
-#else if $anndata_output_format == 'h5ad'
 adata.write('anndata.h5ad')
-#end if
-]]>
-    </token>
-    <token name="@CMD_anndata_write_modify_outputs@"><![CDATA[
-#if $modify_anndata.modify_anndata == 'true'
-    #if $modify_anndata.anndata_output_format == 'loom'
-adata.write_loom('anndata.loom')
-    #elif $modify_anndata.anndata_output_format == 'h5ad'
-adata.write('anndata.h5ad')
-    #end if
-#end if
 ]]>
     </token>
     <xml name="svd_solver">
@@ -423,7 +356,7 @@
         <param argument="use_raw" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Use `raw` attribute of input if present" help=""/>
     </xml>
     <xml name="param_log">
-        <param argument="log" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Use the log of the values?" help=""/>
+        <param argument="log" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Use the log of the values?"/>
     </xml>
     <xml name="pl_figsize">
         <conditional name="figsize">
@@ -473,7 +406,7 @@
         <param argument="layer" type="text" value="" label="Name of the AnnData object layer that wants to be plotted" help="By default `adata.raw.X` is plotted. If `use_raw=False` is set, then `adata.X` is plotted. If layer is set to a valid layer name, then the layer is plotted. layer takes precedence over `use_raw`."/>
     </xml>
     <token name="@CMD_param_plot_inputs@"><![CDATA[
-    adata=adata,
+    adata,
     save='.$format',
     show=False,
     ]]></token>
@@ -512,9 +445,6 @@
         #end for
     var_group_positions=$var_group_positions,
     var_group_labels=$var_group_labels,
-    #else
-    var_group_positions=None,
-    var_group_labels=None,
     #end if
 #if $method.var_group_rotation
     var_group_rotation=$method.var_group_rotation,
@@ -729,44 +659,42 @@
     linewidths=$method.matplotlib_pyplot_scatter.linewidths,
     edgecolors='$method.matplotlib_pyplot_scatter.edgecolors'
     ]]></token>
-    <xml name="section_violin_plots">
-        <section name="violin_plot" title="Violin plot attributes">
-            <conditional name="stripplot">
-                <param argument="stripplot" type="select" label="Add a stripplot on top of the violin plot" help="">
-                    <option value="True">Yes</option>
-                    <option value="False">No</option>
-                </param>
-                <when value="True">
-                    <conditional name="jitter">
-                        <param argument="jitter" type="select" label="Add a jitter to the stripplot" help="">
-                            <option value="True">Yes</option>
-                            <option value="False">No</option>
-                        </param>
-                        <when value="True">
-                            <param argument="size" type="integer" min="0" value="1" label="Size of the jitter points" help=""/>
-                        </when>
-                        <when value="False"/>
-                    </conditional>
-                </when>
-                <when value="False"/>
-            </conditional>
-            <conditional name="multi_panel">
-                <param argument="multi_panel" type="select" label="Display keys in multiple panels" help="Also when `groupby is not provided">
-                    <option value="True">Yes</option>
-                    <option value="False" selected="true">No</option>
-                </param>
-                <when value="True">
-                    <param argument="width" type="integer" min="0" value="" optional="true" label="Width of the figure" help=""/>
-                    <param argument="height" type="integer" min="0" value="" optional="true" label="Height of the figure" help=""/>
-                </when>
-                <when value="False"/>
-            </conditional>
-            <param argument="scale" type="select" label="Method used to scale the width of each violin">
-                <option value="area">area: each violin will have the same area</option>
-                <option value="count">count: the width of the violins will be scaled by the number of observations in that bin</option>
-                <option value="width" selected="true">width: each violin will have the same width</option>
+    <xml name="conditional_stripplot">
+        <conditional name="stripplot">
+            <param argument="stripplot" type="select" label="Add a stripplot on top of the violin plot" help="">
+                <option value="True">Yes</option>
+                <option value="False">No</option>
             </param>
-        </section>
+            <when value="True">
+                <conditional name="jitter">
+                    <param argument="jitter" type="select" label="Add a jitter to the stripplot" help="">
+                        <option value="True">Yes</option>
+                        <option value="False">No</option>
+                    </param>
+                    <when value="True">
+                        <param argument="size" type="integer" min="0" value="1" label="Size of the jitter points" help=""/>
+                    </when>
+                    <when value="False"/>
+                </conditional>
+            </when>
+            <when value="False"/>
+        </conditional>
+    </xml>
+    <token name="@CMD_conditional_stripplot@"><![CDATA[
+    stripplot=$method.violin_plot.stripplot.stripplot,
+#if $method.violin_plot.stripplot.stripplot == "True"
+    jitter=$method.violin_plot.stripplot.jitter.jitter,
+    #if $method.violin_plot.stripplot.jitter.jitter == "True"
+    size=$method.violin_plot.stripplot.jitter.size,
+    #end if
+#end if
+    ]]></token>
+    <xml name="param_scale">
+        <param argument="scale" type="select" label="Method used to scale the width of each violin">
+            <option value="area">area: each violin will have the same area</option>
+            <option value="count">count: the width of the violins will be scaled by the number of observations in that bin</option>
+            <option value="width" selected="true">width: each violin will have the same width</option>
+        </param>
     </xml>
     <token name="@CMD_params_violin_plots@"><![CDATA[
     stripplot=$method.violin_plot.stripplot.stripplot,
@@ -777,7 +705,7 @@
     #end if
 #end if
     multi_panel=$method.violin_plot.multi_panel.multi_panel, 
-#if $method.multi_panel.violin_plot.multi_panel == "True" and $method.violin_plot.multi_panel.width and $method.violin_plot.multi_panel.height
+#if $method.multi_panel.violin_plot.multi_panel == "True" and str($method.violin_plot.multi_panel.width) != '' and str($method.violin_plot.multi_panel.height) != ''
     figsize=($method.violin_plot.multi_panel.width, $method.violin_plot.multi_panel.height)
 #end if
     scale='$method.violin_plot.scale',
@@ -813,14 +741,12 @@
     saturation=$method.seaborn_violinplot.saturation,
     ]]></token>
     <xml name="param_color">
-        <param argument="color" type="text" value="" optional="true" label="Keys for annotations of observations/cells or variables/genes`" help="One or a list of comma-separated index or key from either `.obs` or `.var`"/>
+        <param argument="color" type="text" value="" optional="true" label="Keys for annotations of observations/cells or variables/genes" help="One or a list of comma-separated index or key from either `.obs` or `.var`"/>
     </xml>
     <token name="@CMD_param_color@"><![CDATA[
 #if str($method.color) != ''
     #set $color = ([x.strip() for x in str($method.color).split(',')])
     color=$color,
-#else
-    color=None,
 #end if
     ]]></token>
     <xml name="pl_groups">
@@ -830,8 +756,6 @@
 #if str($method.groups) != ''
     #set $groups=([x.strip() for x in str($method.groups).split(',')])
     groups=$groups,
-#else
-    groups=None,
 #end if
     ]]></token>
     <xml name="pl_components">
@@ -847,8 +771,6 @@
         #silent $components.append(str($s.axis1) + ',' + str($s.axis2))
     #end for
     components=$components,
-#else
-    components=None,
 #end if
     ]]>
     </token>
@@ -877,7 +799,7 @@
         </param>
     </xml>
     <xml name="param_legend_fontsize">
-        <param argument="legend_fontsize" type="integer" min="0" value="1" label="Legend font size" help=""/>
+        <param argument="legend_fontsize" type="integer" optional="true" value="" label="Legend font size" help=""/>
     </xml>
     <xml name="param_legend_fontweight">
         <param argument="legend_fontweight" type="select" label="Legend font weight" help="">
@@ -910,7 +832,7 @@
         <param argument="left_margin" type="float" value="1" label="Width of the space left of each plotting panel" help=""/>
     </xml>
     <xml name="param_size">
-        <param argument="size" type="float" value="1" label="Point size" help=""/>
+        <param argument="size" type="float" optional="true" value="" label="Point size" help=""/>
     </xml>
     <xml name="param_title">
         <param argument="title" type="text" value="" optional="true" label="Title for panels" help="Titles must be separated by a comma"/>
@@ -937,8 +859,8 @@
                 <option value="False" selected="true">No</option>
             </param>
             <when value="True">
-                <param name="edges_width" type="float" min="0" value="0.1" label="Width of edges"/>
-                <param name="edges_color" type="select" label="Color of edges">
+                <param argument="edges_width" type="float" min="0" value="0.1" label="Width of edges"/>
+                <param argument="edges_color" type="select" label="Color of edges">
                     <expand macro="matplotlib_color"/>
                 </param>
             </when>
@@ -956,7 +878,7 @@
     ]]>
     </token>
     <xml name="param_arrows">
-        <param name="arrows" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Show arrows?" help="It requires to run `tl.rna_velocity` before."/>
+        <param argument="arrows" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Show arrows?" help="It requires to run `tl.rna_velocity` before."/>
     </xml>
     <xml name="param_cmap">
         <param argument="cmap" type="select" label="Colors to use for plotting categorical annotation groups" help="">
@@ -982,9 +904,13 @@
     <token name="@CMD_pl_attribute_section@"><![CDATA[
     projection='$method.plot.projection',
     legend_loc='$method.plot.legend_loc',
+    #if str($method.plot.legend_fontsize) != ''
     legend_fontsize=$method.plot.legend_fontsize,
+    #end if
     legend_fontweight='$method.plot.legend_fontweight',
+    #if str($method.plot.size) != ''
     size=$method.plot.size,
+    #end if
     palette='$method.plot.palette',
     frameon=$method.plot.frameon,
     ncols=$method.plot.ncols,
@@ -995,24 +921,39 @@
     #end if
     ]]>
     </token>
+    <xml name="options_layout">
+        <option value="fa">fa: ForceAtlas2</option>
+        <option value="fr">fr: Fruchterman-Reingold</option>
+        <option value="grid_fr">grid_fr: Grid Fruchterman Reingold, faster than "fr"</option>
+        <option value="kk">kk: Kamadi Kawai’, slower than "fr"</option>
+        <option value="drl">drl: Distributed Recursive Layout, pretty fast</option>
+        <option value="rt">rt: Reingold Tilford tree layout</option>
+        <option value="eq_tree">eq_tree: Equally spaced tree</option>
+    </xml>
+    <xml name="param_layout">
+        <param argument="layout" type="select" label="Plotting layout" help="">
+            <expand macro="options_layout"/>
+        </param>
+    </xml>
+    <xml name="param_root">
+        <param argument="root" type="text" value="" label="Comma-separated roots" help="If choosing a tree layout, this is the index of the root node or a list of root node indices. If this is a non-empty vector then the supplied node IDs are used as the roots of the trees (or a single tree if the graph is connected). If this is `None` or an empty list, the root vertices are automatically calculated based on topological sorting."/>
+    </xml>
+    <xml name="param_random_state">
+        <param argument="random_state" type="integer" value="0" label="Random state" help="For layouts with random initialization like 'fr', change this to use different intial states for the optimization. If `None`, the initial state is not reproducible."/>
+    </xml>
     <xml name="inputs_paga">
         <param argument="threshold" type="float" min="0" value="0.01" label="Threshold to draw edges" help="Do not draw edges for weights below this threshold. Set to 0 if you want all edges. Discarding low-connectivity edges helps in getting a much clearer picture of the graph."/>
         <expand macro="pl_groups"/>
         <param argument="color" type="text" value="" label="The node colors" help="Gene name or obs. annotation, and also plots the degree of the abstracted graph when passing 'degree_dashed', 'degree_solid'."/>
         <param argument="pos" type="data" format="tabular,csv,tsv" optional="true" label="Two-column tabular file storing the x and y coordinates for drawing" help=""/>
         <param argument="labels" type="text" value="" label="Comma-separated node labels" help="If none is provided, this defaults to the group labels stored in the categorical for which `tl.paga` has been computed."/>
-        <param argument="layout" type="select" value="" label="Plotting layout" help="">
-            <option value="fa">fa: ForceAtlas2</option>
-            <option value="fr">fr: Fruchterman-Reingold</option>
-            <option value="fr">rt: stands for Reingold Tilford</option>
-            <option value="fr">eq_tree: equally spaced tree</option>
-        </param>
+        <expand macro="param_layout"/>
         <param argument="init_pos" type="data" format="tabular,csv,tsv" optional="true" label="Two-column tabular file storing the x and y coordinates for initializing the layout" help=""/>
-        <param argument="random_state" type="integer" value="0" label="Random state" help="For layouts with random initialization like 'fr', change this to use different intial states for the optimization. If `None`, the initial state is not reproducible."/>
-        <param argument="root" type="text" value="" label="Comma-separated roots" help="If choosing a tree layout, this is the index of the root node or a list of root node indices. If this is a non-empty vector then the supplied node IDs are used as the roots of the trees (or a single tree if the graph is connected). If this is `None` or an empty list, the root vertices are automatically calculated based on topological sorting."/>
+        <expand macro="param_random_state"/>
+        <expand macro="param_root"/>
         <param argument="transitions" type="text" value="" label="Key corresponding to the matrix storing the arrows" help="Key for `.uns['paga']`, e.g. 'transistions_confidence'"/>
-        <param argument="solid_edges" type="text" value="paga_connectivities" label="Key corresponding to the matrix storing the edges to be drawn solid black" help="Key for `.uns['paga']`"/>
-        <param argument="dashed_edges" type="text" value="" optional="true" label="Key corresponding to the matrix storing the edges to be drawn dashed grey" help="Key for `.uns['paga']`. If not set, no dashed edges are drawn."/>
+        <param argument="solid_edges" type="text" value="connectivities" label="Key corresponding to the matrix storing the edges to be drawn solid black" help="Key for uns/paga"/>
+        <param argument="dashed_edges" type="text" value="" optional="true" label="Key corresponding to the matrix storing the edges to be drawn dashed grey" help="Key for uns/paga. If not set, no dashed edges are drawn."/>
         <param argument="single_component" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Restrict to largest connected component?" help=""/>
         <param argument="fontsize" type="integer" min="0" value="1" label="Font size for node labels" help=""/>
         <param argument="node_size_scale" type="float" min="0" value="1.0" label="Size of the nodes" help=""/>
@@ -1031,10 +972,11 @@
 #if str($method.groups) != ''
     #set $groups=([x.strip() for x in str($method.groups).split(',')])
     groups=$groups,
-#else
-    groups=None,
 #end if
-    color='$method.color',
+#if str($method.color) != ''
+    #set $color=([x.strip() for x in str($method.color).split(',')])
+    color=$color,
+#end if
 #if $method.pos
     pos=np.fromfile($method.pos, dtype=dt),
 #end if
@@ -1081,4 +1023,10 @@
     <xml name="param_swap_axes">
         <param argument="swap_axes" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Swap axes?" help="By default, the x axis contains `var_names` (e.g. genes) and the y axis the `groupby` categories (if any). By setting `swap_axes` then x are the `groupby` categories and y the `var_names`."/>
     </xml>
+    <xml name="gene_symbols">
+        <param argument="gene_symbols" type="text" value="" optional="true" label="Key for field in `.var` that stores gene symbols"/>
+    </xml>
+    <xml name="n_genes">
+        <param argument="n_genes" type="integer" min="0" value="20" label="Number of genes to show" help=""/>
+    </xml>               
 </macros>
Binary file test-data/blobs.h5ad has changed
Binary file test-data/pl.clustermap.krumsiek11.png has changed
Binary file test-data/pl.dotplot.krumsiek11.png has changed
Binary file test-data/pl.draw_graph.png has changed
Binary file test-data/pl.highly_variable_genes.seurat.blobs.png has changed
Binary file test-data/pl.pca_overview.pp.pca.krumsiek11.png has changed
Binary file test-data/pl.rank_genes_groups.rank_genes_groups.krumsiek11.png has changed
Binary file test-data/pl.rank_genes_groups_violin.Ery.png has changed
Binary file test-data/pl.rank_genes_groups_violin.Mk.png has changed
Binary file test-data/pl.rank_genes_groups_violin.Mo.png has changed
Binary file test-data/pl.rank_genes_groups_violin.Neu.png has changed
Binary file test-data/pl.rank_genes_groups_violin.progenitor.png has changed
Binary file test-data/pl.scatter.krumsiek11.png has changed
Binary file test-data/pl.scatter.umap.pbmc68k_reduced.png has changed
Binary file test-data/pl.stacked_violin.krumsiek11.png has changed
Binary file test-data/pp.calculate_qc_metrics.sparce_csr_matrix.h5ad has changed
Binary file test-data/pp.combat.blobs.h5ad has changed
Binary file test-data/pp.downsample_counts.random-randint.h5ad has changed
Binary file test-data/pp.filter_cells.krumsiek11-max_genes.h5ad has changed
Binary file test-data/pp.filter_cells.krumsiek11-min_counts.h5ad has changed
--- a/test-data/pp.filter_cells.number_per_cell.krumsiek11-max_genes.tabular	Mon Mar 04 10:13:44 2019 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,641 +0,0 @@
-	cell_subset	number_per_cell
-0	True	9
-1	True	9
-2	True	9
-3	True	8
-4	True	8
-5	True	8
-6	True	8
-7	True	7
-8	True	8
-9	True	8
-10	True	7
-11	True	7
-12	True	7
-13	True	7
-14	True	8
-15	True	10
-16	True	10
-17	True	10
-18	True	11
-19	True	11
-20	True	11
-21	True	11
-22	True	11
-23	True	11
-24	True	11
-25	True	11
-26	True	11
-27	True	11
-28	True	11
-29	True	11
-30	True	11
-31	True	11
-32	True	11
-33	True	11
-34	True	11
-35	True	11
-36	True	11
-37	True	11
-38	True	11
-39	True	11
-40	True	11
-41	True	11
-42	True	11
-43	True	11
-44	True	11
-45	True	11
-46	True	11
-47	True	11
-48	True	10
-49	True	10
-50	True	10
-51	True	10
-52	True	10
-53	True	10
-54	True	10
-55	True	10
-56	True	11
-57	True	11
-58	True	11
-59	True	10
-60	True	10
-61	True	11
-62	True	10
-63	True	11
-64	True	10
-65	True	10
-66	True	11
-67	True	11
-68	True	11
-69	True	10
-70	True	10
-71	True	10
-72	True	10
-73	True	10
-74	True	11
-75	True	10
-76	True	10
-77	True	10
-78	True	9
-79	True	10
-80	True	9
-81	True	9
-82	True	10
-83	True	9
-84	True	9
-85	True	9
-86	True	9
-87	True	9
-88	True	9
-89	True	9
-90	True	9
-91	True	10
-92	True	10
-93	True	9
-94	True	9
-95	True	9
-96	True	9
-97	True	7
-98	True	7
-99	True	6
-100	True	6
-101	True	7
-102	True	8
-103	True	8
-104	True	8
-105	True	8
-106	True	9
-107	True	9
-108	True	9
-109	True	8
-110	True	8
-111	True	10
-112	True	9
-113	True	8
-114	True	9
-115	True	10
-116	True	9
-117	True	8
-118	True	7
-119	True	7
-120	True	7
-121	True	7
-122	True	9
-123	True	9
-124	True	9
-125	True	8
-126	True	7
-127	True	6
-128	True	6
-129	True	8
-130	True	8
-131	True	8
-132	True	8
-133	True	10
-134	True	10
-135	True	8
-136	True	6
-137	True	6
-138	True	8
-139	True	9
-140	True	8
-141	True	7
-142	True	7
-143	True	8
-144	True	7
-145	True	7
-146	True	7
-147	True	5
-148	True	6
-149	True	8
-150	True	9
-151	True	6
-152	True	6
-153	True	6
-154	True	7
-155	True	8
-156	True	7
-157	True	7
-158	True	7
-159	True	8
-160	True	9
-161	True	8
-162	True	8
-163	True	9
-164	True	9
-165	True	9
-166	True	8
-167	True	8
-168	True	9
-169	True	9
-170	True	8
-171	True	9
-172	True	9
-173	True	10
-174	True	10
-175	True	10
-176	True	10
-177	True	10
-178	True	10
-179	True	10
-180	True	10
-181	True	10
-182	True	10
-183	True	10
-184	True	10
-185	True	10
-186	True	10
-187	True	10
-188	True	11
-189	True	11
-190	True	11
-191	True	11
-192	True	11
-193	True	11
-194	True	11
-195	True	11
-196	True	11
-197	True	11
-198	True	11
-199	True	11
-200	True	11
-201	True	11
-202	True	11
-203	True	11
-204	True	11
-205	True	11
-206	True	11
-207	True	11
-208	True	11
-209	True	11
-210	True	11
-211	True	11
-212	True	11
-213	True	11
-214	True	11
-215	True	11
-216	True	11
-217	True	11
-218	True	11
-219	True	11
-220	True	11
-221	True	11
-222	True	11
-223	True	11
-224	True	11
-225	True	11
-226	True	11
-227	True	11
-228	True	11
-229	True	11
-230	True	11
-231	True	11
-232	True	11
-233	True	11
-234	True	11
-235	True	11
-236	True	11
-237	True	11
-238	True	11
-239	True	11
-240	True	11
-241	True	11
-242	True	11
-243	True	11
-244	True	11
-245	True	11
-246	True	11
-247	True	11
-248	True	11
-249	True	11
-250	True	11
-251	True	11
-252	True	11
-253	True	11
-254	True	11
-255	True	11
-256	True	11
-257	True	11
-258	True	11
-259	True	11
-260	True	11
-261	True	11
-262	True	11
-263	True	11
-264	True	11
-265	True	11
-266	True	11
-267	True	11
-268	True	11
-269	True	11
-270	True	11
-271	True	11
-272	True	10
-273	True	11
-274	True	11
-275	True	11
-276	True	11
-277	True	11
-278	True	11
-279	True	10
-280	True	11
-281	True	9
-282	True	9
-283	True	8
-284	True	9
-285	True	9
-286	True	10
-287	True	9
-288	True	9
-289	True	9
-290	True	9
-291	True	9
-292	True	9
-293	True	10
-294	True	10
-295	True	10
-296	True	10
-297	True	9
-298	True	10
-299	True	9
-300	True	8
-301	True	8
-302	True	8
-303	True	8
-304	True	8
-305	True	9
-306	True	8
-307	True	8
-308	True	8
-309	True	8
-310	True	9
-311	True	8
-312	True	9
-313	True	9
-314	True	10
-315	True	10
-316	True	10
-317	True	10
-318	True	10
-319	True	10
-320	True	4
-321	True	8
-322	True	8
-323	True	8
-324	True	8
-325	True	7
-326	True	8
-327	True	8
-328	True	7
-329	True	9
-330	True	8
-331	True	9
-332	True	8
-333	True	8
-334	True	8
-335	True	10
-336	True	10
-337	True	9
-338	True	10
-339	True	10
-340	True	10
-341	True	10
-342	True	10
-343	True	10
-344	True	10
-345	True	11
-346	True	11
-347	True	11
-348	True	11
-349	True	11
-350	True	11
-351	True	11
-352	True	11
-353	True	11
-354	True	11
-355	True	11
-356	True	11
-357	True	11
-358	True	11
-359	True	11
-360	True	11
-361	True	11
-362	True	11
-363	True	11
-364	True	11
-365	True	11
-366	True	11
-367	True	11
-368	True	11
-369	True	11
-370	True	11
-371	True	11
-372	True	11
-373	True	11
-374	True	11
-375	True	11
-376	True	11
-377	True	11
-378	True	11
-379	True	11
-380	True	11
-381	True	11
-382	True	11
-383	True	11
-384	True	11
-385	True	11
-386	True	11
-387	True	11
-388	True	11
-389	True	11
-390	True	11
-391	True	11
-392	True	11
-393	True	11
-394	True	11
-395	True	11
-396	True	11
-397	True	11
-398	True	11
-399	True	11
-400	True	11
-401	True	11
-402	True	11
-403	True	11
-404	True	11
-405	True	11
-406	True	11
-407	True	11
-408	True	11
-409	True	11
-410	True	11
-411	True	11
-412	True	11
-413	True	11
-414	True	11
-415	True	11
-416	True	11
-417	True	11
-418	True	11
-419	True	11
-420	True	11
-421	True	11
-422	True	11
-423	True	11
-424	True	11
-425	True	11
-426	True	11
-427	True	11
-428	True	11
-429	True	11
-430	True	11
-431	True	11
-432	True	11
-433	True	11
-434	True	11
-435	True	11
-436	True	11
-437	True	11
-438	True	11
-439	True	11
-440	True	11
-441	True	11
-442	True	11
-443	True	11
-444	True	11
-445	True	11
-446	True	10
-447	True	10
-448	True	10
-449	True	10
-450	True	10
-451	True	11
-452	True	11
-453	True	11
-454	True	10
-455	True	10
-456	True	11
-457	True	10
-458	True	10
-459	True	11
-460	True	11
-461	True	10
-462	True	9
-463	True	10
-464	True	10
-465	True	10
-466	True	10
-467	True	9
-468	True	10
-469	True	10
-470	True	11
-471	True	11
-472	True	9
-473	True	9
-474	True	9
-475	True	9
-476	True	9
-477	True	10
-478	True	10
-479	True	9
-480	True	8
-481	True	10
-482	True	10
-483	True	10
-484	True	8
-485	True	8
-486	True	9
-487	True	8
-488	True	9
-489	True	10
-490	True	11
-491	True	11
-492	True	11
-493	True	9
-494	True	10
-495	True	10
-496	True	10
-497	True	10
-498	True	11
-499	True	11
-500	True	11
-501	True	11
-502	True	11
-503	True	11
-504	True	11
-505	True	11
-506	True	11
-507	True	11
-508	True	11
-509	True	11
-510	True	11
-511	True	11
-512	True	11
-513	True	11
-514	True	11
-515	True	11
-516	True	11
-517	True	11
-518	True	11
-519	True	11
-520	True	11
-521	True	11
-522	True	11
-523	True	11
-524	True	11
-525	True	11
-526	True	11
-527	True	11
-528	True	11
-529	True	11
-530	True	11
-531	True	11
-532	True	11
-533	True	11
-534	True	11
-535	True	11
-536	True	10
-537	True	10
-538	True	10
-539	True	10
-540	True	10
-541	True	10
-542	True	11
-543	True	11
-544	True	11
-545	True	11
-546	True	11
-547	True	10
-548	True	9
-549	True	9
-550	True	10
-551	True	11
-552	True	10
-553	True	9
-554	True	9
-555	True	9
-556	True	8
-557	True	9
-558	True	7
-559	True	8
-560	True	8
-561	True	10
-562	True	9
-563	True	8
-564	True	8
-565	True	8
-566	True	8
-567	True	8
-568	True	6
-569	True	6
-570	True	6
-571	True	6
-572	True	8
-573	True	8
-574	True	7
-575	True	9
-576	True	7
-577	True	7
-578	True	8
-579	True	8
-580	True	6
-581	True	7
-582	True	7
-583	True	8
-584	True	6
-585	True	5
-586	True	5
-587	True	5
-588	True	6
-589	True	7
-590	True	6
-591	True	8
-592	True	7
-593	True	7
-594	True	8
-595	True	7
-596	True	7
-597	True	8
-598	True	5
-599	True	4
-600	True	5
-601	True	6
-602	True	5
-603	True	6
-604	True	7
-605	True	7
-606	True	9
-607	True	10
-608	True	8
-609	True	8
-610	True	10
-611	True	10
-612	True	9
-613	True	8
-614	True	8
-615	True	8
-616	True	7
-617	True	8
-618	True	7
-619	True	6
-620	True	6
-621	True	7
-622	True	7
-623	True	7
-624	True	8
-625	True	6
-626	True	7
-627	True	7
-628	True	7
-629	True	6
-630	True	5
-631	True	7
-632	True	6
-633	True	6
-634	True	7
-635	True	6
-636	True	8
-637	True	8
-638	True	6
-639	True	8
Binary file test-data/pp.filter_genes.krumsiek11-min_counts.h5ad has changed
--- a/test-data/pp.filter_genes.number_per_gene.krumsiek11-min_counts.tabular	Mon Mar 04 10:13:44 2019 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-index	n_counts
-Gata2	163.95355
-Gata1	203.95117
-Fog1	83.94181
-EKLF	70.69286
-Fli1	57.56072
-SCL	202.67444
-Cebpa	469.87094
-Pu.1	250.78569
-cJun	188.10158
-EgrNab	164.99693
-Gfi1	159.99155
--- a/test-data/pp.filter_genes.number_per_gene.pbmc68k_reduced-max_cells.tabular	Mon Mar 04 10:13:44 2019 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,222 +0,0 @@
-	gene_subset	number_per_gene
-0	True	34
-1	True	123
-2	True	281
-3	True	54
-4	True	253
-5	True	63
-6	True	9
-7	True	266
-8	True	101
-9	True	233
-10	True	267
-11	True	285
-12	True	332
-13	True	197
-14	True	158
-15	True	64
-16	True	285
-17	True	229
-18	True	43
-19	True	199
-20	True	271
-21	True	318
-22	True	132
-23	True	83
-24	True	88
-25	True	87
-26	True	71
-27	True	258
-28	True	58
-29	True	348
-30	True	280
-31	True	150
-32	True	121
-33	True	237
-34	True	29
-35	True	220
-36	True	103
-37	True	87
-38	True	115
-39	True	100
-40	True	139
-41	True	23
-42	True	162
-43	True	76
-44	True	180
-45	True	51
-46	True	244
-47	True	132
-48	True	244
-49	True	82
-50	True	172
-51	True	27
-52	True	100
-53	True	327
-54	True	277
-55	True	282
-56	True	245
-57	True	21
-58	True	52
-59	True	19
-60	True	227
-61	True	288
-62	True	274
-63	True	301
-64	True	316
-65	True	314
-66	True	271
-67	True	270
-68	True	283
-69	True	245
-70	True	263
-71	True	312
-72	True	285
-73	True	228
-74	True	170
-75	True	11
-76	True	228
-77	True	192
-78	True	140
-79	True	15
-80	True	22
-81	True	10
-82	True	233
-83	True	129
-84	True	12
-85	True	297
-86	True	295
-87	True	127
-88	True	208
-89	True	281
-90	True	265
-91	True	254
-92	True	122
-93	True	76
-94	True	237
-95	True	74
-96	True	65
-97	True	45
-98	True	90
-99	True	147
-100	True	189
-101	True	170
-102	True	207
-103	True	14
-104	True	307
-105	True	267
-106	True	111
-107	True	94
-108	True	306
-109	True	126
-110	True	269
-111	True	116
-112	True	140
-113	True	260
-114	True	201
-115	True	198
-116	True	155
-117	True	256
-118	True	214
-119	True	70
-120	True	304
-121	True	336
-122	True	201
-123	True	305
-124	True	301
-125	True	301
-126	True	338
-127	True	81
-128	True	256
-129	True	277
-130	True	237
-131	True	173
-132	True	228
-133	True	64
-134	True	52
-135	True	34
-136	True	333
-137	True	285
-138	True	132
-139	True	32
-140	True	275
-141	True	31
-142	True	244
-143	True	15
-144	True	54
-145	True	289
-146	True	186
-147	True	283
-148	True	333
-149	True	53
-150	True	26
-151	True	173
-152	True	19
-153	True	109
-154	True	138
-155	True	264
-156	True	293
-157	True	225
-158	True	150
-159	True	62
-160	True	350
-161	True	13
-162	True	341
-163	True	223
-164	True	177
-165	True	15
-166	True	202
-167	True	101
-168	True	203
-169	True	271
-170	True	305
-171	True	45
-172	True	322
-173	True	164
-174	True	213
-175	True	55
-176	True	143
-177	True	112
-178	True	266
-179	True	168
-180	True	9
-181	True	300
-182	True	249
-183	True	101
-184	True	55
-185	True	312
-186	True	181
-187	True	256
-188	True	27
-189	True	242
-190	True	210
-191	True	12
-192	True	203
-193	True	41
-194	True	205
-195	True	315
-196	True	94
-197	True	262
-198	True	316
-199	True	13
-200	True	94
-201	True	204
-202	True	245
-203	True	11
-204	True	238
-205	True	301
-206	True	219
-207	True	106
-208	True	253
-209	True	134
-210	True	262
-211	True	222
-212	True	82
-213	True	153
-214	True	122
-215	True	211
-216	True	49
-217	True	211
-218	True	176
-219	True	329
-220	True	8
Binary file test-data/pp.filter_genes_dispersion.krumsiek11-seurat.h5ad has changed
--- a/test-data/pp.filter_genes_dispersion.per_gene.krumsiek11-cell_ranger.tabular	Mon Mar 04 10:13:44 2019 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-	gene_subset	means	dispersions	dispersions_norm
-0	False	0.22807331	-1.513815	
-1	False	0.27662647	-0.6374868	
-2	False	0.12324284	-1.1931922	
-3	True	0.10477218	-0.8270577	0.67448974
-4	True	0.08612139	-0.880823	0.67448974
-5	False	0.2751125	-0.6042374	
-6	False	0.55053085	-1.5924454	
-7	False	0.3306357	-0.91260546	
-8	False	0.25766766	-0.86990273	
-9	False	0.22937028	-0.7354343	
-10	False	0.223133	-0.96748924	
--- a/test-data/pp.filter_genes_dispersion.per_gene.krumsiek11-seurat.tabular	Mon Mar 04 10:13:44 2019 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-index	means	dispersions	dispersions_norm
-Fog1	0.12324284	-1.1931922	1.0
-EKLF	0.10477218	-0.8270577	0.70710677
-SCL	0.2751125	-0.6042374	0.707108
-Cebpa	0.55053085	-1.5924454	1.0
-Pu.1	0.3306357	-0.91260546	1.0
-cJun	0.25766766	-0.86990273	1.0
-EgrNab	0.22937028	-0.7354343	0.7071069
-Gfi1	0.223133	-0.96748924	1.0
Binary file test-data/pp.filter_rank_genes_groups.h5ad has changed
Binary file test-data/pp.highly_variable_genes.krumsiek11-cell_ranger.h5ad has changed
Binary file test-data/pp.highly_variable_genes.seurat.blobs.h5ad has changed
Binary file test-data/pp.log1p.krumsiek11.h5ad has changed
Binary file test-data/pp.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad has changed
Binary file test-data/pp.neighbors_umap_euclidean.recipe_weinreb17.paul15_subsample.h5ad has changed
--- a/test-data/pp.normalize_per_cell.obs.krumsiek11.tabular	Mon Mar 04 10:13:44 2019 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,641 +0,0 @@
-index	cell_type
-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.normalize_total.krumsiek11.h5ad has changed
Binary file test-data/pp.pca.krumsiek11.h5ad has changed
Binary file test-data/pp.recipe_seurat.recipe_zheng17.h5ad has changed
Binary file test-data/pp.recipe_weinreb17.paul15_subsample.updated.h5ad has changed
Binary file test-data/pp.recipe_zheng17.random-randint.h5ad has changed
Binary file test-data/pp.regress_out.krumsiek11.h5ad has changed
Binary file test-data/pp.scale.krumsiek11.h5ad has changed
Binary file test-data/pp.scale_max_value.krumsiek11.h5ad has changed
Binary file test-data/pp.sqrt.krumsiek11.h5ad has changed
Binary file test-data/pp.subsample.krumsiek11_fraction.h5ad has changed
Binary file test-data/sparce_csr_matrix.h5ad has changed
--- a/test-data/tl.diffmap.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.X_diffmap.tabular	Mon Mar 04 10:13:44 2019 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-1.006254479289054871e-01	7.390013337135314941e-02	5.162549763917922974e-02	-6.088243797421455383e-02	1.660361140966415405e-02	2.669865079224109650e-02	-1.013666391372680664e-01	5.378784239292144775e-02	2.008118629455566406e-01	1.484276503324508667e-01	1.083310469985008240e-01	1.318635195493698120e-01	1.997928470373153687e-01	-7.899370044469833374e-02	-2.425468564033508301e-01
-9.916571527719497681e-02	-6.192789599299430847e-02	3.743748366832733154e-02	5.766532197594642639e-02	2.186784986406564713e-03	-1.058542281389236450e-01	5.377947166562080383e-02	1.402157917618751526e-02	1.486204266548156738e-01	8.553525805473327637e-02	2.134956121444702148e-01	-9.449188411235809326e-02	-9.736447781324386597e-02	-6.411797553300857544e-02	-3.109178543090820312e-01
-1.063194051384925842e-01	8.235514909029006958e-02	9.153002500534057617e-02	-1.288201361894607544e-01	2.123118191957473755e-02	-5.571385100483894348e-02	4.388944245874881744e-03	-1.907968819141387939e-01	5.077145248651504517e-02	-5.320586264133453369e-02	-2.017502486705780029e-02	2.888677455484867096e-02	-3.507991880178451538e-02	5.667190253734588623e-02	7.913256995379924774e-03
-9.840648621320724487e-02	-4.607489332556724548e-02	3.584916703402996063e-03	1.064319070428609848e-02	-1.083880066871643066e-01	1.248296573758125305e-01	6.351136416196823120e-02	1.885401159524917603e-01	-2.020059973001480103e-01	3.631909489631652832e-01	1.699842363595962524e-01	1.017943695187568665e-01	-1.385858207941055298e-01	3.727469593286514282e-02	8.702995628118515015e-02
-1.002686843276023865e-01	8.042127639055252075e-02	-1.485065966844558716e-01	-1.834145635366439819e-01	1.185779422521591187e-01	-4.452232271432876587e-03	2.401492185890674591e-02	1.709450007183477283e-04	-1.044583246111869812e-01	1.082587465643882751e-01	8.498968929052352905e-02	1.078867260366678238e-02	1.678988523781299591e-02	-4.863050952553749084e-02	-8.437795564532279968e-03
-1.039626300334930420e-01	6.898555904626846313e-02	-5.245065316557884216e-02	-1.401370912790298462e-01	1.724163144826889038e-01	-9.417925775051116943e-02	5.670287460088729858e-02	-2.294020541012287140e-02	-1.041278913617134094e-01	-4.751206189393997192e-02	-2.486055344343185425e-02	1.906321793794631958e-01	-1.133706346154212952e-01	1.018952578306198120e-01	-1.696813404560089111e-01
-1.031595841050148010e-01	6.644981354475021362e-02	-3.434765338897705078e-02	-8.121536672115325928e-02	-2.303110063076019287e-01	6.845026742666959763e-03	-3.113305754959583282e-02	3.572509065270423889e-02	-2.340330332517623901e-01	1.681309342384338379e-01	2.042572945356369019e-01	-2.152139544486999512e-01	3.323959186673164368e-02	-1.992796063423156738e-01	1.612142026424407959e-01
-1.063378602266311646e-01	9.444754570722579956e-02	1.147621273994445801e-01	-1.788049340248107910e-01	1.663699001073837280e-01	-1.299377232789993286e-01	9.099455177783966064e-02	8.901253342628479004e-02	-3.782828152179718018e-02	1.340985000133514404e-01	-1.110952645540237427e-01	-1.353431493043899536e-01	9.196916222572326660e-02	-5.004190653562545776e-02	1.283620446920394897e-01
-1.019066423177719116e-01	3.868932276964187622e-02	-5.681320559233427048e-03	2.885684370994567871e-02	-1.618600785732269287e-01	-7.793435454368591309e-02	-6.321301311254501343e-02	-7.030926644802093506e-02	-8.451142162084579468e-02	1.784774512052536011e-01	-5.302700772881507874e-02	2.233742922544479370e-02	-8.568169549107551575e-03	-3.328817337751388550e-02	-2.190946601331233978e-02
-1.055724918842315674e-01	6.597422808408737183e-02	1.207857206463813782e-01	-1.769655644893646240e-01	-1.941676251590251923e-02	-2.537060342729091644e-02	2.017348445951938629e-02	2.019873559474945068e-01	2.603957951068878174e-01	-8.517616987228393555e-02	1.920531690120697021e-01	3.013696968555450439e-01	1.285752207040786743e-01	-6.937998533248901367e-02	2.583270706236362457e-02
-1.013405695557594299e-01	7.315808534622192383e-02	-4.366664588451385498e-02	2.623320743441581726e-02	-1.268581300973892212e-01	-9.996589273214340210e-02	3.801496233791112900e-03	-1.574327796697616577e-01	8.082801103591918945e-02	-1.715112775564193726e-01	1.981573849916458130e-01	-9.785132110118865967e-02	-4.965898115187883377e-03	9.352693706750869751e-02	3.635504096746444702e-02
-1.001976355910301208e-01	7.669639587402343750e-02	5.201552435755729675e-02	2.700087428092956543e-01	2.118834294378757477e-02	-5.663126334547996521e-02	-8.477722853422164917e-02	9.727138280868530273e-02	-8.382367901504039764e-03	-1.135666593909263611e-01	1.608509272336959839e-01	1.184404194355010986e-01	1.566798686981201172e-01	-7.676979992538690567e-03	4.270016402006149292e-02
-9.744150936603546143e-02	-1.296482831239700317e-01	-1.239879243075847626e-02	1.855848357081413269e-02	-2.284491062164306641e-02	-1.009282022714614868e-01	7.055556029081344604e-02	4.106458649039268494e-02	-6.035594642162322998e-02	-1.043885275721549988e-01	-1.532001048326492310e-01	4.817606508731842041e-02	7.467575371265411377e-02	-1.860609161667525768e-03	3.278955444693565369e-02
-9.364669770002365112e-02	-1.809429824352264404e-01	-1.568255946040153503e-02	-1.347039826214313507e-02	5.973972380161285400e-03	-5.848481878638267517e-02	-5.189557373523712158e-02	-3.990079089999198914e-02	2.690394036471843719e-02	3.291362524032592773e-02	5.178750306367874146e-02	-1.781906234100461006e-03	1.922948169521987438e-03	3.529559448361396790e-02	-4.709535860456526279e-04
-9.947066009044647217e-02	8.559655398130416870e-02	-1.963858157396316528e-01	-5.146042443811893463e-03	-2.873218990862369537e-02	3.527766466140747070e-02	3.702211426571011543e-03	-5.826206132769584656e-02	-5.298026651144027710e-02	1.265548728406429291e-02	-9.924994409084320068e-02	7.643856108188629150e-02	-3.946479875594377518e-03	-6.800348311662673950e-02	1.005024369806051254e-02
-9.972835332155227661e-02	-5.728941038250923157e-02	1.164532150141894817e-03	-2.283337898552417755e-02	-8.941999077796936035e-02	1.752964705228805542e-01	7.918696850538253784e-02	-1.626298427581787109e-01	5.423834919929504395e-02	1.800755560398101807e-01	-3.383423760533332825e-02	3.943570330739021301e-02	2.784142494201660156e-01	1.194428130984306335e-01	-1.088062301278114319e-01
-1.063553839921951294e-01	6.921559572219848633e-02	2.080408483743667603e-01	-7.342543452978134155e-02	1.763515174388885498e-01	-5.611616000533103943e-02	6.127767637372016907e-02	-1.789846867322921753e-01	-1.116973087191581726e-01	5.425352230668067932e-02	4.038978368043899536e-02	-1.916505545377731323e-01	1.254186034202575684e-01	6.859276443719863892e-02	6.871620565652847290e-02
-9.730846434831619263e-02	-1.349723786115646362e-01	-3.723482042551040649e-02	3.166849538683891296e-02	4.175714775919914246e-02	-8.143801242113113403e-02	1.949654072523117065e-01	5.183657631278038025e-02	6.802517175674438477e-02	5.463999882340431213e-02	-4.301572218537330627e-03	-7.239108532667160034e-02	1.697570271790027618e-02	-1.546490471810102463e-02	8.058656007051467896e-02
-9.557868540287017822e-02	-1.378565728664398193e-01	-1.682972908020019531e-02	-1.662165974266827106e-03	-2.648654952645301819e-02	-9.425739943981170654e-02	6.581720709800720215e-02	-1.690089106559753418e-01	3.114995732903480530e-02	-2.066969871520996094e-02	1.702432520687580109e-02	-4.617675766348838806e-02	-3.817678987979888916e-02	-4.838168621063232422e-02	-4.461381956934928894e-02
-9.572254866361618042e-02	-1.157653778791427612e-01	-2.745305374264717102e-02	2.824329398572444916e-02	1.683281175792217255e-02	-7.204449176788330078e-02	1.442870348691940308e-01	-1.112484484910964966e-01	5.254449322819709778e-02	-4.310525953769683838e-02	-6.537265330553054810e-02	9.152984619140625000e-02	1.099050277844071388e-03	4.806879535317420959e-02	8.303747326135635376e-02
-1.017507240176200867e-01	6.871048361063003540e-02	-2.869148179888725281e-02	-1.148616150021553040e-01	-2.352946251630783081e-01	-2.909171022474765778e-02	5.929908156394958496e-02	1.573819369077682495e-01	-2.147024124860763550e-01	-3.502381592988967896e-02	-5.037564784288406372e-02	7.337512075901031494e-02	-1.265074359253048897e-03	1.872758269309997559e-01	4.964049533009529114e-02
-9.428320080041885376e-02	-1.354417204856872559e-01	8.272815495729446411e-03	2.385292761027812958e-02	-8.242442272603511810e-03	-7.430975139141082764e-02	-1.742218136787414551e-01	-5.538051947951316833e-03	-1.018167193979024887e-02	1.547044795006513596e-02	8.455148199573159218e-04	5.404802784323692322e-02	5.126107111573219299e-02	-6.693445146083831787e-03	-1.268707681447267532e-02
-9.686828404664993286e-02	7.426099479198455811e-02	-1.982558220624923706e-01	-3.170682583004236221e-03	1.799695640802383423e-01	-3.648606827482581139e-03	2.222890593111515045e-02	2.509209886193275452e-02	3.848403692245483398e-02	-9.611283242702484131e-02	-1.264516962692141533e-03	7.569468766450881958e-02	-4.498184472322463989e-02	4.383683577179908752e-02	-5.853280797600746155e-02
-1.042621433734893799e-01	6.099966540932655334e-02	1.840294301509857178e-01	1.754992753267288208e-01	6.823045015335083008e-02	-6.831583380699157715e-02	-6.362004578113555908e-02	-1.517322100698947906e-02	-1.908881068229675293e-01	2.010526834055781364e-03	-2.508206292986869812e-02	-1.952427774667739868e-01	1.529918909072875977e-01	8.812237530946731567e-03	-3.321791067719459534e-02
-9.637255966663360596e-02	7.963524758815765381e-02	-1.717496514320373535e-01	5.302957445383071899e-02	8.758340775966644287e-02	4.953101277351379395e-02	-1.924332347698509693e-03	1.019738893955945969e-02	5.325353518128395081e-02	2.628941275179386139e-02	-8.831731975078582764e-02	1.133090700022876263e-03	3.478634357452392578e-02	-4.082480445504188538e-02	2.803635410964488983e-02
-1.061019226908683777e-01	-1.301048509776592255e-02	8.831021934747695923e-02	5.576367303729057312e-02	-2.309499494731426239e-02	3.766698539257049561e-01	6.932982802391052246e-02	-1.278860960155725479e-02	-9.938260912895202637e-02	-1.299702078104019165e-01	-1.411890983581542969e-01	2.314591221511363983e-02	2.776186168193817139e-01	1.167302802205085754e-01	-1.185707077383995056e-01
-1.057639271020889282e-01	8.270046114921569824e-02	1.476289331912994385e-01	-6.666278839111328125e-02	-5.550191178917884827e-02	-3.524509444832801819e-02	-7.368044555187225342e-02	1.785134151577949524e-02	1.306160390377044678e-01	-2.507601305842399597e-02	-3.894129768013954163e-02	-1.468869149684906006e-01	-4.083442315459251404e-02	-1.527885906398296356e-02	1.039780024439096451e-02
-1.033702343702316284e-01	4.658226296305656433e-02	9.960353374481201172e-02	2.222209423780441284e-01	9.922166168689727783e-02	1.302605494856834412e-02	-5.205357074737548828e-02	4.135281778872013092e-04	-9.018164128065109253e-02	1.557689346373081207e-02	-1.260346621274948120e-01	4.821802303194999695e-02	-7.068537920713424683e-02	-2.585342526435852051e-01	1.349274534732103348e-02
-9.477795660495758057e-02	-1.554774045944213867e-01	-6.355965044349431992e-03	-3.065563924610614777e-02	-2.320274477824568748e-03	2.243204414844512939e-02	8.106533437967300415e-03	-5.485361907631158829e-03	-7.122739404439926147e-02	-4.912284016609191895e-02	-1.642951183021068573e-02	-3.334269672632217407e-02	9.506576508283615112e-02	3.177214413881301880e-02	-7.037246599793434143e-03
-1.041858941316604614e-01	4.901642724871635437e-02	1.881349086761474609e-01	2.629276830703020096e-03	2.207450568675994873e-02	1.956734210252761841e-01	-5.738193169236183167e-02	-1.309214830398559570e-01	5.612225830554962158e-02	-4.862225800752639771e-02	1.449161618947982788e-01	2.058826237916946411e-01	-6.669452041387557983e-02	-1.336530447006225586e-01	-4.366984590888023376e-02
-1.014385446906089783e-01	-4.612392559647560120e-02	-6.257595028728246689e-03	6.506688147783279419e-02	5.844650417566299438e-02	1.481245607137680054e-01	7.974769175052642822e-02	-5.714906007051467896e-02	2.003025263547897339e-02	-8.641435950994491577e-02	-2.218966186046600342e-02	2.825243771076202393e-02	-5.980410613119602203e-03	-4.802919924259185791e-02	-2.706299908459186554e-02
-1.019275709986686707e-01	-9.805458039045333862e-02	-2.528023440390825272e-03	-2.206768654286861420e-02	-6.094220653176307678e-02	1.697291433811187744e-01	2.995367646217346191e-01	1.458646506071090698e-01	-1.148837730288505554e-01	-1.631249487400054932e-01	6.046377122402191162e-02	-6.091985478997230530e-02	-9.345711767673492432e-02	-1.146302819252014160e-01	-6.680992990732192993e-02
-9.670515358448028564e-02	-1.625915020704269409e-01	-2.481849864125251770e-03	-4.520184919238090515e-02	-1.349300728179514408e-03	-2.573280408978462219e-02	-3.020944632589817047e-02	7.099823653697967529e-02	4.214366152882575989e-02	-2.898849919438362122e-02	2.248373813927173615e-02	-5.621459335088729858e-02	-8.263271301984786987e-02	-7.671217899769544601e-03	-7.041502743959426880e-03
-9.790167957544326782e-02	7.039222121238708496e-02	-1.774167567491531372e-01	-3.065176308155059814e-02	1.744043976068496704e-01	9.052980691194534302e-02	-3.136295452713966370e-02	-2.621344476938247681e-02	-1.041591726243495941e-02	-1.250211596488952637e-01	-2.442165464162826538e-02	-5.774322524666786194e-02	-1.320297718048095703e-01	-9.654930979013442993e-02	1.349056810140609741e-01
-9.792804718017578125e-02	5.769139528274536133e-02	-9.987217187881469727e-02	9.300402551889419556e-02	-6.949677597731351852e-03	-3.404668346047401428e-02	9.231559932231903076e-02	5.160513147711753845e-02	1.609171479940414429e-01	1.343503147363662720e-01	-1.734616011381149292e-01	-1.384260654449462891e-01	-9.630931913852691650e-02	-7.621422410011291504e-02	-1.551136225461959839e-01
-9.476174414157867432e-02	-1.110036522150039673e-01	-1.526500005275011063e-02	-3.676902130246162415e-02	-9.109597653150558472e-02	-9.239159524440765381e-02	1.616749167442321777e-02	-1.986319273710250854e-01	-8.253418840467929840e-03	2.224889211356639862e-02	-1.059062080457806587e-03	-4.505279660224914551e-02	3.057709522545337677e-02	-2.214481681585311890e-02	4.315280541777610779e-02
-9.417848289012908936e-02	6.193256750702857971e-02	-1.422626525163650513e-01	1.917927898466587067e-02	-1.250294223427772522e-02	-4.498282819986343384e-02	6.364709883928298950e-02	-2.036240696907043457e-02	2.362496964633464813e-02	-7.819373160600662231e-02	1.323003172874450684e-01	2.130920812487602234e-02	-5.405363161116838455e-03	6.362792104482650757e-02	1.635468006134033203e-02
-9.548019617795944214e-02	-1.779708117246627808e-01	-8.975042030215263367e-03	-2.999478019773960114e-02	4.545003920793533325e-02	5.566985532641410828e-02	-5.788084492087364197e-02	1.256971210241317749e-01	-4.598109424114227295e-02	-4.915640503168106079e-02	-4.440484568476676941e-02	2.092318236827850342e-02	2.757432311773300171e-02	1.070784498006105423e-02	2.980512753129005432e-02
-9.977434575557708740e-02	5.892081186175346375e-02	-9.230908751487731934e-02	9.639902040362358093e-03	-1.274359226226806641e-01	-1.662229187786579132e-02	4.402523860335350037e-02	-8.202790468931198120e-02	1.435073465108871460e-02	5.877543985843658447e-02	9.935144335031509399e-02	2.146081533282995224e-03	-2.864263765513896942e-02	-4.906255006790161133e-02	-3.847812861204147339e-02
-1.027446687221527100e-01	7.624021172523498535e-02	1.120918523520231247e-02	8.831836283206939697e-02	-1.509995460510253906e-01	6.561069935560226440e-02	-8.483945578336715698e-02	-1.304500848054885864e-01	3.499194234609603882e-02	-6.071432679891586304e-02	1.464422196149826050e-01	-4.895902425050735474e-02	2.498662322759628296e-01	-1.350328773260116577e-01	5.197114497423171997e-02
-1.007124558091163635e-01	-9.498898684978485107e-02	1.600779406726360321e-02	-6.713904440402984619e-02	9.510654956102371216e-02	2.613145112991333008e-01	5.298715829849243164e-02	2.186571434140205383e-02	-1.953593045473098755e-01	-6.295756995677947998e-02	-4.816478863358497620e-02	-7.176841050386428833e-02	1.176497116684913635e-01	7.941282540559768677e-02	-1.130634639412164688e-02
-1.058567389845848083e-01	5.670538917183876038e-02	9.846317023038864136e-02	2.081715762615203857e-01	-6.757875531911849976e-02	-1.148305535316467285e-01	3.380669280886650085e-02	2.123793512582778931e-01	-1.718706488609313965e-01	-2.019357532262802124e-01	2.760044531896710396e-03	-1.770434081554412842e-01	2.421746402978897095e-02	-2.580799460411071777e-01	-1.511664241552352905e-01
-9.994039684534072876e-02	-5.237572267651557922e-02	-3.030188940465450287e-02	1.411070674657821655e-01	-2.770690061151981354e-02	1.953638531267642975e-02	1.266712099313735962e-01	9.288331866264343262e-02	7.042742520570755005e-02	-1.118599325418472290e-01	-1.744727045297622681e-01	-6.401036866009235382e-03	1.090899556875228882e-01	-1.459762454032897949e-01	-1.650056093931198120e-01
-9.939632564783096313e-02	8.044686913490295410e-02	-1.665522307157516479e-01	-3.347875922918319702e-02	-1.193663105368614197e-01	2.643955498933792114e-02	-2.088110893964767456e-02	-2.552646957337856293e-02	-8.814702183008193970e-02	2.117055468261241913e-02	-3.291779011487960815e-02	1.364665105938911438e-02	2.119231596589088440e-02	-9.942702949047088623e-02	4.783578217029571533e-02
-9.181451052427291870e-02	-1.824584603309631348e-01	-1.307924278080463409e-02	-4.180047288537025452e-02	7.577048614621162415e-03	-7.718593627214431763e-02	-1.775113046169281006e-01	-3.451743349432945251e-02	1.008456572890281677e-02	-1.162463147193193436e-02	6.200802046805620193e-03	5.095251370221376419e-03	3.772788448259234428e-03	1.403792575001716614e-02	-7.958821021020412445e-03
-1.020366400480270386e-01	5.088304728269577026e-02	3.272717446088790894e-02	-1.456688642501831055e-01	-2.295345254242420197e-02	-1.016464307904243469e-01	1.475215405225753784e-01	1.740464121103286743e-01	-4.927166271954774857e-03	2.739141285419464111e-01	-1.155362352728843689e-01	-4.547961056232452393e-02	6.654956191778182983e-02	-7.726808544248342514e-03	4.666358605027198792e-02
-1.017608344554901123e-01	1.159704197198152542e-02	1.786869317293167114e-01	-8.475835621356964111e-02	1.061371788382530212e-01	6.321826577186584473e-02	3.605883941054344177e-02	-2.101089507341384888e-01	-1.602706909179687500e-01	6.894896179437637329e-02	5.363681167364120483e-02	1.400205790996551514e-01	-1.765108257532119751e-01	-2.672278694808483124e-02	3.528797999024391174e-02
-1.053973138332366943e-01	5.980503559112548828e-02	1.294687092304229736e-01	8.599842339754104614e-02	-5.153755843639373779e-02	-1.123336516320705414e-02	-8.372586220502853394e-02	6.772116571664810181e-02	-2.525310218334197998e-02	-1.527518033981323242e-01	-6.109386309981346130e-02	9.316059201955795288e-02	3.940534591674804688e-02	6.032083183526992798e-02	1.056960150599479675e-01
-9.307835251092910767e-02	-1.894880682229995728e-01	-1.744995266199111938e-02	-2.943326905369758606e-02	2.312117069959640503e-02	-7.852952927350997925e-02	-9.915205091238021851e-02	-7.527264300733804703e-03	2.069273591041564941e-02	1.242756377905607224e-02	1.593445427715778351e-02	2.069955226033926010e-03	-1.014956273138523102e-02	-1.058064633980393410e-03	-2.485149540007114410e-02
-1.096552833914756775e-01	8.830883353948593140e-02	1.838217973709106445e-01	-1.679951250553131104e-01	1.281235069036483765e-01	-2.967997267842292786e-02	6.718355417251586914e-02	-6.985174864530563354e-02	-1.050625219941139221e-01	-1.021873503923416138e-01	1.065925285220146179e-01	1.964906789362430573e-02	-9.339028620161116123e-04	-1.147233247756958008e-01	-9.296967089176177979e-02
-1.084800511598587036e-01	6.826906651258468628e-02	2.033265233039855957e-01	-1.296351104974746704e-01	3.208687156438827515e-02	9.674745611846446991e-03	1.818936690688133240e-02	-9.582243114709854126e-02	7.843807339668273926e-02	4.039196297526359558e-02	-2.155345827341079712e-01	-1.577789783477783203e-01	1.516564339399337769e-01	6.666070222854614258e-02	7.346466928720474243e-02
-1.039668172597885132e-01	8.601240813732147217e-02	4.633598774671554565e-02	-1.770939119160175323e-02	5.830590799450874329e-02	9.115639328956604004e-02	-2.177701704204082489e-02	5.951844155788421631e-02	5.083320289850234985e-02	-2.459524758160114288e-02	-1.903394423425197601e-02	1.292291432619094849e-01	-1.702900677919387817e-01	-1.560598313808441162e-01	-8.106053620576858521e-02
-1.049690097570419312e-01	7.046835869550704956e-02	1.809345781803131104e-01	1.191162243485450745e-01	4.144360497593879700e-02	9.311024099588394165e-02	-6.507906317710876465e-02	-3.033739328384399414e-02	-6.379290670156478882e-02	1.814640760421752930e-01	-9.738548099994659424e-02	-7.513097673654556274e-02	-1.740936338901519775e-01	2.220288068056106567e-01	1.151594594120979309e-01
-1.052022203803062439e-01	6.111931055784225464e-02	6.439048796892166138e-02	2.338735014200210571e-01	2.994438074529170990e-02	-6.889136880636215210e-02	2.095837378874421120e-03	-4.114958271384239197e-02	-1.069214381277561188e-02	7.941628992557525635e-02	-1.962262839078903198e-01	1.201168522238731384e-01	-8.384832739830017090e-02	-9.490247815847396851e-03	1.106658428907394409e-01
-9.998116642236709595e-02	2.039877325296401978e-02	4.376422241330146790e-02	2.977356314659118652e-01	1.436971500515937805e-02	-1.688353270292282104e-01	-5.432502180337905884e-02	7.137454301118850708e-02	-1.399741619825363159e-01	1.189125776290893555e-01	1.475899368524551392e-01	-3.964446485042572021e-02	-7.533613592386245728e-02	2.176573425531387329e-01	5.747236777096986771e-03
-1.002084985375404358e-01	7.954944670200347900e-02	-8.533553779125213623e-02	-4.217643290758132935e-02	1.198484152555465698e-01	-3.491419553756713867e-02	6.017883121967315674e-02	1.294819116592407227e-01	3.572440519928932190e-02	1.924678124487400055e-02	1.396540645509958267e-02	3.103173151612281799e-02	1.801325939595699310e-02	-2.653031144291162491e-03	2.304823510348796844e-02
-9.777025133371353149e-02	-1.042842194437980652e-01	2.082869783043861389e-02	-3.860146924853324890e-02	5.125629529356956482e-02	2.080539464950561523e-01	-1.654386669397354126e-01	4.806843400001525879e-02	3.355716541409492493e-02	8.775050938129425049e-02	-1.434527039527893066e-01	-9.607073850929737091e-03	-5.951974168419837952e-02	-8.223409205675125122e-02	-1.461203955113887787e-02
-1.019103005528450012e-01	8.671076595783233643e-02	-7.325944304466247559e-02	-1.174783334136009216e-01	1.129657402634620667e-01	-3.813041374087333679e-02	-1.566699706017971039e-02	-5.187815427780151367e-02	8.993184566497802734e-02	-4.521354660391807556e-02	-4.131594672799110413e-02	-4.266967996954917908e-02	3.811590373516082764e-02	-4.174317046999931335e-02	2.299142330884933472e-01
-9.619058668613433838e-02	6.313768029212951660e-02	-1.249785348773002625e-01	3.527817502617835999e-02	7.962471991777420044e-02	2.284124493598937988e-02	-7.864867150783538818e-02	-3.863862156867980957e-02	8.502854034304618835e-04	1.686216890811920166e-02	1.423155814409255981e-01	-1.534306257963180542e-01	1.124335378408432007e-01	1.857865899801254272e-01	-5.905169993638992310e-02
-1.007009595632553101e-01	7.516346126794815063e-02	-1.312321573495864868e-01	-7.602021098136901855e-02	-1.610904335975646973e-01	-7.157172262668609619e-02	-3.855035081505775452e-02	-1.936252266168594360e-01	-9.300149232149124146e-02	4.600097984075546265e-02	-1.138332858681678772e-01	4.203705117106437683e-02	-4.520619660615921021e-02	1.347151994705200195e-01	-1.294217556715011597e-01
-1.001875400543212891e-01	-1.132487505674362183e-01	-4.163928329944610596e-03	6.681708991527557373e-02	-4.600565880537033081e-02	1.763418167829513550e-01	3.313385546207427979e-01	-1.129601299762725830e-01	2.431528642773628235e-02	6.325863301753997803e-02	-4.059148952364921570e-02	-1.118210423737764359e-02	-2.038956433534622192e-01	-1.425022631883621216e-01	-5.723150447010993958e-03
-9.407982230186462402e-02	8.001462370157241821e-02	-2.035376876592636108e-01	8.062360808253288269e-03	1.538903564214706421e-01	2.830612286925315857e-02	-1.518529467284679413e-02	-3.077569231390953064e-02	4.123907536268234253e-03	-2.103170193731784821e-02	9.613325446844100952e-02	-7.903409004211425781e-02	3.125510737299919128e-02	8.903456619009375572e-04	-6.428617238998413086e-02
-9.406865388154983521e-02	-1.791881918907165527e-01	-8.276556618511676788e-03	-2.965002134442329407e-02	5.700163543224334717e-02	-1.148957666009664536e-02	-1.332757174968719482e-01	5.545758455991744995e-02	-6.686314940452575684e-03	2.468170970678329468e-02	-2.053959295153617859e-02	1.643142849206924438e-02	1.258462551049888134e-03	-5.143086309544742107e-04	5.937817506492137909e-03
-9.649397432804107666e-02	8.027059584856033325e-02	-1.631885468959808350e-01	2.333489991724491119e-02	2.121080607175827026e-01	1.130969263613224030e-02	-2.103595063090324402e-02	4.660079628229141235e-02	2.096206415444612503e-03	1.953577436506748199e-02	2.901989594101905823e-02	-3.907585889101028442e-02	4.627696797251701355e-02	1.089777275919914246e-01	1.461862493306398392e-02
-1.033540964126586914e-01	7.794149965047836304e-02	1.151292398571968079e-01	2.309635728597640991e-01	3.235552087426185608e-02	-1.148650571703910828e-01	-4.997650533914566040e-02	5.795754119753837585e-02	-1.963078230619430542e-01	-4.085578769445419312e-02	-6.560879200696945190e-02	1.799988597631454468e-01	-1.434233337640762329e-01	1.321845650672912598e-01	-1.391446888446807861e-01
-9.632616490125656128e-02	7.860046625137329102e-02	-1.156974583864212036e-01	6.384550780057907104e-02	9.553812444210052490e-02	1.855529658496379852e-02	-7.110892981290817261e-02	2.114013768732547760e-03	3.175996243953704834e-02	7.492856681346893311e-02	5.438266322016716003e-02	1.752818352542817593e-03	5.380610749125480652e-02	1.135067045688629150e-01	-7.447752356529235840e-02
-1.018153354525566101e-01	4.603661969304084778e-02	-1.248271390795707703e-01	-8.571246266365051270e-02	-1.614183336496353149e-01	-3.166115283966064453e-02	3.251006454229354858e-02	-8.094025403261184692e-02	-8.872838318347930908e-02	-6.665214151144027710e-02	-7.572681456804275513e-02	8.980319648981094360e-02	-1.394795030355453491e-01	-1.250675879418849945e-02	1.468008477240800858e-02
-1.032287180423736572e-01	9.694153815507888794e-02	-2.908578841015696526e-03	-2.182907015085220337e-01	1.721379160881042480e-01	-7.366006076335906982e-02	5.815453082323074341e-02	1.759700179100036621e-01	6.568897515535354614e-02	-1.107818484306335449e-01	-7.642934471368789673e-02	-1.505851596593856812e-01	-7.711775600910186768e-02	7.467343658208847046e-02	7.080453447997570038e-03
-1.065864339470863342e-01	5.720582604408264160e-02	1.948722153902053833e-01	-7.787132263183593750e-02	1.477451622486114502e-01	-5.413819104433059692e-02	6.531537324190139771e-02	-1.822435259819030762e-01	-1.397956609725952148e-01	-1.097136139869689941e-01	8.924543112516403198e-02	1.279107034206390381e-01	1.993209309875965118e-02	-5.507615953683853149e-02	-3.446640679612755775e-03
-9.265841543674468994e-02	-1.751434653997421265e-01	-2.025607787072658539e-02	-2.595988102257251740e-03	5.127311125397682190e-02	-8.045714930631220341e-04	-6.226925179362297058e-02	9.989995509386062622e-02	5.121784750372171402e-03	1.036263331770896912e-01	7.005699723958969116e-02	3.461425006389617920e-02	-7.322895526885986328e-02	1.146115548908710480e-02	-1.859322073869407177e-03
-9.542080014944076538e-02	-1.547558456659317017e-01	-2.360189519822597504e-02	5.806864798069000244e-02	-6.534500978887081146e-03	-7.163854315876960754e-03	2.721503973007202148e-01	6.798323243856430054e-02	5.726485326886177063e-02	6.443656980991363525e-02	6.527258455753326416e-02	-4.411538690328598022e-02	1.094646845012903214e-02	2.960695512592792511e-02	-2.624839730560779572e-02
-9.617692232131958008e-02	8.400613814592361450e-02	-1.936585009098052979e-01	-6.250149570405483246e-03	6.989545375108718872e-02	5.721643567085266113e-03	-6.330724805593490601e-03	3.107380308210849762e-02	-4.174800962209701538e-02	5.090944096446037292e-02	5.953476950526237488e-02	-6.513056810945272446e-03	5.078724771738052368e-02	-3.625847026705741882e-02	1.019463595002889633e-02
-1.049788594245910645e-01	8.304906636476516724e-02	5.656645819544792175e-02	-1.640451848506927490e-01	-2.389858067035675049e-01	4.443007335066795349e-02	-7.840061932802200317e-02	1.193439811468124390e-01	-1.223825477063655853e-02	1.019432842731475830e-01	3.284224867820739746e-02	1.366260647773742676e-01	1.669918745756149292e-01	-1.151861101388931274e-01	-3.699916601181030273e-02
-9.868630021810531616e-02	8.215790241956710815e-02	-9.707875549793243408e-02	1.376012861728668213e-01	1.388198435306549072e-01	1.623931713402271271e-02	-4.843015596270561218e-02	5.262994766235351562e-02	1.130281016230583191e-02	3.778235986828804016e-02	4.424711223691701889e-03	-2.095900475978851318e-02	1.682416908442974091e-02	-5.163656547665596008e-02	8.480735123157501221e-02
-9.740426391363143921e-02	9.016389399766921997e-02	-1.474756747484207153e-01	7.034499198198318481e-02	8.572756499052047729e-02	2.408424019813537598e-02	-9.561213850975036621e-02	8.399785496294498444e-03	4.017020016908645630e-02	-1.322972401976585388e-02	-2.936635166406631470e-02	-3.563411533832550049e-02	-7.874042540788650513e-02	6.455113738775253296e-02	1.021147053688764572e-02
-9.785865992307662964e-02	2.002363093197345734e-02	-2.186168543994426727e-02	1.725570708513259888e-01	1.872270740568637848e-02	2.384064793586730957e-01	8.567645400762557983e-02	-3.716270625591278076e-02	8.989029377698898315e-02	-4.444942995905876160e-02	3.172029852867126465e-01	-7.634723186492919922e-02	7.728370279073715210e-02	1.805804371833801270e-01	9.173929691314697266e-02
-9.979384392499923706e-02	5.984103679656982422e-02	-5.989267304539680481e-02	-3.894945234060287476e-02	-1.764608323574066162e-01	-2.952952124178409576e-02	-8.314014226198196411e-02	4.754667729139328003e-02	-5.578798055648803711e-02	-9.455468505620956421e-02	9.188339859247207642e-02	-3.511780407279729843e-03	-1.166689470410346985e-01	9.548252820968627930e-02	-7.699102908372879028e-02
-1.049434468150138855e-01	5.845416337251663208e-02	1.641098409891128540e-01	-8.518899790942668915e-03	3.210408240556716919e-02	-1.310225725173950195e-01	8.615318685770034790e-02	-9.180887788534164429e-02	1.344605237245559692e-01	5.034093931317329407e-02	5.061811208724975586e-02	-6.799745559692382812e-02	-9.547847509384155273e-02	-1.987753435969352722e-02	-2.295717298984527588e-01
-1.013745963573455811e-01	3.942378982901573181e-02	-9.149497747421264648e-02	-1.120824217796325684e-01	-2.214438915252685547e-01	-2.176503837108612061e-02	-4.737643059343099594e-03	-1.330705732107162476e-01	-1.559747606515884399e-01	-2.740937769412994385e-01	-4.498530551791191101e-02	-5.058288201689720154e-02	-7.116720080375671387e-02	1.151673570275306702e-01	-4.305647686123847961e-02
-9.708176553249359131e-02	-1.062218919396400452e-01	-2.149707637727260590e-02	2.858676761388778687e-02	-1.854398660361766815e-02	-8.187077194452285767e-02	-8.343760669231414795e-02	-5.610152706503868103e-02	5.596423521637916565e-02	-1.519521772861480713e-01	-5.628714337944984436e-02	-9.399947710335254669e-03	-3.974910452961921692e-02	-3.937162831425666809e-02	1.491279304027557373e-01
-9.829887002706527710e-02	7.933630794286727905e-02	-9.475814551115036011e-02	9.995894879102706909e-02	-3.750766441226005554e-02	9.170225262641906738e-02	-6.639271229505538940e-02	-3.619616851210594177e-02	7.452869415283203125e-02	2.267530746757984161e-02	-5.552818253636360168e-02	-1.913725398480892181e-02	-1.615663059055805206e-02	-6.091057881712913513e-02	-5.618408694863319397e-02
-1.007776707410812378e-01	8.432733267545700073e-02	-8.283563703298568726e-02	2.562934346497058868e-02	-4.028012230992317200e-02	1.287396103143692017e-01	-4.740872979164123535e-02	-9.946762770414352417e-02	7.258672267198562622e-02	9.603270143270492554e-02	-2.146127820014953613e-01	2.005861401557922363e-01	4.016991704702377319e-03	9.881404042243957520e-02	-1.784754395484924316e-01
-9.105507284402847290e-02	-1.669324934482574463e-01	-2.300198376178741455e-02	-1.525159459561109543e-02	-2.397251874208450317e-02	-1.262844651937484741e-01	9.313737973570823669e-03	-1.240491420030593872e-01	3.332263603806495667e-02	-4.020209889858961105e-03	1.576019078493118286e-02	3.266835701651871204e-04	2.482586540281772614e-02	2.369339764118194580e-02	3.293184854555875063e-04
-1.065719574689865112e-01	3.809507191181182861e-02	9.304562211036682129e-02	-4.252380505204200745e-02	-1.260530948638916016e-01	2.520525753498077393e-01	-9.897017478942871094e-02	-2.133223414421081543e-02	2.489262372255325317e-01	-9.046503901481628418e-02	8.635894209146499634e-02	-1.634506434202194214e-01	-3.197543323040008545e-01	4.913535341620445251e-02	1.959136575460433960e-01
-9.264313429594039917e-02	-1.881375163793563843e-01	-1.751124672591686249e-02	-2.905825152993202209e-02	1.871072687208652496e-02	-7.512912154197692871e-02	-1.051722019910812378e-01	-5.402390379458665848e-03	3.364746272563934326e-02	5.512980278581380844e-03	7.305745035409927368e-03	4.229303449392318726e-03	5.940871778875589371e-03	3.234712639823555946e-03	-2.847168780863285065e-02
-1.048633009195327759e-01	7.608785480260848999e-02	1.051750108599662781e-01	7.690056692808866501e-03	-1.414654403924942017e-01	7.320459187030792236e-02	-1.152660772204399109e-01	4.983460530638694763e-02	2.327303886413574219e-01	9.326806664466857910e-02	-1.704614013433456421e-01	-1.848956942558288574e-01	-5.976792424917221069e-02	1.592061072587966919e-01	-1.650659143924713135e-01
-9.381422400474548340e-02	-1.856523603200912476e-01	-3.959448076784610748e-03	-4.706517234444618225e-02	4.505594074726104736e-02	2.624286152422428131e-02	-2.089477628469467163e-01	1.239063516259193420e-01	-2.390718087553977966e-02	-1.709154099225997925e-01	-1.105205416679382324e-01	-1.508438773453235626e-02	1.035469919443130493e-01	1.673432067036628723e-02	5.120269581675529480e-02
-1.030855774879455566e-01	8.343014866113662720e-02	-1.017857119441032410e-01	1.229696534574031830e-02	-3.135662153363227844e-02	-9.643211215734481812e-02	-8.517875522375106812e-02	-9.448844194412231445e-02	-2.268776111304759979e-02	8.870540559291839600e-02	-6.994637101888656616e-02	8.937536925077438354e-02	8.529035001993179321e-02	-3.078667521476745605e-01	1.380416750907897949e-01
-1.029732674360275269e-01	6.471338868141174316e-02	3.752776980400085449e-02	6.338411569595336914e-02	-9.442648291587829590e-02	-7.978357374668121338e-02	-6.381234526634216309e-02	5.312698706984519958e-02	1.511745750904083252e-01	-1.171831693500280380e-02	-4.243907332420349121e-02	2.028077393770217896e-01	3.521358594298362732e-02	2.125239185988903046e-02	2.735166251659393311e-01
-9.390673786401748657e-02	-1.700727343559265137e-01	5.626420490443706512e-03	-5.743062123656272888e-02	6.509607285261154175e-02	4.419220983982086182e-02	-1.206412538886070251e-01	-2.198786288499832153e-02	-6.157751753926277161e-02	6.935269385576248169e-02	5.418083444237709045e-02	-2.927818335592746735e-02	2.737504616379737854e-02	6.675768643617630005e-03	-4.358346015214920044e-02
-1.045850887894630432e-01	3.966004028916358948e-02	7.888220995664596558e-02	1.084793508052825928e-01	-3.825098276138305664e-02	5.556414648890495300e-02	-2.386018633842468262e-03	-1.735868491232395172e-02	1.626232713460922241e-01	-3.189559327438473701e-03	-3.677500039339065552e-02	-1.077032759785652161e-01	-6.530553102493286133e-02	-1.181415840983390808e-01	2.054665982723236084e-01
-1.013580858707427979e-01	6.717060506343841553e-02	-7.871925085783004761e-02	-4.536754917353391647e-03	-8.628232032060623169e-02	-4.364237934350967407e-02	5.463447421789169312e-02	7.559294998645782471e-02	1.829659007489681244e-02	-3.810231760144233704e-02	1.445978041738271713e-02	-1.330154389142990112e-01	7.491165399551391602e-02	-5.850773304700851440e-02	5.279816687107086182e-03
-1.007874831557273865e-01	-6.051312014460563660e-02	-2.818964421749114990e-03	1.158334836363792419e-01	-6.604961305856704712e-02	-6.636043637990951538e-02	3.605647683143615723e-01	6.230036914348602295e-02	1.247871741652488708e-01	4.024268593639135361e-03	-4.460835456848144531e-02	1.964040845632553101e-01	1.187151372432708740e-01	2.093635946512222290e-01	2.515807449817657471e-01
-1.040665134787559509e-01	7.813188433647155762e-02	1.352884173393249512e-01	-9.691929072141647339e-02	2.978404052555561066e-02	-6.218590214848518372e-02	3.118260763585567474e-02	2.100257873535156250e-01	5.309388414025306702e-02	-3.683280944824218750e-02	1.081678271293640137e-01	1.159011572599411011e-01	-9.071216732263565063e-02	1.454317569732666016e-01	1.560889184474945068e-02
-9.596666693687438965e-02	-1.235919669270515442e-01	-6.143675185739994049e-03	4.618058353662490845e-02	-4.854806885123252869e-02	-1.566148698329925537e-01	1.086631417274475098e-01	-5.864029750227928162e-02	7.967603951692581177e-02	-4.821031168103218079e-02	-7.968238554894924164e-03	-5.616628099232912064e-03	-7.662835996598005295e-03	-5.304025113582611084e-02	-9.814745932817459106e-02
-9.450878947973251343e-02	-1.617153137922286987e-01	-1.475114375352859497e-02	-3.400534763932228088e-02	3.202979266643524170e-02	-7.523473352193832397e-03	-7.037699967622756958e-02	5.858044326305389404e-02	-2.339935861527919769e-02	6.765121361240744591e-05	-7.621700875461101532e-03	-2.569160657003521919e-03	1.386285480111837387e-02	-9.449950885027647018e-04	-9.074879810214042664e-03
-9.348812699317932129e-02	-1.875597685575485229e-01	-1.796119287610054016e-02	-2.141974493861198425e-02	2.915703505277633667e-02	-5.883788317441940308e-02	-1.005370840430259705e-01	3.347435966134071350e-02	2.262158133089542389e-02	1.751536689698696136e-02	3.964411094784736633e-02	-3.229109104722738266e-03	-1.950366050004959106e-02	1.035222597420215607e-02	-1.544480863958597183e-02
-9.449574351310729980e-02	-1.709264367818832397e-01	4.125457257032394409e-03	-6.873404979705810547e-02	4.397033154964447021e-02	1.867942214012145996e-01	-1.137310042977333069e-01	6.536182016134262085e-02	-8.733030408620834351e-02	4.486828297376632690e-02	6.879048049449920654e-02	3.395766764879226685e-02	-1.334057748317718506e-01	-3.880335018038749695e-02	5.785062164068222046e-02
-9.526924788951873779e-02	-1.083553209900856018e-01	1.990574225783348083e-02	1.783852465450763702e-02	-5.172537639737129211e-02	-1.314793080091476440e-01	-3.332496806979179382e-02	-1.304124593734741211e-01	7.114066183567047119e-02	4.942291602492332458e-02	1.143850944936275482e-02	3.503248840570449829e-02	8.114560507237911224e-03	2.840096876025199890e-02	6.378748267889022827e-02
-1.035511195659637451e-01	7.710250467061996460e-02	5.883126333355903625e-02	-1.181510612368583679e-01	-1.791930794715881348e-01	-2.050231397151947021e-02	-4.374536871910095215e-02	2.246104925870895386e-01	1.195801421999931335e-02	-1.478822380304336548e-01	-9.886784851551055908e-02	-9.984883666038513184e-02	-6.099858880043029785e-02	8.420736342668533325e-02	-9.065923094749450684e-02
Binary file test-data/tl.diffmap.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad has changed
Binary file test-data/tl.dpt.diffmap.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad has changed
--- a/test-data/tl.dpt.diffmap.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.obs.tabular	Mon Mar 04 10:13:44 2019 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-index	paul15_clusters	dpt_groups	dpt_order	dpt_order_indices
-578	13Baso	2	53	27
-2242	3Ery	1	30	46
-2690	10GMP	2	66	45
-70	5Ery	1	32	65
-758	15Mo	2	67	8
-465	16Neu	2	68	80
-245	16Neu	2	69	87
-2172	10GMP	2	70	90
-2680	10GMP	0	4	36
-1790	7MEP	2	71	59
-855	11DC	2	72	82
-2721	10GMP	2	73	30
-104	2Ery	1	38	62
-1106	2Ery	1	40	32
-2367	15Mo	3	93	35
-124	2Ery	1	41	37
-2477	8Mk	2	74	31
-1968	2Ery	1	42	78
-563	1Ery	1	43	28
-276	2Ery	1	44	56
-192	16Neu	2	75	42
-2409	2Ery	1	45	44
-2054	15Mo	3	95	75
-720	8Mk	2	76	48
-2225	14Mo	3	97	98
-878	6Ery	1	29	54
-156	7MEP	2	77	79
-1244	8Mk	0	0	40
-10	2Ery	1	18	83
-1108	6Ery	2	65	25
-353	5Ery	1	11	1
-182	5Ery	1	16	97
-2053	3Ery	1	13	3
-2291	16Neu	3	92	96
-2056	10GMP	2	79	95
-1047	2Ery	1	14	94
-1947	14Mo	0	8	92
-1390	3Ery	1	15	60
-2317	14Mo	2	90	12
-2348	11DC	2	82	69
-953	5Ery	1	27	13
-628	9GMP	2	83	15
-2691	5Ery	1	20	17
-1499	16Neu	3	96	18
-1083	2Ery	1	21	19
-831	14Mo	0	2	21
-15	7MEP	0	1	86
-2005	7MEP	2	87	66
-1662	3Ery	1	23	84
-2457	7MEP	2	64	89
-757	7MEP	2	81	70
-1642	14Mo	2	91	68
-2520	10GMP	2	89	67
-1393	7MEP	2	88	0
-2170	6Ery	1	25	73
-988	14Mo	2	86	76
-1338	2Ery	1	19	77
-2189	16Neu	2	85	81
-446	13Baso	2	84	85
-2276	14Mo	0	9	88
-317	2Ery	1	37	91
-1540	16Neu	3	99	93
-2164	4Ery	1	12	72
-227	15Mo	2	78	64
-906	12Baso	2	63	49
-716	15Mo	0	3	29
-912	14Mo	1	47	2
-2688	11DC	2	52	4
-1678	7MEP	2	51	5
-1063	6Ery	1	39	6
-1041	5Ery	1	50	7
-2279	15Mo	3	98	9
-558	13Baso	2	62	10
-2196	14Mo	2	54	11
-1270	13Baso	3	94	16
-2259	3Ery	1	22	20
-2410	13Baso	2	55	23
-886	7MEP	2	56	26
-2072	13Baso	1	17	63
-443	5Ery	1	26	34
-910	13Baso	0	5	99
-2608	15Mo	2	57	50
-2645	1Ery	1	10	39
-616	6Ery	1	28	41
-1866	2Ery	1	48	58
-923	7MEP	2	58	57
-1716	4Ery	1	46	55
-2476	11DC	0	6	47
-1872	10GMP	2	59	53
-1009	4Ery	1	49	52
-1680	6Ery	0	7	38
-1490	14Mo	2	60	51
-1454	2Ery	1	36	33
-2580	9GMP	2	61	14
-958	1Ery	1	35	74
-2626	2Ery	1	34	22
-1677	3Ery	1	33	43
-982	4Ery	1	31	24
-202	2Ery	1	24	71
-891	10GMP	2	80	61
Binary file test-data/tl.draw_graph.pp.neighbors_umap_euclidean.recipe_weinreb17.paul15_subsample.h5ad has changed
Binary file test-data/tl.leiden.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad has changed
Binary file test-data/tl.louvain.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad has changed
Binary file test-data/tl.paga.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad has changed
Binary file test-data/tl.pca.krumsiek11.h5ad has changed
Binary file test-data/tl.rank_genes_groups.krumsiek11.h5ad has changed
Binary file test-data/tl.rank_genes_groups.liblinear.krumsiek11.h5ad has changed
Binary file test-data/tl.rank_genes_groups.newton-cg.pbmc68k_reduced.h5ad has changed
Binary file test-data/tl.score_genes.krumsiek11.h5ad has changed
--- a/test-data/tl.score_genes.krumsiek11.obs.tabular	Mon Mar 04 10:13:44 2019 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,641 +0,0 @@
-index	cell_type	score
-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/tl.score_genes_cell_cycle.krumsiek11.h5ad has changed
--- a/test-data/tl.score_genes_cell_cycle.krumsiek11.obs.tabular	Mon Mar 04 10:13:44 2019 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,641 +0,0 @@
-index	cell_type	S_score	G2M_score	phase
-0	progenitor	0.2681	0.20055	S
-1	progenitor	0.24346666	0.15855001	S
-2	progenitor	0.2276	0.13482499	S
-3	progenitor	0.21043333	0.12637499	S
-4	progenitor	0.19113334	0.1272	S
-5	progenitor	0.17531666	0.13072497	S
-6	progenitor	0.16073334	0.13242501	S
-7	progenitor	0.15353334	0.13672501	S
-8	progenitor	0.14314999	0.1399	S
-9	progenitor	0.1337	0.14515	G2M
-10	progenitor	0.12695001	0.15165001	G2M
-11	progenitor	0.11726667	0.16077498	G2M
-12	progenitor	0.11081667	0.16735	G2M
-13	progenitor	0.104849994	0.17429999	G2M
-14	progenitor	0.09816667	0.18152499	G2M
-15	progenitor	0.095350005	0.186625	G2M
-16	progenitor	0.09528333	0.19447501	G2M
-17	progenitor	0.09463333	0.199675	G2M
-18	progenitor	0.0947	0.205275	G2M
-19	progenitor	0.0947	0.20802501	G2M
-20	progenitor	0.097733326	0.21100001	G2M
-21	progenitor	0.09881667	0.21964999	G2M
-22	progenitor	0.10131666	0.22662501	G2M
-23	progenitor	0.104849994	0.23022501	G2M
-24	progenitor	0.112266675	0.23387499	G2M
-25	progenitor	0.120283335	0.2393	G2M
-26	progenitor	0.12826668	0.24174997	G2M
-27	progenitor	0.13323334	0.24710001	G2M
-28	progenitor	0.13971666	0.25280002	G2M
-29	progenitor	0.14393334	0.256775	G2M
-30	progenitor	0.15066667	0.259775	G2M
-31	progenitor	0.15316668	0.26244998	G2M
-32	progenitor	0.15993333	0.26487502	G2M
-33	progenitor	0.16430001	0.266275	G2M
-34	progenitor	0.16598332	0.270625	G2M
-35	progenitor	0.17068332	0.2715	G2M
-36	progenitor	0.17713334	0.276475	G2M
-37	progenitor	0.17893334	0.27514997	G2M
-38	progenitor	0.18013333	0.278025	G2M
-39	progenitor	0.18251666	0.279675	G2M
-40	progenitor	0.18876666	0.27925	G2M
-41	progenitor	0.19041668	0.281775	G2M
-42	progenitor	0.19083333	0.2824	G2M
-43	progenitor	0.19411668	0.281725	G2M
-44	progenitor	0.19639999	0.2844	G2M
-45	progenitor	0.19843334	0.285375	G2M
-46	progenitor	0.20406666	0.284075	G2M
-47	progenitor	0.20673332	0.28625	G2M
-48	progenitor	0.20769998	0.2885	G2M
-49	progenitor	0.21186668	0.28935	G2M
-50	progenitor	0.21285	0.28867498	G2M
-51	progenitor	0.21443334	0.28855002	G2M
-52	progenitor	0.21568334	0.28705	G2M
-53	progenitor	0.21788335	0.29035	G2M
-54	progenitor	0.22551665	0.28815	G2M
-55	progenitor	0.22586668	0.28689998	G2M
-56	progenitor	0.23069999	0.2816	G2M
-57	progenitor	0.23118332	0.282375	G2M
-58	progenitor	0.23160002	0.28230003	G2M
-59	progenitor	0.23546667	0.28329998	G2M
-60	progenitor	0.23661667	0.28195	G2M
-61	progenitor	0.24134998	0.27899998	G2M
-62	progenitor	0.24546666	0.27855	G2M
-63	progenitor	0.24836665	0.27609998	G2M
-64	progenitor	0.25375	0.27562502	G2M
-65	progenitor	0.25834998	0.273525	G2M
-66	progenitor	0.26393333	0.27015	G2M
-67	progenitor	0.26746666	0.26622498	S
-68	progenitor	0.2706333	0.267025	S
-69	progenitor	0.27618334	0.2651	S
-70	progenitor	0.28033334	0.263975	S
-71	progenitor	0.2868167	0.2622	S
-72	progenitor	0.29141667	0.26174998	S
-73	progenitor	0.29198334	0.26385	S
-74	progenitor	0.29348332	0.26275003	S
-75	progenitor	0.29788333	0.263575	S
-76	progenitor	0.30125	0.26232502	S
-77	progenitor	0.29955	0.261825	S
-78	progenitor	0.30065	0.2623	S
-79	progenitor	0.30573332	0.2588	S
-80	Mo	0.30818334	0.25555003	S
-81	Mo	0.31073332	0.25422502	S
-82	Mo	0.31378332	0.25410002	S
-83	Mo	0.31268334	0.25304997	S
-84	Mo	0.31355	0.25059998	S
-85	Mo	0.3157	0.251275	S
-86	Mo	0.3139333	0.25072497	S
-87	Mo	0.3151833	0.25165	S
-88	Mo	0.3149333	0.25079998	S
-89	Mo	0.31440002	0.25172502	S
-90	Mo	0.31251666	0.254725	S
-91	Mo	0.31613332	0.25347498	S
-92	Mo	0.31813332	0.25372502	S
-93	Mo	0.31543335	0.25340003	S
-94	Mo	0.31663334	0.257025	S
-95	Mo	0.31793332	0.25435	S
-96	Mo	0.3184333	0.2527	S
-97	Mo	0.31743336	0.25052497	S
-98	Mo	0.3164667	0.24747501	S
-99	Mo	0.31841668	0.2466	S
-100	Mo	0.31648335	0.24679999	S
-101	Mo	0.31504998	0.2501	S
-102	Mo	0.31489998	0.250375	S
-103	Mo	0.31256667	0.25195	S
-104	Mo	0.31425	0.250675	S
-105	Mo	0.31441668	0.248675	S
-106	Mo	0.31828332	0.24724999	S
-107	Mo	0.32236665	0.25105	S
-108	Mo	0.32341668	0.2527	S
-109	Mo	0.32334998	0.25145	S
-110	Mo	0.32061666	0.2516	S
-111	Mo	0.3239333	0.24855	S
-112	Mo	0.3217833	0.248275	S
-113	Mo	0.3194833	0.25055	S
-114	Mo	0.32711667	0.24814999	S
-115	Mo	0.32861665	0.244375	S
-116	Mo	0.33048332	0.244225	S
-117	Mo	0.33173332	0.24415	S
-118	Mo	0.32801664	0.24665	S
-119	Mo	0.3321833	0.245675	S
-120	Mo	0.32905	0.24717501	S
-121	Mo	0.33133334	0.245975	S
-122	Mo	0.33201668	0.24515	S
-123	Mo	0.33265	0.24475	S
-124	Mo	0.32968336	0.24344999	S
-125	Mo	0.32461664	0.245175	S
-126	Mo	0.32303333	0.24647498	S
-127	Mo	0.32363334	0.24472499	S
-128	Mo	0.3234	0.24480002	S
-129	Mo	0.32494998	0.24702501	S
-130	Mo	0.32526666	0.24975002	S
-131	Mo	0.32278332	0.24785002	S
-132	Mo	0.3201	0.24885	S
-133	Mo	0.32130003	0.25125	S
-134	Mo	0.32468334	0.2521	S
-135	Mo	0.32040003	0.25545	S
-136	Mo	0.31931666	0.25560004	S
-137	Mo	0.31963333	0.25262502	S
-138	Mo	0.31644997	0.253575	S
-139	Mo	0.31913334	0.251575	S
-140	Mo	0.32393336	0.24987501	S
-141	Mo	0.32683334	0.2504	S
-142	Mo	0.32791668	0.24740002	S
-143	Mo	0.329	0.247075	S
-144	Mo	0.32784998	0.24852501	S
-145	Mo	0.32766664	0.24740002	S
-146	Mo	0.32676667	0.2485	S
-147	Mo	0.3254	0.24985	S
-148	Mo	0.32301664	0.24805	S
-149	Mo	0.32369998	0.25047502	S
-150	Mo	0.3267	0.250475	S
-151	Mo	0.3280667	0.252875	S
-152	Mo	0.32885	0.25315002	S
-153	Mo	0.32688335	0.2515	S
-154	Mo	0.32666668	0.25325	S
-155	Mo	0.3258167	0.25137502	S
-156	Mo	0.32818332	0.2465	S
-157	Mo	0.32963336	0.24692501	S
-158	Mo	0.3318167	0.24837498	S
-159	Mo	0.33176666	0.247625	S
-0	progenitor	0.26751667	0.2007	S
-1	progenitor	0.24345	0.157325	S
-2	progenitor	0.22616667	0.139575	S
-3	progenitor	0.20503333	0.13499999	S
-4	progenitor	0.18988334	0.1349	S
-5	progenitor	0.17425	0.134875	S
-6	progenitor	0.16213334	0.13455	S
-7	progenitor	0.14678332	0.14125	S
-8	progenitor	0.1336	0.146375	G2M
-9	progenitor	0.1237	0.15342501	G2M
-10	progenitor	0.11621666	0.16017501	G2M
-11	progenitor	0.10858333	0.1669	G2M
-12	progenitor	0.09945001	0.17515	G2M
-13	progenitor	0.09445	0.182875	G2M
-14	progenitor	0.091649994	0.18862501	G2M
-15	progenitor	0.08881667	0.196275	G2M
-16	progenitor	0.08878334	0.20034999	G2M
-17	progenitor	0.09183334	0.208125	G2M
-18	progenitor	0.094516665	0.21419999	G2M
-19	progenitor	0.094349995	0.223	G2M
-20	progenitor	0.09643334	0.228775	G2M
-21	progenitor	0.09933333	0.232925	G2M
-22	progenitor	0.10111666	0.2406	G2M
-23	progenitor	0.10683333	0.24365	G2M
-24	progenitor	0.11198333	0.24744998	G2M
-25	progenitor	0.1187	0.24800001	G2M
-26	progenitor	0.12223333	0.253475	G2M
-27	progenitor	0.12516668	0.25777498	G2M
-28	progenitor	0.13296667	0.261875	G2M
-29	progenitor	0.13638332	0.2664	G2M
-30	progenitor	0.14060001	0.27075002	G2M
-31	progenitor	0.14363334	0.27295002	G2M
-32	progenitor	0.14310001	0.277825	G2M
-33	progenitor	0.14686668	0.2806	G2M
-34	progenitor	0.14746666	0.28705	G2M
-35	progenitor	0.1488	0.291375	G2M
-36	progenitor	0.14686665	0.295125	G2M
-37	progenitor	0.14803334	0.29590002	G2M
-38	progenitor	0.14774999	0.30242503	G2M
-39	progenitor	0.14461668	0.30615002	G2M
-40	progenitor	0.14245	0.3091	G2M
-41	progenitor	0.14150001	0.313175	G2M
-42	progenitor	0.13565	0.316325	G2M
-43	progenitor	0.12808332	0.3198	G2M
-44	progenitor	0.12049997	0.3262	G2M
-45	progenitor	0.11080001	0.33355	G2M
-46	progenitor	0.09916668	0.33852503	G2M
-47	progenitor	0.08836666	0.34457502	G2M
-48	progenitor	0.0756	0.35015002	G2M
-49	progenitor	0.061966658	0.354175	G2M
-50	progenitor	0.04515001	0.361325	G2M
-51	progenitor	0.026250005	0.365675	G2M
-52	progenitor	0.008533329	0.371575	G2M
-53	progenitor	-0.0058666766	0.36895004	G2M
-54	progenitor	-0.01971668	0.36967498	G2M
-55	progenitor	-0.035949945	0.36804998	G2M
-56	progenitor	-0.04824999	0.36305	G2M
-57	progenitor	-0.06161666	0.35704997	G2M
-58	progenitor	-0.07620004	0.34805	G2M
-59	progenitor	-0.09081668	0.341575	G2M
-60	progenitor	-0.103000015	0.32840002	G2M
-61	progenitor	-0.11609998	0.317375	G2M
-62	progenitor	-0.12736666	0.30952498	G2M
-63	progenitor	-0.13890001	0.30077502	G2M
-64	progenitor	-0.15153334	0.28985	G2M
-65	progenitor	-0.16445002	0.28004998	G2M
-66	progenitor	-0.17231664	0.26997498	G2M
-67	progenitor	-0.18360004	0.2623	G2M
-68	progenitor	-0.19526666	0.250675	G2M
-69	progenitor	-0.20973334	0.24382502	G2M
-70	progenitor	-0.22153333	0.23462497	G2M
-71	progenitor	-0.23176664	0.22642499	G2M
-72	progenitor	-0.23878333	0.21525	G2M
-73	progenitor	-0.24899998	0.20759997	G2M
-74	progenitor	-0.25769997	0.196425	G2M
-75	progenitor	-0.266	0.190525	G2M
-76	progenitor	-0.27291664	0.185325	G2M
-77	progenitor	-0.27909997	0.17939998	G2M
-78	progenitor	-0.28546664	0.16992497	G2M
-79	progenitor	-0.2924833	0.16142498	G2M
-80	Ery	-0.30063334	0.158275	G2M
-81	Ery	-0.3081833	0.14844999	G2M
-82	Ery	-0.31410003	0.13829997	G2M
-83	Ery	-0.32265	0.12857503	G2M
-84	Ery	-0.33280006	0.12172499	G2M
-85	Ery	-0.34323335	0.11087498	G2M
-86	Ery	-0.3550667	0.09400001	G2M
-87	Ery	-0.36045003	0.074499995	G2M
-88	Ery	-0.36565	0.056499988	G2M
-89	Ery	-0.37118334	0.03820002	G2M
-90	Ery	-0.3749	0.026174992	G2M
-91	Ery	-0.37931666	0.019950002	G2M
-92	Ery	-0.38785002	0.012800008	G2M
-93	Ery	-0.3930334	0.0039000213	G2M
-94	Ery	-0.39623332	-0.0038750172	G1
-95	Ery	-0.40098336	-0.008474976	G1
-96	Ery	-0.41044998	-0.008125007	G1
-97	Ery	-0.41723332	-0.0113250315	G1
-98	Ery	-0.42673334	-0.008574992	G1
-99	Ery	-0.43113336	-0.009875029	G1
-100	Ery	-0.4387667	-0.009699941	G1
-101	Ery	-0.44501665	-0.006850004	G1
-102	Ery	-0.44808337	-0.0041999817	G1
-103	Ery	-0.45334998	-0.0044499934	G1
-104	Ery	-0.4579167	-0.0024499893	G1
-105	Ery	-0.4625	0.0014250278	G2M
-106	Ery	-0.46655002	0.003275007	G2M
-107	Ery	-0.4705	0.0074749887	G2M
-108	Ery	-0.47354996	0.011525005	G2M
-109	Ery	-0.47571668	0.012849987	G2M
-110	Ery	-0.47741672	0.014274985	G2M
-111	Ery	-0.47899997	0.015850008	G2M
-112	Ery	-0.48184994	0.017825007	G2M
-113	Ery	-0.48310003	0.021875024	G2M
-114	Ery	-0.48716664	0.023850024	G2M
-115	Ery	-0.48626667	0.024949968	G2M
-116	Ery	-0.4891	0.03274998	G2M
-117	Ery	-0.4909666	0.035274982	G2M
-118	Ery	-0.4974334	0.037799954	G2M
-119	Ery	-0.5008334	0.040574998	G2M
-120	Ery	-0.50525	0.044800013	G2M
-121	Ery	-0.50745004	0.045899987	G2M
-122	Ery	-0.51255	0.048699975	G2M
-123	Ery	-0.5148666	0.051825017	G2M
-124	Ery	-0.51621664	0.054074973	G2M
-125	Ery	-0.52003336	0.058725	G2M
-126	Ery	-0.5201167	0.06525004	G2M
-127	Ery	-0.5232334	0.06755	G2M
-128	Ery	-0.5255166	0.06912503	G2M
-129	Ery	-0.52691674	0.071750015	G2M
-130	Ery	-0.5294833	0.07469997	G2M
-131	Ery	-0.5308	0.07885	G2M
-132	Ery	-0.53328335	0.08200002	G2M
-133	Ery	-0.53339994	0.082275	G2M
-134	Ery	-0.5356667	0.08287498	G2M
-135	Ery	-0.53651667	0.083850026	G2M
-136	Ery	-0.53586674	0.08415002	G2M
-137	Ery	-0.5371834	0.08655003	G2M
-138	Ery	-0.53768337	0.08915001	G2M
-139	Ery	-0.5387167	0.086775005	G2M
-140	Ery	-0.5398166	0.08837497	G2M
-141	Ery	-0.5402333	0.09094998	G2M
-142	Ery	-0.5395833	0.09077501	G2M
-143	Ery	-0.5413166	0.094074994	G2M
-144	Ery	-0.5375334	0.094500035	G2M
-145	Ery	-0.5376667	0.09659997	G2M
-146	Ery	-0.5442666	0.09917498	G2M
-147	Ery	-0.5433	0.10099995	G2M
-148	Ery	-0.54293334	0.09899998	G2M
-149	Ery	-0.5396333	0.09729999	G2M
-150	Ery	-0.53550005	0.09580001	G2M
-151	Ery	-0.5340333	0.094500005	G2M
-152	Ery	-0.53835	0.094024986	G2M
-153	Ery	-0.5339166	0.09344998	G2M
-154	Ery	-0.5354667	0.095400006	G2M
-155	Ery	-0.5398333	0.09622499	G2M
-156	Ery	-0.54073334	0.09739998	G2M
-157	Ery	-0.54269993	0.09609997	G2M
-158	Ery	-0.54613334	0.09427503	G2M
-159	Ery	-0.5469167	0.09325001	G2M
-0	progenitor	0.26924998	0.20047499	S
-1	progenitor	0.24753334	0.15694998	S
-2	progenitor	0.2261	0.129575	S
-3	progenitor	0.20549999	0.12205	S
-4	progenitor	0.18906666	0.118075006	S
-5	progenitor	0.17461666	0.1156	S
-6	progenitor	0.1549	0.112900004	S
-7	progenitor	0.14206666	0.11277501	S
-8	progenitor	0.12825	0.11547499	S
-9	progenitor	0.11403333	0.116174996	G2M
-10	progenitor	0.10465	0.11955001	G2M
-11	progenitor	0.09291667	0.123825	G2M
-12	progenitor	0.08646667	0.12455	G2M
-13	progenitor	0.07824999	0.13115	G2M
-14	progenitor	0.07111666	0.13497499	G2M
-15	progenitor	0.06305	0.138225	G2M
-16	progenitor	0.059816666	0.14175001	G2M
-17	progenitor	0.055983335	0.1487	G2M
-18	progenitor	0.05093333	0.15525001	G2M
-19	progenitor	0.048833337	0.161075	G2M
-20	progenitor	0.047583334	0.16835001	G2M
-21	progenitor	0.040233333	0.1783	G2M
-22	progenitor	0.038650002	0.18339998	G2M
-23	progenitor	0.034033336	0.19080001	G2M
-24	progenitor	0.0334	0.19689998	G2M
-25	progenitor	0.036050003	0.19765002	G2M
-26	progenitor	0.037483335	0.20150003	G2M
-27	progenitor	0.0379	0.205475	G2M
-28	progenitor	0.03891667	0.21019998	G2M
-29	progenitor	0.041166663	0.21605001	G2M
-30	progenitor	0.041533336	0.22262499	G2M
-31	progenitor	0.0463	0.226375	G2M
-32	progenitor	0.048683327	0.22929999	G2M
-33	progenitor	0.057249997	0.233375	G2M
-34	progenitor	0.06268333	0.236	G2M
-35	progenitor	0.06565	0.23992498	G2M
-36	progenitor	0.06738335	0.24414998	G2M
-37	progenitor	0.07278331	0.24974999	G2M
-38	progenitor	0.07835	0.25365	G2M
-39	progenitor	0.08574999	0.25655	G2M
-40	progenitor	0.089816675	0.25997502	G2M
-41	progenitor	0.094816685	0.268325	G2M
-42	progenitor	0.10088334	0.27127498	G2M
-43	progenitor	0.10618336	0.27574998	G2M
-44	progenitor	0.11181665	0.27997503	G2M
-45	progenitor	0.12016666	0.28125003	G2M
-46	progenitor	0.120766655	0.2857	G2M
-47	progenitor	0.12061668	0.289625	G2M
-48	progenitor	0.12701666	0.292675	G2M
-49	progenitor	0.13323334	0.294025	G2M
-50	progenitor	0.13686669	0.29399997	G2M
-51	progenitor	0.14141665	0.296375	G2M
-52	progenitor	0.14054999	0.29835	G2M
-53	progenitor	0.13769999	0.30177498	G2M
-54	progenitor	0.13920003	0.306425	G2M
-55	progenitor	0.13541666	0.30935	G2M
-56	progenitor	0.13395001	0.31435	G2M
-57	progenitor	0.12931666	0.319175	G2M
-58	progenitor	0.12291667	0.32285002	G2M
-59	progenitor	0.11760001	0.32947502	G2M
-60	progenitor	0.1109	0.33325002	G2M
-61	progenitor	0.098733336	0.33807498	G2M
-62	progenitor	0.08863334	0.345725	G2M
-63	progenitor	0.074066654	0.347775	G2M
-64	progenitor	0.062050015	0.3543	G2M
-65	progenitor	0.050833344	0.359575	G2M
-66	progenitor	0.038566664	0.36534998	G2M
-67	progenitor	0.022033334	0.37015	G2M
-68	progenitor	0.009916633	0.37007502	G2M
-69	progenitor	-0.002099961	0.37010002	G2M
-70	progenitor	-0.013416678	0.36807504	G2M
-71	progenitor	-0.026216656	0.36464998	G2M
-72	progenitor	-0.04154995	0.357625	G2M
-73	progenitor	-0.054400027	0.35250002	G2M
-74	progenitor	-0.06606665	0.3451	G2M
-75	progenitor	-0.07311666	0.33777502	G2M
-76	progenitor	-0.077833325	0.32635	G2M
-77	progenitor	-0.08776665	0.3159	G2M
-78	progenitor	-0.09445	0.30395	G2M
-79	progenitor	-0.102666676	0.2935	G2M
-80	Mk	-0.10896668	0.282375	G2M
-81	Mk	-0.12169999	0.27165002	G2M
-82	Mk	-0.12861666	0.26255003	G2M
-83	Mk	-0.13356665	0.2516	G2M
-84	Mk	-0.1381667	0.2421	G2M
-85	Mk	-0.14588335	0.23299998	G2M
-86	Mk	-0.14643335	0.220175	G2M
-87	Mk	-0.15011665	0.216025	G2M
-88	Mk	-0.15608332	0.20797502	G2M
-89	Mk	-0.1635333	0.20320001	G2M
-90	Mk	-0.1667167	0.19779998	G2M
-91	Mk	-0.16811666	0.18747498	G2M
-92	Mk	-0.16958332	0.17795	G2M
-93	Mk	-0.17056668	0.16855001	G2M
-94	Mk	-0.17408332	0.16107498	G2M
-95	Mk	-0.17345	0.1532	G2M
-96	Mk	-0.17251664	0.147325	G2M
-97	Mk	-0.17686662	0.141125	G2M
-98	Mk	-0.17819998	0.1339	G2M
-99	Mk	-0.18205002	0.12702498	G2M
-100	Mk	-0.18008336	0.12057501	G2M
-101	Mk	-0.17778334	0.10987502	G2M
-102	Mk	-0.17706665	0.10052502	G2M
-103	Mk	-0.17208335	0.09229997	G2M
-104	Mk	-0.17455	0.09097502	G2M
-105	Mk	-0.17273334	0.087374985	G2M
-106	Mk	-0.17373335	0.08560002	G2M
-107	Mk	-0.17395002	0.07944998	G2M
-108	Mk	-0.17468333	0.07655001	G2M
-109	Mk	-0.1739833	0.07757497	G2M
-110	Mk	-0.17766666	0.08107501	G2M
-111	Mk	-0.17615	0.07807499	G2M
-112	Mk	-0.17605004	0.077325016	G2M
-113	Mk	-0.17686665	0.07712501	G2M
-114	Mk	-0.17955002	0.07734999	G2M
-115	Mk	-0.17851666	0.07519999	G2M
-116	Mk	-0.17718336	0.076775014	G2M
-117	Mk	-0.17596671	0.07339999	G2M
-118	Mk	-0.1750167	0.07412499	G2M
-119	Mk	-0.17744997	0.076675	G2M
-120	Mk	-0.1789	0.074625015	G2M
-121	Mk	-0.17714998	0.071624994	G2M
-122	Mk	-0.1736333	0.068425	G2M
-123	Mk	-0.17461663	0.06832498	G2M
-124	Mk	-0.17366666	0.069875	G2M
-125	Mk	-0.17350003	0.07087502	G2M
-126	Mk	-0.17423335	0.073125005	G2M
-127	Mk	-0.17289999	0.07657498	G2M
-128	Mk	-0.17336664	0.07489997	G2M
-129	Mk	-0.16989997	0.07117501	G2M
-130	Mk	-0.16938332	0.06972501	G2M
-131	Mk	-0.17073336	0.07189995	G2M
-132	Mk	-0.16995004	0.07332501	G2M
-133	Mk	-0.16946661	0.07052502	G2M
-134	Mk	-0.16478333	0.070250005	G2M
-135	Mk	-0.16570002	0.072375	G2M
-136	Mk	-0.16755003	0.073075026	G2M
-137	Mk	-0.16876668	0.076124996	G2M
-138	Mk	-0.16663334	0.07460004	G2M
-139	Mk	-0.1660833	0.07682499	G2M
-140	Mk	-0.16843331	0.0783	G2M
-141	Mk	-0.17143327	0.07712501	G2M
-142	Mk	-0.17213336	0.07727498	G2M
-143	Mk	-0.16951668	0.07885	G2M
-144	Mk	-0.16820005	0.078149974	G2M
-145	Mk	-0.16826665	0.07882503	G2M
-146	Mk	-0.17055002	0.08182496	G2M
-147	Mk	-0.17345	0.082975	G2M
-148	Mk	-0.17216668	0.086125016	G2M
-149	Mk	-0.17273334	0.09057501	G2M
-150	Mk	-0.17401668	0.092824996	G2M
-151	Mk	-0.17518333	0.091575	G2M
-152	Mk	-0.17483333	0.09237501	G2M
-153	Mk	-0.17593333	0.092875004	G2M
-154	Mk	-0.1739333	0.094374955	G2M
-155	Mk	-0.1740667	0.09417495	G2M
-156	Mk	-0.17770004	0.09324998	G2M
-157	Mk	-0.17335	0.09350002	G2M
-158	Mk	-0.1704	0.09047499	G2M
-159	Mk	-0.17143336	0.089825004	G2M
-0	progenitor	0.2660833	0.20005001	S
-1	progenitor	0.24146667	0.1564	S
-2	progenitor	0.22096668	0.12695	S
-3	progenitor	0.19886668	0.112325005	S
-4	progenitor	0.18153334	0.102675	S
-5	progenitor	0.16055	0.10249999	S
-6	progenitor	0.14478332	0.098000005	S
-7	progenitor	0.13021666	0.092875004	S
-8	progenitor	0.11686668	0.091899976	S
-9	progenitor	0.10476667	0.091975	S
-10	progenitor	0.09625	0.094950005	S
-11	progenitor	0.09105	0.09615001	G2M
-12	progenitor	0.0822	0.102025	G2M
-13	progenitor	0.074	0.10612498	G2M
-14	progenitor	0.062583335	0.10890001	G2M
-15	progenitor	0.052600004	0.11175001	G2M
-16	progenitor	0.045050006	0.112574995	G2M
-17	progenitor	0.038033333	0.11227499	G2M
-18	progenitor	0.03231667	0.11082502	G2M
-19	progenitor	0.028383333	0.11277501	G2M
-20	progenitor	0.021966662	0.11262502	G2M
-21	progenitor	0.02043334	0.110575005	G2M
-22	progenitor	0.017400004	0.110875025	G2M
-23	progenitor	0.017300002	0.111875	G2M
-24	progenitor	0.015683334	0.112075	G2M
-25	progenitor	0.014233332	0.11295	G2M
-26	progenitor	0.012683332	0.11170004	G2M
-27	progenitor	0.011016667	0.112225026	G2M
-28	progenitor	0.010216668	0.116024986	G2M
-29	progenitor	0.0077833347	0.11819999	G2M
-30	progenitor	0.004733335	0.119224995	G2M
-31	progenitor	0.002683334	0.12180002	G2M
-32	progenitor	0.006133329	0.11839999	G2M
-33	progenitor	0.0052000023	0.116349995	G2M
-34	progenitor	0.006116666	0.115775004	G2M
-35	progenitor	0.0019833297	0.115449995	G2M
-36	progenitor	0.0007166676	0.114999995	G2M
-37	progenitor	0.00016666204	0.113325	G2M
-38	progenitor	-0.0018666722	0.116224974	G2M
-39	progenitor	-0.0030833334	0.11517501	G2M
-40	progenitor	-0.0030166656	0.11082499	G2M
-41	progenitor	-0.0019833334	0.10034999	G2M
-42	progenitor	0.0010500029	0.094025	G2M
-43	progenitor	-0.0039666668	0.086150005	G2M
-44	progenitor	-0.0024000034	0.077549994	G2M
-45	progenitor	-0.0036166683	0.07370001	G2M
-46	progenitor	-0.00485	0.0651	G2M
-47	progenitor	-0.002550004	0.05520001	G2M
-48	progenitor	0.0003666673	0.041975006	G2M
-49	progenitor	-0.0010499991	0.030874997	G2M
-50	progenitor	0.0007333346	0.014625013	G2M
-51	progenitor	9.999983e-05	-0.0017999709	S
-52	progenitor	0.0018333336	-0.01987499	S
-53	progenitor	0.00090000033	-0.032900006	S
-54	progenitor	0.0029999996	-0.05064997	S
-55	progenitor	0.003983334	-0.068574995	S
-56	progenitor	-0.0008500004	-0.08140004	G1
-57	progenitor	-0.0029833335	-0.09470001	G1
-58	progenitor	-0.0021333336	-0.106824994	G1
-59	progenitor	-0.0015000002	-0.11555001	G1
-60	progenitor	-0.0022999998	-0.12255001	G1
-61	progenitor	-0.0017666668	-0.13125	G1
-62	progenitor	0.0033999998	-0.14297503	S
-63	progenitor	0.006316666	-0.15117502	S
-64	progenitor	0.005033333	-0.15187496	S
-65	progenitor	0.0031333338	-0.15367502	S
-66	progenitor	0.0035666667	-0.15197498	S
-67	progenitor	0.005016666	-0.14580002	S
-68	progenitor	0.0061	-0.142575	S
-69	progenitor	0.00515	-0.13665	S
-70	progenitor	0.0028499998	-0.12865001	S
-71	progenitor	0.0030833331	-0.12112501	S
-72	progenitor	0.0032833333	-0.11669999	S
-73	progenitor	0.0006166666	-0.11475003	S
-74	progenitor	-0.0006833335	-0.11412498	G1
-75	progenitor	-2.3283064e-10	-0.11702502	G1
-76	progenitor	0.0007333332	-0.121425	S
-77	progenitor	0.0005833333	-0.12972501	S
-78	progenitor	-0.0015333334	-0.13869998	G1
-79	progenitor	-0.0023	-0.14877501	G1
-80	Neu	-0.0046166666	-0.157125	G1
-81	Neu	-0.0035666665	-0.16639996	G1
-82	Neu	-0.0011666667	-0.17409998	G1
-83	Neu	-0.0026166667	-0.180325	G1
-84	Neu	-0.0001833333	-0.18502498	G1
-85	Neu	0.0035666665	-0.18762502	S
-86	Neu	0.0024333335	-0.19062501	S
-87	Neu	0.0023	-0.19277498	S
-88	Neu	0.0014833333	-0.19762498	S
-89	Neu	0.0024333335	-0.201725	S
-90	Neu	0.003866667	-0.20430002	S
-91	Neu	0.0067999996	-0.20865002	S
-92	Neu	0.0079333335	-0.21332502	S
-93	Neu	0.0068	-0.21907501	S
-94	Neu	0.0058	-0.22292498	S
-95	Neu	0.0069666663	-0.22795	S
-96	Neu	0.0023833334	-0.22915001	S
-97	Neu	0.0056166667	-0.230375	S
-98	Neu	0.0051666666	-0.23027502	S
-99	Neu	0.001966667	-0.23169999	S
-100	Neu	0.0033666668	-0.23169999	S
-101	Neu	0.0047333334	-0.233675	S
-102	Neu	0.0045666667	-0.23272496	S
-103	Neu	0.00060000026	-0.23024999	S
-104	Neu	0.0036833333	-0.22662503	S
-105	Neu	0.0025166667	-0.22107498	S
-106	Neu	0.0038833334	-0.22109997	S
-107	Neu	0.0033666666	-0.21907501	S
-108	Neu	0.0042666667	-0.218675	S
-109	Neu	0.0038	-0.2165	S
-110	Neu	0.004633333	-0.21385	S
-111	Neu	0.003266667	-0.21305001	S
-112	Neu	0.0034166668	-0.21077499	S
-113	Neu	0.0017166669	-0.21184999	S
-114	Neu	0.0012666667	-0.21437502	S
-115	Neu	-0.0016333334	-0.2153	G1
-116	Neu	-0.00043333336	-0.215675	G1
-117	Neu	0.0018833333	-0.21865001	S
-118	Neu	0.0014666667	-0.22187501	S
-119	Neu	-0.0020833332	-0.21787499	G1
-120	Neu	-0.0039000001	-0.21329997	G1
-121	Neu	-0.0023	-0.20820004	G1
-122	Neu	-0.00195	-0.21035	G1
-123	Neu	-0.0058833333	-0.20732501	G1
-124	Neu	-0.0070166667	-0.20714998	G1
-125	Neu	-0.008633333	-0.20389998	G1
-126	Neu	-0.006616667	-0.20832503	G1
-127	Neu	-0.003116667	-0.21047503	G1
-128	Neu	-0.0055833333	-0.21289998	G1
-129	Neu	-0.0042333333	-0.216575	G1
-130	Neu	-0.005016667	-0.21945003	G1
-131	Neu	-0.0020833334	-0.21799998	G1
-132	Neu	-0.0032	-0.21150002	G1
-133	Neu	-0.0033333339	-0.20989999	G1
-134	Neu	-0.0011666667	-0.21257499	G1
-135	Neu	-0.0023	-0.21222499	G1
-136	Neu	-0.0034666667	-0.2146	G1
-137	Neu	-0.0011833335	-0.21350002	G1
-138	Neu	-0.00325	-0.21377501	G1
-139	Neu	-0.0040166667	-0.213925	G1
-140	Neu	-0.0024666665	-0.21455	G1
-141	Neu	0.0028333336	-0.21975	S
-142	Neu	0.0032833333	-0.220325	S
-143	Neu	0.004766667	-0.22119999	S
-144	Neu	0.00705	-0.22362499	S
-145	Neu	0.0036	-0.22555003	S
-146	Neu	0.006733333	-0.22377498	S
-147	Neu	0.0025000002	-0.22509998	S
-148	Neu	0.0018	-0.221075	S
-149	Neu	6.666663e-05	-0.22125	S
-150	Neu	-0.0014499999	-0.219875	G1
-151	Neu	-0.0012833332	-0.21900001	G1
-152	Neu	-0.0001999999	-0.21767499	G1
-153	Neu	-0.0032666668	-0.21407498	G1
-154	Neu	-0.0017	-0.2116	G1
-155	Neu	-0.0028166666	-0.2077	G1
-156	Neu	-0.00245	-0.2053	G1
-157	Neu	-0.0011166666	-0.203825	G1
-158	Neu	-0.001966667	-0.20535001	G1
-159	Neu	-0.0027	-0.20725003	G1
Binary file test-data/tl.tsne.krumsiek11.h5ad has changed
Binary file test-data/tl.umap.neighbors_umap_euclidean.recipe_weinreb17.paul15_subsample.h5ad has changed