Skip to content
Docs

Biobase

bulker/biobase is a curated crate of more than 60 common bioinformatics command-line tools, maintained in the default registry at hub.bulker.io. It gives you samtools, bedtools, bowtie2, STAR, salmon, picard, gatk, fastqc, cutadapt, R, and dozens more with a single command, no installation required.

Think of it as a unified, pre-built bioinformatics environment: an alternative to hand-assembling a conda environment, a module stack, or a monolithic Docker image for genomics work. If you’re looking for a quick way to get a standard NGS toolkit (read QC, trimming, alignment, quantification, BAM/VCF processing, peak calling, bigWig utilities) onto a laptop, a server, or an HPC cluster without installing anything, biobase is the answer. It works with Docker or Apptainer/Singularity, and its tool versions are pinned and updated automatically.

Biobase is useful for three things:

  1. Everyday interactive analysis — activate it and start working.
  2. Running basic pipelines — a script that calls standard tools will just work inside an activated biobase crate.
  3. A starting point for your own manifests — import it and add the few tools it lacks.
bulker activate biobase

That single line “installs” the whole toolset. Bulker fetches the manifest from the registry, creates a shimlink for every command, and puts them on your PATH. Nothing is downloaded yet except the manifest; each tool’s container image is pulled the first time you run it.

To see what you’ve got:

$ bulker crate inspect bulker/biobase
Commands: ascp, bamtools, bcftools, bedClip, bedCommonRegions, bedGraphToBigWig, ...

Commands that weren’t on your system before now work as if natively installed:

$ samtools --version
samtools 1.24
Using htslib 1.24
...
$ kallisto version
kallisto, version 0.52.0
CategoryCommands
Read retrieval and QCprefetch, fastq-dump, fasterq-dump, vdb-config, ascp, fastqc, multiqc
Trimmingcutadapt, fastp, trim_galore, trimmomatic, skewer
Alignmentbowtie, bowtie2, bwa, hisat2, STAR, minimap2, bismark, bsmap, mashmap, blast
Quantificationsalmon, kallisto, rsem-calculate-expression, featureCounts, htseq-count, stringtie, cufflinks
BAM/VCF toolssamtools, sambamba, samblaster, bamtools, picard, gatk, bcftools, freebayes, bissnp, vep
Interval and signal toolsbedtools, bedops, deeptools, macs2, homer, tabix, liftOver, and the UCSC utilities (bedGraphToBigWig, bedToBigBed, bigWigCat, bigWigSummary, wigToBigWig, …)
Sequence utilitiesseqkit, seqtk, faSplit, gt, repeatmasker, pigz
Single-cellcellranger
RR, Rscript (Bioconductor image)
Reference genomesrefgenie

Biobase also imports bulker/alpine and bulker/coreutils, so basic shell utilities (ls, grep, sort, awk, …) are available even in strict environments.

For the exact list and image tags, see the manifest on hub.bulker.io.

Because every tool is on your PATH, a workflow is just a sequence of ordinary commands. Each one runs in its own container, and pipes between them work as usual.

Grab some reads from SRA:

fasterq-dump SRR11773889 -O raw_reads

Trim them:

cutadapt -a AGATCGGAAGAGC -o trimmed.fastq raw_reads/SRR11773889.fastq

Biobase includes refgenie, so you can pull a reference index without leaving the crate:

refgenie init -c refgenie.yaml
refgenie pull -c refgenie.yaml t7/bowtie2_index

Align, then pipe straight into samtools to sort and index:

bowtie2 -x $(refgenie seek -c refgenie.yaml t7/bowtie2_index) -U trimmed.fastq \
| samtools sort -o aligned.bam
samtools index aligned.bam

Here bowtie2 and samtools run in two different containers, connected by a normal shell pipe. You never wrote a docker run, built an image, or installed anything.

Every tool in biobase is pinned to a specific container image tag, so a given biobase version always runs the same software. The registry keeps every published version:

bulker activate biobase # latest (default tag)
bulker activate bulker/biobase:0.1.17 # a specific version

For a paper or a shared pipeline, activate a specific version so your collaborators get identical tools. Old versions are never deleted from the registry.

Biobase is updated automatically. Once a month, a GitHub Actions workflow in the hub.bulker.io repository checks every image in the manifest against its container registry (quay.io Biocontainers, Docker Hub) for newer tags. If it finds any, it writes a new versioned manifest with a patch version bump (for example 0.1.17 to 0.1.18), points the default tag at it, and opens a pull request for a human to review. Nothing is published without review.

A few images are intentionally left alone by the updater because they use custom registries or a latest tag (pigz, refgenie). Those are updated by hand.

If your pipeline needs a tool biobase doesn’t have, don’t start from scratch. Import biobase and add what’s missing:

manifest:
name: myorg/mypipeline
version: 1.0.0
imports:
- bulker/biobase:0.1.17
commands:
- command: mytool
docker_image: myorg/mytool:2.1

Activating myorg/mypipeline gives you everything in biobase plus mytool. See Import Crates for details.

To add or update a tool in biobase, open a pull request against the hub.bulker.io repository. Create a new versioned file (bulker/biobase_<version>.yaml), update the biobase.yaml symlink to point at it, and run python validate_manifests.py --check-tags before submitting. See Registry for the general contribution process.