@@ -21,31 +21,34 @@ def _prepare_data(
21
21
"""
22
22
if noise_model == "nb" :
23
23
from batchglm .api .models .glm_nb import Simulator
24
+ rand_fn_loc = lambda shape : np .random .uniform (5 , 10 , shape )
25
+ rand_fn_scale = lambda shape : np .random .uniform (1 , 2 , shape )
24
26
elif noise_model == "norm" :
25
27
from batchglm .api .models .glm_norm import Simulator
28
+ rand_fn_loc = lambda shape : np .random .uniform (500 , 1000 , shape )
29
+ rand_fn_scale = lambda shape : np .random .uniform (1 , 2 , shape )
26
30
else :
27
31
raise ValueError ("noise model %s not recognized" % noise_model )
28
32
29
33
num_non_de = n_genes // 2
30
34
sim = Simulator (num_observations = n_cells , num_features = n_genes )
31
35
sim .generate_sample_description (num_batches = 0 , num_conditions = 2 )
32
36
sim .generate_params (
33
- rand_fn_ave = lambda shape : np . random . poisson ( 500 , shape ) + 1 ,
34
- rand_fn = lambda shape : np . abs ( np . random . uniform ( 1 , 0.5 , shape ))
37
+ rand_fn_loc = rand_fn_loc ,
38
+ rand_fn_scale = rand_fn_scale
35
39
)
36
40
sim .a_var [1 , :num_non_de ] = 0
37
41
sim .b_var [1 , :num_non_de ] = 0
38
42
self .isDE = np .arange (n_genes ) >= num_non_de
39
43
sim .generate_data ()
40
-
41
44
return sim
42
45
43
46
def _eval (self , sim , test ):
44
47
idx_de = np .where (self .isDE )[0 ]
45
48
idx_nonde = np .where (np .logical_not (self .isDE ))[0 ]
46
49
47
- frac_de_of_non_de = np .sum (test .qval [idx_nonde ] < 0.05 ) / len ( idx_nonde )
48
- frac_de_of_de = np .sum (test .qval [idx_de ] < 0.05 ) / len ( idx_de )
50
+ frac_de_of_non_de = np .mean (test .qval [idx_nonde ] < 0.05 )
51
+ frac_de_of_de = np .mean (test .qval [idx_de ] < 0.05 )
49
52
50
53
logging .getLogger ("diffxpy" ).info (
51
54
'fraction of non-DE genes with q-value < 0.05: %.1f%%' %
0 commit comments