2015-09-15

Clasp: Common Lisp using LLVM and C++ for Designing Molecules


source: GoogleTechTalks      2015年9月11日
August 3, 2015             Presented by Christian Schafmeister
ABSTRACT
I will show you what you can do with CANDO/Clasp to design molecules.
Here are some of the things that CANDO can do.
- Automatic atom type assignment and partial charge estimation.
- Force field energy calculations and fast energy minimization is built in (steepest descent, conjugate-gradients and truncated Newton-Raphson; the minimizers automatically switch from one approach to the other as you get closer to the energy minimum).
- The energy function has a chiral restraint, and several other restraint functions built in. You can also add new energy terms and analytical first and second derivatives will be automatically generated and lowered to efficient code for energy minimizations.
- It builds three-dimensional models of molecules using geometric construction (is that a term?) from a library of fragments (like rotamers).
- Expose and drive OpenMM or Amber or any other molecular dynamics package written in C++, C or Fortran DIRECTLY from CANDO.
- It has a built in compiled scripting language (Common Lisp) that generates LLVM-IR and native code that interoperates with C++. This is the big deal, it’s not just a scripting language. It will be fast enough that you can write ANYTHING that the chemistry problem needs in Common Lisp or in C++/C/Fortran and hook it in.
- Builtin Message Passing Interface (MPI) library for running on hundreds of thousands of CPUs.
- A built in serialization facility to save and load any type of object built within CANDO. Molecules, force fields, parameter files etc. Everything, including code, can be written to files, loaded or sent between processors via MPI.
- Built in SMARTS for doing chem-informatics and pattern recognition on molecules.
- It reads Chemdraw files, so you can sketch molecules and it will build 3D models from them.

If you are doing computational drug screening, then you can do everything in CANDO.
This is what I designed CANDO for: Molecular Lego represent an infinite universe of highly pre-organized molecules with programmable shapes and functional group display that are all synthetically accessible. CANDO is the engine that will rapidly build starting molecules, assign atom types and charges and then do conformational searching, docking, scoring and analysis to identify functional molecules. By tightly coupling all of these capabilities as part of a compiled language it will enable molecular design like it has never been done before.
CANDO is general, it can work with any kind of molecule.