Metadata-Version: 2.4
Name: reproducible-analyses-framework-and-tools
Version: 1.5.1
Summary: Reproducibile Analyses Framework and Tools
Home-page: https://gitlab.com/reproducible-analyses-framework-and-tools/raft
Author: Steven P. Vensko II
Author-email: steven.vensko@med.unc.edu
License: Apache-2.0
Project-URL: Bug Tracker, https://gitlab.com/reproducible-analyses-framework-and-tools/raft/-/issues
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: gitpython==3.1.9
Requires-Dist: python-gitlab
Requires-Dist: nextflow==23.10.0
Requires-Dist: wget==3.2
Requires-Dist: google-cloud-storage==2.18.2
Requires-Dist: google-cloud-batch>=0.17.32
Requires-Dist: fastapi>=0.104.0
Requires-Dist: uvicorn>=0.24.0
Requires-Dist: requests
Requires-Dist: awscli
Requires-Dist: pyyaml>=6.0
Dynamic: license-file

# RAFT

Reproducible Analyses Framework and Tools

RAFT is a Python package and CLI for running and managing bioinformatics
workflows built on Nextflow DSL2. The repository also includes browser-based
tools for manifest/config generation, a report viewer, and a Bring Your Own
Cloud (BYOC) launcher for running on GCP Batch.

## What RAFT does

- Creates and manages reproducible workflow projects
- Runs off-the-shelf workflows from versioned definitions
- Validates manifests before execution
- Launches browser UIs for manifest editing, config generation, report viewing,
  and BYOC setup
- Supports local execution and BYOC submission to GCP Batch

## Installation

RAFT installs a `raft` command-line entry point. Install it into an environment
of its own — current Debian and Ubuntu releases enforce [PEP 668](https://peps.python.org/pep-0668/)
and refuse to let `pip` install into the system Python (`error:
externally-managed-environment`), including with `--user`.

```bash
sudo apt install -y pipx
pipx ensurepath
pipx install reproducible-analyses-framework-and-tools
```

Or, without `pipx`:

```bash
python3 -m venv ~/raft-venv
~/raft-venv/bin/pip install reproducible-analyses-framework-and-tools
export PATH="$HOME/raft-venv/bin:$PATH"
```

On older distributions that predate PEP 668 enforcement, `pip install --user
reproducible-analyses-framework-and-tools` still works.

Runtime prerequisites for most workflow execution paths:

- Python 3.9+
- Nextflow
- Java
- `wget`
- `tar`, `gzip`, and the bzip2 helper this system's tar calls (`lbzip2` on
  Debian, `bzip2` on Ubuntu) for reference archive extraction; `raft
  install-dependencies` installs whichever one applies
- Singularity/Apptainer

## Quick Start

Initialize a RAFT workspace in the current directory:

```bash
raft setup --default
```

List available off-the-shelf workflows:

```bash
raft available-workflows
raft available-workflows --workflow lens
```

Create and run a new workflow project:

```bash
raft run \
  --project-id demo-lens \
  --workflow lens \
  --version 1.9.0
```

If `--manifest` is omitted for a new project, RAFT launches the manifest
generator UI. If ``--workflow-profile`` is not provided, RAFT can also launch
the config generator UI. Use ``--workflow-profile standard`` to apply the base
workflow configuration non-interactively.

Launch the report viewer for an existing project:

```bash
raft generate-reports --project-id demo-lens
```

## Main Commands

- `raft setup`: create `.raft.cfg` and standard workspace directories, including `inputs/`
- `raft run`: run an existing project, or create and run a new workflow project
- `raft run-demo`: create and run a demo workflow
- `raft available-workflows`: inspect workflow definitions
- `raft check-manifest`: validate a manifest
- `raft generate-reports`: open the workflow report viewer

## Documentation In This Repo

- User docs: [docs/source](docs/source)
- Runner container: [containers/raft-runner](containers/raft-runner)

## Cloud / BYOC

The repository includes:

- A browser-based BYOC launcher for GCP Batch
- A runner container image used by Batch jobs
- Local `raft run --bucket ...` support for advanced cases

Start with:

- [docs/source/running-raft-on-the-cloud.rst](docs/source/running-raft-on-the-cloud.rst)
- [containers/raft-runner/README.md](containers/raft-runner/README.md)
