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:
- Everyday interactive analysis — activate it and start working.
- Running basic pipelines — a script that calls standard tools will just work inside an activated biobase crate.
- A starting point for your own manifests — import it and add the few tools it lacks.
Activate biobase
Section titled “Activate biobase”bulker activate biobaseThat 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/biobaseCommands: ascp, bamtools, bcftools, bedClip, bedCommonRegions, bedGraphToBigWig, ...Commands that weren’t on your system before now work as if natively installed:
$ samtools --versionsamtools 1.24Using htslib 1.24...
$ kallisto versionkallisto, version 0.52.0What’s included
Section titled “What’s included”| Category | Commands |
|---|---|
| Read retrieval and QC | prefetch, fastq-dump, fasterq-dump, vdb-config, ascp, fastqc, multiqc |
| Trimming | cutadapt, fastp, trim_galore, trimmomatic, skewer |
| Alignment | bowtie, bowtie2, bwa, hisat2, STAR, minimap2, bismark, bsmap, mashmap, blast |
| Quantification | salmon, kallisto, rsem-calculate-expression, featureCounts, htseq-count, stringtie, cufflinks |
| BAM/VCF tools | samtools, sambamba, samblaster, bamtools, picard, gatk, bcftools, freebayes, bissnp, vep |
| Interval and signal tools | bedtools, bedops, deeptools, macs2, homer, tabix, liftOver, and the UCSC utilities (bedGraphToBigWig, bedToBigBed, bigWigCat, bigWigSummary, wigToBigWig, …) |
| Sequence utilities | seqkit, seqtk, faSplit, gt, repeatmasker, pigz |
| Single-cell | cellranger |
| R | R, Rscript (Bioconductor image) |
| Reference genomes | refgenie |
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.
Run a small analysis
Section titled “Run a small analysis”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_readsTrim them:
cutadapt -a AGATCGGAAGAGC -o trimmed.fastq raw_reads/SRR11773889.fastqBiobase includes refgenie, so you can pull a reference index without leaving the crate:
refgenie init -c refgenie.yamlrefgenie pull -c refgenie.yaml t7/bowtie2_indexAlign, 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.bamsamtools index aligned.bamHere 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.
Versions and reproducibility
Section titled “Versions and reproducibility”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 versionFor a paper or a shared pipeline, activate a specific version so your collaborators get identical tools. Old versions are never deleted from the registry.
How biobase stays current
Section titled “How biobase stays current”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.
Use biobase as a base for your own crate
Section titled “Use biobase as a base for your own crate”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.1Activating myorg/mypipeline gives you everything in biobase plus mytool. See Import Crates for details.
Contribute a tool
Section titled “Contribute a tool”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.