scipion-pyworkflow

Workflow platform used in scientific applications, initially developed within the Scipion framework for image processing in Electron Microscopy but generic by design to be applied to any domain.


Keywords
scipion, electron-microscopy, cryo-em, structural-biology, generic-workflow-engine, image-processing, scipion-3, 0, core
License
GPL-3.0
Install
pip install scipion-pyworkflow==3.11.1

Documentation

PyPI release Quality Gate Status SonarCloud quality gate License Supported Python versions Downloads Contributor Covenant

pyworkflow

pyworkflow is a simple workflow platform used in scientific applications. It has been initially developed within the Scipion framework for image processing in Electron Microscopy.

pyworkflow allows you to define a working Domain by defining the following group of classes:

  • Objects: input/outputs that will be generated by different programs
  • Protocols: special type of Objects that have defined input parameters and will produce some output
  • Viewers: Entities that provide graphical analysis of results.
  • Wizards: Small GUIs that can be develop to help users to select given parameter values.

Development

To install pyworkflow for development purposes, one can do:

# Create a clean virtual environment
conda create -n scipion python=3.8
conda activate
git clone https://github.com/scipion-em/scipion-pyworkflow.git
cd scipion-pyworkflow
pip install -e .

Running tests

conda activate scipion
cd scipion-pyworkflow
export SCIPION_DOMAIN="pyworkflowtests/tests/mock_domain"
python -m unittest discover

# Simple project GUI can be shown after running tests:
python pyworkflow/apps/pw_project.py TestProtocolOutputs

All test projects are located in ~/ScipionUserData/Tests/

API documentation

https://scipion-em.github.io/docs/release-3.0.0/api/pyworkflow/pyworkflow.html