Kevin already told his story on the offcial website of iChemLabs
. I was curious to know more details... Here is the first offical interview of my blog.
OS: How much accurate are the predictions of the NMRazors?
KT: The NMRazors are fairly accurate for most molecules. They will handle any molecule encountered in an undergraduate organic chemistry course. The NMRazors will be less accurate for molecules where complex anisotropic and 3D effects are present. I used several published references when developing the algorithms in the NMRazors and they are cited on the NMRazor website.
OS: Programming is similar to chemical synthesis: there are starting materials and finished products. What were the staring material for the NMRazors?
KT: When I first began programming chemistry applications, I started with a graph based depth-first search traversal of a database of reactions in order to optimize synthetic routes. A credible synthetic database was too expensive for me to obtain as an undergraduate, so I moved on to other applications in chemistry. I quickly discovered that the graph data structure is really integral to computational chemistry, as most chemical entities are efficiently modeled with them, especially structures. I was and still am a huge fan of spectroscopy, so I began to work on algorithms to traverse molecules and find functional groups for nuclear magnetic resonance simulations. It was originally a text based application, and I remember showing some of my favorite professors connection table inputs with ppm table outputs. It was very unattractive, so I taught myself Swing and the NMRazor GUI was created.
OS: Why do you prefer Java? Because of the language itself, the available frameworks, the platform independence or any other reason?
KT: Java is a wonderful programming language for several reasons. Mainly, it's object oriented and the graphical capabilities available with Java Swing are really unparalleled in other languages. The other reason was that I used a Mac, my friends usually used PCs and a few had Linux, so I needed a programming language that I could use on Mac and then deploy on other operating systems. Java was really the only choice for me at the time, given my minimal experience. The only downside to Java is that it is interpreted, so it may be slower if the program is carelessly written, and the JREs on different operating systems are not always consistent, so I still need to test on all three systems before I am sure a program actually works.
OS: How much work was required? What was the most difficult part: the algorithm or the interface?
KT: The interface was the most difficult part of the NMRazors because I was just starting to learn Java Swing. Now that I have pretty much mastered Java Swing, perfecting the algorithms is more difficult and takes far more time. But this is a good thing, because this saved time I can devote to truly perfecting the algorithms.
OS: Can you briefly describe the algorithms?
KT: There are two main ways to predict spectra, quantum mechanics and chemoinformatics. Quantum mechanics approaches calculate electron densities and then predict chemical shifts based on shielding. The NMRazors use a chemoinformatics approach, which takes a large database of spectra, defines similarity between the structures, and then interpolates to predict the chemical shifts of unknown species. Both can be very accurate if done properly, but quantum approaches take several hours. Since I couldn't afford a database of spectra, I went one level of abstraction further and used incremental constants to predict shifts. So the algorithm is similar to how a spectroscopist would predict a chemical shift in their head: they would look at the functional groups surrounding the nucleus of interest and add together the deshielding effects. There are other approximations for solvent effects, and splitting needs to be calculated, as well as second order interactions and more. These considerations make sure the simulated spectrum is as close to the real spectrum as possible.
OS: How do you manage to study and lead iChemlabs at the same time?
KT: There are days where it gets a little difficult. But fortunately, I have help with all the backend servers and services, web design, software testing, and of course accountants to do all the financials. Also, we were careful when we set up the company to put the appropriate infrastructure in place to manage our growth. Because we made sure to have redundant servers and source code control and bug reporting systems and product build processes in place, adding new products has become routine. Furthermore we outsource email and payment services so we just don't have to deal with those headaches. The bottom line, though, is I am very passionate about my company and my research. Currently, my research has become very exciting. It is a mix of chemical informatics and theory, which provide daily puzzles for me to solve. Both iChemLabs and my research push me to different edges of technology. Since I really enjoy both jobs it is not that hard to keep them both going. Every day I simply have fun with this stuff.
OS: You are marketing the razors for educational use. Could there be any practical use for them?
KT: My goal in my work is to provide quality software to students and scientists that is both accessible and affordable. The NMRazors were released for free for educational use because I knew it would be useful for students like myself that were working hard trying to interpret spectra for the first time. I also price our other software affordably so that I can continue to fund their development, without requiring customers to spend half of their savings. The NMRazors are used at several universities around the world now, and I am very happy with how this project developed.
In terms of practicality, as the algorithms mature over time, they will certainly be very useful to industry.
OS: Let's talk about ChemDoodle. How do you compare it against IsisDraw, ACD ChemSketch and Marvin?
KT: Firstly, I created ChemDoodle because I needed a very robust set of features, I could not afford ChemDraw, and ACD Labs would not respond to my emails when I requested pricing information.
Regardless, the chemical drawing software that was available was built on 10-20 year old systems that are severely out of date. ChemDoodle takes a new approach to drawing molecules, making the interface aesthetic and the controls more intuitive, providing functionality that takes advantage of current technology such as connections to online databases, and providing a more artistic approach to drawing figures by allowing users to completely control the look of structures including using different bond stroke styles for truly stunning graphics. ChemDoodle also contains many widgets, or mini-applications, which are added bonuses that perform very powerful and specific tasks. All these reasons are why I refer to ChemDoodle as a chemical structure environment, rather than just a chemical drawing tool like the ones mentioned.
Two years later, and we have succeeded in solving many of the issues other programs suffer from, and we work wonderfully on all operating systems. We receive emails almost daily complimenting us on our work and for creating a superior chemical drawing program, and we proudly agree.
OS: Are you going to write software for the iPhone? It seems like half of the world is doing it...
KT: That was a very attractive idea a year ago, when Brad Larson created Molecules. However, we are really focused on perfecting our desktop software and pushing ChemDoodle to be the best chemical drawing program in everyone's mind. We also have a couple secret projects that are under development, though not for the iPhone. These are brand new ideas, very different from current software, and we are sure chemists will love to use them.