示例#1
0
    def fetch(self, n_subjects=1, preprocess_data=True, convert=True,
              url=None, resume=True, force=False, verbose=1):
        from openfmri2bids.converter import convert

        # Prep the URLs
        if not op.exists(op.join(self.data_dir, 'ds052_BIDS')):
            url = 'http://openfmri.s3.amazonaws.com/tarballs/ds052_raw.tgz'
            opts = {'uncompress': True}
            files = [('ds052', url, opts)]
            files = self.fetcher.fetch(files, resume=resume, force=force,
                                       verbose=verbose)

            # Move around the files to BIDS format.
            if convert:
                convert(source_dir=op.join(self.data_dir, 'ds052'),
                        dest_dir=op.join(self.data_dir, 'ds052_BIDS'),
                        nii_handling='link')

        # Loop over subjects to extract files.
        anat_files = []
        func_files = []
        for subj_dir in glob.glob(op.join(self.data_dir,
                                          'ds052_BIDS', 'sub-*')):
            anat_files += glob.glob(op.join(subj_dir,
                                            'anatomy', '*_T1w_run*.nii.gz'))
            func_files += glob.glob(op.join(subj_dir, 'functional',
                                            '*_task-*_bold*.nii.gz'))

        if preprocess_data:
            func_files = self.preprocess_files(func_files,
                                               anat_files=anat_files)

        # return the data
        return dict(func=func_files, anat=anat_files)
示例#2
0
    def fetch(self,
              n_subjects=1,
              preprocess_data=True,
              url=None,
              resume=True,
              force=False,
              verbose=1):

        # Prep the URLs
        if not os.path.exists(os.path.join(self.data_dir, 'ds052_BIDS')):
            url = 'http://openfmri.s3.amazonaws.com/tarballs/ds052_raw.tgz'
            opts = {'uncompress': True}
            files = [('ds052', url, opts)]
            files = self.fetcher.fetch(files,
                                       resume=resume,
                                       force=force,
                                       verbose=verbose)

            # Move around the files to BIDS format.
            convert(source_dir=os.path.join(self.data_dir, 'ds052'),
                    dest_dir=os.path.join(self.data_dir, 'ds052_BIDS'),
                    nii_handling='link')

        # Loop over subjects to extract files.
        anat_files = []
        func_files = []
        for subj_dir in glob.glob(
                os.path.join(self.data_dir, 'ds052_BIDS', 'sub-*')):
            anat_files += glob.glob(
                os.path.join(subj_dir, 'anatomy', '*_T1w_run*.nii.gz'))
            func_files += glob.glob(
                os.path.join(subj_dir, 'functional', '*_task-*_bold*.nii.gz'))

            # if not (i == 2 and anat_file == 'highres002.nii.gz') and not i==11]

        if preprocess_data:
            func_files = self.preprocess_files(func_files,
                                               anat_files=anat_files)
            plt.show()

        # return the data
        return Bunch(func=func_files, anat=anat_files)
    for dataset in datasets:
        if isinstance(dataset, dict):
            output_ds_dir = output_data_dir + "symlinked/%s/" % \
                                              list(dataset.values())[0][
                                              :-1]
            try:
                shutil.rmtree(output_ds_dir)
            except:
                pass
            for ses_label, ds in dataset.items():
                args = {}
                if ds in custom_chngelog_converters:
                    args["changelog_converter"] = custom_chngelog_converters[ds]
                convert(input_data_dir+"%s/"%ds,
                        output_ds_dir,
                ses=ses_label,
                nii_handling='link', **args)
        else:
            output_ds_dir = os.path.join(output_data_dir,
                                         "symlinked/%s/" % dataset)
            try:
                shutil.rmtree(output_ds_dir)
            except:
                pass
            args = {}
            if dataset in custom_chngelog_converters:
                args["changelog_converter"] = custom_chngelog_converters[dataset]
            convert(os.path.join(input_data_dir, "%s/"%dataset),
                    output_ds_dir,
                    nii_handling='link',
                    **args)
        f.write(out_str)

custom_chngelog_converters = {"ds113b": ds113b_converter}


for dataset in datasets:
    if isinstance(dataset, dict):
        try:
            shutil.rmtree("/Volumes/Samsung_T1/bids_examples/symlinked/%s/"%dataset.values()[0][:-1])
        except:
            pass
        for ses_label, ds in dataset.items():
            args = {}
            if ds in custom_chngelog_converters:
                args["changelog_converter"] = custom_chngelog_converters[ds]
            convert("/Volumes/Samsung_T1/openfmri/%s/"%ds, 
                    "/Volumes/Samsung_T1/bids_examples/symlinked/%s/"%ds[:-1],
            ses=ses_label,
            nii_handling='link', **args)
    else:
        try:
            shutil.rmtree("/Volumes/Samsung_T1/bids_examples/symlinked/%s/"%dataset)
        except:
            pass
        args = {}
        if dataset in custom_chngelog_converters:
            args["changelog_converter"] = custom_chngelog_converters[dataset]
        convert("/Volumes/Samsung_T1/openfmri/%s/"%dataset, 
                "/Volumes/Samsung_T1/bids_examples/symlinked/%s/"%dataset,
                nii_handling='link',
                **args)