All Projects → ncbi → JUDI

ncbi / JUDI

Licence: MIT license
This repository contains the source code of JUDI, a workflow management system for developing complex bioinformatics software with many parameter settings. Bioinformatics pipeline: Just Do It!

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

JUDI - Bioinformatics Pipeline: Just Do It

judi comes from the idea of bringing the power and efficiency of doit to execute any kind of task under many combinations of parameter settings.

Sample Code

Snippet from tutorial, save it as dodo.py. Also download a.txt and b.txt.

from judi import File, Task, add_param, show_param_db, combine_csvs

add_param([1, 2], 'n')

class GetCounts(Task):
  """Count lines, words and characters in file"""
  inputs = {'inp': File('text', path=['a.txt', 'b.txt'])}
  targets = {'out': File('counts.csv')}
  actions = [("(echo line word char file; wc {}) | sed 's/^ \+//;s/ \+/,/g' > {}", ["$inp", "$out"])]

class CombineCounts(Task):
  """Combine counts"""
  mask = ['n']
  inputs = {'inp': GetCounts.targets['out']}
  targets = {'out': File('result.csv', mask=mask, root='.')}
  actions = [(combine_csvs, ["#inp", "#out"])]

Run from terminal:

$ doit list
CombineCounts
GetCounts
Task
$ doit
. GetCounts:n~2
. GetCounts:n~1
. CombineCounts:

Project Details

License

The MIT License Copyright (c) 2019-2020 Soumitra Pal

see LICENSE file

Install

judi is tested on python 3.6.

$ pip install judi

Dependencies

  • doit

Documentation

docs folder contains ReST documentation based on Sphinx.

$ make html

Contributing

On github create pull requests using a named feature branch.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].