human
Complete the below
def create_vbm_preproc(name='vbmpreproc'):

    ''''Create a vbm workflow that generates DARTEL-based warps to MNI space
    Based on: http://www.fil.ion.ucl.ac.uk/~john/misc/VBMclass10.pdf
    Example
    >>> preproc = create_vbm_preproc()
    >>> preproc.inputs.inputspec.fwhm = 8
    >>> preproc.inputs.inputspec.structural_files = [os.path.abspath(\'s1.nii\'), os.path.abspath(\'s3.nii\')]
    >>> preproc.inputs.inputspec.template_prefix = \'Template\'
    >>> preproc.run() # doctest: +SKIP
    Inputs::
    inputspec.structural_files : structural data to be used to create templates
    inputspec.fwhm: single of triplet for smoothing when normalizing to MNI space
    inputspec.template_prefix : prefix for dartel template
    Outputs::
    outputspec.normalized_files : normalized gray matter files
    outputspec.template_file : DARTEL template
    outputspec.icv : intracranial volume (cc - assuming dimensions in mm)'
    '''
assistant
#Here is Python program to fix = \'Template\'
.
    workflow = pe.Workflow(name=name)
    '\n                Define    the    inputs    to    this    workflow\n                '
    inputnode = pe.Node(niu.IdentityInterface(fields=['structural_files', 'fwhm', 'template_prefix']), name='inputspec')
    dartel_template = create_DARTEL_template()
    workflow.connect(inputnode, 'template_prefix', dartel_template, 'inputspec.template_prefix')
    workflow.connect(inputnode, 'structural_files', dartel_template, 'inputspec.structural_files')
    norm2mni = pe.Node(spm.DARTELNorm2MNI(modulate=True), name='norm2mni')
    workflow.connect(dartel_template, 'outputspec.template_file', norm2mni, 'template_file')
    workflow.connect(dartel_template, 'outputspec.flow_fields', norm2mni, 'flowfield_files')
    def getclass1images(class_images):
        class1images = []
        for session in class_images:
            class1images.extend(session[0])
        return class1images
    workflow.connect(dartel_template, ('segment.native_class_images', getclass1images), norm2mni, 'apply_to_files')
    workflow.connect(inputnode, 'fwhm', norm2mni, 'fwhm')
    def compute_icv(class_images):
        from nibabel import load
        from numpy import prod
        icv = []
        for session in class_images:
            voxel_volume = prod(load(session[0][0]).header.get_zooms())
            img = ((load(session[0][0]).get_data() + load(session[1][0]).get_data()) + load(session[2][0]).get_data())
            img_icv = (((img > 0.5).astype(int).sum() * voxel_volume) * 0.001)
            icv.append(img_icv)
        return icv
    calc_icv = pe.Node(niu.Function(function=compute_icv, input_names=['class_images'], output_names=['icv']), name='calc_icv')
    workflow.connect(dartel_template, 'segment.native_class_images', calc_icv, 'class_images')
    '\n                Define    the    outputs    of    the    workflow    and    connect    the    nodes    to    the    outputnode\n                '
    outputnode = pe.Node(niu.IdentityInterface(fields=['normalized_files', 'template_file',...