Author Archive for Adam

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

Web Frameworks

Rails

Merb

Camping

Sinatra

Distributed/Parallel Computing

DRb- Distributed Ruby

SkyNet- Map Reduce in Ruby

Rinda

rxgrid- Xgrid batch language

MPI Ruby

amazon-ec2

Testing/Spec

RSpecBDD framework

Test::Unit

Integration with other programming languages

JRuby

SWIG and Ruby

Ruby C extensions

Math/Statistics

RSRuby- R statistics package in Ruby

Ruby NArray- similar to NumPy

Visualization/Graphics

Ruby-Processing

ruby-opengl

Gruff - Graph API

Ruby-SVG

Ruby Gnuplot

Machine Learning

Support Vector Machines in Ruby

Fast Artificial Neural Network library

[To be continued]

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

Biorobotics: Snake Robots! [Video]


These things are being developed by the Robotics Institute on our campus. I’m partially amazed and partially terrified. I’ve heard they work wirelessly and they want to have snakes where each module has a camera so they can break apart into independent pieces, spread, and reassemble automatically. Some of the climbing behavior is pretty impressive…

Read more about this technology at the Modsnake website.

Around the web 3/7/08

rb-processing

Around the web, week of March 7, 2008