Settings

Settings in p3, are defined in JSON format and can be loaded in through the -s or –settings command line flags. This document describes the settings available to default workflows of p3.

bids_query

Sets the bids query for the bidsselector workflow. The input to this settings key should be a dictionary containing the anat and func keys. See pybids docs for more information.

# This sets the anatomy images to be of modality 'anat' and type 'T1w'
# and the functional images to be modality 'func' and type 'rest'
{
'anat':{
    'modality': 'anat',
    'type':'T1w',
    },
'func':{
    'modality':'func',
    'task':'rest'
    }
}

func_reference_run

Selects the epi run to take the reference image from. It is 0 indexed so the first run loaded in to the func key would be 0.

func_reference_frame

Selects the epi reference frame to use. It is 0 indexed and taken from the whatever run was set to the func_reference_run.

anat_reference

Selects the anat to align to if multiple anat images in dataset. It is 0 indexed. Anatomy imagess are ordered from lowest session, lowest run to highest session, highest run. Leave as 0 if only 1 anat.

atlas

Sets the atlas align target. You can specify a path to an atlas here, or use one of p3’s built in templates. Currently the only availiable template in p3 is MNI152.nii.gz

avganats

True or False. Averages all anats in the dataset if multiple T1s. Set this to False if you only have 1 anatomy image or you will probably get an error!

field_map_correction

True or False. Sets whether the pipeline should run field map correction. You should have field maps in your dataset for this to work. p3 currently only supports gradient echo field maps.

slice_time_correction

True or False. Sets whether the functional images should be slice time corrected.

despiking

True of False. Sets whether epi images should be despiked.

run_recon_all

True or False. Sets whether pipeline should run recon-all (if you decide not to you should place your own p3_freesurfer data under output p3_freesurfer_output, where each folder is {NAME} in sub-{NAME} in the bids dataset)

num_threads

Sets the number of threads for all ANTs programs.

brain_radius

Sets the brain radius for FD calculations (in mm).

min_bpm

Sets the breathing rate for lower bound of the respiratory filter.

max_bpm

Sets the breathing rate for upper bound of the respiratory filter.

FD_threshold

FD threshold for creating tmask outputs.

FD_filtered_threshold

Filtered FD threshold for creating filtered tmask outputs.

workflows

Defines the workflows to import.

"workflows": [
    "p3_bidsselector",
    "p3_freesurfer",
    "p3_skullstrip",
    "p3_stcdespikemoco",
    "p3_fieldmapcorrection",
    "p3_alignanattoatlas",
    "p3_alignfunctoanat",
    "p3_alignfunctoatlas",
    "p3_create_fs_masks"
]

See Creating New Workflows for more details.

connections

Defines the connections between workflows.

"connections": [
    {
        'source': 'p3_bidsselector', # the source workflow
        'destination': 'p3_freesurfer', # the destination workflow
        'links': [
            [ # this sets the anat of p3_bidsselector to T1 of p3_freesurfer
                'output.anat',
                'input.T1'
            ],
            [ # this sets the subject of p3_bidsselector to subject of p3_freesurfer
                'output.subject',
                'input.subject'
            ]
        ]
    },
    {
        'source': 'p3_bidsselector', # the source workflow
        'destination': 'p3_skullstrip', # the destination workflow
        'links': [
            [ # this sets the anat of p3_bidsselector to T1 of p3_skullstrip
                'output.anat',
                'input.T1'
            ]
        ]
    },
    ...
]

See Creating New Workflows for more details.

sideload

A list of inputs to sideload a node.

"sideload": [
    {
        "workflow": "myworkflow1",
        "node": "node1",
        "input": ["field1", "value1"] # a single string sideload
    },
    {
        "workflow": "myworkflow2",
        "node": "node2",
        "input": ["field2", ["value2_1","value2_2","value2_3"]] # an array sideload
    }
]

See Sideloading for more details.