@@ -142,7 +142,7 @@ def _node_compute_mi(self, dataset, n_perm, n_jobs, random_state):
142
142
143
143
return mi , mi_p
144
144
145
- def fit (self , dataset , mcp = 'cluster' , n_perm = 1000 , cluster_th = None ,
145
+ def fit (self , dataset = None , mcp = 'cluster' , n_perm = 1000 , cluster_th = None ,
146
146
cluster_alpha = 0.05 , n_jobs = - 1 , random_state = None , ** kw_stats ):
147
147
"""Run the workflow on a dataset.
148
148
@@ -160,7 +160,8 @@ def fit(self, dataset, mcp='cluster', n_perm=1000, cluster_th=None,
160
160
Parameters
161
161
----------
162
162
dataset : :class:`frites.dataset.DatasetEphy`
163
- A dataset instance
163
+ A dataset instance. If the workflow has already been fitted, then
164
+ this parameter can remains to None.
164
165
mcp : {'cluster', 'maxstat', 'fdr', 'bonferroni', 'nostat', None}
165
166
Method to use for correcting p-values for the multiple comparison
166
167
problem. Use either :
@@ -207,23 +208,6 @@ def fit(self, dataset, mcp='cluster', n_perm=1000, cluster_th=None,
207
208
----------
208
209
Maris and Oostenveld, 2007 :cite:`maris2007nonparametric`
209
210
"""
210
- # ---------------------------------------------------------------------
211
- # prepare variables
212
- # ---------------------------------------------------------------------
213
- # don't compute permutations if mcp is either nostat / None
214
- if mcp in ['noperm' , None ]:
215
- n_perm = 0
216
- # get needed dataset's informations
217
- self ._times , self ._roi = dataset .times , dataset .roi_names
218
- self ._mi_dims = dataset ._mi_dims
219
- self ._mi_coords = dict ()
220
- for k in self ._mi_dims :
221
- if k != 'roi' :
222
- self ._mi_coords [k ] = dataset .x [0 ].coords [k ].data
223
- else :
224
- self ._mi_coords ['roi' ] = self ._roi
225
- self ._df_rs , self ._n_subjects = dataset .df_rs , dataset ._n_subjects
226
-
227
211
# ---------------------------------------------------------------------
228
212
# compute mutual information
229
213
# ---------------------------------------------------------------------
@@ -234,6 +218,22 @@ def fit(self, dataset, mcp='cluster', n_perm=1000, cluster_th=None,
234
218
"arguments" )
235
219
mi , mi_p = self ._mi , self ._mi_p
236
220
else :
221
+ # don't compute permutations if mcp is either nostat / None
222
+ if mcp in ['noperm' , None ]:
223
+ n_perm = 0
224
+
225
+ # get needed dataset's informations
226
+ self ._times , self ._roi = dataset .times , dataset .roi_names
227
+ self ._mi_dims = dataset ._mi_dims
228
+ self ._mi_coords = dict ()
229
+ for k in self ._mi_dims :
230
+ if k != 'roi' :
231
+ self ._mi_coords [k ] = dataset .x [0 ].coords [k ].data
232
+ else :
233
+ self ._mi_coords ['roi' ] = self ._roi
234
+ self ._df_rs , self ._n_subjects = dataset .df_rs , dataset ._n_subjects
235
+
236
+ # compute mi and permutations
237
237
mi , mi_p = self ._node_compute_mi (
238
238
dataset , n_perm , n_jobs , random_state )
239
239
"""
0 commit comments