コード例 #1
0
def test_AFQ_missing_files():
    tmpdir = nbtmp.InTemporaryDirectory()
    bids_path = tmpdir.name

    with pytest.raises(
            ValueError,
            match="There must be a dataset_description.json in bids_path"):
        api.AFQ(bids_path)
    afd.to_bids_description(bids_path, **{
        "Name": "Missing",
        "Subjects": ["sub-01"]
    })

    with pytest.raises(
            ValueError,
            match=f"No non-json files recognized by pyBIDS in {bids_path}"):
        api.AFQ(bids_path)

    subses_folder = op.join(bids_path, "derivatives", "otherDeriv", 'sub-01',
                            'ses-01')
    os.makedirs(subses_folder, exist_ok=True)
    afd.to_bids_description(
        op.join(bids_path, "derivatives", "otherDeriv"), **{
            "Name": "Missing",
            "PipelineDescription": {
                "Name": "otherDeriv"
            }
        })
    touch(op.join(subses_folder, "sub-01_ses-01_dwi.nii.gz"))

    with pytest.raises(ValueError,
                       match="No non-json files recognized by pyBIDS" +
                       " in the pipeline: missingPipe"):
        api.AFQ(bids_path, dmriprep="missingPipe")

    os.mkdir(op.join(bids_path, "missingPipe"))
    afd.to_bids_description(
        op.join(bids_path, "missingPipe"), **{
            "Name": "Missing",
            "PipelineDescription": {
                "Name": "missingPipe"
            }
        })
    with pytest.raises(ValueError,
                       match="No non-json files recognized by pyBIDS" +
                       " in the pipeline: missingPipe"):
        api.AFQ(bids_path, dmriprep="missingPipe")
コード例 #2
0
ファイル: plot_bids_layout.py プロジェクト: gkiar/pyAFQ
afd.fetch_stanford_hardi_tractography()

bids_path = op.join(op.expanduser('~'), 'AFQ_data', 'stanford_hardi')
tractography_path = op.join(bids_path, 'derivatives', 'my_tractography')
sub_path = op.join(tractography_path, 'sub-01', 'ses-01', 'dwi')

os.makedirs(sub_path, exist_ok=True)
os.rename(
    op.join(op.expanduser('~'), 'AFQ_data', 'stanford_hardi_tractography',
            'full_segmented_cleaned_tractography.trk'),
    op.join(sub_path, 'sub-01_ses-01-dwi_tractography.trk'))

afd.to_bids_description(
    tractography_path, **{
        "Name": "my_tractography",
        "PipelineDescription": {
            "Name": "my_tractography"
        }
    })

###########################################################################
# After we do that, our dataset folder should look like this:
#
# | stanford_hardi
# | ├── dataset_description.json
# | └── derivatives
# |     ├── freesurfer
# |     │   ├── dataset_description.json
# |     │   └── sub-01
# |     │       └── ses-01
# |     │           └── anat
コード例 #3
0
ファイル: test_api.py プロジェクト: gkiar/pyAFQ
def create_dummy_bids_path(n_subjects, n_sessions, share_sessions=True):
    subjects = ['sub-0%s' % (d + 1) for d in range(n_subjects)]

    # Case where there are individual session folders within each subject's
    # folder:
    if n_sessions > 1:
        # create data for n_sessions for each subject
        if share_sessions:
            sessions = ['ses-0%s' % (d + 1) for d in range(n_sessions)]

            bids_dir = tempfile.mkdtemp()

            afd.to_bids_description(
                bids_dir, **{
                    "Name": "Dummy",
                    "Subjects": subjects,
                    "Sessions": sessions
                })

            dmriprep_dir = op.join(bids_dir, "derivatives", "dmriprep")
            os.makedirs(dmriprep_dir)
            afd.to_bids_description(
                dmriprep_dir, **{
                    "Name": "Dummy",
                    "PipelineDescription": {
                        "Name": "synthetic"
                    }
                })

            for subject in subjects:
                for session in sessions:
                    for modality in ['anat', 'dwi']:
                        os.makedirs(
                            op.join(dmriprep_dir, subject, session, modality))
                    # Make some dummy data:
                    create_dummy_data(dmriprep_dir, subject, session)
        else:
            # create different sessions for each subject
            sessions = ['ses-0%s' % (d + 1) for d in range(n_subjects)]

            bids_dir = tempfile.mkdtemp()

            afd.to_bids_description(
                bids_dir, **{
                    "Name": "Dummy",
                    "Subjects": subjects,
                    "Sessions": sessions
                })

            dmriprep_dir = op.join(bids_dir, "derivatives", "dmriprep")
            os.makedirs(dmriprep_dir)
            afd.to_bids_description(
                dmriprep_dir, **{
                    "Name": "Dummy",
                    "PipelineDescription": {
                        "Name": "synthetic"
                    }
                })

            for d in range(n_subjects):
                subject = subjects[d]
                session = sessions[d]
                for modality in ['anat', 'dwi']:
                    os.makedirs(
                        op.join(dmriprep_dir, subject, session, modality))
                # Make some dummy data:
                create_dummy_data(dmriprep_dir, subject, session)
    else:
        # Don't create session folders at all:
        bids_dir = tempfile.mkdtemp()

        afd.to_bids_description(bids_dir, **{
            "Name": "Dummy",
            "Subjects": subjects
        })

        dmriprep_dir = op.join(bids_dir, "derivatives", "dmriprep")
        os.makedirs(dmriprep_dir)
        afd.to_bids_description(
            dmriprep_dir, **{
                "Name": "Dummy",
                "PipelineDescription": {
                    "Name": "synthetic"
                }
            })

        for subject in subjects:
            for modality in ['anat', 'dwi']:
                os.makedirs(op.join(dmriprep_dir, subject, modality))
            # Make some dummy data:
            create_dummy_data(dmriprep_dir, subject)

    return bids_dir