コード例 #1
0
ファイル: openfmri.py プロジェクト: GaelVaroquaux/nignore
    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
コード例 #2
0
    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
コード例 #3
0
    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_
コード例 #4
0
ファイル: openfmri.py プロジェクト: GaelVaroquaux/nignore
    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_