Nathan Wohlgemuth and Dr. Dan Ess, Department of Chemistry and Biochemistry
Introduction
Organic and organometallic reactions are generally assumed to follow statistical mechanical models of reactivity and selectivity that correspond to transition state theory. However, in recent years there have been several organic reactions that have been shown to be controlled by post-transition state reaction dynamics. To better study these reactions, we had previously created a molecular dynamics software suite (called DynSuite). To further increase the usability of this software, we created a Graphical User Interface (GUI) for DynSuite.
Methodology
DynSuite was designed around the idea of storing all needed inputs and all generated outputs of the program in a single XML file. This kept the architecture of the program very simple as it essentially manipulated the contents of the file as it ran. This also gave us the advantage of providing a natural way to create a simple user interface: all a user interface would have to do is allow the user to quickly and effectively view and edit these XML files.
We designed the GUI by iterating on user feedback from chemists in our research lab. We focused a lot of attention on understanding the way these chemists expected the software to present various details and making the software fit those expectations. We also spent a lot of time determining the common usage scenarios for the software and optimizing for those experiences. At times, this process felt slow and tedious but it resulted in an interface that is clean and simple.
Results
The GUI allows users to edit reaction trajectories as shown in Figure 1. The user can then connect to a server (such as BYU’s FSL) to launch reaction trajectories. The user can also view running trajectories and cancel them as needed. Finally, the user can look at completed trajectories by either visualizing them with VMD (a third party molecular visualization software) or analyzing them numerically with Microsoft Excel.
As we developed the GUI, we also caught and fixed a major bug with one of the trajectory initialization modes. Many other improvements were made to the core C++ code as well. To ensure code that quality does not degrade over time, we also began adding unit and regression tests. This added stability to the code base increased our confidence as we made further changes and added new features.
Conclusion
In the end, the GUI required more code than initially anticipated. The code for the GUI totaled 11k lines of code which was just short of the 14k lines of code that the main C++ part occupied. This was mainly due to the many user-friendly features we added such as draggable tabbed panes that indicate when changes haven’t been saved and allowing users to preview what the Gaussian input file will consist of. Ultimately, however, we were able to deliver on our expected outcome of creating a GUI that will allow researchers to efficiently and effectively use DynSuite to study organic and organometallic reactions.
Moving forward we plan to add several key features to the software. Our next major feature is adding solvents. This will allow researchers to investigate new types of reactions. We also plan to continue increasing code quality and stability by adding more automated tests.