Welcome to chemlab’s documentation!¶
|Yotam Y. Avital, Adam Jackson
Chemlab is a library that can help the user with chemistry-relevant calculations using the flexibility and power of the python programming language. It aims to be well-designed and pythonic, taking inspiration from projects such as numpy and scipy.
Chemlab’s long term goal is to be:
- General Chemistry is a huge field, chemlab wants to provide a general ground from where to build domain-specific tools and apps.
- Array oriented Most operations and data structures are based on numpy arrays. This let you write compact and efficient code.
- Graphic chemlab integrates a 3D molecular viewer that is easily extendable and lets you write your own visualization tools.
- Interoperable chemlab wants to be interoperable with other chemistry programs by reading and writing different file formats and using flexible data structures.
- Fast Even if python is known to be slow every effort should be made to make chemlab ‘fast enough’, by using effectively numpy arrays and efficient data structures. When everything else fails we can still write the hard bits in C with the help of cython.
Computational and theoretical chemistry is a huge field, and providing a program that encompasses all aspects of it is an impossible task. The spirit of chemlab is to provide a common ground from where you can build specific programs. For this reason it includes a fully programmable molecular viewer.
Chemlab includes a lot of utilities to programmatically download and generate geometries. The molecular viewer is very fast (it can easily animate ~100000 spheres) and the design is simple and flexible. For more information about the newest features check out the release notes in the What’s new document.
Chemlab is developer-friendly, it provides good documentation and has an easy structure to get in. Feel free to send me anything that you may do with chemlab, like supporting a new file format, a new graphic renderer, a nice example, even if you don’t think it’s perfect. Send an email to the mailing list or file an issue on the github page to discuss any idea that comes to your mind. Get involved!
Table of Contents
- Installation and Quickstart
- Atoms, Molecules and Systems
- Input and Output Routines
- Graphics and Visualization
- Database Support
- Molecular Viewer
- IPython integration
- Using GROMACS with chemlab