BioFmt is a VS Code extension for inspecting genomics, transcriptomics, and proteomics files. It adds syntax highlighting, spec-referenced validation, and interactive previews for 27 bioinformatics formats, including indexed and binary files.
| Capability | What you get |
|---|---|
| Syntax highlighting | Grammars for headers, records, intervals, alignments, sequences, and track files. |
| Spec-linked diagnostics | Validation squiggles carry stable rule codes and links to public format specifications. |
| Interactive previews | Virtualized tables, search, sorting, resizable columns, format-specific renderers, and TSV export. |
| Indexed and binary files | Direct region queries for .vcf.gz, .bed.gz, .gff3.gz, and .bam files with matching indexes. |
| Workspace lint | Optional validation for supported files across the workspace, surfaced in the Problems panel. |
- Feature gallery
- Validation and diagnostics
- Diagnostic rule reference
- Indexed and binary files
- Configuration
- Install BioFmt from the VS Code Marketplace, or search "BioFmt" in the Extensions panel.
- Open a supported file such as
.vcf,.sam,.bed,.gff3,.fasta,.fastq,.mgf, or.bam. - Run BioFmt: Open Preview from the Command Palette, or click the preview icon in the editor title bar.
- Hover diagnostics or VCF INFO/FORMAT keys to see rule, field, and specification details.
Validated formats with specialized previews: VCF, SAM/BAM, BED, BEDPE, GTF, GFF3, FASTA, FASTQ, PSL, PAF, WIG, bedGraph, narrowPeak, and broadPeak.
Specialized previews without validation: MAF alignment, MAF mutation, GenBank, MTX Matrix Market, mzTab, MGF, Chain, Net, and GFA.
Generic previews: PED, MAP, and GCT.
Declarative formats (defined entirely by a JSON spec — see below): chrom.sizes and Picard interval_list.
Column-oriented formats can be added declaratively. Drop a single JSON file in
formats/ describing four things — identity (language id, extensions,
scope name), tokenize (columns and scopes for highlighting), validate (column
rules with spec-linked diagnostic codes), and render (preview table columns) — then run:
npm run gen:formatsThe generator writes the TextMate grammar, language configuration, and VS Code manifest
entries; the LSP server and the preview pick the format up automatically with no further
code. chrom.sizes (formats/chrom-sizes.json) and Picard
interval_list (formats/interval-list.json) are defined
this way. The full schema is formats/_schema.json.
The TextMate grammars are published separately as
@biofmt/textmate-grammars so Zed, Sublime Text, and GitHub Linguist
can reuse them. Tree-sitter grammars for Neovim and Helix are planned.
VS Code 1.85.0 or higher.
GPL-3.0. See LICENSE.
See CHANGELOG.
BioFmt is built by Jeremy Fan.
