def transform(self, catalog, subjects_id): catalog_ = copy.deepcopy(catalog) study_dir = make_dir(self.data_dir, self.study_id, strict=False) if isinstance(self.subject_key_, dict): save_table(self.subject_key_, os.path.join(study_dir, 'subject_key.txt')) save_table(self.task_key_, os.path.join(study_dir, 'task_key.txt'), merge=self.merge_tasks) save_table({'TR': catalog_[0]['tr']}, os.path.join(study_dir, 'scan_key.txt')) model_dir = make_dir(study_dir, 'models', self.model_id, strict=False) save_task_contrasts(model_dir, catalog_[0], merge=self.merge_tasks) save_condition_key(model_dir, catalog_[0], merge=self.merge_tasks) n_jobs = -1 if self.n_jobs != 1 else 1 self.encoder_ = IntraEncoder(hrf_model=self.hrf_model, drift_model=self.drift_model, memory=self.memory, n_jobs=n_jobs) all_niimgs = self.encoder_.fit_transform(catalog_, subjects_id) if subjects_id is None: subjects_id = [doc['subject_id'] for doc in catalog] outputs = Parallel(n_jobs=self.n_jobs)( delayed(_compute_glm)( LinearModeler(masker=self.masker, reporter=os.path.join( study_dir, subject_id, 'model', self.model_id), glm_model=self.glm_model, hrf_model=self.hrf_model, contrast_type=self.contrast_type, output_z=self.output_z, output_stat=self.output_stat, output_effects=self.output_effects, output_variance=self.output_variance), niimgs=niimgs, design_matrices=design_matrices, contrasts=doc['contrasts']) for subject_id, doc, niimgs, design_matrices in zip( subjects_id, catalog_, all_niimgs, self.encoder_.design_matrices_)) if self.resample: Parallel(n_jobs=n_jobs)( delayed(_resample_img)( doc[dtype][cid], self.target_affine, self.target_shape, ) for doc in outputs for dtype in doc for cid in doc[dtype]) return outputs
def transform(self, catalog, subjects_id): catalog_ = copy.deepcopy(catalog) study_dir = make_dir(self.data_dir, self.study_id, strict=False) if isinstance(self.subject_key_, dict): save_table(self.subject_key_, os.path.join(study_dir, 'subject_key.txt')) save_table(self.task_key_, os.path.join(study_dir, 'task_key.txt'), merge=self.merge_tasks) save_table({'TR': catalog_[0]['tr']}, os.path.join(study_dir, 'scan_key.txt')) model_dir = make_dir(study_dir, 'models', self.model_id, strict=False) save_task_contrasts(model_dir, catalog_[0], merge=self.merge_tasks) save_condition_key(model_dir, catalog_[0], merge=self.merge_tasks) n_jobs = -1 if self.n_jobs != 1 else 1 self.encoder_ = IntraEncoder(hrf_model=self.hrf_model, drift_model=self.drift_model, memory=self.memory, n_jobs=n_jobs) all_niimgs = self.encoder_.fit_transform(catalog_, subjects_id) if subjects_id is None: subjects_id = [doc['subject_id'] for doc in catalog] outputs = Parallel(n_jobs=self.n_jobs)( delayed(_compute_glm)(LinearModeler( masker=self.masker, reporter=os.path.join(study_dir, subject_id, 'model', self.model_id), glm_model=self.glm_model, hrf_model=self.hrf_model, contrast_type=self.contrast_type, output_z=self.output_z, output_stat=self.output_stat, output_effects=self.output_effects, output_variance=self.output_variance), niimgs=niimgs, design_matrices=design_matrices, contrasts=doc['contrasts']) for subject_id, doc, niimgs, design_matrices in zip( subjects_id, catalog_, all_niimgs, self.encoder_.design_matrices_)) if self.resample: Parallel(n_jobs=n_jobs)(delayed(_resample_img)( doc[dtype][cid], self.target_affine, self.target_shape, ) for doc in outputs for dtype in doc for cid in doc[dtype]) return outputs
def transform(self, catalog, subjects_id): catalog_ = copy.deepcopy(catalog) study_dir = make_dir(self.data_dir, self.study_id, strict=False) if isinstance(self.subject_key_, dict): save_table(self.subject_key_, os.path.join(study_dir, 'subject_key.txt')) save_table(self.task_key_, os.path.join(study_dir, 'task_key.txt'), merge=self.merge_tasks) save_table({'TR': catalog[0]['tr']}, os.path.join(study_dir, 'scan_key.txt')) model_dir = make_dir(study_dir, 'models', self.model_id, strict=False) save_task_contrasts(model_dir, catalog_[0], merge=self.merge_tasks) save_condition_key(model_dir, catalog_[0], merge=self.merge_tasks) if subjects_id is None: subjects_id = [doc['subject_id'] for doc in catalog] Parallel(n_jobs=self.n_jobs)( delayed(save_maps)(os.path.join(study_dir, subject_id, 'model', self.model_id), doc, self.resample, self.target_affine, self.target_shape) for subject_id, doc in zip(subjects_id, catalog_)) Parallel(n_jobs=self.n_jobs)( delayed(save_preproc)(os.path.join(study_dir, subject_id, 'model', self.model_id), doc) for subject_id, doc in zip(subjects_id, catalog_)) Parallel(n_jobs=self.n_jobs)( delayed(save_raw)(os.path.join(study_dir, subject_id), doc) for subject_id, doc in zip(subjects_id, catalog_)) Parallel(n_jobs=self.n_jobs)( delayed(save_onsets)(os.path.join(study_dir, subject_id, 'model', self.model_id, 'onsets'), doc) for subject_id, doc in zip(subjects_id, catalog_)) return catalog_
def transform(self, catalog, subjects_id): catalog_ = copy.deepcopy(catalog) study_dir = make_dir(self.data_dir, self.study_id, strict=False) if isinstance(self.subject_key_, dict): save_table(self.subject_key_, os.path.join(study_dir, 'subject_key.txt')) save_table(self.task_key_, os.path.join(study_dir, 'task_key.txt'), merge=self.merge_tasks) save_table({'TR': catalog[0]['tr']}, os.path.join(study_dir, 'scan_key.txt')) model_dir = make_dir(study_dir, 'models', self.model_id, strict=False) save_task_contrasts(model_dir, catalog_[0], merge=self.merge_tasks) save_condition_key(model_dir, catalog_[0], merge=self.merge_tasks) if subjects_id is None: subjects_id = [doc['subject_id'] for doc in catalog] Parallel(n_jobs=self.n_jobs)(delayed(save_maps)( os.path.join(study_dir, subject_id, 'model', self.model_id), doc, self.resample, self.target_affine, self.target_shape) for subject_id, doc in zip(subjects_id, catalog_)) Parallel(n_jobs=self.n_jobs)(delayed(save_preproc)( os.path.join(study_dir, subject_id, 'model', self.model_id), doc) for subject_id, doc in zip(subjects_id, catalog_)) Parallel(n_jobs=self.n_jobs)(delayed(save_raw)( os.path.join(study_dir, subject_id), doc) for subject_id, doc in zip(subjects_id, catalog_)) Parallel(n_jobs=self.n_jobs)(delayed(save_onsets)( os.path.join(study_dir, subject_id, 'model', self.model_id, 'onsets'), doc) for subject_id, doc in zip(subjects_id, catalog_)) return catalog_