%matplotlib inline from __future__ import print_function import numpy as np import matplotlib.pyplot as plt import nibabel as nib def plot_slice(fname, z_idx=5): # Load the image and collect the data # and orientation information img = nib.load(fname) data = img.get_data() aff = img.get_affine() # Find the center of the brain matrix ctr = np.dot(np.linalg.inv(aff), [0, 0, 0, 1])[:3] # Plot the data vmin, vmax = (0, 1) if data.dtype == np.int16 else (30, 150) plt.imshow(np.rot90(data[:, :, ctr[2] + z_idx]), cmap="gray", vmin=vmin, vmax=vmax) plt.gca().set_axis_off() plot_slice("data/T1.nii.gz") !bet data/T1.nii.gz data/T1_bet.nii.gz plot_slice("data/T1_bet.nii.gz") !bet !bet data/T1 data/T1_bet -m plot_slice("data/T1_bet_mask.nii.gz") from nipype.interfaces.fsl import BET print(BET.__doc__) print(BET.help()) skullstrip = BET() skullstrip.inputs.in_file = "data/T1.nii.gz" skullstrip.inputs.out_file = "data/T1_bet_nipype.nii.gz" skullstrip = BET(in_file="data/T1.nii.gz", out_file="data/T1_bet_nipype.nii.gz") print(skullstrip.cmdline) skullstrip.inputs.mask = True print(skullstrip.cmdline) skullstrip.run() plot_slice("data/T1_bet_nipype.nii.gz") skullstrip2 = BET() skullstrip2.run() skullstrip.inputs.mask = "mask_file.nii" skullstrip.inputs.in_file = "data/oops_a_typo.nii" skullstrip = BET(in_file="data/T1.nii.gz") print(skullstrip.cmdline) res = skullstrip.run() print(res.outputs) res2 = skullstrip.run(mask=True) print(res2.outputs) from nipype.interfaces.spm import Realign print(Realign.help()) !gunzip -c data/timeseries.nii.gz > data/timeseries.nii # SPM cannot read compressed files natively realign = Realign(in_files="data/timeseries.nii") realign.inputs.register_to_mean = False realign.inputs.interp = 3 # realign.run() # Uncomment if you have SPM installed and want it to run def add_two(x): return x + 2 from nipype import Function addtwo = Function(input_names=["x"], output_names=["val"], function=add_two) print(addtwo.run(x=4).outputs.val) !make clean