Metadata-Version: 2.4
Name: reproducible-analyses-framework-and-tools
Version: 1.5.dev0
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
Project-URL: Bug Tracker, https://gitlab.com/reproducible-analyses-framework-and-tools/raft/-/issues
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: 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.

```bash
pip install --user reproducible-analyses-framework-and-tools
```

Runtime prerequisites for most workflow execution paths:

- Python 3.9+
- Nextflow
- Java
- `wget`
- 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 v1.9-dev
```

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)
