Email updates

Keep up to date with the latest news and content from BMC Bioinformatics and BioMed Central.

This article is part of the supplement: Selected articles from the 8th International Symposium on Bioinformatics Research and Applications (ISBRA'12)

Open Access Methodology Article

Solving the molecular distance geometry problem with inaccurate distance data

Michael Souza1*, Carlile Lavor2, Albert Muritiba1 and Nelson Maculan3

Author Affiliations

1 Department of Statistics and Applied Mathematics, Federal University of Ceará, Ceará, 60455-760, Brazil

2 Institute of Mathematics, Statistics and Scientific Computing, University of Campinas, Campinas, 13083-859, Brazil

3 Institute Alberto Luiz Coimbra, Federal University of Rio de Janeiro, Rio de Janeiro, 21941-972, Brazil

For all author emails, please log on.

BMC Bioinformatics 2013, 14(Suppl 9):S7  doi:10.1186/1471-2105-14-S9-S7

The electronic version of this article is the complete one and can be found online at: http://www.biomedcentral.com/1471-2105/14/S9/S7


Published:28 June 2013

© 2013 Souza et al.; licensee 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.

Abstract

We present a new iterative algorithm for the molecular distance geometry problem with inaccurate and sparse data, which is based on the solution of linear systems, maximum cliques, and a minimization of nonlinear least-squares function. Computational results with real protein structures are presented in order to validate our approach.

Background

The knowledge of the protein structure is very important to understand its function and to analyze possible interactions with other proteins. Different methods can be applied to acquire protein structural information. Until 1984, the X-ray crystallography was the ultimate tool for obtaining information about protein structures, but the introduction of nuclear magnetic resonance (NMR) as a technique to obtain protein structures made it possible to obtain data with high precision in an aqueous environment much closer to the natural surroundings of living organism than the crystals used in crystallography [1].

The NMR technique provides a set of inter-atomic distances for certain pairs of atoms of a given protein. The molecular distance geometry problem (MDGP) arises in NMR analysis context. The MDGP consists of finding one set of atomic coordinates such that a given list of geometric constraints are satisfied [2]. Formally, the molecular distance geometry problem can be defined as the problem of finding Cartesian coordinates <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M1','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M1">View MathML</a> of atoms of a molecule such that lij ≤ ||xi - xj|| ≤ uij, ∀(i, j) ∈ E, where the bounds lij and uij for the Euclidean distances of pairs of atoms (i, j) ∈ E are given a priori [3].

As suggested by Crippen and Havel [3], the MDGP can also be formulated as the global optimization problem of minimizing the function

<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M2','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M2">View MathML</a>

where the pairwise function <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M3','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M3">View MathML</a> is defined by

<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M4','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M4">View MathML</a>

Clearly, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M5','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M5">View MathML</a> solves the MDGP if, and only if, x is a global minimizer of f and f(x) = 0.

An overview on methods applied to the MDGP is given in [4] and a very recent survey on distance geometry is given in [5].

Particular cases of the MDGP can be solved in a relatively easy way. For instance, when we know all distances dij = ||xi - xj||, i.e., dij = lij = uij and E = {1, 2, ..., n}2, a solution can be obtained by factoring the distance matrix D = [dij]. Assuming that D = [dij] has the singular value decomposition UUt = D, then x = U1/2 is a solution for the exact MDGP defined by lij = uij = dij [3]. Even in the case where the set of known distances is incomplete, i.e., when some entries of the distance matrix D = [dij] is unknown, we can solve the MDGP in linear time using an iterative algorithm called geometric buildup [6]. First, this algorithm initializes a set <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M29','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M29">View MathML</a> (base) with the index of four points, whose distances between all of them are known. Then, the coordinates of the points in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M29','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M29">View MathML</a> are set using the singular value decomposition of the incomplete distance matrix D restricted to the base <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M29','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M29">View MathML</a>, and the remaining unset coordinates xj are calculated by solving the linear system

<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M6','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M6">View MathML</a>

(1)

where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M7','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M7">View MathML</a> and dij = ||xj - xi||. The indexes i1, i2, i3, i4 can be chosen in an arbitrarily way, allowing us to choose another base subset when calculating the coordinate of the next xj. At each iteration, the index j of the new coordinate xj is inserted in the set <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M29','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M29">View MathML</a> increasing the number of subsets {i1, i2, i3, i4} used as anchors to fix the remaining unset coordinates.

Unfortunately, in practice, the NMR experiments just provide a subset of distances between atoms spatially close and the data accuracy is limited. Thus in the real scenario, the set E is sparse and lij < uij. So, we just have bounds to some of the entries of the distance matrix D. In this situation, neither the singular value decomposition nor the buildup algorithm can be applied directly because they are both designed to deal with exact distances. In fact, the inaccurate and sparse instances of MDGP, where lij <uij, are much harder to solve as pointed by Moré and Wu who showed that the MDGP with inaccurate distances belongs to the NP-hard class of problems [7].

Our contribution is a new algorithm that can handle with inaccurate and sparse distance data. We propose an iterative method based on simple ideas: generate an approximated distance matrix D, take as base a clique in the graph that has D as a connectivity matrix, solve the system (1) and refine the solution using a nonlinear least-squares method. It needs to be pointed that the authors of the buildup algorithm and coworkers have done some modifications in the original form of the algorithm in order to handle inaccurate data [8,9]. However, the main advantage of our proposal is its simplicity and robustness. We have been able to find solutions with acceptable quality to instances of MDGP with inaccurate and sparse data, considering up to thousands of atoms.

The new iterative method

Defining the initial base

The set E of pairs (i, j) and the set of indexes V = {1, 2, ..., n} can be considered as a set of edges and a set of vertexes of a graph G = (V, E), respectively. One may decide to use as base the biggest complete subgraph of G. The problem of calculating the biggest complete subgraph belongs to the NP-complete class and it has a large number of applications (for a review in this subject consult [10]). We decided to use the algorithm cliquer proposed by Östergård in [11,12] mainly because its good behavior in graphs of moderately size and its availability on the Internet [13,14]. The cliquer algorithm uses a branch-and-bound algorithm developed by Östergård [15], which is based on an algorithm proposed by Carraghan and Pardalos [16].

Setting the coordinates

Once we have obtained the base <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M29','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M29">View MathML</a> associated with a complete subgraph using the algorithm cliquer, we need to set its coordinates. In order to generate an approximated Euclidean distance matrix (EDM) restricted to the points in the base, we define a matrix D(t) = [dij(t)], where

<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M8','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M8">View MathML</a>

(2)

for tij ∈ [0, 1] for each (i, j) ∈ E. With this choice, we have lij dij uij, but D may not be an EDM with appropriated embedding dimension (k = 3). This may happen because the entries dij can violate the triangular inequality dij dik + djk for some indexes i, j, k, or because the rank of D is greater than 3. With this in mind, instead of considering the solution given by singular value decomposition directly, we take the columns (eigenvectors) of U associated with the 3 largest eigenvalues, getting the best 3-approximation rank of the solution to xxt = D(t) [17].

Refinement process

We should not expect great precision in x, because the matrix D(t) is just an approximation. Then, we try to refine it by minimizing the nonlinear function

<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M9','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M9">View MathML</a>

(3)

where

<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M10','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M10">View MathML</a>

and

<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M11','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M11">View MathML</a>

with λ >0, τ >0. The parameter τ controls the smoothness degree and λ controls the intensity (weight) of the penalty function φλ,τ (see Figure 1).

thumbnailFigure 1. The hyperbolic smooth penalty function. The parameter τ controls the smoothness and the parameter λ is related to the intensity of the penalty.

The function φτ,λ is infinitely differentiable with respect to x, and therefore allows the application of classical optimization methods. The function φτ,λ is a variation of the hyperbolic penalty technique used in [18,19]. In order to minimize the function φτ,λ, we used the local minimization routine va35 encoded in FORTRAN and available at Harwell Subroutine Library. The routine va35 implements the method BFGS with limited memory [20] (For additional information on this routine, see [21]).

Once we have refined the coordinates of the points in the base <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M29','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M29">View MathML</a>, we start to set the remaining (free) points. We begin with the points that have at least four constraints with the points in the base. In order to set the coordinate xj, instead of using just four constraints involving the index j (like in the original version of the buildup algorithm), we use all constraints involving the index j and the indexes in the base. Explicitly, to set the coordinate xj, we use the approximated distance matrix D(t) for some t ∈ [0, 1]|E|, solve the linear system

<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M12','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M12">View MathML</a>

(4)

and then we refine the solution by minimizing the function φλ,τ(x) restricted to the index j and to the indexes in the base (see eq. (3)). Each newly calculated coordinate is included in the base. In the end, some points may not be fixed because they have less than four constraints involving the points in the base. In this case, we just position these points solving an undetermined system defined by constraints with points in the base. Our presented ideas are compiled in the algorithm lsbuild (see Additional file 1).

Additional file 1. Algorithm lsbuild.

Format: PDF Size: 89KB Download file

This file can be viewed with: Adobe Acrobat ReaderOpen Data

Methods

We have implemented our algorithm lsbuild in Matlab and tested it with a set of model problems on an Intel Core 2 Quad CPU Q9550 2.83 GHz, 4GB of RAM and Linux OS-32 bits. In all experiments the parameters of the function φλ,τ of the algorithm lsbuild were set at λ = 1.0 and at τ = 0.01.

We compared our results with the algorithms dgsol and buildup. The algorithm dgsol proposed by Moré and Wu in [22] uses a continuation approach based on the Gaussian transformation

<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M13','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M13">View MathML</a>

of the nonsmooth function

<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M14','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M14">View MathML</a>

where the potentials pij are given by

<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M15','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M15">View MathML</a>

The algorithm dgsol starts with an approximated solution and, given a sequence of smoothing parameters λ0 > λ1 > ... > λp = 0, it determines a minimizer xk+1 of 〈fλ. The algorithm dgsol uses the previous minimizer xk as the starting point for the search. In this manner a sequence of minimizers x1, ..., xp+1 is generated, with the xp+1 a minimizer of f and the candidate for the global minimizer. In our experiments, we used the implementation of the algorithm dgsol encoded in language C and downloaded from [23].

We also compared our results with the ones obtained by the version of the algorithm buildup proposed by Sit, Wu and Yuan in [8]. The algorithm buildup starts defining a base set using four points whose distances between all of them are known (a clique of four points). Then, at each iteration, a new point xk with known distances to at least four points in the base is selected. In order to avoid the accumulation of errors, instead of just positioning the new point, in the modified version of the algorithm buildup the entire substructure formed by the point xk and its neighbors in the base is calculated by solving the nonlinear system

<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M16','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M16">View MathML</a>

with variables <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M17','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M17">View MathML</a> and B being the set formed by the index k and the indexes of all neighbors of xk in the current base set. The parameters dkj are the given distances between the node xk and its neighbors xj in the base and, for the nodes xj and xi already in the base, if the distance between them is unknown, we consider dij = ||xi - xj||. Once the substructure is obtained, it is inserted in the original structure by an appropriated rotation and translation and the point xk is included in the base. This process is repeated until all nodes are included in the base. We have implemented the buildup algorithm in Matlab.

Our decision to compare the lsbuild with the algorithms dgsol and buildup is mainly motivated by theirs similarities with our proposal. In fact, the algorithm dgsol uses a smooth technique in order to avoid the local minimizers and the algorithm buildup solves a sequence of systems which produce partial solutions and iteratively try to construct a candidate to global solution. Our algorithm combines some variations of these two ideas. We use a hyperbolic smooth technique to insert differentiability in the problem and a divide-and-conquer approach based in sucessive solutions of overdetermined linear systems in order to construct a candidate to global solution.

In our experiments, the distance data were derived from the real structural data from the Protein Data Bank (PDB) [24]. It needs to be pointed that each of the algorithms considered has a level of randomness, the algorithm dgsol takes random start point and the algorithms lsbuild and buildup starts with an incomplete random matrix D = [dij] where lij dij uij. So, in order to do a fair comparison, we run each test 30 times.

We considered two set of instances. The first one was proposed by Moré and Wu in order to validate the algorithm dgsol [22]. This set is derived from the three-dimensional structure of the fragments made up of the first 100 an 200 atoms of the chain A of protein PDB:1GPV[25,26]. For each fragment, we generated a set of constraints considering only atoms in the same residue or the neighboring residues. Formally,

<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M18','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M18">View MathML</a>

where R(k) represents the k-th residue.

In this set of instances, the bounds lij and uij were given by the equations

<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M19','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M19">View MathML</a>

where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M20','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M20">View MathML</a> is the real distance between the nodes xi and xj in the known structure x* of protein PDB:1GPV. In this way, all distances between atoms in the same residue or neighboring residues were considered. We generated two instances for each fragment by taking ε equals to 0.00 and 0.08.

In order to measure the precision of the solutions just with respect to the constraints, without providing any information about the original structure x*, we use the function

<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M21','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M21">View MathML</a>

(5)

where

<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M22','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M22">View MathML</a>

is the error associated to the constraint lij ≤ ||xi - xj|| ≤ uij: We also measured the deviation

of the solutions generated by each algorithm with respect to the original solution x* in the PDB files, using the function

<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M23','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M23">View MathML</a>

(6)

with <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M24','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M24">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M25','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M25">View MathML</a> orthogonal.

In the second experiment, we use a more realistic set of instances with larger proteins proposed by Biswas in [17]. Typically, just distances below 6Å (1Å = 10-8 cm) between some pair of atoms can be measured by NMR techniques. So, in order to produce more realistic data, we considered only 70% of the distances lower than R = 6 Å. To introduce noise in the model, we set the bounds using the equations

<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M26','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M26">View MathML</a>

(7)

where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M27','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M27">View MathML</a> is the true distance between atom i and atom j and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M28','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S9/S7/mathml/M28">View MathML</a> (normal distribution). With this model, we generate a sparse set of constraints and introduce a noise in the distances that are not so simple as the one used in the instances proposed by Moré and Wu.

Results and discussion

In Table 1 we can see the results of the first experiment defined from the protein PDB:1GPV and all distances in the same or neighboring residues. The values show that the algorithms buildup and lsbuild worked better (lower LDME and RMSD and CPU time) than the algorithm dgsol in all instances. The algorithms buildup performed slightly better than the algorithm lsbuild being the fastest algorithm. Despite its simplicity, this set of instances worked as an indication of the correctness of our implementation of the buildup algorithm.

Table 1. RMSD, LDME and the CPU time in seconds for PDB:1GPV protein.

Table 2 shows the results of the second experiment with more realistic data. We can see that our approach was more efficient than the algorithms buildup and dgsol that were not able to find good solutions in these harder instances. In this table, |V| is the number of atoms in the instance, and CPU time is given in seconds. We also point out that LDME was low and the RMSD was lower than 3.5Å in all instances, which means that the algorithm is robust and able to find protein structures very similar to the original ones [1]. The results in Table 3 shows that the buildup algorithm was again the fastest. The CPU time of the algorithm lsbuild was in the average around to 2.45 times the time consumed by the algorithm buildup, this fact must be mitigated by the better quality of the solutions obtained be the algorithm lsbuild.

Table 2. RMSD and LDME for the larger instance set.

Table 3. TIME for the larger instance set.

Finally, the results of both set of instances indicate that our algorithm lsbuild based on the combination of the resolution of linear systems, derived from the approximated EDM matrices, and the refinement process based on hyperbolic smoothing penalty is a very effective strategy to solve MDGP instances with sparse and inaccurate data.

Conclusions

We presented a new algorithm to solve molecular distance geometry problems with inaccurate distance data. These problems are related to molecular structure calculations using data provided by NMR experiments which, in fact, are not precise. Our algorithm combines the divide-and-conquer framework and a variation of the hyperbolic smoothing technique. The computational results show that the proposed algorithm is an effective strategy to handle uncertainty in the data.

Competing interests

The authors declare that they have no competing interests.

Authors' contributions

MS, AM and CL participated in the development of the ideas presented in the design of the proposed algorithm. MS and CL drafted the manuscript. CL and NM gave final approval of the version to be published. All authors read and approved the final manuscript.

Acknowledgements

We are grateful to the anonymous referees for improving this paper and the Brazilian Research Agencies FAPESP and CNPq by their support.

This article has been published as part of BMC Bioinformatics Volume 14 Supplement 9, 2013: Selected articles from the 8th International Symposium on Bioinformatics Research and Applications (ISBRA'12). The full contents of the supplement are available online at http://www.biomedcentral.com/bmcbioinformatics/supplements/14/S9.

Declarations

The publication of this article is supported by the Brazilian Research Agencies FAPESP and CNPq.

References

  1. Schlick T: Molecular modeling and simulation: an interdisciplinary guide. second edition. New York: Springer Verlag; 2010. OpenURL

  2. Crippen GM: Linearized embedding: a new metric matrix algorithm for calculating molecular conformations subject to geometric constraints.

    Journal of Computational Chemistry 1989, 10(7):896-902. Publisher Full Text OpenURL

  3. Crippen GM, Havel T: Distance geometry and molecular conformation. New York: Wiley; 1988. OpenURL

  4. Liberti L, Lavor C, Mucherino A, Maculan N: Molecular distance geometry methods: from continuous to discrete.

    International Transactions in Operational Research 2010, 18:33-51. OpenURL

  5. Liberti L, Lavor C, Maculan N, Mucherino A: Euclidean distance geometry and applications.

    arXiv:1205.0349 2012. OpenURL

  6. Wu D, Wu Z: An updated geometric build-up algorithm for solving the molecular distance geometry problems with sparse distance data.

    Journal of Global Optimization 2007, 37:661-673. Publisher Full Text OpenURL

  7. Moré JJ, Wu Z: Global continuation for distance geometry problems.

    SIAM Journal on Optimization 1997, 7:814-836. Publisher Full Text OpenURL

  8. Sit A, Wu Z, Yuan Y: A geometric buildup algorithm for the solution of the distance geometry problem using least-squares approximation.

    Bulletin of mathematical biology 2009, 71:1914-1933. PubMed Abstract | Publisher Full Text OpenURL

  9. Luo X, Wu Z: Least-Squares Approximations in Geometric Buildup for Solving Distance Geometry Problems.

    Journal of Optimization Theory and Applications 2011, 149:580-598. Publisher Full Text OpenURL

  10. Bomze I, Budinich M, Pardalos P, Pelillo M: The maximum clique problem.

    Handbook of combinatorial optimization 1999, 4:1-74. OpenURL

  11. Östergård P: A new algorithm for the maximum-weight clique problem.

    Nordic J of Computing 2001, 8(4):424-436. OpenURL

  12. Östergård P: A fast algorithm for the maximum clique problem.

    Discrete Applied Mathematics 2002, 120:197-207. Publisher Full Text OpenURL

  13. Niskanen S, Östergård P: Cliquer User's Guide, Version 1.0, Communications Laboratory, Helsinki University of Technology, Espoo.

    Tech rep, Finland, Tech Rep 2003. OpenURL

  14. CLIQUER: Routines for Clique Searching [http://users.tkk.fi/pat/cliquer.html] webcite

  15. Ostergard PRJ: A fast algorithm for the maximum clique problem.

    Discrete Appl Math 2002, 120:195-205. OpenURL

  16. Carraghan R, Pardalos PM: An exact algorithm for the maximum clique problem.

    Operational Research Letters 1990, 9:375-382. Publisher Full Text OpenURL

  17. Biswas P, Toh KC, Ye Y: A Distributed SDP Approach for Large-Scale Noisy Anchor-Free Graph Realization with Applications to Molecular Conformation.

    SIAM Journal on Scientific Computing 2008, 30:1251-1277. Publisher Full Text OpenURL

  18. Souza M, Xavier AE, Lavor C, Maculan N: Hyperbolic smoothing and penalty techniques applied to molecular structure determination.

    Operations Research Letters 2011, 39:461-465. Publisher Full Text OpenURL

  19. Xavier AE: Hyperbolic Penalty: A New Method for Nonlinear Programming with Inequalities.

    International Transactions in Operational Research 2001, 8:659-671. Publisher Full Text OpenURL

  20. Liu D, Nocedal : On The Limited Memory BFGS Method For Large Scale Optimization. In Tech Rep NA-03. Department of Electrical Engineering and Computer Science Northwestern University; 1988. OpenURL

  21. Harwell Subroutine Library [http://www.hsl.rl.ac.uk] webcite

  22. Moré JJ, Wu Z: Distance Geometry Optimization for Protein Structures.

    Journal of Global Optimization 1999, 15:219-234. Publisher Full Text OpenURL

  23. DGSOL: Distance Geometry Optimization Software [http://www.mcs.anl.gov/~more/dgsol] webcite

  24. Berman H, Westbrook J, Feng Z, Gilliland G, Bhat T, Weissig H, Shindyalov I, Bourne P: The protein data bank.

    Nucleic acids research 2000, 28:235-242. PubMed Abstract | Publisher Full Text | PubMed Central Full Text OpenURL

  25. Guan Y, Zhang H, Konings RNH, Hilbers CW, Terwilliger TC, Wang AHJ: Crystal structure of Y41H and Y41F mutants of gene V suggest possible protein-protein interactions in the GVP-SSDNA complex.

    Biochemistry 1994, 33:7768. PubMed Abstract | Publisher Full Text OpenURL

  26. Skinner M, Zhang H, Leschnitzer D, Guan Y, Bellamy H, Sweet R, Gray C, Konings R, Wang A, Terwilliger T: Structure of the gene V protein of bacteriophage F1 determined by multi-wavelength X-ray diffraction on the selenomethionyl protein.

    Proc Nat Acad Sci USA 1994, 91:2071. PubMed Abstract | Publisher Full Text | PubMed Central Full Text OpenURL