Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

fairagro/sciwin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

icon

SciWIn - Scientific Workflow Infrastructure

Rust πŸ¦€ Continuous Integration GitHub License GitHub Release GitHub Downloads

⭐ Star this Repo to say "Thank you!" ⭐

Share Share Share Share

πŸ“– Read the Documentation to get started or take a look at some examples! πŸš€

πŸ¦€ Take a look at our latest publications and talks πŸ‘€

or the FAIRagro Blogpost: SciWIn-Client – what is it actually?

πŸ“– Table of Contents

πŸš€ About

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.

πŸ—οΈ How to Build and Test

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 run

To run tests (unit and integration)

cargo nextest --workspace           # Run all tests

πŸ’š SciWin Studio

SciWIn-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.

Features

  • Visual workflow design and management
  • Drag-and-drop interface for connecting workflow steps
  • Real-time workflow visualization
  • Accessible workflow creation without terminal expertise

Screenshot of SciWIn Studio

Running SciWIn-Studio

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 sciwin

Note

SciWIn-Studio is currently in testing phase. Features and functionality may change as development progresses.

🎯 Installation

Detailed installation instructions can be found at the latest release:

GitHub 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:

Linux/MacOS:

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 

Windows:

powershell -ExecutionPolicy Bypass -c "irm https://fairagro.github.io/sciwin/get_s4n.ps1 | iex"

πŸ“š How to Use

Take a look at the User documentation. An overview on how to use SciWIn Client is available below.

Project initialization

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

Creation of CWL CommandLineTools

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

Creation of CWL Workflows

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.

Execution of CWL Files

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]

πŸͺ‚ Contributors

Made with contrib.rocks.

Measure 4.4
Jens Krumsieck :octocat: @jenskrumsieck ORCID: 0000-0001-6242-5846
Antonia Leidel :octocat: @aleidel ORCID: 0009-0007-1765-0527
Patrick KΓΆnig :octocat: @patrick-koenig ORCID: 0000-0002-8948-6793
Xaver Stiensmeier :octocat: @XaverStiensmeier ORCID: 0009-0005-3274-122X
Harald von Waldow :octocat: @hvwaldow ORCID: 0000-0003-4800-2833

Funded by

dfg

DFG project number 501899475

βš–οΈ License

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

🏁 Quick Links

πŸ”Ό Back to Top