2
2
3
3
import numpy as np
4
4
import scanpy as sc
5
+ import pandas as pd
5
6
6
7
7
- @pytest .mark .parametrize (
8
- "method" ,
9
- ["t-test" , "logreg" ],
10
- )
8
+ @pytest .mark .parametrize ('method' , ['t-test' , 'logreg' ])
11
9
def test_rank_genes_groups_with_renamed_categories (method ):
12
10
adata = sc .datasets .blobs (n_variables = 4 , n_centers = 3 , n_observations = 200 )
13
11
assert np .allclose (adata .X [1 ], [9.214668 , - 2.6487126 , 4.2020774 , 0.51076424 ])
@@ -30,14 +28,34 @@ def test_rank_genes_groups_with_renamed_categories_use_rep():
30
28
adata = sc .datasets .blobs (n_variables = 4 , n_centers = 3 , n_observations = 200 )
31
29
assert np .allclose (adata .X [1 ], [9.214668 , - 2.6487126 , 4.2020774 , 0.51076424 ])
32
30
33
- adata .layers [" to_test" ] = adata .X .copy ()
31
+ adata .layers [' to_test' ] = adata .X .copy ()
34
32
adata .X = adata .X [::- 1 , :]
35
33
36
34
sc .tl .rank_genes_groups (
37
- adata , 'blobs' , method = 'logreg' , layer = " to_test" , use_raw = False
35
+ adata , 'blobs' , method = 'logreg' , layer = ' to_test' , use_raw = False
38
36
)
39
37
assert adata .uns ['rank_genes_groups' ]['names' ].dtype .names == ('0' , '1' , '2' )
40
38
assert adata .uns ['rank_genes_groups' ]['names' ][0 ].tolist () == ('1' , '3' , '0' )
41
39
42
- sc .tl .rank_genes_groups (adata , 'blobs' , method = " logreg" )
40
+ sc .tl .rank_genes_groups (adata , 'blobs' , method = ' logreg' )
43
41
assert not adata .uns ['rank_genes_groups' ]['names' ][0 ].tolist () == ('3' , '1' , '0' )
42
+
43
+
44
+ def test_rank_genes_groups_with_unsorted_groups ():
45
+ adata = sc .datasets .blobs (n_variables = 10 , n_centers = 5 , n_observations = 200 )
46
+ adata ._sanitize ()
47
+ adata .rename_categories ('blobs' , ['Zero' , 'One' , 'Two' , 'Three' , 'Four' ])
48
+ bdata = adata .copy ()
49
+ sc .tl .rank_genes_groups (
50
+ adata , 'blobs' , groups = ['Zero' , 'One' , 'Three' ], method = 'logreg'
51
+ )
52
+ sc .tl .rank_genes_groups (
53
+ bdata , 'blobs' , groups = ['One' , 'Three' , 'Zero' ], method = 'logreg'
54
+ )
55
+ array_ad = pd .DataFrame (
56
+ adata .uns ['rank_genes_groups' ]['scores' ]['Three' ]
57
+ ).to_numpy ()
58
+ array_bd = pd .DataFrame (
59
+ bdata .uns ['rank_genes_groups' ]['scores' ]['Three' ]
60
+ ).to_numpy ()
61
+ np .testing .assert_equal (array_ad , array_bd )
0 commit comments