BioinformaticsA VS Code extension for browsing protein multiple sequence alignments and HHsuite hit-list results without leaving the editor. FeaturesMSA viewer (
|
| Accession pattern | Database | URL |
|---|---|---|
2DFB_A, 1abc |
PDB | rcsb.org/structure/{id} |
sp\|P12345\|FOO_HUMAN, bare P04637 |
UniProt | uniprot.org/uniprotkb/{acc}/entry |
UniRef90_P12345 (± /start-end) |
UniRef | uniprot.org/uniref/{id} |
UPI0000000001 |
UniParc | uniprot.org/uniparc/{id}/entry |
MGYP000510094044 |
MGnify | ebi.ac.uk/metagenomics/sequence/{id} |
PF12345 |
Pfam | ebi.ac.uk/interpro/entry/pfam/{id} |
IPR001234 |
InterPro | ebi.ac.uk/interpro/entry/InterPro/{id} |
NP_001234.1 |
NCBI Protein | ncbi.nlm.nih.gov/protein/{id} |
A small AFDB chip renders next to UniProt-kind links and after UniRef rep accessions, taking you straight to alphafold.ebi.ac.uk/entry/{acc} for the structural alternative.
Source-view syntax highlighting
TextMate grammars ship for the FASTA family (.fasta / .fas / .fa / .afa / .afas / .afasta / .a2m / .a3m), Stockholm (.sto / .stockholm), and Clustal (.clu / .aln). The FASTA grammar distinguishes match (uppercase), insert (lowercase), gap (-), and gap-vs-insert (.) per the a2m/a3m casing convention; Stockholm gets structured #=GF / #=GS / #=GR / #=GC annotations.
Install
From the VS Code Marketplace:
code --install-extension vv137xyz.vscode-bioinformatics
Or search for Bioinformatics in the Extensions sidebar (publisher: vv137xyz).
To install a specific build, download vscode-bioinformatics-X.Y.Z.vsix from the Releases page and either run code --install-extension <file>.vsix, or use Extensions sidebar → … menu → Install from VSIX….
Usage
Open any supported file. The viewer is registered with priority: "option", so the regular text editor opens by default. Switch to the viewer either way:
- Click the MSA button in the editor title bar.
- Run Bioinformatics: Open in MSA Viewer from the Command Palette (
Cmd/Ctrl + Shift + P). - Right-click the file → Open With… → MSA Viewer.
- Pin the viewer as the default for an extension by adding to
settings.json:"workbench.editorAssociations": { "*.hhr": "bioinformatics.msaViewer", "*.a3m": "bioinformatics.msaViewer" }
Keyboard shortcuts
| Shortcut | Action |
|---|---|
Cmd/Ctrl + F |
Focus the name filter |
Cmd/Ctrl + L |
Focus the goto-column input |
Esc |
Clear the filter (when focused) |
g / G |
Smooth-scroll to top / bottom of the hit list |
Ctrl/Cmd + scroll |
Zoom residues in / out |
Development
git clone https://github.com/vv137/vscode-bioinformatics
cd vscode-bioinformatics
npm install
npm run compile
code --extensionDevelopmentPath=$(pwd)
The repo layout:
src/ # extension (TypeScript)
parsers/ # fas / a2m / a3m / sto / clu / psi / hhr
viewer/ # CustomTextEditorProvider + message protocol
media/ # webview assets (pure DOM)
viewer.module.js # window.MsaViewer.create — no host deps
viewer.adapter.js # VS Code wiring (~30 lines)
viewer.css # shared
syntaxes/ # TextMate grammars (fasta, stockholm, clustal)
references/Toolkit-audit.md # feature audit + plan reference
The renderer in media/viewer.module.js has no VS Code dependencies — state persists via a Storage-shaped object passed in by the host. The same module ships into plmMSA's public/ folder with a 5-line wrapper using localStorage.
Acknowledgments
- Renderer originally ported from plmMSA.
- File-format conventions follow hh-suite's
reformat.pl. - Hit-list / pairwise viewer design inspired by proteinevolution/Toolkit (HHblits / HHpred / HMMER result tabs).
- Example fixtures from aqlaboratory/openfold (
examples/6KWC_1/).
License
MIT © 2026 Minsoo Kim