Christian Schafmeister, winner of the 2005 Foresight Institute Feynman Prize for Experimental work and participant in last year’s Foresight Institute Workshop on Directed/Programmable Matter for Energy, began programming at age 12 on a Radio Shack TRS-80, followed that interest into a career in chemistry, and is currently a chemistry professor at Temple University. Earlier this month he gave a Google Tech Talk that is available on You Tube “Clasp: Common Lisp using LLVM and C++ for Molecular Metaprogramming – Towards a Matter Compiler” (57:37).
Prof. Schafmeister’s goal is to build molecules as easily as he can write software; specifically he wants to build molecules that can do things, like go into the body and fix things. Inspired by Richard Feynman’s 1959 talk in which Feynman proposed building machines on a molecular scale that were atomically precise, where you know where every atom is in space, he went into biophysics, where he made proteins and solved crystal structures of proteins, and from there into chemistry.
We understand a great deal about proteins, the molecular machines that make us work. Explaining how proteins are made of chains of amino acids that fold into precise 3D shapes that do specific things, like catalyze chemical reactions, or like antibodies, which bind to specific structures to start the immune system attacking pathogens, or like channels that let specific molecules, and nothing else, pass through cellular membranes, Prof. Schafmeister asserted that we could solve most of humanity’s problems if we could build similar machines. He actually began this process as a graduate student, building one of the first unnatural proteins, called DHP1. He designed the protein on paper, designed a gene to make it, got bacteria to make it, and determined the crystal structure, showing it to be a four-helix bundle, a very common structural motif in proteins.
However, it took four years to make this protein, it does not do anything, and there was no obvious way to make other ones. Prof. Schafmeister got fed up with proteins because they are soft, flexible molecules. Looking at the huge natural product molecules that synthetic chemists were making gave him the idea that he could make building blocks that were easier to design with. He turned to using unnatural amino acids to cross-link small helical peptides across one or two turns of the helix to stabilize the helical structure. Although it is only a subtle stabilization, these “stapled peptides” are being developed by a company and are currently in clinical trials, but Prof. Schafmeister has moved on to different types of molecules.
Because proteins make wonderful things but are very fragile and difficult to design with, Prof. Schafmeister came up with new building blocks that are easier to design with. These “spiroligomers” are chemically synthesized rings that have an amino acid on one side and another amino acid on the other side. Chemically functional groups can be displayed on these three-dimensional building blocks, which come in different shapes and sizes. Unlike proteins, which are floppy because they connect amino acids through single bonds, these building blocks form rigid structures because they connect through pairs of bonds. We can synthesize these “little bricks” in kilogram quantities. They have functional groups attached, and they all have a different 3D shape.
This basic technology will first be used to make a variety of molecular devices that do not exist in nature. One initial proposal is to make channels that can act as broad-spectrum antimicrobial compounds because the inside is water-loving and the outside is fat-loving. Dropping them on bacteria will punch holes in the bacterial membrane, causing the bacterium to “bleed its guts out”. Such compounds could be very active because unlike similar molecules that exist in nature they do not need to be present in large quantities in order to self-assemble. Other such atomically precise pores could be designed to sequence a single molecule of DNA as it threads its way through the pore. Other concepts to be developed in the next decade include sensors with various greasy groups in the middle designed to bind various specific small molecules. Other channels could be designed to separate ions from water with maximum efficiency to separate gold from sea water or to make abundant supplies of fresh water.
The big application, however, of this technology will be to make catalysts—molecules that make other molecules—so that ultimately he could use these catalysts to make his building blocks instead of needing to chemically synthesize them. Bootstrapping the technology in this way would make it very, very inexpensive.
One spiroligomer his group has already made has three projecting functional groups and can assume 256 different shapes because it has 8 stereocenters, each of which can have either of two configurations, designated R and S. Six of these stereoisomers have all three groups on one side of the molecule so that they can slide into the groove of a protein called MDM2. This spiroligomer enters cells and stabilizes this molecule so that levels of the protein increase dramatically. Another example that has been done is a transesterification catalyst in which the spiroligomer arranges its three functional groups so that the substrate can interact properly with these groups and be chemically transformed.
With these building blocks Prof. Schafmeister can use software to design molecules that actually can do things. But the ultimate goal is to built bigger things, things the size of cells, in which this chemistry is used to make bundles that can self assemble into larger materials that would include catalysts, motors, and information processors. Ultimately we might be able to build little robots that could be injected into the body to find damaged tissue, kill things, repair things, and in general fix everything. “That’s the ultimate goal here. I don’t know if I’ll reach it in my lifetime. I am working as hard as I can.”
The small versions of this molecular LEGO™ that have been made so far are limited because they are small. Right now molecules can be synthesized that are much more complex than can be designed. Using the ball and stick molecular models synthetic chemists usually use to design things, the things that Prof. Schafmeister would like to build would be about the size of a washing machine—too complex to design by hand. Software is needed that, given the arrangement in space of needed functional groups to catalyse a reaction, bind to a protein, etc., can produce the design for a molecular device based on the spiroligomers available.
Prof. Schafmeister spends the next 25 minutes explaining how he has spent the last four years developing software to design these molecules: why the usual molecular design programs would not work, how he needed a language that already knew the chemical functionality he needed, how he needed to be able to look at a million molecules at a time instead of looking at one molecule at a time, how difficult it is to write in C++, how he started scripting with Python, and how he finally found the answer in writing a new Common Lisp program that he calls Clasp. His new Common Lisp uses the LLVM as a backend, and it implements all of the math that he needs to do for computational chemistry. Further, he needs energy functions for his spiroligomers that do not exist in a lot of molecular mechanics force fields. He built a program in Mathematica that automatically turns an energy function that he writes into optimized C code. He also wants to add a large number of chemistry functions to Common Lisp, because Common Lisp has many useful functions that do not exist in other languages conventionally used to do this chemistry. He also wanted macros—code that generates code. What was missing from every Common Lisp was a way of interfacing with C++. Following the way in which Boost.Python provides a way to hook Python into C++ without wrapper C code, he implemented a new Common Lisp called Clasp—150,000 lines of C++ code. etc. With the basic program now working, Prof. Schafmeister is currently working on making the program run faster.
Clasp is now available on the internet at github.com/drmeister/clasp
Beyond the current and near-term applications of these very promising spiroligomers, is Clasp the basis for a new software architecture for computational chemistry and design? If it turns out to be generally useful, it would be a major contribution toward one of the recommendations of the 2007 Productive Nanosystems Technology Roadmap. From the 2.1 MB PDF Executive Summary, page ix:
- Prioritize modeling and design software as critical elements in the development and exploitation of APM, APPNs, and spinoff APT applications.
- Support ongoing research in multi-scale modeling to describe physical phenomena in large systems at different levels of theory and resolution. Focus this research on requirements needed to support computer-aided design software for AP nanosystems.
- Develop software that addresses domain-specific problems of modeling and design in diverse classes of AP nanosystems, including structures made by tip-directed APM and by the folding and AP self-assembly of nanoscale polymeric objects.
- Develop compilations of data organized to support design and implementation of APT systems. Classify materials, building blocks, devices, and processes, enabling search according to criteria and metrics that describe their functional characteristics. These compilations will cut across the disciplinary barriers that now impede the flow of practical knowledge.
Professing an opinion on Clasp would be way beyond my knowledge base, but it will certainly be interesting to follow.
—James Lewis, PhD