Skip to content

nglviewer/ngl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Sep 26, 2024
25d45d2 · Sep 26, 2024
Mar 24, 2023
Apr 2, 2018
Feb 5, 2021
Sep 26, 2024
Aug 10, 2017
May 24, 2024
Aug 2, 2018
Mar 30, 2021
Aug 31, 2024
Mar 17, 2024
Aug 14, 2020
Jan 30, 2017
Aug 10, 2017
Apr 16, 2018
Jan 8, 2023
Aug 6, 2018
Sep 26, 2024
Aug 14, 2020
May 21, 2017
May 24, 2024
Dec 13, 2018
Sep 26, 2024
Sep 26, 2024
Oct 10, 2023
Oct 10, 2023
Apr 9, 2021
Sep 9, 2017

Repository files navigation

License Changelog npm version Build Status Standard Gitter Code Quality: Javascript Total Alerts

NGL Viewer is a web application for molecular visualization. WebGL is employed to display molecules like proteins and DNA/RNA with a variety of representations.

See it in action:

Integration with python and R:

Documentation:

Features

  • Molecular structures (mmCIF, PDB, PQR, GRO, SDF, MOL2, MMTF)
  • Density volumes (MRC/MAP/CCP4, DX/DXBIN, CUBE, BRIX/DSN6, XPLOR/CNS)
  • User interaction (mouse picking, selection language, animation, image export)
  • Coordinate trajectories (DCD & PSF, NCTRAJ & PRMTOP, TRR/XTC & TOP, remote access via MDSrv)
  • Embeddable (single file, API)

Usage

Since the NGL Viewer is a set of static files to be viewed in a web-browser there is not much of an installation needed. For development purposes it will be helpful to clone this repository and serve it locally (see below). When embedding the NGL Viewer as a library it is sufficient to include the self contained build dist/ngl.js. A full web application including a GUI can be found in the examples directory.

To install the current release from npm do npm install ngl.

Acknowledgments

This project would not be possible without many fine open-source projects. Especially the three.js project provides a great foundation.

  • three.js
    • NGL relies on the three.js library to interface WebGL
    • NGL's GUI is based on the three.js editor UI
  • sprintf.js - for formatting text
  • jsfeat - the SVD code for the superposition method is from jsfeat
  • ESDoc - for documentation
  • Vitest - for unit testing
  • Chroma.js - for color handling
  • FlexiColorPicker - for color picking
  • Virtual DOM List
  • Font Awesome - for icons
  • JS Signals
  • tether.js
  • pako - zlib port
  • Open Source PyMOL - screen aligned cylinder shader
  • VTK Quadric shader code from the PointSprite Plugin - quadric surface center calculation
  • HyperBalls - hyperball stick shader - Chavent, M., Vanel, A., Tek, A., Levy, B., Robert, S., Raffin, B., & Baaden, M. (2011). GPU-accelerated atom and dynamic bond visualization using hyperballs: a unified algorithm for balls, sticks, and hyperboloids. Journal of Computational Chemistry, 32(13), 2924–35. doi:10.1002/jcc.21861
  • Mol* - for parsing CIF and binaryCIF files - David Sehnal, Sebastian Bittrich, Mandar Deshpande, Radka Svobodová, Karel Berka, Václav Bazgier, Sameer Velankar, Stephen K Burley, Jaroslav Koča, Alexander S Rose: Mol* Viewer: modern web app for 3D visualization and analysis of large biomolecular structures, Nucleic Acids Research, 2021. doi:10.1093/nar/gkab31.

Funding sources:

  • RCSB PDB funding by a grant [DBI-1338415; PI: SK Burley] from the NSF, the NIH, and the US DoE
  • NCI/NIH award number U01 CA198942
  • DFG Projekt HI 1502

Cite

When using NGL please cite:

  • AS Rose, AR Bradley, Y Valasatava, JM Duarte, A Prlić and PW Rose. NGL viewer: web-based molecular graphics for large complexes. Bioinformatics: bty419, 2018. doi:10.1093/bioinformatics/bty419
  • AS Rose and PW Hildebrand. NGL Viewer: a web application for molecular visualization. Nucl Acids Res (1 July 2015) 43 (W1): W576-W579 first published online April 29, 2015. doi:10.1093/nar/gkv402