Swift has a very similar origin as nextflow, and shares quite a bit of functionality, but using entirely different designs. To quote the swift web pages:

  • Swift is parallel: it runs multiple programs concurrently as soon as their inputs are available, reducing the need for complex parallel programming.
  • Swift is easy: short, simple scripts can do large-scale work. The same script runs on multicore computers, clusters, grids, clouds, and supercomputers.
  • Swift is fast: it can run a million programs, thousands at a time, launching hundreds per second.
  • Swift is flexible: it is being used in physical sciences, biological sciences, social sciences, humanities, computer science, education.


The scripting language and pipelines are not really trivial, and it takes a while to get acquainted with some of the rather uncommon concepts. In contrast to Nextflow the language has a more "functional" approach, and it's easier to parametrize calls. Setting up the environment is less flexible, but it's in general a very handy tool to orchestrate large chunks of fairly identical tasks.

I collected some very basic recipes running crystfel data processing (in it's most basic form) for a number of different scenarios

  • Running one process per diffraction image
  • ... others to follow

Basic Setup

# the basic setup 
module load maxwell swift

# alternatively 
export PATH=/software/workflows/swift/bin:$PATH

Further Documentation