📓 Jon's Lab Notebook

C-PAC


C-PAC is the main product of the Computational Neuroimaging Lab.

Specification Documents

C-PAC documentation v.1.7

2019 December 9 ‒ 2020 June 26
  • SSOT
  • user documentation
    • versioned documentation
    • timing
  • developer documentation

Log

Friday, 2020 December 4

C PAC

Base Docker images

installation method includes size
Neurodocker ANTs 2.3.4 (2.3.3.dev168-g29bdf)
FreeSurfer 6.0.0-min (v6.0.0-2beb96c)
2.97GB
Neurodocker ANTs 2.3.4 (2.3.3.dev168-g29bdf) 2.02GB
Neurodocker FreeSurfer 6.0.0-min (v6.0.0-2beb96c) 1.05GB
from source ANTS 2.3.4 (2.3.4.dev170-g11953) 7.61GB

Friday, 2020 December 4

C PAC

Base Docker images

installation method includes size
Neurodocker ANTs 2.3.4 (2.3.3.dev168-g29bdf)
FreeSurfer 6.0.0-min (v6.0.0-2beb96c)
2.97GB
Neurodocker ANTs 2.3.4 (2.3.3.dev168-g29bdf) 2.02GB
Neurodocker FreeSurfer 6.0.0-min (v6.0.0-2beb96c) 1.05GB
from source ANTS 2.3.4 (2.3.4.dev170-g11953) 7.61GB

Monday, 2020 November 23 ‒ Wednesday, 2020 November 25

C-PAC

Difference between niworkflows and C-PAC niworkflows

niworkflows

C-PAC niworkflows

I don’t see anything obviously hanging.

One level higher workflow just adds an input and output node:

C-PAC skullstrip

Original niworkflows-ants was refactored in September…


Extra parameters for C-PAC niworkflows-ants:

tpl_target_path

tpl_target_path, common_spec = get_template_specs(
    in_template, template_spec=template_spec
)

tpl_mask_path

# Get probabilistic brain mask if available
tpl_mask_path = get_template(
    in_template, label="brain", suffix="probseg", **common_spec
) or get_template(in_template, desc="brain", suffix="mask", **common_spec)

tpl_regmask_path

# Try to find a registration mask, set if available
tpl_regmask_path = get_template(
    in_template, desc="BrainCerebellumExtraction", suffix="mask", **common_spec
)

After monkeypatching: C-PAC niworkflows after monkeypatching

C-PAC niworkflows after monkeypatching: one level up (skullstrip_anatomical)

Wednesday, 2020 November 18

C-PAC

:fire:

# Inserting Median Angle Correction Workflow
new_strat_list = []

if '3-median-angle-correction' in c.nuisance_corrections:
    # this is just a shorter variable for a config variable that is
    # called multiple times
    median_angle_correction = c.nuisance_corrections[
        '3-median-angle-correction'
    ]
    if True in median_angle_correction['run']:

        for num_strat, strat in enumerate(strat_list):

            # for each strategy, create a new one without median angle
            if False in median_angle_correction['run']:
                new_strat_list.append(strat.fork())

            median_angle_corr = create_median_angle_correction(
                'median_angle_corr_%d' % num_strat
            )

            median_angle_corr.get_node(
                'median_angle_correct'
            ).iterables = (
                'target_angle_deg',
                median_angle_correction['target_angle_deg'])

            node, out_file = strat.get_leaf_properties()
            workflow.connect(node, out_file,
                             median_angle_corr, 'inputspec.subject')

            strat.append_name(median_angle_corr.name)

            strat.set_leaf_properties(median_angle_corr,
                                      'outputspec.subject')

            strat.update_resource_pool({
                'functional_median_angle_corrected': (
                    median_angle_corr,
                    'outputspec.subject')
            })
    # We don't need this shorthand variable anymore after this loop
    del median_angle_correction

strat_list += new_strat_list

Archived Specification Documents

C-PAC v.1.7

2019 December 9 ‒ 2020 July 1

Planned release: Friday, 2020 July 10

hyper realistic pen highlighter by Matt Pi
Interesting Times theme made with by Álvaro