MELTING, a flexible platform to predict the melting temperatures of nucleic acids
© Le Novère et al; licensee BioMed Central Ltd. 2012
Received: 19 August 2011
Accepted: 16 May 2012
Published: 16 May 2012
Skip to main content
© Le Novère et al; licensee BioMed Central Ltd. 2012
Received: 19 August 2011
Accepted: 16 May 2012
Published: 16 May 2012
Computing accurate nucleic acid melting temperatures has become a crucial step for the efficiency and the optimisation of numerous molecular biology techniques such as in situ hybridization, PCR, antigene targeting, and microarrays. MELTING is a free open source software which computes the enthalpy, entropy and melting temperature of nucleic acids. MELTING 4.2 was able to handle several types of hybridization such as DNA/DNA, RNA/RNA, DNA/RNA and provided corrections to melting temperatures due to the presence of sodium. The program can use either an approximative approach or a more accurate Nearest-Neighbor approach.
Two new versions of the MELTING software have been released. MELTING 4.3 is a direct update of version 4.2, integrating newly available thermodynamic parameters for inosine, a modified adenine base with an universal base capacity, and incorporates a correction for magnesium. MELTING 5 is a complete reimplementation which allows much greater flexibility and extensibility. It incorporates all the thermodynamic parameters and corrections provided in MELTING 4.x and introduces a large set of thermodynamic formulae and parameters, to facilitate the calculation of melting temperatures for perfectly matching sequences, mismatches, bulge loops, CNG repeats, dangling ends, inosines, locked nucleic acids, 2-hydroxyadenines and azobenzenes. It also includes temperature corrections for monovalent ions (sodium, potassium, Tris), magnesium ions and commonly used denaturing agents such as formamide and DMSO.
MELTING is a useful and very flexible tool for predicting melting temperatures using approximative formulae or Nearest-Neighbor approaches, where one can select different sets of Nearest-Neighbor parameters, corrections and formulae. Both versions are freely available at http://sourceforge.net/projects/melting/and at http://www.ebi.ac.uk/compneur-srv/melting/under the terms of the GPL license.
The quality of many experiments in molecular biology depends on the accurate characterisation of the helix-coil transition of nucleic acid duplexes. This includes for instance Polymerase Chain Reaction (PCR) experiments, sequencing by hybridization, antigene targeting, southern blotting, prediction of local stability within a duplex, and predicting the influence of mutations on duplex stability. For some of these applications, being able to predict accurately the melting temperature avoids the amplification or detection of wrong sequences.
In addition, it has been established that RNA molecules, besides a role in encoding proteins, also have more complex functions, for instance as microRNAs and siRNAs. These small non-coding RNA molecules are involved in the regulation of gene expression by means of direct RNA-RNA binding. These discoveries have driven the need for algorithms and software providing accurate predictions for hybridization, melting temperature, DNA/RNA folding and secondary structures. A lot of these needs are already covered by tools such as The Vienna RNA WebServers , which implement a large set of algorithms for RNA/DNA secondary structures prediction and base pair probabilities such as RNAfold or RNAcofold. More recently, the RIP program  and the piRNA program  have been developed to compute partition function over interaction complexes of RNA pairs for determining accurate base pair probabilities.
However, one of the most frequent approaches used for predicting melting temperature is the Nearest-Neighbor approach, based on the assumption that the interaction between Watson-Crick base pairs depends on the neighboring base pairs. The enthalpy and entropy for the hybridization of two complementary sequences can be simulated by the initial attachment of the first Watson-Crick base pair independently from neighboring base pairs and then its lateral propagation taking into consideration both the energy of formation of the Watson-Crick base pairs and the stacking interaction between the neighboring base pairs . Two duplexes with the same base pairs could have different stabilities depending on the nearest neighbor pairs composition. However, two duplexes with different sequences but identical sets of nearest neighbor base pairs have almost identical thermodynamics properties . The formula for the melting temperature depends on the oligonucleotide concentration, the enthalpy (δh) and the entropy (δs) of the duplex. The entropy and enthalpy values for each nearest neighbor pair which consists of two Watson-Crick base pairs have been studied for many years and several databases of thermodynamic parameters are now available such as the thermodynamic parameters for DNA/DNA hybridization and folding from Santalucia and Donald  or the NNDB database for RNA/RNA hybridization and folding from Turner and Mathews . Several software using the Nearest-Neighbor approach and thermodynamic parameters already exist, such as DINAMelt , which not only compute the melting temperature of nucleic acids but also provides entire equilibrium melting profiles as a function of temperature.
However, most software computing the melting temperature using the Nearest-Neighbor method rely on a limited set of thermodynamic parameters and patterns, typically from a single author. MELTING is a free, open source software, available since 1997, which computes the melting temperature of nucleic acid duplexes using a wide set of thermodynamic datasets and formulae from the literature. MELTING does not predict duplex formation, but predicts its melting temperature for a given alignment of the duplex strands (including mismatches, internal loops, dangling ends, etc). Version 4.2 has already been integrated into several platforms such as OligoDB , SOL , SEPON , SiDE  and the siRNA selector . MELTING 4.2 supports DNA/DNA, RNA/RNA and DNA/RNA hybridizations, DNA internal single base mismatches and DNA single base dangling ends .
As the calorimetric measurement for Nearest Neighbor parameters are made on small oligonucleotides, and the linear combination has only been demonstrated for oligonucleotides of less than 15 bases, the nearest-neighbor method cannot be accurately applied to long sequences. The complex secondary structures formed by longer oligonucleotides are more accurately taken into account by hybridization ensembles or partition functions. As MELTING does not use such methods, approximative formulae for DNA/DNA, RNA/RNA and DNA/RNA duplexes, such as the one from Wetmur  or from von Ahsen et al. are used when dealing with long sequences. These depend on GC composition, duplex length and sodium concentration.
A lot of progress has been made in the field of nucleic acid thermodynamics, and parameters are available for other modified nucleic acids or biochemical molecules. These include locked nucleic acids , azobenzene  and inosine, a modified adenine base frequently used in PCR because of its universal base capacity [18, 19]. Some approximative temperature corrections already exist for denaturing agents such as formamide and DMSO, both of which are frequently used in molecular biology experiments [15, 20]. Similarly, corrections for the magnesium ions are also available [21–23]; these ions are frequently present in PCR experiments to activate enzymes and influence duplex stability. Oligonucleotide sequences are not always perfectly complementary and the duplex can contain mismatches, bulge loops or dangling ends. For each of these patterns, several thermodynamic formulae exist to compute resultant enthalpy and entropy. These formulae are often different according to the type of hybridization, such as DNA/DNA or RNA/RNA.
MELTING 4.x could only support a single thermodynamic formula for computing duplex entropy and enthalpy, and was unable to incorporate thermodynamic parameters for inosine nor accomodate corrections for the magnesium ions. MELTING 5 is a complete reimplementation supporting a larger set of parameters and thermodynamic formulae to compute the enthalpy and entropy of several duplex patterns such as mismatches, bulge loops, dangling ends, CNG repeats, modified nucleic acids and to include new ion and denaturing agent corrections.
The structure of MELTING 4 has been described elsewhere , and we will focus here on MELTING 5.
Each duplex strand is entered as a linear sequence of nucleic acids, with gaps in the sequences represented by a dash (’-’), e.g. AATT−−GC−TA(containing three gaps). For perfect matching, only one strand is necessary as the complementary sequence can be deduced by the program.
The Nearest-Neighbor implementation consists of several steps. First, the program determines the location of each mutually exclusive pattern (e.g. perfectly matching base pairs, mismatches, bulge loop, internal loop, dangling ends, modified nucleic acids) composing the duplex. Patterns consisting of consecutive perfectly matching Watson-Crick base pairs are located and identified first. Each remaining set of consecutive base pairs in the duplex (possibly containing gaps) are identified as requiring specific thermodynamic formulae and parameters. For example, if a base pair contains an inosine and it is adjacent to a mismatch, it will be considered as a pattern composed of two base pairs (one with inosine and another with a mismatch) requiring a formula and parameters of its own.
δ h initiation-loop(L)accounts for the internal loop of L nucleotides.
δ h asymmetryaccounts for the internal loop asymmetry (when there is an unequal numbers of nucleotides on each side) with L1 and L2 the number of nucleotides on each strand per-adjacent-AU-or-GU accounts for each AU or GU base pair adjacent to the internal loop.
δ h first-non-canonical-pairsaccounts for each sequence specific first mismatch (bonus).
This mechanism is the same for other mismatches, bulge loops and modified nucleic acids.
Before applying each thermodynamic formula, the program checks if it is applicable within the environment set by the user (hybridization type, ion concentrations). Therefore, the previous rules from Lu  will not be applied when the internal loop is not a 1 x (n-1) internal loop with n > 2 or when the hybridization type is DNA/DNA.
The program computes the initiation of the hybridization according to the formula and parameters chosen by the user for perfectly matching sequences. It is important to note that in MELTING 5, the user selects not only a set of thermodynamic parameters (as in MELTING 4) but also the thermodynamic formula that uses it. The default set of parameters for each formula is defined by the paper describing that formula.
Tm (°C) represents the melting temperature in a solution of 1 M of sodium ion.
C T is the total concentration of oligonucleotides.
F is 1 when oligonucleotides are self-complementary. When they are not, F is 4 if both strands are present in equivalent amount and 1 if one strand is in excess (e.g. in PCR experiments).
When oligonucleotides are not self complementary, the term C T /F is replaced with C max−C min/2, where C max is the concentration of the strand in excess and C minthe concentration of the other strand. But if the excess is large enough, the total concentration of oligonucleotides can be assumed to be identical to the concentration of the strand in excess. The actual formula is but with C max>>C min, C max is equivalent to C T and is equivalent to and so F is 1. If the excess is not important enough to make the previous assumption, we can assume that C max is close to C min. Given that C T =C min + C max, then is equivalent to which comes back to the default correction of F=4 when both strands are in equivalent amount.
When MELTING 5 initially parses the sequences, it identifies the known base pairs and stores them as a List. The program currently recognises the chemical entities with the following string representations: A (adenosine), T (thymidine), C (cytosine), G (guanosine), U (uridine), A* (2-hydroxyadenosine), Al (locked adenosine), Cl (locked cytosine), Gl (locked guanosine), Tl (locked thymidine), I (inosine), X_C (cis azobenzene) and X_T (trans azobenzene). It uses a greedy match to parse the nucleic acid names in order to solve ambiguities (e.g. A* will take precedence over A).
The concentrations of various cations, such as sodium, and certain denaturing agents can be entered; MELTING can adjust the computed melting temperature taking into consideration the concentration of monovalent cations (sodium, potassium, Tris), bivalent cations (magnesium) and denaturing agents such as formamide and DMSO, using published formulae.
By default MELTING 5 loads the appropriate ion correction using the algorithm from Owczarzy et al., similarly to MELTING 4.3. The ion correction to apply can be forced by the user, thereby ignoring the default choice. The purpose of this implementation is to take into account the possible binding competition between monovalent and bivalent cations by default, yet still provide flexibility should the user prefer to apply a specific ion correction. As MELTING 5 implements several sodium equivalence formulae (see  and  for more information), it is now possible to enter potassium, magnesium and Tris buffer concentrations even when an approximative computation is used, or a sodium correction is forced. This enables sodium-dependent approximative computation methods to take into account ions other than sodium.
According to Santalucia and Hicks , the terminal mismatches in internal loops are assumed to have the same salt dependence as complementary base pairs, whereas the stability of the remaining internal loop nucleotides are assumed to be salt independent. Consequently, MELTING 5 computes separately a ’sodium independent’ entropy and a ’sodium dependent’ entropy when internal loops of type n1×n2 are present, where n1 > 2 is the number of nucleotides in the internal loop for the first sequence and n2 > 2 is the number of nucleotides in the internal loop for the second sequence. The ion correction will only be applied to the ’sodium dependent’ entropy, and the final entropy used to compute the melting temperature will be the sum of the ’sodium independent’ entropy and the corrected ’sodium dependent’ entropy. In this situation, MELTING 5 considers the entropy term for the loop length and the entropy term for the loop asymmetry (See the internal loop formulae from Santalucia and Hicks ) as sodium independent.
Like its previous versions, MELTING 5 has a customisable threshold value for the maximum oligomer length for which a Nearest-Neighbor approach should be used instead of an approximative formula. It is possible to bypass this threshold and force the usage of a specific type of computation.
Upon reading the options set by the user, the chosen thermodynamic formulae, approximative formulae and ion/denaturing agent corrections are instantiated using the Factory design pattern.
There are several groups of options in MELTING 5. The information options display information about the program, such as help or legal information. To be able to compute a melting temperature, the program requires mandatory options: type of hybridization, sequence(s) and nucleic acid concentration, and at least one ion concentration. Moreover, the general options allow one to define the optional environment of the program: other ion or denaturing agent concentration(s), verbose mode, file output mode, data file path or threshold value. Finally, there are several options which enable the user to change the default Nearest-Neighbor formulae and/or parameters, the default approximative formulae, the ion and denaturing agent corrections or to force a specific melting temperature computation method (Nearest-Neighbor approach or approximative formulae). After the options are entered, the program first looks for the hybridization type to load the appropriate default set of thermodynamic parameters. Then the set of options entered by the user are completed with the default values for this hybridization type.
The command line option syntax of MELTING 5 differs from the previous versions. While an alternative backwards-compatible executable is provided to allow the use of the previous option syntax with the new software, it precludes use of the new features when using the old syntax.
The program automatically detects when the sequences are self complementary and sets the nucleic acid factor correction F to 1. It also applies an additional symmetry correction parameter which is stored with its nearest neighbor pairs parameters set.
melting temperature computation model (approximative or Nearest-Neighbor approach)
enthalpy and entropy computation method for patterns forming the duplex
ion and denaturing agent correction
sodium equivalence computation method
MELTING 5 is entirely written in Java and can be run with a Java 5 environment or higher. Executables for Microsoft Windows and Linux, as well as the pre-generated JAR file, are provided together with the source code. The program is licensed under the General Public License version 2 . To date MELTING 5 does not have a graphical interface, but can be easily used through the command-line. The distribution contains a detailed user guide, which describes each Nearest-Neighbor or approximative formula, ion and denaturing agent correction. Detailed documentation for the developers, including a pre-generated Javadoc is also provided. The package can be found at the following addresses: http://sourceforge.net/projects/melting and http://www.ebi.ac.uk/compneur-srv/melting/.
All the sets of thermodynamic parameters are taken – or deduced – from published experimental work. Datasets are stored in XML files which allow more flexibility and extensibility for data representation (Table 1 presents the list of existing elements and attributes). In order to correspond to the literature of the domain, the enthalpy and entropy values of each parameter are given in cal/mol despite this unit not being SI compliant.
MELTING 5 XML elements and attributes
sequence, size, type, loop, closing
size, sequence, type
sequence, type, sens
In addition to the features described below, some inaccuracies have been fixed in the calorimetric tables, which explains some of the differences between MELTING 4.3 and MELTING 4.2 results.
MELTING 4.3 integrates thermodynamic parameters for inosine. For DNA/DNA duplexes, the program uses the parameters of Watkins and Santalucia , which covers all possible nearest neighbor pairs containing a single inosine base, and several nearest neighbor pairs containing two inosine bases. For RNA/RNA duplexes, the program uses the parameters of Wright et al. which covers only Inosine-Uracil(IU) base pairing.
It is now possible to enter the concentration of potassium ions, Tris buffer and magnesium ions. If only a sodium ion concentration is entered, MELTING 4.3 uses a sodium correction (default correction or user specified). Otherwise, the program uses the algorithm from Owczarzy  to load the appropriate ion correction: one of the sodium corrections if magnesium ion concentrations are negligible, a mixed monovalent/bivalent ion correction if there is a binding competition between monovalent and bivalent cations, and a magnesium correction if monovalent cation concentrations are negligible.
MELTING 5 provides a large set of approximative formulae for DNA/DNA, RNA/RNA and DNA/RNA duplexes from von Ahsen et al., 2001  that do not take into account mismatches, bulge loops and dangling ends. In addition it still provides formulae from Wetmur, 1991 , as implemented in previous versions, which include a penalty based on percentage of mismatch.
MELTING 5 supports several patterns in DNA/DNA and RNA/RNA duplexes: perfectly matching base pair, single mismatch, asymmetric and symmetric tandem mismatch, asymmetric and symmetric internal loop, single and long bulge loop, single dangling end, second dangling end, long poly-A queue and sequences composed of CNG repeats (Additional file 1 matches the implementation of thermodynamic formulae with their reference papers). Due to the flexibility and modularity of MELTING 5, it is now possible to choose a combination of thermodynamic formulae and parameters to compute the enthalpy and entropy of the different patterns composing the duplex. In addition to the choice of the thermodynamic formula(s), MELTING 5 allows the user to specify custom thermodynamic parameters.
However, in order to recognise patterns, MELTING 5 requires that users explicitely identify dangling ends, asymmetric internal loops or bulge loops by filling the gaps in the complementary sequence with dash characters.
For 2’-O-methyl RNA/RNA and DNA/RNA duplexes, only thermodynamic parameters for perfectly matching sequences are currently available, but the extensibility of MELTING 5 will facilitate the inclusion of these parameters in the future. As the 2’-O-methyl RNA/RNA parameters are determined in a solution of 0.1 M of sodium ions, MELTING 5 automatically applies the entropy correction from Santalucia and Hicks, 2004  to each 2’-O-methyl RNA/RNA parameter before using them in the Nearest-Neighbor algorithm.
The parameters for inosine are the same as for MELTING 4.3. Parameters for other biochemical entities (see implementation section for details) are only implemented for DNA/DNA duplexes. The independence of the nucleic acid name will facilitate the integration of additional nucleic acids and fluorophores.
MELTING 5 accepts user defined concentrations for sodium, potassium, magnesium, dNTP and Tris buffer. The program provides several sodium, magnesium and mixed monovalent/bivalent ion corrections (Additional file 2 presents the references of all ion correction implementations).
Table 2 presents these results.
MELTING 5 error margin per ion correction
Sodium correction formula
Magnesium correction formula
MELTING 5 provides several approximative corrections for DMSO  and formamide . However, these corrections are independent of the ion correction, although denaturing agents and ions interact with each other. MELTING 5 does not integrate an algorithm to take this interaction into account since none has been published. However, it is now easier to add new algorithms and denaturing agent corrections due to the flexibility and extensibility of the modular program core.
As in the previous versions, MELTING 5 can derive a complementary sequence when only one sequence is provided. In addition, the program can automatically detect when a sequence is self complementary and applies a correction for the symmetry, as well as setting the correction factor F to 1. This automatic detection is applicable for perfectly matching sequences with and without dangling ends. If a self complementary sequence containing mismatches, modified nucleic acids or bulge loops is to be entered, only the first sequence should be entered, with the new option -self , which will inform MELTING of the self-complementarity.
MELTING 5 requires that users enter a type of hybridization since this affects the thermodynamic formulae and parameters used. When the user enters the hybridization type, MELTING 5 is now sensitive to the order of the sequences types. Indeed, a dnarna hybridization indicates that the 5’3’ sequence entered with the option -S is a DNA sequence and the 3’5’ sequence entered with the option -C a RNA sequence. A rnadna hybridization would indicate the opposite.
Since the software architecture of MELTING 4 was able support the addition of inosine parameters and magnesium ion correction, MELTING 4.3 was released to allow software already embedding MELTING 4 to be easily updated and benefit from these important new features. However, the limitations of the architecture of MELTING 4 did not allow the incorporation of new thermodynamic parameters and formulae for patterns other than perfectly matched sequences or single base mismatches. This necessitated a complete rewrite of the software which now includes new features such as DMSO and formamide corrections, internal loop parameters, bulge loops, initiation parameters depending on the base pairs and modified nucleic acids. MELTING 4 is now superseded by MELTING 5 and users are invited to upgrade at their convenience. However, unlike MELTING 4, a graphical interface has not yet been implemented for MELTING 5.
The new version uses the same thermodynamic parameters for DNA single mismatches, DNA single dangling ends and inosine as the previous version(s). However, the accuracy of the predictions for duplexes containing single mismatches, single dangling ends or inosine bases has improved along with the accuracy of the perfectly matching Watson-Crick base pairs predictions. Moreover, MELTING 5 improved on these features by allowing the users to change the single mismatch, single dangling end and inosine computation by easily integrating other thermodynamic formulae and parameters. MELTING 5 also incorporates a penalty for terminal IU base pair in RNA/RNA duplexes and accepts terminal inosine pairing unlike MELTING 4.3.
The new software provides a larger choice of ion corrections (sodium, magnesium, mixed monovalent/bivalent cations) than its previous versions. Unlike the versions 4.x of the program which only proposed ion corrections determined on DNA/DNA duplexes, MELTING 5 provides specific ion corrections for DNA/DNA and RNA/RNA duplexes.
Table 3 lists these results.
MELTING is limited to publicly available thermodynamic parameters, formulae and corrections. Consequently we cannot guarantee that computations are always accurate (see the documentation of MELTING 5 for more information about the limitations of each thermodynamic models, formulae and corrections at http://www.ebi.ac.uk/compneur-srv/melting/melting5-doc/melting.html). In addition, as there is currently no algorithm to take into account the relationship between denaturing agents and ion species, the implemented formamide and DMSO corrections are independent of the ion corrections. This is biologically inaccurate and can decrease the accuracy of the predictions. However, the flexibility of the MELTING 5 code base would allow a quick integration of any new relevant research results.
We have compared MELTING 5 to several other software predicting the melting temperature of nucleic acids. These are: the DINAMelt web server (http://dinamelt.bioinfo.rpi.edu/), the dnaMATE software (http://protein.bio.puc.cl/cardex/servers/dnaMATE), MeltDNA (http://sourceforge.net/projects/meltdna/), DAN (http://emboss.open-bio.org/wiki/Appdocs), MeltTemp (http://www.molgen.mpg.de/∖(∖sim∖)service/scisoft/gcg/gcg10/melttemp.html), the POLAND server (http://www.biophys.uni-duesseldorf.de/local/POLAND/poland.html), FracTM (http://www.zaik.uni-koeln.de/bioinformatik/ftpm.html) and piRNA http://compbio.cs.sfu.ca/taverna/pirna/.
Unlike most of these programs, MELTING 5 does not yet offer a web interface nor a graphical user interface. Several of them compute fuller melting profiles containing asborbance, heat capacity or other parameters, while MELTING only computes melting temperature, enthalpy and entropy.
However, only MELTING offers customisation of the following parameters: type of hybridization, thermodynamic parameters, computation methods, duplex patterns, as well as ion and denaturing agent corrections. Moreover, MELTING is the only software that allows the use of approximative formulae when several ion species are present using sodium equivalence formulae. It is also the only software which integrates parameters for nucleic acids such as inosine or locked nucleic acids, and parameters for other biochemical entities such as azobenzene. Finally, only MELTING integrates experimental evidence from all sources, eventually allowing it to handle various duplexes in various environments.
This comparison is detailed in Additional file 6: basic software structure, hybridizations, ion corrections, denaturing agent corrections, approximative formulae and polymer mode, supported duplex patterns.
Two new versions of MELTING have been released. MELTING 4.3 is an extension of MELTING 4.2 and integrates inosine thermodynamic parameters for DNA and RNA sequences as well as a DNA/DNA correction for mixed monovalent/bivalent ion and magnesium ion. MELTING 5 is an extensible and flexible program which computes melting temperature for DNA, RNA, DNA/RNA and 2’-O-methyl RNA/RNA duplexes using a large choice of nearest-neighbor formulae and parameters as well as approximative formulae, and takes into account sodium, potassium, magnesium ions concentrations, Tris buffer concentrations, formamide concentration and percentages of DMSO.
MELTING 5 allows user specified customization of methods. The rationale for the development of this flexible extensible architecture is to integrate new knowledge in the thermodynamics of nucleic acids and melting temperature and to introduce a large choice of formulae, thermodynamic parameters and ion corrections. For instance, modified nucleic acids or fluorophores have become useful for certain molecular experiments and MELTING should be able to take these chemical entities into account. The extensibility of MELTING 5 allows one to easily add these new modified nucleic acids or chemical entities (like fluorophores) when thermodynamic parameters become available for them, as well as new ion species corrections. MELTING 5 implements several thermodynamic formulae which allow one to compute the enthalpy and entropy of mismatches, bulges, dangling ends, 2 to 7 CNG repeats, and will be able to integrate new thermodynamic formulae and parameters as they become available.
Project name: MELTING
Project home page: http://sourceforge.net/projects/melting/. MELTING 4.3 is also distributed by the Debian and Ubuntu projects.
Operating system: Platform independent
Programming language: C and a graphical interface in Perl for MELTING 4.3, Java for MELTING 5
Other requirements: JRE 5 or higher for MELTING 5.
License: GNU GPL version 2
We thank Lukas Endler for his help to find several RNA thermodynamic parameters, Mathieu Sivade for his programming advices and Margaret Duesbery for proof reading.
This article is published under license to BioMed Central Ltd. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.