In a new class called Design and Construction of Programmable Molecular Systems (BE/CS 196a), taught this term by Assistant Professor of Bioengineering Lulu Qian, undergraduate and graduate students in computer science, computation and neural systems, and bioengineering came together to study a new intersection of their fields: biomolecular computation. "Molecular programming is a really young research field that only has a couple of decades of history," said Qian, introducing the class's final project presentations on Friday, June 5. "But it offers a huge potential for transforming all molecular sciences into information technology."
In recent years, in order to "program" synthetic DNA sequences to accomplish a diverse range of functions, bioengineers have begun to take advantage of their ability to predict how DNA strands interact, exchange their binding partners, and fold.
Over the course of 10 weeks, three student teams in BE/CS 196a had the chance to specialize in one of the possibilities afforded by this technology. Working in the wet lab—a lab where biochemical materials can be handled in test tubes of liquids—one group attempted to simulate rudimentary neural networks that recognize the presence or absence of DNA strands, each representing information about four Caltech undergrad houses. Another designed molecules to compute multistep logic functions that implement two particular "transition rules" involved in a famous conjecture concerning a theoretical model of computation called "cellular automata."
Students in the third group designed DNA "origami." In DNA origami, a technique first developed at Caltech, DNA molecules automatically fold into prescribed shapes that may contain patterns of attachment sites—like a smiley face or a miniature circuit board—based on the molecules' designated sequence.
As used by Qian's students, junior Aditya Karan, a computer science major, and first-year bioengineering graduate student James Parkin, the process begins with a single-strand loop of DNA—the genome of virus M13, which has over 7,000 nucleotides. "Staples" made of matching sequences are used to connect specific points on the loop, so that these points are pulled together, causing the loop to fold into the desired shape. The team focused their efforts on manipulating a set of microscopic square tiles of DNA. In one experiment they created complex patterns on the surface of the squares; in another they designed the tiles to form heart-shaped arrays consisting of 11 tiles of four distinct types.
Although complete control of molecular systems is a long way off, these technologies offer what is essentially a programming language capable of interfacing with a biochemical environment. DNA folding, for example, could be used to design microscopic "boxes" that open and release a therapeutic drug only under certain chemical conditions on the surface of or inside specific type of cells. "What has kind of amazed us is how much we can get done with just DNA," says Parkin. "With DNA, we can design complicated things from scratch. We can't do that with proteins yet."
As Qian notes, programming molecular systems is an area "full of imagination and creativity."
"That's why I want to share these adventures with Caltech students," she says.