From 4f04827f63be1769477eaee4482e4bcc9ae39d4d Mon Sep 17 00:00:00 2001 From: Vasileios Georgopoulos <vgeorgopoulos@athenarc.gr> Date: Wed, 5 Feb 2025 10:54:12 +0200 Subject: [PATCH] Rename README.txt to README.md --- python-package/Case1/readme.md | 17 +++++++++++++++++ python-package/Case2/readme.md | 25 +++++++++++++++++++++++++ python-package/Case3/readme.md | 27 +++++++++++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 python-package/Case1/readme.md create mode 100644 python-package/Case2/readme.md create mode 100644 python-package/Case3/readme.md diff --git a/python-package/Case1/readme.md b/python-package/Case1/readme.md new file mode 100644 index 0000000..086a1b0 --- /dev/null +++ b/python-package/Case1/readme.md @@ -0,0 +1,17 @@ +# CASE 1: Containerized CWL Workflow + +## Description +If a CWL workflow is already designed to run inside a container (the `.cwl` file contains the `DockerRequirement`), there is no need to convert the CWL into a different format for it to work in **StreamFlow**. Instead, **StreamFlow** can execute the CWL workflow as it is, by simply running the container that the CWL specifies. + +## Files +- **`workflow.cwl`**: A simple tool (not a full workflow) that runs the `echo` command inside a **Docker container** (`DockerRequirement`) using the `ubuntu:latest` image. It takes an input string (`message`) that is passed to the `echo` command. +- **`job.yml`**: It contains the input message. +- **`streamflow.yml`**: The **StreamFlow** configuration file. It defines the **CWL workflow** (`workflow.cwl`) that will be executed, uses a settings file (`job.yml`) to define input parameters, and specifies the execution environment where the workflow runs. + +## Requirements +- **`StreamFlow`** python package +- **`Docker`** + +## Execution +```sh +streamflow run streamflow.yml \ No newline at end of file diff --git a/python-package/Case2/readme.md b/python-package/Case2/readme.md new file mode 100644 index 0000000..31ad352 --- /dev/null +++ b/python-package/Case2/readme.md @@ -0,0 +1,25 @@ +# CASE 2: CWL Workflow With One Step + +## Description +This example showcases a **CWL workflow** that executes a step inside a **Docker container** using **StreamFlow**. Unlike a single CWL tool execution, this setup involves a **workflow (`workflow.cwl`)** that orchestrates the execution of a **CWL step (`echo_tool.cwl`)**. + +The workflow: +- Takes an **input string**. +- Passes it to a **command-line tool (`echo_tool.cwl`)** that writes the message to a file. +- Captures the generated output. + +The execution environment is **fully containerized** via **Docker (`ubuntu:latest`)**. + +## Files +- **`workflow.cwl`**: A **CWL workflow** that defines a step (`echo_step`) running **`echo_tool.cwl`** inside a **Docker container (`ubuntu:latest`)**. It passes an **input string (`message`)** to the tool and retrieves an **output file**. +- **`echo_tool.cwl`**: A **CWL CommandLineTool** that executes the **`echo`** command, writing the received message to `output.txt`. This step runs inside a **Docker container (`ubuntu:latest`)**. +- **`job.yml`**: It contains the **input message**. +- **`streamflow.yml`**: The **StreamFlow configuration file**. It defines the **CWL workflow (`workflow.cwl`)** that will be executed, uses a **settings file (`job.yml`)** to define input parameters, and specifies the **execution environment** where the workflow runs. + +## Requirements +- **`StreamFlow`** python package +- **`Docker`** + +## Execution +```sh +streamflow run streamflow.yml \ No newline at end of file diff --git a/python-package/Case3/readme.md b/python-package/Case3/readme.md new file mode 100644 index 0000000..1ee7c86 --- /dev/null +++ b/python-package/Case3/readme.md @@ -0,0 +1,27 @@ +# CASE 2: CWL Workflow With One Step + +## Description +This example showcases a **CWL workflow** that executes a step inside a **Docker container** using **StreamFlow**. Unlike a single CWL tool execution, this setup involves a **workflow (`workflow.cwl`)** that orchestrates the execution of a **CWL step (`echo_tool.cwl`)**. + +The workflow: +- Takes an **input string**. +- Passes it to a **command-line tool (`echo_tool.cwl`)** that writes the message to a file. +- Passes the message to a second tool (length_tool.cwl), which prints the length of the message +- Captures the generated output. + +The execution environment is **fully containerized** via **Docker (`ubuntu:latest`)**. + +## Files +- **`workflow.cwl`**: A **CWL workflow** that defines two steps, (`echo_step`) running **`echo_tool.cwl`** and (`length_step`) running **`length_tool.cwl`** inside a **Docker container (`ubuntu:latest`)**. +- **`echo_tool.cwl`**: A **CWL CommandLineTool** that executes the **`echo`** command, writing the received message to `output.txt`. This step runs inside a **Docker container (`ubuntu:latest`)**. +- **`length_tool.cwl`**: A CWL CommandLineTool that calculates and prints the length of the message printed by **`echo_tool.cwl`**. This step also runs inside a Docker container (ubuntu:latest). +- **`job.yml`**: It contains the **input message**. +- **`streamflow.yml`**: The **StreamFlow configuration file**. It defines the **CWL workflow (`workflow.cwl`)** that will be executed, uses a **settings file (`job.yml`)** to define input parameters, and specifies the **execution environment** where the workflow runs. + +## Requirements +- **`StreamFlow`** python package +- **`Docker`** + +## Execution +```sh +streamflow run streamflow.yml \ No newline at end of file -- GitLab