Avogadro: Open Source Libraries and Application for Computational Chemistry

  • 194 views
Uploaded on

In order to tackle upcoming molecular simulation and visualization challenges in key areas of materials science, chemistry and biology it is necessary to move beyond fixed software applications. The …

In order to tackle upcoming molecular simulation and visualization challenges in key areas of materials science, chemistry and biology it is necessary to move beyond fixed software applications. The Avogadro project is in the final stages of an ambitious rewrite of its core data structures, algorithms and visualization capabilities. The project began as a grass roots effort to address deficiencies observed by many of the early contributors in existing commercial and open source solutions. Avogadro is now a robust, flexible solution that can tie in to and harness the power of VTK for additional analysis and visualization capabilities.

More in: Science
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
194
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
3
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Avogadro: Open Source Libraries and Application for Chemistry Marcus D. Hanwell1 , and Jens Thomas2 1: Scientific Computing Group, Kitware, Inc, 28 Corporate Drive, Clifton Park, NY 12065, USA. 2: Institute of Integrative Biology, University of Liverpool, Liverpool, L69 7ZB, UK. http://openchemistry.org/ Avogadro In order to tackle upcoming molecular simulation and visualization challenges in key areas of materials science, chemistry and biology it is necessary to move beyond fixed software applications. The Avogadro project is in the final stages of an ambitious rewrite of its core data structures, algorithms and visualization capabilities. The project began as a grass roots effort to address deficiencies observed by many of the early contributors in existing commercial and open source solutions. Avogadro is now a robust, flexible solution that can tie in to and harness the power of VTK for additional analysis and visualization capabilities. Figure 1: The Avogadro 2 application shown displaying different rendering styles of different molecule views. Avogadro is developed as a set of software libraries designed with reuse in mind, and an application that makes use of these libraries along with plugins loaded at runtime to provide the bulk of the functionality. This enables scientists to rapidly make use of the functionality available, and it provides a rich set of reusable components available under a permissive, open source 3-clause BSD license to encourage extension and reuse. Editing The editing capabilities of the application are extremely important, with this being one of the major drivers for creating the original Avogadro application. A great deal of work has gone into developing a robust molecule model, along with supporting structures to support undo/redo more efficiently. Additionally, support for a large range of file formats is provided using native readers/writers, and integration with the Open Babel program. Figure 2: The bond-centric manipulation tool, and molecular orbital showing periodic table element selection. Structures can also be loaded from online chemical data repositories, with a number of editing capabilities provided. There is a simple molecule drawing tool that features element/bond order selection, live updates, hydrogen addition/removal and geometry optimization using a range of simple molecular force fields. There are also a number of tools such as simple atom position adjustment, bond-centric manipulation and Cartesian coordinate editing. Input Preparation Once the structure is complete, one of the first steps can be to prepare it for submission to a simulation package that performs a more complete geometry optimization, or calculates the electronic structure of the molecule. This has always been a strong focus for the Avogadro project, with the rewrite featuring a range of packaged input generators such as those shown below. Figure 3: The NWChem input generator (left, Python script), and GAMESS input generator (right, C++ plugin). There has also been a concentrated effort on making the development of new input generators as simple as possible. C++ plugins can be developed as before, but a simpler method is to write a Python script that the application will use to drive input generation. Open Chemistry The Open Chemistry project is a suite of applications and support libraries to improve the workflow in computational chemistry, biology, materials science and related areas. The project consists of a set of open, connected components that can tackle everything from small problems on the desktop, up to large research projects requiring significant computational power. The components can be used on its own, but the integrated components offer compelling solutions that can significantly improve complex workflows involving local and remote computation, storage, indexing and search of chemical data. Figure 4: The MoleQueue application (left) showing completed remote jobs, and MongoChem (right) showing molecular data with a 2D and 3D views (also features significant charting capabilities. Avogadro 2 is one component of this larger effort. MoleQueue and MongoChem are additional components of the Open Chemistry project. MoleQueue has been developed to make it easier for desktop applications (including Avogadro 2) to run external programs locally, and to submit jobs to remote clusters/supercomputers. MongoChem has been developed to make it easier for individuals, groups and organizations to collect and search their small molecule data sets. Visualization and Analysis Once the calculations have been performed, it is then necessary to load, visualize and analyze the data. This is another area that has seen significant development with the addition of a new set of scalable input/output routines, improved data structures and rewritten rendering components. This enables the efficient loading, analysis and visualization of systems that were too large for previous versions to work with. Avogadro is now able to make full use of the visualization capabilities of VTK, in addition to its own powerful rendering capabilities. This means that complex visualization, involving techniques such as volume rendering for point data, or streamlines for vector fields, will now become possible. Figure 5: Visualization of large, porous system (left), ambient occlusion (center) and QTAIM (right). In addition to significant improvements in these subsystems, the extension of input/output was also reexamined. In a similar vein to the input generators, a simple set of APIs were developed that enable new input and output formats to be added dynamically at runtime using simple Python scripts. The use of a scene graph and advanced impostor rendering techniques make interacting with large datasets simple while retaining even higher visual quality for small molecules. Molecular Application Toolkit The Avogadro 2 libraries represent a total rethink of providing libraries for chemical applications—moving away from providing one monolithic library with all functionality into several dedicated libraries with minimal dependencies. This means that projects wishing to take advantage of data structures and input/output can do so using just a C++ compiler, whereas applications that want to provide simple 3D rendering capabilities can do that without being required to use Qt. Figure 6: Avogadro 2 libraries with dependencies (left), and overview of software process (right). The project is composed of two separate repositories, with the ‘avogadroapp’ repository offering a full demonstration of how to use the libraries in an end-user application. The ‘avogadrolibs’ repository contains all of the libraries, with the option to only build subsets. The development process uses distributed version control (Git), testing (CTest/CDash), and automated binary generation.