Monday, May 25, 2009

Examples make it clear

In reading scientific publications, I always quickly get confused with long, complicated equations. Initially, I thought it was because of my lack of domain knowledge: when I get more familiar with a field, things will become easier. Of course, this statement is true. However, it is not exactly the point in the following two senses:
  1. Having been in the field of nucleic acid structures for more than ten years, I can claim I know the field good enough. Yet, I can still easily get lost with large portions of mathematical formula in an article. An example is the Babcock and Olson 1994 JMB paper titled "Nucleic acid structure analysis. Mathematics for local Cartesian and helical structure parameters that are truly comparable between structures". Overall, it is a solid piece of work but I doubt how many people in this field really understand it above the conceptual level.
  2. When I get to the bottom of something, things do become truly simple. But even then the equations still feel complicated. In resolving the discrepancies among nucleic acid conformational analyses, I went through the source code to understanding from the bottom up how the Babcock and Olson method works. It is actually not that complicated, and the implementation with regard to finding the local helical axis and calculating a set of helical parameters can be greatly simplified using a geometric approach, as in SCHNAaP/3DNA. Moreover, some details from the above Babcock and Olson 1994 JMB paper are actually inaccurate.
Another wonderful case I have had is with the CEHS scheme (due to Calladine and El Hassan) to calculate a set of local base-pair parameters. It was only after checking an example did I uncover a subtle discrepancy between the simple CEHS formula (in its original form) and its description, in the draft version of Dr. El Hassan's PhD thesis. This experience led to the joint SCHNAaP/SCHNArP papers with El Hassan, and inspired me later on to work through NewHelix, Curves, CompDNA etc DNA structure analysis programs to reveal "the reasons why the different algorithms come to conflicting structural interpretations".

So, if you are a beginner in a research field, do not be scared off by the fancy mathematical formula. If you want to really understand something, work through an example and/or check through the source code implementations. For the authors, if you would like to get your message across, provide step-by-step examples to the key points you want to make for others to follow.

Saturday, May 16, 2009

Fiber, analyze and rebuild in 3DNA

While browsing the current issue of Nucleic Acids Research (May 2009, Vol. 37, No. 8), I noticed, surprisingly, the article titled Reconstitution of ‘floral quartets’ in vitro involving class B and class E floral homeotic proteins by Rainer Melzer and Günter Theißen from Jena, Germany.

From the title and abstract, I would not expect 3DNA could play a role here. Yet in section Modeling a floral quartet, the authors used fiber to building a B-DNA model of floral quartets, using sequence between the XhoI and XbaI sites of probe A, then analyze the structure, and modified the resultant file 'bp_step.par' accordingly to their specifications, and rebuild a customized DNA model. In the following paragraph, the authors used the analyze/rebuild pair again for the CArG box bound to serum response factor.

This is the intended usage of the 3DNA software package I have had in mind from its initial design. I emphasized such versatile, integrated approach unique with 3DNA in our 2008 Nature Protocols paper. As time goes by, I am confident that more people will begin to appreciate this approach.

Friday, May 15, 2009

PDB ATOM coordinates record

PDB format is one of the standard formats for biological macromolecular structures (proteins, DNA/RNA, their complexes, etc). It came into existence when the initial Brookhaven PDB was established in 1971. Over the years, PDBML and mmCIF have been proposed as substitutes to allow for more flexibilities, yet PDB format is still the mostly commonly used one. Software dealing with PDB structures each has its own parser, at least for the Coordinate Section (especially the ATOM and HETATM records).

Overall, PDB format is simple and very well documented. The simplicity lies just in its 'rigidity', in FORTRAN 77 style. The ATOM/HETATM record description is excerpted below for easy reference:

COLUMNS DATA TYPE FIELD DEFINITION
-------------------------------------------------------------------------------------
1 - 6 Record name "ATOM "
7 - 11 Integer serial Atom serial number.
13 - 16 Atom name Atom name.
17 Character altLoc Alternate location indicator.
18 - 20 Residue name resName Residue name.
22 Character chainID Chain identifier.
23 - 26 Integer resSeq Residue sequence number.
27 AChar iCode Code for insertion of residues.
31 - 38 Real(8.3) x Orthogonal coordinates for X in Angstroms.
39 - 46 Real(8.3) y Orthogonal coordinates for Y in Angstroms.
47 - 54 Real(8.3) z Orthogonal coordinates for Z in Angstroms.
55 - 60 Real(6.2) occupancy Occupancy.
61 - 66 Real(6.2) tempFactor Temperature factor.
77 - 78 LString(2) element Element symbol, right-justified.
79 - 80 LString(2) charge Charge on the atom.

It won't take much time/lines in a script language such as Perl/Python/Ruby etc to extract specific information one is interested in, e.g., atomic coordinates. However, there are some subtleties that are beyond simple script parsers. On top of that, one needs to understand that not all self-claimed PDB files are standard compliant.

More specifically, a decent PDB format parser must take the following into considerations:
  • The four-character atom name specified in columns 13 to 16. Each biological molecule has a convention in naming atoms. For example, the two H-bonds of the A-T pair are between " N1 " (A) to " N3 " (T), and " N6 " (A) to " O4 " (T). In this regard, it worths noting that babel/openbabel converted PDB files do not follow such naming convention.
  • The one-character alternate location indicator (altLoc) in column 17
  • The one-character residue insertion code (iCode) in column 27.
  • Others details to follow ...
If you are serious about your PDB format parser, there is a very simple thing to do: run it against all the NDB entries if you are working on nucleic acid structures (that's what I did for 3DNA), and the whole PDB entries if you are interested in protein structures. If it does not crash and does what it has been designed for, then congratulate yourself!

Saturday, May 9, 2009

Running Windows on Ubuntu Linux with VirtualBox

Ever since I switched from MS DOS to Unix and then Linux, I have never felt the desire to move back to the Windows world. Yet in the real world, MS Windows is an operating system (OS) that you simply can't avoid. For example, I compiled 3DNA v2.0 in Cygwin and MinGW, both in Windows. For such an one time process, my dual boot-able Ubuntu and Vista has worked just fine. However, when writing an article in a collaborative setting, access to Word has becomes a must and switching back and forth between Linux and Windows is really a pain -- not just time consuming, but also the inconvenience in communicating files between the two OSes. OpenOffice is fine for personal, occasional use, but I have experienced some (subtle) compatibility issues with Word, especially with EndNote support for citations and bibliography.

In the past couple of days, I installed Sun VirtualBox 2.2.2 onto my Ubuntu 9.04 with the following settings:
  • Windows XP (MS Office 2003, EndNote X2)
  • 512 MB base memory
  • 12 MB video memory
  • 10 GB hard disk
  • With Guest Additions installed
I have played around for a little while, and everything seems to work just fine. Now I have full access to MS Office (Word, PowerPoint etc) and EndNote. I really like the feature of "Shared Folders": it allows me to directly access files in my host Linux box from within the guest Windows XP.

The VirtualBox UserManual.pdf is pretty well-written: after reading carefully the first four chapters, I did not have much trouble in getting the system up and running. I also referenced the following two blog posts:

Wednesday, May 6, 2009

PhD pages on DNA base-stacking interactions

I was recently approached by Dr. Victor Zhurkin, a well-known computational biologist at the NIH, asking for some details about the sigma/pi charges used in my JMB publication on DNA base-stacking interactions. It was a paper based on my PhD thesis with Dr. Chris Hunter at Sheffield University. Ever since its publication a decade ago, this is the first time I have been asked questions about it (Dr. Hunter was the corresponding author).

This request was both a nice surprise, and at the same time, a challenge since I do not have the original files at hand. Over the years, I have never been a (big) fan of energy calculations. So unlike my SCHNAaP/SCHNArP papers for which I do keep the original source code and data files to reproduce the results published back-to-back in JMB, I do not have direct access to the original files for del Re (sigma) and Huckel (pi) charges used in my base-stacking interactions paper. I did find the HP 60 meter Data Cartridge I took from Sheffield which should contain all the details of my PhD work, but it is hard these days to find a machine to read it. At the meantime, I found a hard copy of my PhD thesis, which contains further details. So I used my digital camera, took pictures of 11 pages that are relevant, and made it available online in a tarball file.

The key feature of my DNA-stacking interaction work is the distributed charge model for the aromatic bases. This charge model was based on the seminal work of "The Nature of Pi-Pi Interactions" by Hunter and Sanders published in JACS in 1990. This simple distributed charge model catches the aromaticity concept nicely, making it easily understandable to bench chemists and biologist. As I have just checked it out, this 1990 JACS paper has been cited 2280+ times, according to Web of Science. My 1997 JMB DNA-stacking interaction paper has received 78 citations -- certainly not comparable to the JACS paper, but overall not bad at all. (Google Scholar gives much smaller citation numbers, for unknown reasons).

Looking back, the DNA base-stacking project was the main theme of my PhD work. It was the close collaboration with El Hassan in Dr. Chris Calladine's group at Cambridge University that introduced me to the elegant CEHS scheme, and based on which I created the SCHNAaP/SCHNArP software programs. The mathematical rigor of the CEHS scheme, i.e., its complete reversibility with the analysis/rebuilding of dinucleotides, put my theoretical energy calculation on a solid basis for comparison with oligonucleotide X-ray crystal structures. The "detour" to SCHNAaP/SCHNArP reflected my personal interest, and was the starting point that later led to the resolution of the long-standing discrepancies among nucleic acid conformational analyses, the establishment of standard base reference frame, and the creation of the now popular 3DNA software package.

Sunday, May 3, 2009

Two 3DNA figures made into a textbook on structural biology



Last week, while browsing amazon.com, I came across the "Textbook Of Structural Biology" by Anders Liljas. It reminded me of the request we received from Dr. Liljas a while ago, asking for permission to use two figures from 3DNA (v1.5) website, which, of course, we happily granted.

The two figures as they appear in the textbook are shown in the left and right
respectively. Historically, they both first appeared in the 3DNA v1.5 website and later on were adapted into our 3DNA 2003 NAR paper, which is now taken as the "official" source for citation. The figure illustrating nucleic acid structural parameters (left) was also put into our 3DNA 2008 Nature Protocols publication, and the figure showing the roll-slide effects on regular DNA structures (right) was based on the classic work of Calladine & Drew, and could be traced back to my SCHNArP paper published in JMB.

In retrospect, it took me two weeks to produce the figure illustrating various DNA structural parameters (left)
-- in ~20% of the time, I got over 80% right, and it was the remaining 20% that took most time. It is the details that count!

Over the past twenty years, there have been numerous versions of such illustration images, with nearly each publication/author having its own. While looking similar, they are all subtly different due to lack of precise control of the value, orientation and relative scale of the illustrated parameters. To get it consistently and rigorously (reproducibly), a pragmatic approach must be taken, and that is where 3DNA shines.

Saturday, May 2, 2009

About my name

The other day, I went to a local MVA to renew my driver license. What assumably a 20 minutes precess ended up taking me nearly two hours. The reason? My name!

The name on my to-be-renewed driver license was "Xiang J. Lu", which was inconsistent with my passport and SSN card, "Xiangjun Lu". So I had to go back home to collect an additional id to get by name "corrected" to "Xiangjun Lu". Ironically, four year ago, when I converted my MD driver license (which had name "Xiangjun Lu" on it) to a NJ one, the MVA changed my name to "Xiang J. Lu". I argued that it was inconsistent with my SSN card etc, to no avail -- it was the way how the system works, I was told.

People familiar with my scientific publications would notice that my name is "Xiang-Jun Lu", i.e., with a hyphen in between my first name. This is intentional and follows one of the conventions of writing names in English for people from mainland China. There are far too many names corresponding to X. Lu!

Moreover, my last name is 律 in Chinese, corresponding to pinyin Lü, i.e., with two dots over u. Since ü does not belong to one of the 26 English letters, Lü becomes Lu. Put it Chinese way, my name is 律祥俊, i.e., Lu Xiangjun literally, with last name first. More information about Chinese name can be found in wikipedia.

There is an old Chinese saying from Confucius: 名正言顺. With my name clarified, it should become clear that this is Xiang-Jun's Corner on the Internet: all views are mine, and I am opinionated. I have thought about blogging for quite some time, but did not get started until today, with this one as my first blog post. Now the ball is rolling, and only time can tell where the destination will be -- but surely it will no longer stand where it was!