{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Interfaces\n", "\n", "In Nipype, interfaces are python modules that allow you to use various external packages (e.g. FSL, SPM or FreeSurfer), even if they themselves are written in another programming language than python. Such an interface knows what sort of options an external program has and how to execute it." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Interfaces vs. Workflows\n", "\n", "Interfaces are the building blocks that solve well-defined tasks. We solve more complex tasks by combining interfaces with workflows:\n", "\n", "
Interfaces | \n", "Workflows | \n", " \n", " \n", "
---|---|
Wrap *unitary* tasks | \n", "Wrap *meta*-tasks\n",
" | \n",
"
Keep track of the inputs and outputs, and check their expected types | \n", "Do not have inputs/outputs, but expose them from the interfaces wrapped inside | \n", "
Do not cache results (unless you use [interface caching](advanced_interfaces_caching.ipynb)) | \n", "Cache results | \n", "
Run by a nipype plugin | \n", "Run by a nipype plugin | \n", "