β Star this Repo to say "Thank you!" β
π Read the Documentation to get started or take a look at some examples! π
π¦ Take a look at our latest publications and talks π
- FAIR, fast, and frictionless β computational workflows with SciWIn, FDM Niedersachsen DataDays 2025
- FAIRagro Talk: SciWIn β making your workflows work for you, FAIRagro Talk Nov. 2025
- Easy creation of reproducible computational workflows with SciWIn-Client, CoRDI 2025
- SciWIn Client: Reproducible computational workflows made easy, FAIRagro Plenary 2024
- Lightning Talk: Boosting Scientific Reusability, FAIRagro Community Summit 2024
- Poster: Boosting Scientific Reusability, FAIRagro Comminity Summit 2024
or the FAIRagro Blogpost: SciWIn-Client β what is it actually?
- π About
- ποΈ How to Build and Test
- π SciWin Studio
- π― Installation
- π How to Use
- πͺ Contributors
- βοΈ License
Computational workflows, which define complex, multi-step procedures for automated execution, are crucial for ensuring reproducibility, scalability, and efficiency in scientific research. The FAIRagro Scientific Workflow Infrastructure (SciWIn) empowers scientists to create, execute, share, and publish these workflows, promoting collaboration and transparency.
This repository consists of two complementary tools: SciWIn-Client and SciWIn-Studio (currently in testing).
Reproducibility in computational research is essential for effective collaboration, result verification, and maintaining transparency. However, it remains challenging due to complex workflows, inconsistent data management practices, and dependencies on specific software environments. SciWIn-Client is a command-line tool designed to simplify the creation, recording, annotation, and execution of computational workflows. It enables researchers to interactively use intuitive commands to track tasks such as data extraction, cleaning, transformation, analysis, visualization, and computational simulation. By automating and standardizing workflows, SciWIn-Client minimizes error sources and supports transparent, reproducible Open Science practices.
SciWIn-Studio provides a graphical user interface that makes workflow management accessible to researchers who prefer visual tools over command-line interactions, offering an intuitive alternative for designing and executing computational workflows without requiring terminal expertise.
This project is being developed using Rust and Cargo.
To run SciWIn-Client you can just use cargo run to run from source code, to build use cargo build.
To run the tests use cargo nextest or bacon nextest to run as watcher (implying that bacon and nextest are installed).
# Clone the repository
git clone https://github.com/fairagro/sciwin
cd sciwin
# Build the project
cargo build
# Run the project
cargo runTo run tests (unit and integration)
cargo nextest --workspace # Run all testsSciWIn-Studio is a graphical user interface (GUI) application currently in testing that complements SciWIn-Client. It provides an intuitive visual environment for researchers who prefer graphical tools over command-line interactions.
- Visual workflow design and management
- Drag-and-drop interface for connecting workflow steps
- Real-time workflow visualization
- Accessible workflow creation without terminal expertise
To run SciWIn-Studio, you need to install the Dioxus CLI dx:
# Install Dioxus CLI
curl -sSL http://dioxus.dev/install.sh | sh
# or (slower)
cargo install dioxus-cli
# Navigate to the project directory
cd sciwin
# Launch SciWIn-Studio in debug mode
dx serve -p sciwinNote
SciWIn-Studio is currently in testing phase. Features and functionality may change as development progresses.
Detailed installation instructions can be found at the latest release:
The easiest way is to use the shell or powershell scripts with the provided commands.
To install latests binaries you can use the following scripts:
curl --proto '=https' --tlsv1.2 -LsSf https://fairagro.github.io/sciwin/get_s4n.sh | sh If curl responds with code 429 you can try to use wget instead.
wget -qO- https://fairagro.github.io/sciwin/get_s4n.sh | sh powershell -ExecutionPolicy Bypass -c "irm https://fairagro.github.io/sciwin/get_s4n.ps1 | iex"Take a look at the User documentation. An overview on how to use SciWIn Client is available below.
Most commands need the context of a Git repo to work. Project initialization can be done using the s4n init command.
s4n init -p <FOLDER/PROJECT NAME>Besides the minimal project structure, the creation of an "Annotated Research Context" or ARC is also possible.
s4n init -a -p <FOLDER/PROJECT NAME>Important
The commands have changed in v1.0.0 (Breaking Change). The mapping is as follows:
| Old Command | New Command |
|---|---|
| s4n tool create | s4n create |
| s4n tool list | s4n list |
| s4n tool remove | s4n remove |
| s4n workflow create | s4n create --name (optional!) |
| s4n workflow list | s4n list |
| s4n workflow remove | s4n remove |
| s4n workflow status | s4n list [WORKFLOW_NAME] |
| s4n workflow connect | s4n connect |
| s4n workflow disconnect | s4n disconnect |
| s4n workflow visualize | s4n visualize |
| s4n workflow save | s4n save |
To create CWL CommandLineTools which can be combined to workflows later a prefix command can be used. s4n create will execute any given command and creates a CWL CommandLineTool accordingly.
s4n create <COMMAND> [ARGUMENTS]The command comes with a lot of different options on how to handle the CWL creation specifically.
Creates a new CWL File or Workflow
Usage: s4n create [OPTIONS] [COMMAND]...
Arguments:
[COMMAND]... Command line call e.g. python script.py [ARGUMENTS]
Options:
-n, --name <NAME> A name to be used for this workflow or tool
-c, --container-image <CONTAINER_IMAGE> An image to pull from e.g. docker hub or path to a Dockerfile
-t, --container-tag <CONTAINER_TAG> The tag for the container when using a Dockerfile
-r, --raw Outputs the raw CWL contents to terminal
--no-commit Do not commit at the end of tool creation
--no-run Do not run given command
--clean Deletes created outputs after usage
--no-defaults Removes default values from inputs
--net Enables network in container
-i, --inputs <INPUTS> Force values to be considered as an input.
-o, --outputs <OUTPUTS> Force values to be considered as an output.
-m, --mount <MOUNT> Mounts a directory into the working directory
-f, --force Overwrites existing workflow
-h, --help Print help
CWL Workflows can be created semi-automatically using s4n connect commands. Connections to In- or Outputs are added using either @inputs or @outputs as file identifier.
s4n connect <NAME> --from [FILE]/[SLOT] --to [FILE/SLOT]For example: s4n connect demo --from @inputs/speakers --to calculation/speakers - The Step calculation will be added pointing to workflows/calculation/calculation.cwl, which will use the newly created input speakers as input for its speakers input.
SciWIn-Client comes with its custom CWL Runner (which does not support all cwltool can do, yet!) to run Workflows and CommandLineTools. The command s4n execute local can also be triggered using s4n ex l.
s4n execute local <CWLFILE> [ARGUMENTS]Made with contrib.rocks.
| Measure 4.4 | ||
|---|---|---|
| Jens Krumsieck | ORCID: 0000-0001-6242-5846 | |
| Antonia Leidel | ORCID: 0009-0007-1765-0527 | |
| Patrick KΓΆnig | ORCID: 0000-0002-8948-6793 | |
| Xaver Stiensmeier | ORCID: 0009-0005-3274-122X | |
| Harald von Waldow | ORCID: 0000-0003-4800-2833 |
Funded by
DFG project number 501899475
This work is dual-licensed under Apache 2.0 and MIT .
You can choose between one of them if you use this work.
SPDX-License-Identifier: Apache-2.0 OR MIT