A domain-specific language for bioinformatics. Purpose-built for genomics workflows — not another general-purpose language with bio libraries bolted on.
# Native DNA types + pipe-first syntax
let seq = dna"ATCGATCGATCG"
gc_content(seq) # 0.5
seq |> reverse_complement |> translate
# Stream a 50 GB FASTQ in constant memory
fastq("reads.fq.gz")
|> filter(|r| mean_phred(r.quality) >= 30)
|> map(|r| gc_content(r.seq))
|> mean
# Query NCBI + Ensembl in one line
ncbi_gene("BRCA1") |> println()
ensembl_vep("17:g.43092919G>A") |> println()
# Ask an LLM about your data
chat("What pathways involve BRCA1 and TP53?")
Data flows left-to-right via |>. No nested calls, no temp vars. Use |> into to bind results.
First-class DNA, RNA, Protein literals — not strings.
Variant, AlignedRead, Interval, Gene, Quality, Table, Matrix, Stream.
Match expressions with destructuring and guards.
Full type inference. Add annotations when you want safety.
Rust-style Result with ? operator, plus try/catch for scripts.
Native readers/writers with auto gzip detection.
All common sequence ops as builtins.
Interval trees with O(log n + k) query performance.
SNP/indel classification, genotype queries, VCF INFO parsing.
AlignedRead type with SAM flag queries and CIGAR parsing.
Automatic 0-based/1-based conversion. Chromosome normalization.
Built-in table type with familiar data manipulation verbs.
Process 100 GB files in constant memory. Lazy by default.
Descriptive stats, hypothesis tests, regression, PCA.
Functional operations on collections and streams.
Dense and sparse matrices for expression data.
Multi-threaded map/filter for CPU-bound tasks.
E-utilities, Datasets v2
Genes, VEP, orthologs
Search, entry, GO, ID mapping
Genomes, tracks, sequence
Pathways, genes, links
Networks, enrichment
Entries, chains, sequences, search
Pathways, analysis
GO terms, annotations
Bulk queries, datasets
Cancer mutations, census
Genes, taxonomy, genomes
Pipeline catalog, params, parsing
9,000+ container images
Tool repositories, categories
Built-in graph data structure for PPI networks, regulatory networks, and pathways.
ORA (hypergeometric + BH FDR) and GSEA (permutation-based) with GMT file parsing.
Fetch PDB structures, chains, sequences. Search PubMed and retrieve abstracts.
Instant plots in REPL and terminal — no GUI needed.
SVG output for papers and reports. Save with save_svg().
Domain-specific visualizations built for genomics data.
Statistical and diagnostic visualizations.
Alignment views, quality plots, genome tracks.
All SVG plots can be saved to file.
Resumable downloads with progress. Proxy support built-in.
Native FTP via suppaftp. SFTP/SCP via system SSH.
Download, upload, list S3 buckets via AWS CLI.
Download and upload via gsutil.
High-speed Aspera transfers for EBI/NCBI. SRA toolkit integration.
Rsync directories. 15 built-in reference genome sources.
Write all major bioinformatics formats.
Write tables to CSV, TSV, and JSON.
Save any plot to SVG file. Chart builtins return SVG strings.
Convert any value to Markdown. Tables, records, lists auto-formatted.
Self-contained HTML reports with inline CSS. SVG plots embedded.
Ask questions, generate code, analyze data — from your script.
Auto-detects from env vars. Zero config for most setups.
Run samtools, bwa, GATK from BioLang via BioContainers.
Interactive shell with :time, :type, :env, :profile, tab completion, history.
Diagnostics, completion, hover — works with VS Code, Neovim, Helix.
.bln format: Markdown + code. Cell directives, HTML export, Jupyter import/export.
Extend with Python, TypeScript, R, or native Rust plugins.
Bytecode compiler + Cranelift JIT. Native noodles I/O. Single binary.
Pure-Rust implementations — no Python/R runtime needed. Import any package in one line.
Seurat/Scanpy workflow
Ligand-receptor scoring
Spatial transcriptomics
RNA velocity
Reference classification
WNN / CITE-seq
Gene regulatory networks
VCF parsing, Ti/Tv
Salmon, TPM, size factors
Peaks, FRiP, TSS enrich
NFR enrichment, fragments
Nanopore/PacBio QC, N50
CBS segmentation, CN calls
DMRs, epigenetic clocks
ICE norm, TAD boundaries
IUPAC scan, PWM, enrichment
GTF parsing, peak annotation
MaxQuant, LFQ, volcano
m/z match, isotope correct
ΔΔCt, efficiency, geNorm
NNLS, marker scoring
BH/Bonferroni, Fisher, bootstrap
DE analysis, fold change
Kaplan-Meier, Cox
Sumstats, Manhattan, clump
k-means, hierarchical, UMAP
ORA, GSEA, GMT
PDB, RMSD, Kabsch
PPI, centrality, paths
Newick, UPGMA, distances
Fst, Tajima's D, LD r²
Alpha/beta diversity
Origin of replication
IC50, Bliss/Loewe synergy
MAGeCK scoring, guide QC
VDJ, clonotype diversity
TF-gene co-expression
import "singlecell" as sc
import "differential" as de
import "gwas" as gwas
let adata = sc.load("pbmc.h5ad") |> sc.normalize |> sc.pca |> sc.umap
let markers = de.findmarkers(adata.counts, adata.clusters)
let hits = gwas.load("eqtl_sumstats.txt") |> gwas.hits(p=5e-8)
markers |> filter(fn(r) -> r.gene in hits.snp)
| Feature | BioLang | Python + Bio* | R + Bioconductor |
|---|---|---|---|
| Native DNA/RNA types | Built-in | BioPython Seq | Biostrings |
| Pipe syntax | |> native | None | |> (magrittr) |
| Streaming large files | Default | Manual generators | Limited |
| Bio API clients | 16 built-in | Separate packages | Separate packages |
| LLM integration | Built-in | LangChain etc. | ellmer/tidychat |
| Setup | Single binary | pip + conda | R + BiocManager |
| Performance | Rust-native | C extensions | C/Fortran |
Single binary. No runtime deps. Works on Linux, macOS, Windows.
MIT License · Open Source · Built with Rust