Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

541 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SciLuigi Logo

**Please note, this is a fork of the original SciLuigi repo, created by Samuel Lampa. Our repo contains significant changes that have not yet been merged into the original repo, and may never be merged. You can find full documentation for the H3 version here.

Scientific Luigi (SciLuigi for short) is a light-weight wrapper library around Spotify's Luigi workflow system that aims to make writing scientific workflows (consisting of numerous interdependent commandline applications) more fluent, flexible and modular.

Luigi is a great, flexible, and very fun-to-use library. It has turned out though, that its default way of defining dependencies by hard coding them in each task's requires() function is not optimal for some type of workflows common e.g. in scientific fields such as bioinformatics, where multiple inputs and outputs, complex dependencies, and the need to quickly try different workflow connectivity (e.g. plugging in extra filtering steps) in an explorative fashion is central to the way of working.

SciLuigi was designed to solve some of these problems, by providing the following "features" over vanilla Luigi:

  • Separation of dependency definitions from the tasks themselves, for improved modularity and composability.
  • Inputs and outputs implemented as separate fields, a.k.a. "ports", to allow specifying dependencies between specific input and output-targets rather than just between tasks. This is again to let such details of the network definition reside outside the tasks.
  • The fact that inputs and outputs are object fields, also allows auto-completion support to ease the network connection work (Works great e.g. with jedi-vim).

Because of Luigi's great easy-to-use API, these changes have been implemented as a very thin layer on top of luigi's own API, and no changes to the luigi core is needed at all, so you can continue leveraging the work already being put into maintaining and further developing luigi, by the team at Spotify and others.

Contributors

Acknowledgements

This work is funded by:

Many ideas and inspiration for the API is taken from:

About

Scientific Luigi

Resources

Stars

1 star

Watchers

10 watching

Forks

Releases

Packages

Contributors

Languages