| """Tests for variance decomposition.""" | |
| import numpy as np | |
| import pytest | |
| def test_variance_decomposition(preprocessed_adata): | |
| import scptr | |
| scptr.tl.estimate_beta(preprocessed_adata) | |
| scptr.tl.estimate_gamma(preprocessed_adata) | |
| scptr.tl.variance_decomposition(preprocessed_adata) | |
| assert "tf_score" in preprocessed_adata.var.columns | |
| assert "ptf_score" in preprocessed_adata.var.columns | |
| tf = preprocessed_adata.var["tf_score"].values | |
| ptf = preprocessed_adata.var["ptf_score"].values | |
| # TF + PTF should sum to ~1 | |
| np.testing.assert_allclose(tf + ptf, 1.0, atol=1e-5) | |
| # Scores should be in [0, 1] | |
| assert np.all(tf >= 0) and np.all(tf <= 1) | |
| assert np.all(ptf >= 0) and np.all(ptf <= 1) | |