@@ -64,20 +64,20 @@ def _permute_and_aggregate(perm, perm_idx, X, labels_mask, agg_fun):
6464
6565
6666def _generate_perms_cube (X , n_perms , labels_mask , seed , agg_fun , n_jobs , verbose ):
67+ # initialize rng
68+ rng = np .random .default_rng (seed = seed )
69+
6770 # indexes to be shuffled
6871 idx = np .arange (X .shape [0 ])
72+
6973 # Perm should be a cube /w dims: n_perms x idents x n_genes
7074 perms = np .zeros ((n_perms , labels_mask .shape [1 ], X .shape [1 ]))
7175
7276 # Use Parallel to enable parallelization
73- if n_jobs == 1 :
74- results = [_permute_and_aggregate (perm , np .random .default_rng (seed = seed + perm ).permutation (idx ), X , labels_mask , agg_fun )
75- for perm in tqdm (range (n_perms ), disable = not verbose )]
76- else :
77- results = Parallel (n_jobs = n_jobs )(delayed (_permute_and_aggregate )
78- (perm , np .random .default_rng (seed = seed + perm ).permutation (idx ), X , labels_mask , agg_fun )
79- for perm in tqdm (range (n_perms ), disable = not verbose )
80- )
77+ results = Parallel (n_jobs = n_jobs )(delayed (_permute_and_aggregate )
78+ (perm , rng .permutation (idx ), X , labels_mask , agg_fun )
79+ for perm in tqdm (range (n_perms ), disable = not verbose )
80+ )
8181
8282 # Unpack results
8383 for perm , permuted_means in results :
@@ -135,7 +135,6 @@ def _calculate_pvals(lr_truth, perm_stats, _score_fun):
135135 n_perms = perm_stats .shape [1 ]
136136 pvals = np .sum (np .greater_equal (lr_perm_means , lr_truth ), axis = 0 ) / n_perms
137137 else :
138- pvals = None
139-
138+ pvals = np .ones (lr_truth .shape )
140139
141140 return pvals
0 commit comments