Scripting Practical

Welcome to the scripting practical session. This practical contains many parts, starting at a very simple level and moving through to advanced scripting exercises. Do not expect to finish all of this practical in a single session.

If you are very new to scripting then the first few exercises will take a while but you will soon find that, having started, progressing with the other scripting exercises becomes easier and you can work through others on your own.

If you are experienced with scripting then feel free to skip the exercises which you are already comfortable with and move onto the ones more focussed on the FSL utilities towards the end.

The practicals explore both the basics of scripting and some of the various FSL command-line utilities. The following overview gives an indication of the content of each practical:

  • First script
    This practical starts with the very simplest of scripts: uses bet.

  • Echo and Wildmasks
    Familiarisation with the use of wildmasks, and echo: uses fslmerge, fslsplit.

  • Command Line Arguments
    Take a the script from the first practical and modify it to use arguments passed in by the user as $1, etc. Advanced section introduces shift for more complicated command line argument passing.

  • Variables
    Read the voxel dimensions of an image and display them: uses fslval. Note - this script is modified later on.

  • If and Test
    Uses if and test commands to check for correct usage syntax and see if files exist.

  • Batch Processing
    Creating scripts to run on whole directories of files or a user-specified list of files. Examples involve the use of basename as well as bet and fslmaths.

  • Calculating Volume and FOV
    Use the calculator bc to calculate image quantities and rescale images: uses fslval, fslstats, fslmaths and a previous script (see above).

  • Lightbox View
    Make a script with loops to create a lightbox view of an image: uses slicer and convert.

  • Processing a Stimulus File
    Create a custom Feat EV file from a general stimulus file. Learn to manipulate columns and entries with grep, awk and sed to create the desired output. Very useful exercise for those doing non-block-design fMRI experiments.

  • File name handling
    Make scripts ignore extensions like .nii.gz and change path names in Feat design files: uses sed, basename.

  • Advanced scripting
    A complicated exercise, to produce an animated image showing a rotating maximum-intensity-projection activation colour overlay combined with a mid-sagittal-slice from a background image.