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
- Basic Documentation: http://swift-lang.org/main/
- Tutorials: http://swift-lang.org/swift-tutorial/doc/tutorial.html