Skip to content

Commit

Permalink
change test_data
Browse files Browse the repository at this point in the history
  • Loading branch information
VolkerBergen committed Aug 21, 2018
1 parent 8405f02 commit 665ee07
Showing 1 changed file with 20 additions and 47 deletions.
67 changes: 20 additions & 47 deletions tests/test_basic.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
from scvelo.tools.velocity_graph import *
from scvelo.tools.solver import *
from scvelo.tools.velocity_embedding import transition_matrix
import scvelo as scv
import scanpy.api as sc

from anndata import AnnData
from scanpy.api.pp import normalize_per_cell, pca, neighbors
from time import time
from scipy import sparse, stats
from scvelo.tools.utils import *


def test_data(n_obs=100, n_vars=10):
adata = AnnData(sparse.random(n_obs, n_vars, data_rvs=stats.poisson(1).rvs, density=.6, format='csr'))
adata.layers['spliced'] = adata.X
adata.layers['unspliced'] = \
.5 * adata.X + .3 * sparse.random(n_obs, n_vars, density=.6, data_rvs=stats.poisson(1).rvs, format='csr')

normalize_per_cell(adata, layers='all')
pca(adata)
neighbors(adata, use_rep='X_pca')
moments(adata)
if False:
adata = AnnData(sparse.random(n_obs, n_vars, data_rvs=stats.poisson(1).rvs, density=.6, format='csr'))
adata.layers['spliced'] = adata.X
adata.layers['unspliced'] = \
.5 * adata.X + .3 * sparse.random(n_obs, n_vars, density=.6, data_rvs=stats.poisson(1).rvs, format='csr')

adata = scv.datasets.dentategyrus()
sc.pp.filter_genes(adata, min_counts=10)
sc.pp.filter_genes_dispersion(adata)
sc.pp.normalize_per_cell(adata, layers='all')
sc.pp.pca(adata)
sc.pp.neighbors(adata, use_rep='X_pca')
scv.pp.moments(adata)
return adata


Expand All @@ -28,43 +28,16 @@ def test_einsum():
assert np.allclose(prod_sum_var(Ms, Mu), np.sum(Ms * Mu, 1))
assert np.allclose(norm(Ms), np.linalg.norm(Ms, axis=1))

start = time()

prod_sum_obs(Ms, Mu)
stop1 = time()

np.sum(Ms * Mu, 0)
stop2 = time()

print('einsum product is ', round((stop2 - start) / (stop1 - start), 2), ' times faster than numpy.')

start = time()

norm(Ms)
stop1 = time()

np.linalg.norm(Ms, axis=1)
stop2 = time()

print('einsum norm is ', round((stop2 - start) / (stop1 - start), 2), ' times faster than numpy.')


# def test_solvers():
# adata = test_data()
# Ms, Mu = adata.layers['Ms'], adata.layers['Mu']
#
# assert np.allclose(solve_cov(Ms, Mu), solve_inv(Ms, Mu))


def test_velocity_graph():
adata = test_data()
velocity(adata)
velocity_graph(adata)
scv.tl.velocity(adata)
scv.tl.velocity_graph(adata)

graph1 = adata.uns['velocity_graph'].copy()

velocity_graph(adata, n_jobs=2)
scv.tl.velocity_graph(adata, n_jobs=2)
graph2 = adata.uns['velocity_graph'].copy()

assert np.allclose((transition_matrix(adata) > 0).toarray(), (graph1 > 0).toarray())
assert np.allclose((scv.tl.transition_matrix(adata) > 0).toarray(), (graph1 > 0).toarray())
assert np.allclose(graph1.toarray(), graph2.toarray())

0 comments on commit 665ee07

Please sign in to comment.