Рабочий процесс Niilearn дает неправильный результатPython

Программы на Python
Ответить
Anonymous
 Рабочий процесс Niilearn дает неправильный результат

Сообщение Anonymous »

Я использую niilearn для предварительной обработки изображения МРТ. Но он не работает, поскольку имя создаваемого файла — rest_mcf.nii_mean_reg.nii. Как видите, расширение .nii появляется два раза, а не один. Этот файл должен называться rest_mcf_mean_reg.nii. Поскольку имя файла неверное, мой рабочий процесс не продолжается.

Я прикрепил код ниже. Почему возникает эта ошибка? Что делать, чтобы этого больше не повторилось?
func_template = 'cocaine_dataset/sub-{subject_id}/func/sub-{subject_id}_task-{task_name}.nii.gz'

templates = {
'func': func_template,
}

# Infosource: Iterate over subject and task
infosource = Node(IdentityInterface(fields=['subject_id', 'task_name']),
name="infosource")
infosource.iterables = [('subject_id', subject_list),
('task_name', task_list)]

# SelectFiles: Template-based file selection
selectfiles = Node(SelectFiles(templates), name="selectfiles")

# MCFLIRT: Motion Correction (realignment)
realign = Node(MCFLIRT(
mean_vol=True, # Create a mean image for reference
save_plots=True, # Save motion correction plots
output_type='NIFTI', # Save output as NIFTI
out_file='rest_mcf.nii'), name="realign")

# DataSink: Organize outputs
datasink = Node(DataSink(base_directory=experiment_dir,
container=output_dir),
name="datasink")

# Define substitutions for datasink output
substitutions = [
('_subject_id_', 'sub-'),
('_task_name_', 'task-'),
('.nii_mean_reg.nii', '_mean.nii.gz'), # Handle the double extension
('_mcf.nii.gz', '_mcf'), # Remove additional .nii.gz
('.mat', '.par'),
('_flirt', '') # Remove unwanted suffix
]

datasink.inputs.substitutions = substitutions

# Create the workflow
realignment_wf = Workflow(name="realignment")
realignment_wf.base_dir = opj(experiment_dir, working_dir)

# Connect the nodes
realignment_wf.connect([
(infosource, selectfiles, [('subject_id', 'subject_id'),
('task_name', 'task_name')]),
(selectfiles, realign, [('func', 'in_file')]),
(realign, datasink, [('out_file', 'realignment.@realigned'),
('par_file', 'realignment.@motion_parameters')])
])

# Run the workflow
realignment_wf.run('MultiProc', plugin_args={'n_procs': 1})


Подробнее здесь: https://stackoverflow.com/questions/792 ... per-output
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»