A quick, minimal, multiple sequence alignment editor
Kvick reads, writes, and edits multiple sequence alignments. You can currently open, edit and save FASTA, PHYLIP, NEXUS, CLUSTAL, MSF, and MASE.
The app is really small and lightweight, when I started building it the idea was to create a small and simple multiple alignment editor to quickly check and do minimal edits, plus the function to block select/copy+paste which I missed in the previous program I used to do this.
You can just drag & drop a file into the main window to open it. :)
| Format | Extensions |
|---|---|
| FASTA | .fa .fasta .fna .faa |
| PHYLIP | .phy .phylip (interleaved or sequential for reading) |
| NEXUS | .nex .nexus .nxs |
| CLUSTAL | .aln .clw .clustal |
| MSF | .msf |
| MASE | .mase |
Format is auto-detected from extension first, file content second.
When saving, just add the extension you want and the program will save in that format. Careful if you need a bunch of additional blocks on Nexus files, this was designed for alignment only, not a lot of the extra stuff you can add to .nex files.
- In-place editing — click on the sequence and just edit it. Insert and/or delete. You can include gaps by using the space bar.
- Block selection — click and drag to select a block of cells. You can use your keyboard shortcut to copy or the drop-down menu. Paste in any text editor and it will paste formatted as FASTA.
You can undo any action.
- Rename a sequence — double-click the name, or press F2 on a selected row. A modal dialog with a clearly visible text field and a yellow row highlight prevents accidental renames.
- Reorder rows — click and drag a sequence name in the left column to move it to a new position. A blue insertion line shows the drop target.
- Consensus row — bottom row marked with
*in columns where every sequence has the same residue (gaps and ambiguous sites count as non-conserved). - Find/⌘F opens a find dialog. Type a residue pattern and Enter to jump to the next match; the matching block is selected and centered in view.
-
Download the latest
kvick.zipfrom the Releases page. -
Unzip it. Drag
kvick.appinto your Applications folder. -
The first time you open it, macOS Gatekeeper will say:
"kvick" cannot be opened because it is from an unidentified developer.
This is normal for apps not distributed through the Mac App Store. To bypass it:
- Right-click (or Ctrl-click)
kvick.appin Finder → Open - Click Open in the confirmation dialog.
After this once, kvick will launch normally on every subsequent double-click.
- Right-click (or Ctrl-click)
-
If macOS instead says kvick is "damaged and can't be opened", the quarantine flag was set when the file was downloaded. Clear it once:
xattr -dr com.apple.quarantine /Applications/kvick.app
-
Download the latest
kvick-*-windows-x64.zipfrom the Releases page. -
Unzip it. Move
kvick.exesomewhere convenient (e.g.C:\Program Files\kvick\). -
On first launch, Windows SmartScreen may show:
Windows protected your PC
Click More info → Run anyway. Windows will remember the approval, and subsequent launches will be silent.
- Rust 1.76 or newer — install from rustup.rs.
- macOS 12 or newer for the precompiled bundle. Building on Linux or Windows should work with just
cargo run, but I haven't tested yet. If you do, please let me know!
git clone https://github.com/NBISweden/kvick.git
cd kvick
cargo run --releaseThe first build takes a couple of minutes. After that, cargo run incrementally rebuilds in seconds.
I'm including a simple icon I made using Apple's Icon Composer. It's not the prettiest icon, so maybe I'll be inspired to make a nicer one in the future. Who knows. But if you build your own .app bundle at least you'll get a proper icon that scales, etc.
cargo install cargo-bundle
cargo bundle --releaseThe resulting bundle is at:
target/release/bundle/osx/kvick.app
You can double-click it from Finder or drag it into /Applications.
rustup target add aarch64-apple-darwin x86_64-apple-darwin
cargo build --release --target aarch64-apple-darwin
cargo build --release --target x86_64-apple-darwin
mkdir -p target/release-universal
lipo -create -output target/release-universal/kvick \
target/aarch64-apple-darwin/release/kvick \
target/x86_64-apple-darwin/release/kvickkvick/
├── Cargo.toml
├── assets/ # Icon (PNG and .icns), and the interface.gif I used in the `README.md`.
├── test_data/ # Just a small FASTA file you can open/drag & drop to test the app.
└── src/
├── main.rs # Entry point
├── model.rs # Alignment, Sequence, Selection, EditOp
├── io.rs # All format readers and writers
├── view.rs # Colors and small drawing helpers
└── app.rs # AlignApp, drawing, eframe::App impl
Built with egui, eframe, rfd, and arboard. The Rust code features code generated by Claude, an AI assistant developed by Anthropic.
