Open bioinformatics tooling

Reproducible tools and flows.

TAFFISH turns versioned tool repositories, containerized runtimes, and shell-native flows into a lightweight package ecosystem for everyday computational biology.

Static Hub GitHub-hosted index
Versioned Apps 0.1.0-r1 style releases
Containers Docker, Podman, Apptainer

What it is

A practical layer between shell scripts and heavy workflow systems.

01

A small workflow language

Compose command-line bioinformatics tools with structured parameters, flow dependencies, and reusable app metadata.

02

A local package manager

Use taf to update the cloud index, install apps, resolve flow dependencies, and run tools in the selected container backend.

03

A static Hub

App repositories publish releases; GitHub Actions builds images and refreshes a static JSON index consumed by local users.

Runtime and implementation

Built in Common Lisp, delivered with SBCL and LispWorks, and run through container backends.

Container backends

Choose the runtime that fits the machine.

TAFFISH apps are designed to run through Docker, Podman, or Apptainer, including HPC-oriented environments where Apptainer is the natural choice.

Implementation

The core tooling stays close to the language.

The compiler, CLI, metadata handling, and index tooling stay in Common Lisp, with SBCL for open development and LispWorks solving Linux delivery.

Target environments

Unix-like shells first, with WSL as the Windows path.

TAFFISH is shaped around shell-native bioinformatics work on Linux and macOS; Windows users can use WSL2 with a configured container backend.

Architecture and distribution support may vary by TAFFISH release and app image; package metadata should declare amd64/arm64 availability when relevant.

Linux macOS

Get started

Install once, then let the index do the finding.

The canonical installers and backend notes live in the core repository. After taf is available locally, the first workflow is intentionally small.

Open installation guide
taf update
taf install <app>
taf info <app>
taf list --online

Hub architecture

GitHub repositories become installable TAFFISH apps.

  1. 1

    Create an app repository

    A root taffish.toml declares package metadata, command name, kind, source path, container hints, and optional upstream information.

  2. 2

    Tag versioned releases

    Release tags use the v0.1.0-r1 pattern, keeping upstream app versions and TAFFISH rebuilds distinguishable.

  3. 3

    Build containers in Actions

    Each app repository owns its own Dockerfile-based image build and publishes the image through GitHub infrastructure.

  4. 4

    Refresh the static index

    taffish-index scans app repositories, validates metadata, records dependencies and platform constraints, then writes JSON for taf.

Project stories

Two notes about where TAFFISH came from and why it matters.

History

TAFFISH History

A short note on how the project grew from packaging problems into tools, flows, and a Hub.

Personal note

My TAFFISH Story

A personal essay on biological questions, repeated analysis work, Common Lisp, Shell, and why TAFFISH kept growing.

Preprint

TAFFISH is described in a bioRxiv preprint.

TAFFISH: A lightweight, modular, and containerized workflow framework for reproducible bioinformatics analyses

Kaiyuan Han, Ting Wang, Shi-Shi Yuan, Cai-Yi Ma, Wei Su, Kejun Deng, Xiaolong Li, Hao Lv*, and Hao Lin*.

First affiliation: University of Electronic Science and Technology of China.

* Corresponding authors.