@@ -51,10 +51,12 @@ def _fit_continuous_interaction(
5151 data = sim .input_data ,
5252 sample_description = sample_description ,
5353 gene_names = ["gene" + str (i ) for i in range (sim .input_data .num_features )],
54- formula_loc = "~ 1 + continuous + batch + continuous:batch" ,
54+ formula_loc = "~ 1 + continuous + condition + continuous:condition" if not constrained else \
55+ "~ 1 + continuous + condition + continuous:condition + batch" ,
5556 formula_scale = "~ 1" ,
56- factor_loc_totest = ["continuous" , "continuous:batch " ],
57+ factor_loc_totest = ["continuous" , "continuous:condition " ],
5758 continuous = "continuous" ,
59+ constraints_loc = {"batch" : "condition" } if constrained else None ,
5860 size_factors = "size_factors" ,
5961 df = 3 ,
6062 spline_basis = spline_basis ,
@@ -108,8 +110,10 @@ def _test_interaction(
108110 random_sample_description = pd .DataFrame ({
109111 "continuous" : np .asarray (np .random .randint (0 , n_timepoints , size = sim .nobs ), dtype = float )
110112 })
111- random_sample_description ["batch" ] = [str (np .random .randint (0 , 3 ))
112- for x in random_sample_description ["continuous" ]]
113+ random_sample_description ["condition" ] = [str (np .random .randint (0 , 2 ))
114+ for x in random_sample_description ["continuous" ]]
115+ random_sample_description ["batch" ] = [x + str (np .random .randint (0 , 3 ))
116+ for x in random_sample_description ["condition" ]]
113117 random_sample_description ["size_factors" ] = np .random .uniform (0.9 , 1.1 , sim .nobs ) # TODO put into simulation.
114118 det = self ._fit_continuous_interaction (
115119 sim = sim ,
@@ -280,7 +284,7 @@ def test_null_distribution_wald_unconstrained(self):
280284
281285 self .noise_model = "nb"
282286 np .random .seed (1 )
283- # self._test_null_model_all_splines(ngenes=100, test="wald", constrained=False)
287+ self ._test_null_model_all_splines (ngenes = 100 , test = "wald" , constrained = False )
284288 self ._test_null_model_all_splines_interaction (ngenes = 100 , test = "wald" , constrained = False )
285289 return True
286290
@@ -301,7 +305,7 @@ def test_null_distribution_wald_constrained(self):
301305 self .noise_model = "nb"
302306 np .random .seed (1 )
303307 self ._test_null_model_all_splines (ngenes = 100 , test = "wald" , constrained = True )
304- # Interaction not supported yet.
308+ self . _test_null_model_all_splines_interaction ( ngenes = 100 , test = "wald" , constrained = True )
305309 return True
306310
307311 def _test_null_distribution_lrt (self ):
0 commit comments