CryoEM of Nanomachines

There was a time in structural biology when solving protein structures using NMR was received with considerable skepticism. In addition to the normal experimental uncertainty, the technique generated structures with additional uncertainty due to the vibrational motions of proteins in solution. That’s part of the reason standard NMR entries in the PDB contain ~20 structures while x-ray structures have just one. However modern NMR methods have advanced to the point that few skeptics are left. The two techniques together were essential in the rapid increase of structural information that’s available today.

According to Dr. Wah Chiu, electron cryomicroscopy today looks a lot like NMR 20 years ago. On his first slide he showed was a definition of Cryo-EM, which looked a lot like a definition of NMR. In bold he emphasized that Cryo-EM is solving structures without crystals. I’ve often heard protein crystallization called ‘black art’ or ‘trying to hold a stack of bowling balls together with tape’. I’m not a practitioner so I’ll assume it’s hard for at least the interesting cases. Getting good crystals is not required but sample preparation rules still apply to Cryo-EM. Wah stresses how diligent and often labor intensive work at the bench yields much better results further along in the pipeline. Once they have a sample though, Wah has a playground full of high-end instruments

JEOL 3200FSC electron cryomicroscope

JEOL 3200FSC electron cryomicroscope

ncmi cluster

1,000-core Linux cluster

images via [http://ncmi.bcm.tmc.edu]

Cryo-EM techniques have been very successful in determining structures of nanomachines (or macromolecular assemblies if you are frustrated with nano-fications) and looks to continue improving over the next 20 years. Large assemblies like capsids, phages, pores, and channels are all possible with Cryo-EM. The resolution is still quite far away from the < 2 Angstroms typical of good x-ray structures. If I remember correctly, Wah said they are currently achieving around 4.7 Angstrom res. and better depending on the system. But resolution isn't just a number, it's all about what you can actually see. And what they can actually see now is things like secondary structure and even side-chains. Complete atomic detail is not very far off.

Software and computational techniques influenced by image processing and protein structure prediction efforts are providing atomic details even sooner than expected. Wah’s group has developed SSEHunter to detect secondary structures from the Cryo-EM data and programs like MODELLER are used to characterize each component [paper].

My expectations are quite high. How long before we can see the entire cell and all of it’s components in atomic detail? 5? 10? 20 years?

Futher reading:

Achieving Your Childhood Dreams

RIP Carnegie Mellon Professor Randy Pausch (Oct. 23, 1960 - July 25, 2008)

Impressions from ISMB 3Dsig

This past weekend I attended my first ISMB conference in Toronto, ON. I didn’t have time to attend the main conference but I did enjoy the 3Dsig satellite meeting in the days preceding the main event. During the talks, I used twitter to jot down some brief notes. Here’s the rundown of my favorite 3Dsig keynotes:

“Towards Elucidating Allosteric Mechanisms of Function via Structure-based Analysis of Protein Dynamics”

I am quite familiar with Ivet Bahar and her work since her lab is just across campus. Dr. Bahar is formally trained in polymer physics and brings a fresh approach to protein structure and dynamics. Borrowing from polymer sciences, elastic network modeling is an efficient coarse-grain approach to calculating mechanical motions in proteins. The approach is similar to Normal mode analysis. Both Gaussian Network models and Anisotropic Network models are beautiful abstractions of macromolecular motion. The low frequency (slowest) modes from the elastic network can be interpreted as the “functional” motions of the macromolecule. Global motions might also be interpreted as allosteric effects. Other uses for ANM modes are steering molecular dynamics simulations and small molecule docking.

One major benefit of ANM is computational efficiency. Efficiency that allows large dynamical systems such as ribosomes and GroEL to be studied, which is still infeasible for classical molecular dynamics. Even though it’s an approximation, ANM captures the mechanisms of motion that are important to protein function. I highly recommend submitting your favorite PDBid to ANM Server and see how it works.

Papers:

“On the Nature of Protein Fold Space: Extracting Functional Information from Apparently Remote Structural Neighbors”

Dr. Barry Honig talks about the nature of protein fold space. During the talk, he makes the statement “There is no such thing as a fold” which was effectively provocative. His reasoning behind the statement was exemplified by several binding motifs which exist in proteins across 30 or 40 folds. He had several other examples where functional similarities were observed in proteins even though the structures were divergent. A fold class, he says, is a discretization which should come with a caveat. The caveat being don’t let fold classes get in the way of your question. If your question requires analysis of all metal-bindings sites, don’t start throwing away information because it’s ‘not the same fold’.

“I am not a PDBid I am a Biological Macromolecule”

The Prisoner (YouTube)
via Wikipedia:

“Where am I?”
“In the Village.”
“What do you want?”
“Information.”
“Whose side are you on?”
“That would be telling?. We want information. Information! INFORMATION!”
“You won’t get it.”
“By hook or by crook, we will.”
“Who are you?”
“The new Number Two.”
“Who is Number One?”
“You are Number Six.”
“I am not a number ? I am a free man!”

It’s no secret that Phil E. Bourne is big on Open Access. He’s involved with the RCSB PDB, PLoS, and more recently SciVee in addition to his core research. This was a dinner session which sparked some interesting discussions late into Friday evening. He started off by referencing The Prisoner, a British sci-fi television show where the main character is imprisoned and referenced only by a number. Phil parallels this with PDB structures, describing how entries in the PDB are essentially featureless and unannotated with respect to function. Partially to blame is structural genomics efforts which rapidly solves structures without functional motivation. The real functional information, he contends, lies in the literature. The typical workflow for a biologist interested in a structure is to go the the PDB, find a structure, lookup primary citation, download the publication, examine figure, download structures, find more references, etc, etc. In order to break this painful workflow he suggests better metadata support in the journal articles themselves, figures which are encoded as representations of the actual PDB coordinates, and lots of other mashable features in publications. Then he talked about catching his graduate students watching YouTube and how that led to development of SciVee. Video is an attractive medium for describing structure-function relationships. Speaking of attractiveness, one concerned member of the audience voiced an opinion that the more attractive scientists are going to get more attention on SciVee and that this would degrade science as a whole. A lively discussion about the differences between a good speaker/pubcaster and a good scientist ensued.

“Conformational Flexibility and Sequence Diversity in Computational Protein Design”


Dr. Tanja Kortemme reports on progress in protein design. More specifically, redesigning protein interfaces and interactions. The design protocol was as follows:

Interacting complex -> Flexible backbone -> Rotamer library -> Monte Carlo steps

The computational methods were accompanied by impressive experimental efforts including X-Ray crystallography and even cell morphology studies. The flexible backbone model was improved by the implementation of backrub motions in Rosetta, which were recently observed in high-resolution crystal structures, and greatly improves side-chain prediction accuracy.
Papers:

“Hits, Leads, and Artifacts from Virtual and High-Throughout Screening”


I am not too familiar with High-Throughput Screening techniques, however Brian Shoichet gave an excellent talk about parallel efforts screening in vitro and in silico. His most compelling points were the false positive rates of HTS (90-100%!) and the bias in small molecule screening libraries. The high false positive rates is due to large aggregates (200nm) sequestering enzyme and appearing like inhibitors. The screening library bias is a major contributor to the success of HTS and comes from “200 years of medicinal chemistry”.

Papers:

Stay up-to-date with the rest of the conference at the ISMB room on FriendFeed!. Also, Public Rambling compiled a list of science bloggers at ISMB.

Hybrid Programming for Shared-Memory and Clustered SMP Systems

There’s an upcoming workshop at the PSC September 8 - 11, 2008

This workshop will present programming models and techniques for writing efficient parallel code on contemporary and future supercomputers with extensive shared memory, or hierarchical architectures with smaller shared-memory components. Two important examples of systems to which these techniques apply are the SGI Altix and networked clusters of multicore processors. Expert instructors from PSC and SGI will review MPI, OpenMP, and hardware architecture prior to launching into detailed treatments of programming for hybrid parallelism, performance analysis, and optimization. This is a “bring your own code” workshop. Participants are encouraged to bring an application to focus on during the hands-on sessions to maximize the workshop’s effectiveness. Examples will be provided for participants who cannot bring a research code. Experienced PSC computational scientists will provide support regarding the topics covered, including hybrid algorithms and implementation strategies and performance engineering.

More details

Solve Puzzles for Science - FoldIt: An online protein folding game

David Baker is one of my favorite scientists. His group performs the best at CASP. He started the Rosetta protein folding and design software and Rosetta@HOME a distributed computing network to run it. And now he’s behind one of the coolest projects I’ve ever seen. Fold.it is an amazing community-based game where players can compete by folding proteins in a graphical point and click manner. Fold.it has a beautiful UI and molecular graphics not unlike the ones you’ve come to expect from VMD, PyMOL, and UCSF Chimera. Most importantly, this highly addictive puzzle game has real scientific value. Each time you solve a folding puzzle, the software sends your results back to FoldIt. With that data they hope to gain insight into the powerful human capacity to recognize patterns and apply that to new protein structure prediction methods. Players can create and join groups to compete against other players for high-scores.

After playing FoldIt for about an hour the game is actually very fun and addicting! Any game with actions like “Shake Sidechains” and “Wiggle Backbone” is guaranteed to make any bioche/biophysicist smile. While it may compete with GTA4, this game is a huge step in educating students in protein structure. It’s truly brilliant. Thanks to Andrew Perry for pointing this out.

FoldIt - Crowdsourcing to solve the protein folding problem

Using Ruby for Bioinformatics Applications

bioruby

When I started working in a bioinformatics research lab I quickly discovered the wonderful dynamic language that is Perl. I’ve spent a couple of years with Mastering Perl for Bioinformatics somewhere on or around my desk. Perl itself was designed with text-processing and reporting in mind so naturally it’s become widely used when handling biological data.

So everything bioinformatics should be coded in Perl, right? A couple of years ago I might have agreed, but now I feel differently. My first “Perl, I’m leaving you.” moment came when I discovered the way that Rails does web programming. Ruby is the magic in Rails, but I soon discovered Ruby goes much beyond web frameworks. To quote Ezra:

“I came for the Rails, but I stayed for the Ruby”

I wanted to compile some links to show how an active community is positioning Ruby to be a powerful language for bioinformatics programming:

BioRuby - open source bioinformatics library

BioRuby on Github

Web Frameworks

Ruby on Rails - the famous MVC framework that made ruby popular

Merb - fast, lightweight MVC framework

Camping - 5k microframework

Sinatra - web development DSL

Ramaze - simple, light, and modular web application framework

Rack - Webserver interface

Distributed/Parallel Computing

DRb- Distributed Ruby

SkyNet- Map Reduce in Ruby

Rinda - Linda parallel programming model in Ruby

rxgrid - Xgrid batch language

MPI Ruby - MPI bindings for Ruby

amazon-ec2 - Amazon EC2 API

Testing/Spec

RSpec - BDD framework

Test::Unit - Unit testing in the Ruby standard library

Integration with other programming languages

JRuby - JVM ruby implementation

SWIG and Ruby - automatically generate C interfaces

Ruby C extensions

Math/Statistics

Ruby-GSL - wrapper for the GNU Scientific Library

RSRuby- R statistics package in Ruby

SciRuby

Ruby NArray - similar to NumPy

Visualization/Graphics

Ruby Gnuplot - Gnuplot bindings

Ruby-Processing - The Processing language in Ruby

ruby-opengl - OpenGL bindings

Gruff - Graph API

Ruby-SVG - SVG Graphics

Ruby Gnuplot

Machine Learning

AI Related Ruby Extensions

Support Vector Machines in Ruby

Fast Artificial Neural Network library

Blogs about bioinformatics and Ruby

Saaien Tist - Jan Aerts, on bioinformatics and personal productivity

Bioinformatics Zen - Micheal Barton

Be sure to visit the Ruby for Bioinformatics room on FriendFeed for even more Ruby goodness.

A Pipeline is a Rakefile

Update: Mike over at Bioinformatics Zen has written a more thorough post about organised bioinformatics experiments with examples using Rake and DataMapper. Definitely check that out.


image credit: railsenvy.com

Make and it’s other revisionings tackle the challenging problem of dependency injection which is somewhat analogous to the Strategy pattern. Make is a tried and true Unix utility that does the heavy lifting each time you type “./configure; make && make install” inside a large chunk of open source goodness. Make became such a popular tool because it drastically reduced compilation times for large programs. In compiled languages such as C, each time a source file is changed it needs to be recomplied. Rather than rebuild the entire project everytime the source code is changed, an expert (a C programmer in this case) can specify dependencies so that make will build only the files that change and their dependencies. In that sense, it’s easy to take for granted how powerful a Makefile actually is. Make is an expert system that’s ubiquitous in the Unix world.

A makefile has the basic structure:


	target: dependencies

		command 1

		command 2

	          .

	          .

	          .

		command n

Which brings us to the actual point of this post; how to use Makefiles in bioinformatics. There’s a discussion on nodalpoint from 2007 that calls for the use of `make` more often when programming pipelines. This made perfect sense. In bioinformatics we do pipelines all the time.

Sequence analysis

Blast search -> Multiple sequence alignment -> Phylogenetic analysis

Homology Modeling

Find Template -> Align target-template -> Build model

Molecular Dynamics

Solvate -> Equilibrate -> Simulate -> Analyze

Those aren’t the most detailed examples but hopefully you get the idea. Each step is dependent on the previous step. If one single step takes a lot of computation time, it would be nice to skip that step if it’s already been done. There’s also a benefit to encoding expert knowledge. For example, how do you convert a .fasta sequence file to a .pir sequence file? By specifying a rule, a build system will know what to do everytime is sees a ‘*.fasta’ file in your project.


	%.pir: %.fasta

	./fasta2pir $< $@

But Makefile syntax can be tricky (is that a tab or a space?), and it’s not a full blown programming language by itself. Which is why I fell in love Rake.

Anyone who has tried out Ruby on Rails probably typed something like “rake db:migrate” without realizing what rake is all about. Rake is Ruby Make. Rake was designed to be just like make, but with all the power and flexibility of the Ruby programming language. A Rakefile is simply a set of tasks, which can have one or more dependencies. Unlike make, rake is an internal DSL since it morphs Ruby into a build language without losing it’s utility as a general purpose language.

A simple Rakefile in your bioinformatics project could do something like this:


	task :queryDatabase do

	  puts "Fetched Records"

	end

	task :formatData => :queryDatabase do

	  puts "Converted to XXX format"

	end

	task :createPlot => :formatData do

	  puts "Generated a Figure"

	end	

This says “before I formatData I must queryDatabase”, and “before I createPlot I must formatData”. So as you might expect, when you type:


	$ rake queryDatabase

	Fetched Records

	$ rake formatData

	Fetched Records

	Converted to XXX format

	$ rake createPlot

	Fetched Records

	Converted to XXX format

	Generated a Figure

And our Fasta rule in Rake would look like:


	rule '.pir' => ['.fasta'] do |t|

	  sh "./fasta2pir #{t.source} #{t.name}"

	end 

Pretty cool? Obviously these tasks don’t actually do much other than show how rake resolves dependencies for you, which can be a pretty powerful thing for hacking together a pipeline.

Rake resources:

Dynameomics: Mass annotation of protein dynamics

Just in case you need another -omics in your biotech vocabulary. Dynameomics is an effort by the Dagget group at the University of Washington to

characterize the native-state dynamics and folding/unfolding pathways of representatives of all known protein folds by way of molecular dynamics simulations

Three successive articles have been published in Protein Engineering Design & Selection to describe over 3000 long molecular dynamics simulations, the computational workflow, and data mining capabilities of Dynameomics. Dynameomics has applets for visual analysis and even high-quality movies of their MD trajectories!

Papers:

Video: 4PGA unfolding movie

High-performance data appliances (Netezza)

This afternoon I sat through a presentation from a few guys at Netezza. They were here to discuss their system for high-performance data analytics. What they’ve effectively done is build a large database machine with some special hardware to accelerate database queries via parallel processing nodes. These are some notes I jotted down:

Architecture:

  • SMP Host
  • 100+ specialized processing units per cabinet (they named them SPU’s for “snippet processing units”)
  • SPU’s have their own PPC CPU, commodity disk, memory, and an FPGA
  • GigE networks between SPU’s
  • SMP Host partitions queries and broker activity to the processing nodes
  • Hardware fault-tolert (SPU’s can be hotswapped)

I’ll admit my skepticism tends to mount against any speaker that spends a lot of time at the outset with a marketing pitch when the audience is full of scientists. Do scientists need to be reminded that data sizes are growing? Or that enterprise X, Y, and Z are already using your product? Just show me how at works.

I did a quick search across my feeds to see if anyone has written about Netezza and (not surprisingly there is a post over at Computing at Scale. It appears there are similar efforts from Teradata, Greenplum, and DATAllegro in this space.  I can imagine how a systems like Netezza’s might complement more traditional supercomputing.  There’s certainly a big effort to commercialize the “new era of HPC” but the technologies that come out of it are business-driven and not science-driven.

Around the web 3/21/08

quarternion_jmol

Around the web, week of March 21, 2008

    Journals
    Big science from Andrei Sali and David Baker

  • The molecular architecture of the nuclear pore complex
  • De Novo Computational Design of Retro-Aldol Enzymes
  • Blogs

  • Nature archive visualized - a Processing sketch to visualize the keywords from Nature over the last 30 years. Some of the more spurious terms could probably be cleaned up but even as a draft the effect is pretty neat.
  • Research streaming is born. Mike from Bioinformatics Zen is auto-publishing his svn commit messages and uploading figures he generates to Flikr. This would be well suited to someone like me who has too many projects going on to stop and dedicate time to blog about them here.
  • Universal Parallel Computing Research Centers are being heavily funded by Microsoft and Intel. One at University of Illinois at Urbana-Champaign, well known for the CHARMM++ parallel library and the super-scalable NAMD molecular dynamics package built on top of it. The other will be located at UC Berkeley.
  • The End of the Relational era, is SQL dying? Bill McColl of Computing at Scale says it is. I would argue that relational databases have received the golden hammer treatment over the years. But I totally agree with his prediction that SQL will ultimately be replaced by DSL’s having implicit data-parallelism.
  • The Youtube API has been updated with some significant improvements for developers. Uploads, comments, and video playlists can all be manipulated outside of youtube. This makes a convincing case to leverage the massive youtube userbase if your site deals with video content.
  • Tech

  • I’ve finally moved most of my projects from SVN to Git. I’m now a ‘branch-a-holic’ and git definitely fits my workflow better than subversion now that I’m used to it.
  • Capistrano is typically used for Rails deployment, but I’m finding it’s good for just about anything you want to run across multiple remote hosts. This is a great mini-language for cluster admins who don’t want to struggle with something like mpirun