Show HN: Open-source protein and ligand viewer
32 the__alchemist 13 5/23/2025, 1:56:36 PM github.com ↗
I just published an open-source protein and ligand viewer. Goal: fast and easy-to-use. Long-term: It's a platform for docking and molecular dynamics. The basic functionality for viewing and inspecting work. I'm currently working on Coot-like electron-density viewing.
I'm gradually splitting it into standalone libs, published to crates.io. Some are up already, others are integrated, and will be split off when sufficiently mature and decoupled.
Uses parallel execution when able, through thread pools (Rayon), CPU SIMD and Cuda.
The default control scheme is non-standard, unless you play video games...
Any feedback and critique appreciated!
what type of docking are you planning to support? Autodock? Or something from scratch?
P.S. putting this here since I can't edit prior comment; fails to build on mac. It looks like you may have local updated versions of dependency crates (bio_apis) not pushed to gh since I see things like missing `rcsb::load_validation_2fo_fc_cif`, `f32x8` (I assume this is SIMD?), derive(Debug) on ReqError, etc. even with your forked versions of the crates.
Is the Mac in question ARM CPU? I ask because the `f32x8` missing you see shouldn't be affected by the local patches. I hard-coded SIMD for x86. The latest push attempts to gate SIMD so it will still compile on ARM, but I haven't tested it.
Good call on the qvina2/qvina-w/gpuvina implementations!
Re free cam: Does the arc cam work? Do the movement keys in free cam work? Does right clicking to select an atom or residue work? Are you holding M1 when moving the mouse? Thank you!
For docking, I initially wanted to do ADV integration, but am leaning more towards from-scratch.
Thanks for the work on this! It's badly needed.
- load mmCIF / PDB - zoom camera out to show everything - show spheres - remove solvents - color by chain or element - take screenshots - rotate molecules - translate atoms
Rust would be wayyy better than pymol, I’m trying to minimize my Python
(For some reason Rasmol used to have 'hotpink' as a colour option)