  ------------------------------------------------------------------------

                         YARM revisions/changes list

  ------------------------------------------------------------------------



v0.32b
27 August, 1999
	* Autogenerated HTML pages has been introduced with the use of the 
	  generate_html.pl script.
	* Using perl modules (*.pm) instead of straight perl subroutines (*.pl)
	  this means that YARm scripts begin with "use libYarm;" now, instead
	  of "require XXXX".  This will make variable scoping a little more sane.

  ------------------------------------------------------------------------

v0.31
27 August, 1999
	* The ability to calculate F-test and X^2 tables has been added.  The
	  program calcStats (run without arguments to see the help page) does 
	  this.
	* Introduction of data fitting routines.  See the "fitFunction" and 
	  "fitMultiFunction" routines.  Both use the "odrpack" library, and
	  thus require it is installed. 
	* name changes to many of the YARM subroutines to be consistent.  The
	  rule is "verbNoun", thus, for example, the subroutine "Angle_Calc" 
	  was changed to "calcAngle".  Hopefully, this will be the last major
	  subroutine name change.
	* Extensive rewriting of the manual, removed the frames.

  ------------------------------------------------------------------------

v0.30
12 August, 1999
	* The core NMR relaxation routines have been split into a seperate 
	  subdirectory from the rest of the YARM code, "src_libNRF".  They
	  now consist of a seperately compilable set of routines called the
	  "NMR Relaxation Function library" (libNRF).  This code is self
	  contained and can be compiled against by other programs.
	* The concept of the "transition rates" being the code unit of 
	  exchange in YARM has been changed to the "spectral density function"
	  to allow more efficient space usage and theory.  This changes
	  many of the core functions and allows YARM to work with the libNRF
	  package.
	* Intramolecular dynamics calculations can now be performed using the 
	  "SpecDens2Min_Dyn" routine, which employs Monte Carlo simulations 
	  to calculate error analysis.
	* Rotational dynamics can be examine using the "Min_Rot_Dyn" routine,
	  which employs Monte Carlo simulations to perform error analysis.
	* New data entry type, the "1D_Hash" file has been created to allow
	  for easy input of experimental data (and errors).  See 
	  "ReadData_1DHash" for how to use this.

  ------------------------------------------------------------------------

v0.22 -> v0.29  Internal code updates, changing over to the "libNRF" methods

  ------------------------------------------------------------------------


v0.21
20 July, 1999
   * Bug fixes, last stable release before the major relaxation code 
     changes

  ------------------------------------------------------------------------

v0.20
22 April, 1999
   * Rewrote the sorting routines, no more NR!  See sortBubble in 
     math_functions.c

  ------------------------------------------------------------------------

v0.19
20 April, 1999
   * Many, many, many changes to the handling the CSA tensor.  See 
     perl/csa.pl, nearly every routine was rewritten.  The new CSA methods
     allow the CSA to be accessed directly from within a YARM script, allow
     the CSA to be easily manipulated and allow the CSA data files to be 
     much smaller.
   * The Euler angle calculations have been redone, in a hopefully more
     useful way.  The algorithm for back calculating the Euler angles
     from a rotation matrix (calcEuler) has been reformulated.
   * The routines for calculating contour plots has been rewritten so one
     program is used for performing R1, R2, R2/R1 calculations, see
	 TransRates2Contour.c
   * Many changes to the Makefile, in runs much cleaner now.
   * Many, many changes to the manual.  Most notably, the "main" page has 
     been removed, since it was completely out of date.
	 
  ------------------------------------------------------------------------

v0.18
26 March, 1999
   * Fixed a bug in calculating the sign of interference terms, the sign
     should be decided by the coupling parameter (delta), not the angular
     terms.  See "clm_interference_rank2" in clm.c, where the absolute
     value of the angular terms is used.
   * Combined the "TransRates2R1", and "TransRates2R2" programs, now 
     called "TransRates2RelaxRates" and performs both functions.
   * Small matrices (such as the 3x3s involving coordinate
     transforms) are diagonalized using a Jacobian Rotation algorithm
     rather than the supplied routines from lapack.  The results are
     "more accurate" for certain types of matrices, and the
     diagonalization is very fast.  See math_functions.c for the code.

  ------------------------------------------------------------------------

v0.17
26 January, 1999
   * YarmModel{cutoff} value is implimented.  Determines distance above
     which to ignore any interaction (dipolar and cross).  Set to -1
     or to nothing causes all interacions, regardless of distance, to
     be included.
   * Garcia de la Torre hydrodynamic calculations, see hydrolib.c and
     Hydro.c
   * Source code resides in subdirectories of "src" now, implimented
     recursive Makefiles.

  ------------------------------------------------------------------------

v0.16
13 December, 1998
   * Time evolution Iz magnetization can be calculated (see TransRates2Iz)
   * Major updates to the manual.

  ------------------------------------------------------------------------

v0.15
5 December, 1998
   * The fundamental data storage type from build_relax is now the
     transition rates, not the relaxation matrix rates.
     This should allow for calculation of either T1 or T2 type 
     relaxation without needing two separate relaxation matrix 
     calculations.
   * T2 relaxation works!  See TransRates2T2.
   * A perl script to replicate Goldman's interference equations can
     be found in the "extra" directory.  YARM can calculate the same
     results, when using isotropic rotation, and axially symmetric and
     aligned CSA tensors.
   * A new method of examining "axially aligned" CSA tensors has been
     developed.  See "data/axial_dna/*".
   * A new variable "$NmrParams{cross_angle}" can be used to arbitrarily
     orient the principal axis of a CSA tensor WRT a dipolar vector.
     Using a value of "-1" will cause the CSA tensor to adopt the "correct"
     orientation.
   * Major updates to the manual.

  ------------------------------------------------------------------------

v0.14
16 November, 1998
   * The interference effects (cross relaxation) due to dipolar and CSA 
     relaxation are being calculated (see clm.c, calc_clm_interference 
	 and yarm_lib.c calc_cross_relax).
   * Major updates to the manual.

  ------------------------------------------------------------------------
v0.13
30 October, 1998
   * New input hashes have been created/defined.  %NmrParams now ONLY
     contains NMR parameter info and %YarmModel contains all the info
	 for defining the Model of the molecule (ie: tumbling dynamics, 
	 structure and intermolecular dynamics).  Calls to many of the
	 subroutines now want these hashes to be supplied.
   * Orientation of CSA tensor has been added for anisotropic rotation.
     See "yarm_lib.c (calc_csa_relax)" and "hamiltonians.c 
	 (transform_csa_hamiltonian)" in the code if interested.
   * The Gaussian log files can now be used directly by YARM to extract
     CSA information.  See the $yarm_home/data/* directories.  Say
	 goodbye to entering TONS of CSA tensor data manually (ala csa_lookup.pl
	 in v0.11 and 0.12)!
   * Lipari-Szabo dynamics has been "re-added" in this now implimentation.
     It has been broken since v0.10.  I am not sure if it is implimented 
	 correctly for the full matrix approach.  This should be checked.
	 Dyanamics info will be input to the C programs via a "yarm_input.dynamics"
	 file.
   * In an attempt to remove as much LAPACK dependencies as possible, the
     "lapack_inverse" and "lapack_mat_mul" functions have been rewritten into
	 the YARM code (see math_functions.c).  They also perform better, but may 
	 not be as generally applicable as their LAPACK bretheren.  Now only 
	 "lapack_eigen_symm" remains as the only LAPACK dependency...  this one
	 will be tough to replace...
   * A minimal "test_suite" program has been written.  The idea is that this 
     program will run a few standard tests on YARM, to insure the calculations
	 are working correctly.  In this early version of the program, it can
	 calculate transition rate plots vs isotropic correlation times.	 
   * The rij distance and beta angle calculation has been sped up considerably.

  ------------------------------------------------------------------------
v0.11 & 0.12
30 September, 1998
   * All algorithms were rewritten in a form similar to Speiss (see 
     references).  This will allow for cross correlation to be implimented,
	 and for the T2 relaxation matrix to be built, although neither feature 
	 has been implimented yet.
   * CSA tables for XTAL DNA monomers were added in "csa_lookup.pl"
   * The diffusion tensor is used to describe molecular tumbling, its input is
     found in the "yarm_input" file
   * Old versions of YARM are now being saved.  Why?  I don't know, but why 
     not?  The yarm_dev directories will now be named "yarm_dev-VERSION" where
	 VERSION will be the version number, such as 0.11.
   * MANY MANY Makefile changes, such as using "find" for deleting object
     files, and automating the making of backup tarballs, etc.
   * Manual overhauls, once again.  Much work on the CSA theory was added by
     George Coker.


  ------------------------------------------------------------------------
v0.10
7 September, 1998

   * The entire source was converted from C++ to C.
   * Chemical shift anisotropy was added to the relaxation matrix calcs
   * New "input" file format was introduced for the C programs, allowing for
     features to be turned "on or off" at will (such as using dipole and/or
     CSA in relaxation calculation)...
   * The "coutour_t1" and "contour_noe" programs were added to speed up the
     time required to calculate the often used RMS contour graphs. See
     Create_Tc_Contour_T1 and Create_Tc_Contour_Noe subroutines.
   * This manual was completely overhauled

  ------------------------------------------------------------------------
v0.9
15 January, 1998

   * Many bug fixes, first actually stable release

  ------------------------------------------------------------------------
v0.8
18 December, 1997

   * Use "Sim_Vol" for all your NOE simulations. It handles iso and aniso
     molecular tumbling, rigid and order parameter dynamics. I will phase
     out the "Calc_Vol_Iso" and "Calc_Vol_Aniso" subs, so start converting.
   * This manual was completely overhauled
   * Many minor bug fixes

  ------------------------------------------------------------------------
v0.7
21 November, 1997

   * Structure refinement works!!! See Refine_Iso and Refine_Aniso for how
     to use these routines. Basically, you feed them a starting structural
     model (this could even be random atomic coordinates) and your
     experimental NOE data, the routine returns a %rij hash, which you can
     then feed to Xplor_Write (or Xplor_Write2) to generate an Xplor
     Restraint file!
   * Add_Segids subroutine will add segids to molecules that are not
     symmetrical (Make_Symm_Molecule works for symmetrical molecules).

  ------------------------------------------------------------------------
v0.6
07 November, 1997

   * The installation makefile works on SGIs using the GNU C++ compiler, and
     the built in libraries "complib.sgimath" and "ftn", which means that
     the SGIs do NOT need to install the LAPACK and BLAS routines in order
     to use YARM!
   * C++ routines have been rewritten. These changes are just aesthetic in
     nature and should not affect the use of YARM.
   * Two class definitions have been added: 1) NmrParams object which
     calculates and stores all NMR relaxation parameter information
     (transition rates, etc..) and 2) Structure object which hold
     coordinates of structures, rij matrices, beta angle matrices, etc...
   * Because of these new class definitions, the C++ programs have become
     very simple to understand, check them out! The "meat" of the program
     now resides in the class definitions themselves (structure.c and
     nmr_relax.c).
   * Memory for matrices and arrays is dynamically allocated correctly. See
     "myalloc.h and myalloc.c". This is a good thing.

  ------------------------------------------------------------------------
v0.5
24 October, 1997

   * WARNING: Many subroutines have been rewritten, and they may take or
     return different arguments. YARM scripts from version 0.4 and earlier
     may not work!
   * Segment IDs can be used in all subroutines (XPLOR type segids)
   * Many subroutines were rewritten to allow for optional use of reference
     hashes
   * Calc_Merged_Rij_Iso, initial structure refinement subroutines have been
     added
   * Print_Rij_Comparison
   * Make_Symm_Molecule for converting Felix volume hashes into symmetric
     molecules with segment IDs (ala XPLOR)
   * Norm_Hash now supports normalizing by summing all atom pairs as well as
     selected sets
   * Stats supports Q^(1/6) calculations
   * Xplor_Write exports Rij hashes to a XPLOR distance restraint file
   * Dickerson dodecomer PDB files are available: A-form, B-form, NMR
     structure and the X-Ray structure

  ------------------------------------------------------------------------
v0.4
8 October, 1997

   * Anisotropic rotation works!
   * F95_Read_Merge is all you need for reading felix95 peaks/volumes files
     and merging them.
   * User_Input does can be used to ask the user for the standard NMR
     parameters

  ------------------------------------------------------------------------
v0.3
24 September, 1997

   * Rewrote all the linear algebra routines in C++ (see rate2vol.c and
     vol2rate.c). They take advantage of the "LAPACK" routines available at
     www.netlib.org which have been installed on bass.chem.yale.edu. If you
     are interested, notice how the LAPACK routines are accessed in the C++
     routines...
   * Added the module comp_vol that allows you to do statistical analysis
     between volume sets.

  ------------------------------------------------------------------------
v0.2
18 September, 1997

   * Added enough new modules to allow you to calculate a volumes matrix
     from a model structure.
   * Changes the nomenclature of the subroutines to have capitalized first
     letters, to make the code more readable.

  ------------------------------------------------------------------------
v0.1
14 September, 1997

   * Rewrote the program called "rate_matrix.pl" into a series of perl
     subroutines.

  ------------------------------------------------------------------------
   Jon Lapham
   Yale University - Department of Chemistry - Crothers Lab

   Last Edited October 30 1998
