Example #1
0
def test_BuildConnectome_outputs():
    output_map = dict(out_file=dict(), )
    outputs = BuildConnectome.output_spec()

    for key, metadata in output_map.items():
        for metakey, value in metadata.items():
            yield assert_equal, getattr(outputs.traits()[key], metakey), value
def test_BuildConnectome_outputs():
    output_map = dict(out_file=dict(),
    )
    outputs = BuildConnectome.output_spec()

    for key, metadata in output_map.items():
        for metakey, value in metadata.items():
            yield assert_equal, getattr(outputs.traits()[key], metakey), value
def test_BuildConnectome_inputs():
    input_map = dict(args=dict(argstr='%s',
    ),
    environ=dict(nohash=True,
    usedefault=True,
    ),
    ignore_exception=dict(nohash=True,
    usedefault=True,
    ),
    in_file=dict(argstr='%s',
    mandatory=True,
    position=-3,
    ),
    in_parc=dict(argstr='%s',
    position=-2,
    ),
    in_scalar=dict(argstr='-image %s',
    ),
    in_weights=dict(argstr='-tck_weights_in %s',
    ),
    keep_unassigned=dict(argstr='-keep_unassigned',
    ),
    metric=dict(argstr='-metric %s',
    ),
    nthreads=dict(argstr='-nthreads %d',
    nohash=True,
    ),
    out_file=dict(argstr='%s',
    mandatory=True,
    position=-1,
    usedefault=True,
    ),
    search_forward=dict(argstr='-assignment_forward_search %f',
    ),
    search_radius=dict(argstr='-assignment_radial_search %f',
    ),
    search_reverse=dict(argstr='-assignment_reverse_search %f',
    ),
    terminal_output=dict(nohash=True,
    ),
    vox_lookup=dict(argstr='-assignment_voxel_lookup',
    ),
    zero_diagonal=dict(argstr='-zero_diagonal',
    ),
    )
    inputs = BuildConnectome.input_spec()

    for key, metadata in input_map.items():
        for metakey, value in metadata.items():
            yield assert_equal, getattr(inputs.traits()[key], metakey), value
Example #4
0
def test_BuildConnectome_inputs():
    input_map = dict(
        args=dict(argstr='%s', ),
        environ=dict(
            nohash=True,
            usedefault=True,
        ),
        ignore_exception=dict(
            nohash=True,
            usedefault=True,
        ),
        in_file=dict(
            argstr='%s',
            mandatory=True,
            position=-3,
        ),
        in_parc=dict(
            argstr='%s',
            position=-2,
        ),
        in_scalar=dict(argstr='-image %s', ),
        in_weights=dict(argstr='-tck_weights_in %s', ),
        keep_unassigned=dict(argstr='-keep_unassigned', ),
        metric=dict(argstr='-metric %s', ),
        nthreads=dict(
            argstr='-nthreads %d',
            nohash=True,
        ),
        out_file=dict(
            argstr='%s',
            mandatory=True,
            position=-1,
            usedefault=True,
        ),
        search_forward=dict(argstr='-assignment_forward_search %f', ),
        search_radius=dict(argstr='-assignment_radial_search %f', ),
        search_reverse=dict(argstr='-assignment_reverse_search %f', ),
        terminal_output=dict(nohash=True, ),
        vox_lookup=dict(argstr='-assignment_voxel_lookup', ),
        zero_diagonal=dict(argstr='-zero_diagonal', ),
    )
    inputs = BuildConnectome.input_spec()

    for key, metadata in input_map.items():
        for metakey, value in metadata.items():
            yield assert_equal, getattr(inputs.traits()[key], metakey), value
Example #5
0
    def create_workflow(self, flow, inputnode, outputnode):

        #conflow = pe.Workflow(name='MRTRix_connectome_pipeline')
        #connectome_inputnode = pe.Node(interface=util.IdentityInterface(fields=['intck','fod_file','roi_volumes']),name='inputnode')
        #connectome_outputnode = pe.Node(interface=util.IdentityInterface(fields=['connectome']),name='outputnode')

        def get_first(output):
            return output[0]

        # Additional maps
        map_merge = pe.Node(interface=util.Merge(4),
                            name="merge_additional_maps")
        flow.connect([
            (inputnode, map_merge, [('gFA', 'in1'), ('skewness', 'in2'),
                                    ('kurtosis', 'in3'), ('P0', 'in4')])
            #(map_merge,cmtk_mrtrixcmat, [('out','additional_maps')]),
        ])

        #print "INTCK : ",intck
        if self.config.fiber_filter:
            fibers_filter = pe.Node(
                interface=FilterTractogram(out_file='streamlines_weights.txt'),
                name='fibers_filter')

            flow.connect([(inputnode, fibers_filter, [('track_file',
                                                       'in_tracks')])])

            # if inputnode.inputs.diffusion_model == 'Deterministic':
            #     flow.connect([
            #                 (inputnode,fibers_filter,[('track_file','in_tracks')])
            #                 ])
            # else:
            #     flow.connect([
            #                 (inputnode,fibers_filter,[(('track_file',get_first),'in_tracks')]),
            #                 ])
            flow.connect([(inputnode, fibers_filter, [('fod_file', 'in_fod')])
                          ])

        connectome_builder = pe.Node(interface=BuildConnectome(),
                                     name='connectome_builder')
        #connectome_builder.inputs.zero_diagonal = True

        #Test if trackfile is a list of tracks filename (Probabilistic tracking) or only a filename (Deterministic tracking)

        flow.connect([(inputnode, connectome_builder, [('track_file',
                                                        'in_file')])])

        # if inputnode.inputs.diffusion_model == 'Deterministic':
        #     print "Deterministic"
        #     flow.connect([
        #                 (inputnode,connectome_builder,[('track_file','in_file')])
        #                 ])
        # else:
        #     print "Probabilistic"
        #     flow.connect([
        #                 (inputnode,connectome_builder,[(('track_file',get_first),'in_file')])
        #                 ])

        flow.connect([
            (inputnode, connectome_builder, [(('roi_volumes_registered',
                                               get_first), 'in_parc')]),
        ])

        if self.config.fiber_filter:
            flow.connect([(fibers_filter, connectome_builder,
                           [('out_weights', 'in_weights')])])

        flow.connect([(inputnode, outputnode, [('track_file',
                                                'streamline_final_file')]),
                      (connectome_builder, outputnode,
                       [('out_file', 'connectivity_matrices')])])