June 3, 2012
My placement this summer is at Berkeley Lab in the Computational Research Division. I’m working with Dr. Maciej Haranczyk, who is developing software tools for analyzing large datasets of porous materials such as zeolites and metal organic frameworks (MOFs). These porous materials are promising for carbon capture and storage. In order to find the best performing porous materials, Dr. Haranczyk’s group developed techniques to characterize the morphology of the void space inside the materials. They also developed tools to determine the amount of similarity between different materials’ void space morphologies. Based on these similarity studies, they were able to show that the best performing MOFs all contained a common feature in their morphology.
The next step in their research project is to apply the same techniques to zeolitic imidazolate frameworks (ZIFs), a sub-class of MOFs with the organic linker being an imidazole derivative. These are attractive materials because they are relatively easy to synthesize and have good chemical stability under high temperatures and in alkaline environments. Given the currently known ZIF morphologies, and a list of commercially available imidazole derivatives, we want to substitute imidazole derivatives into the known frameworks to generate all possible ZIF structures. These past two weeks, I have been working on a program that can identify the location of the imidazole ring within a molecule, given the x,y,z coordinates of each atom in space.
My work in Berkeley Lab has been very different from my previous research experiences. I am a chemistry major, and am used to making solutions and running experiments inside a wet lab. I actually didn’t have much programming experience coming into the internship, but was very excited at the opportunity to learn how programming can be used to solve problems that chemists are interested in. These first two weeks have kind of been a crash course in C++. I’ve also been learning about methods used to represent chemical information and structures in program design.