File size: 1,137 Bytes
9d901ad | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | """Tests for gamma estimation."""
import numpy as np
import pytest
def test_estimate_gamma(preprocessed_adata):
import scptr
scptr.tl.estimate_beta(preprocessed_adata)
scptr.tl.estimate_gamma(preprocessed_adata)
assert "gamma" in preprocessed_adata.layers
gamma = preprocessed_adata.layers["gamma"]
assert gamma.shape == preprocessed_adata.shape
assert gamma.dtype == np.float32
assert np.all(gamma >= 0)
assert "estimate_gamma" in preprocessed_adata.uns["scptr"]
def test_gamma_clipping(preprocessed_adata):
import scptr
scptr.tl.estimate_beta(preprocessed_adata)
scptr.tl.estimate_gamma(preprocessed_adata, clip_quantile=0.95)
gamma_95 = preprocessed_adata.layers["gamma"].copy()
scptr.tl.estimate_gamma(preprocessed_adata, clip_quantile=0.5)
gamma_50 = preprocessed_adata.layers["gamma"].copy()
# Stricter clipping should give lower or equal max values
assert gamma_50.max() <= gamma_95.max() + 1e-6
def test_gamma_requires_beta(preprocessed_adata):
import scptr
with pytest.raises(KeyError):
scptr.tl.estimate_gamma(preprocessed_adata)
|