Copyright (C) 2005 Chaok Seok, Evangelos Coutsias and Ken Dill
                                                                                                                         
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
                                                                                                                         
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.
                                                                                                                         
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
------------------------------------------------------------------------------

This is an implementaion of the analytical loop closure algorithm
as described in

"A Kinematic View of Loop Closure",  E. A. Coutsias, C. Seok,
M. P. Jacobson, and K. A. Dill, Journal of Computational Chemistry,
Volume 25, Issue 4, Pages 510 - 528 (2004),

which solves a polynomial equation to find loop closure solutions.
This is a generalization of the algorithm of Wedemeyer and Scheraga
in that any rigid segments are allowed between the pairs of torsion 
angles. The angle perturbation schemes described in the paper are not
included in this distribution.

This program can be used to find loop structures involving six backbone
torsion angles given the position of the two atoms before
the loop and two atoms after the loop. For example, in the case of
protein, possible structures for a three residue gap can be found
given the coordinates of the N and CA atoms of the first residue and 
the CA ans C atoms of the third residue. Multiple conformations 
are generated in general.

This code has been tested with NAGWare f95 and Portland group
pgf90 on Linux system only.

Modify Makefile in the two lines starting with FCOMPLR and FCFLAGS
to specify your Fortran f90 compiler, and then 

> make

to generate a sample program, and

> ./tri_loop

to run the sample program.

The two subroutines 'initialize_loop_closure' and 'solv_3pep_poly'
have to be called by user's driver routine. An example
is in main_pep.f90. Two files 'tripep_closure.f90' and 'sturm.c'
need to be compiled together with user's code.

Contact Chaok Seok <chaok@maxwell.ucsf.edu> 
     or Vageli Coutsias <vageli@math.unm.edu>
for any questions.
