I would like to implement on a web page a tool to visualize 3D structures like it is for AlphaFold and RCSB. A couple of examples: https://www.rcsb.org/3d-view/7KX9 https://alphafold.com/entry/Q5VSL9 As you can see, if you hover over a part of the structure or on a residue on the RNA/amino-acid sequence, that residue is underlined and different details pop up on the screen.

What is the javascript library that they use? Do you know also where to find the documentation? Best regards!

  • 2
    $\begingroup$ Mol* $\endgroup$
    – marcin
    Jan 5 at 19:48

1 Answer 1


Different criteria give different rankings.

  • Mol* (read molstar with trilled rhotic R according to the given IPA) is the newest, is used by the RCSB PDB and can support huge complexes. It is less implemented and has a tricker documentation.
  • NGL is the former viewer from RCSB PDB. It is good and the switch to Mol∗ was driven by an effort for uniformity with the PDBe. Both are written by Alex Rose. There is more documentation about NGL —in the form of a gallery of codepens and various GitHub repos using it. There is a package for Python notebooks called nglview. It has issues such as no SS predictions (i.e. requires sheets and helix entries to be defined in the file for proper rendering).
  • 3DMol is simpler and is of note as the Python module nglview does not work in colab notebooks, but the Python module py3DMol does.
  • $\begingroup$ Great answer! May you apply an edit to your answer and provide links to documentation? I can also do it. In any case, after this addition I will accept the answer. $\endgroup$ Jan 13 at 11:15
  • $\begingroup$ @Firingam — Totally, made it a community Wiki. $\endgroup$ Jan 13 at 11:42
  • $\begingroup$ The only caveat about finding the links to the documentation is that the good documentation is generally about the viewers and not the actual JS or TS, for which the GitHub files or issues are the place to look... $\endgroup$ Jan 13 at 11:50
  • $\begingroup$ There is also the caveat that the use of NGL over Mol* will result in reviewer 2 asking why was the old one chosen over the newer one —been there. :zany_face: $\endgroup$ Jan 13 at 11:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.