This file lists changes done to MODELLER since March 17, 1994
-------------------------------------------------------------


******* March 17, 1994:

Added QUANTA alignment format for READ_ALIGNMENT and WRITE_ALIGNMENT.

Added some arrays about segments in MODEL, MODEL2 and sequences in the
alignment arrays. Not finished yet.

Added MALIGN3D and MALIGN, improved ALIGN, and ALIGN3D.
Added TOP variable ALIGN_BLOCK.

Added scripts __full_homol.top and __align_strs_seq.top for
homology modelling from a list of structures and a sequence only 
(all alignments are derived automatically).

Created tests/malign3d, tests/full_homol, tests/align3d.

Re-tested all tests/*.

Updated the manual to reflect the new changes.

Corrected the automatically derived top_ca.lib to allow BUILD to work.

Added SEQUENCE_TO_ALI command for copying MODEL sequence to alignment arrays.

Added top variable ADD_SEQUENCES for adding sequences/alignment to existing 
sequences/alignment.

Added TOP variable NUMB_OF_SEQUENCES.

Added TOP variables MODELLER_STATUS and STOP_STATUS to READ_ALIGNMENT and
all the alignment routines. Updated the meaning of these for OPTIMIZATION.

Added an option in the ENERGY command that Biso column of the PDB file becomes
the average residue violation (when OUTPUT='RESIDUE_VIOLATIONS') for 
displaying on the graphics screen.


******* March 22, 1994:

Added TOP variable RESTRAINT_STDEV which defines the standard deviation
of the Gaussians when DISTANCE_RSR_MODEL = 7 in MAKE_RESTRAINTS.

Unified the numbers of residue types so that the MODELLER residue types
(close to 100) are recognized everywhere. The previous code sometimes 
recognized only the 20 standard residues.

Added tests/prosthetic/tst2.top to illustrate homology modeling with
prosthetic groups.

Changed dih3.F, psa.F, and ngh1.F to write out the HETATM residues so that
the .dih, .ngh, and .psa files have exactly the same sequence as the PDB
files with HETATM.


******* April 22, 1994:

__single_model.top corrected so that it did not boink out when no
refinement was done and SCHEDULE_STEP was out of range for a subsequent
energy evaluation (a bug discovered by Liz Potterton).


******* May 1, 1994:

OUTPUT = NO_ALIGNMENT option added to ALIGN3D and MALIGN3D.


******* May 10-15, 1994:

A serious 'TOP routine name duplication' bug corrected in top1.F (only had
an effect when TOP routines were re-defined: e.g. __cispeptide, __disulfide).

The ELEC, ELEC14, LJ, and LJ14 restraint types added to MAKE_RESTRAINTS 
and cross-checked with CHARMM. Reading the second set of LJ parameters
in the CHARMM parameter file for LJ14 implemented. 

mkexcl() routine generalized and corrected: excluded atom pairs are
derived from the list of bonds, angles, dihedrals, and explicitly excluded
pairs; not from stereochemical restraints anymore. 

BUILD generalized so that if the first three seed atoms do not result
in all the coordinates built with the given IC entries, other seed atoms
are tried. A bug in accic() corrected which sometime removed useful IC
entries.

PMF (potential of mean force) routine added with TOP variable PMF_GRID.

TOP variable RELATIVE_DIELECTRIC added for ELEC and ELEC14.
TOP variable PATCH_DEFAULT added for GENERATE_MOLECULE command.
TOP variable INTERSEGMENT added for MAKE_RESTRAINTS command.
TOP variable PMF_GRID added for PMF command.

TOP variable ADD_RESTRAINTS got a meaning for PICK_RESTRAINTS;
adds the newly picked restraints if ADD_RESTRAINTS = ON.

New test top files added to tests/pmf and tests/energy_debug (vdw*, elec*).

Two new IC entries added to top.lib to allow BUILDing of individual
residues without patches.

__homol.top modified so that exit after restraints calculation is possible.

__homol.top modified so that .csr file always calculated so that possible
disulfide PATCH is always reflected in the template's topology arrays 
(before, S-S were also restrained by the non-bonded restraints). This 
could be done better with proper GENERATE_MOLECULE use.



******* May 22, 1994:

Added automated unique segment name generation to wrpdb2 for writing PDB 
files.


******* May 23, 1994:

Corrected fmakedepend handling for automated dependency generation in Makefile.

Added install script to the root directory for easy interactive installation.

Clarified the roles of GENERATE_MOELCULE and READ_MODEL commands. Made
appropriate changes to the code and to the tests/*.top files.

Introduced automated segment naming for PDB and CHARMM atom file I/O.


******* June 1, 1994:

Corrected the S-S problem in the TOP scripts for homology modelling: the
S-S bonds were forgotten when GENERATE_MOLECULE was executed again in the 
later stages of modelling without repeating the 'special_patches' call, too.


******* June 10, 1994:

Added the handling for the distribution of the executables only.

Added the ATOM_FILES_DIRECTORY TOP variable.


******* June 14, 1994:

Added the MUTATE_MODEL command to mutate model sequence easily.


******* June 25, 1994:

Adapted Makefile and system() to run on CRAY C90.

Corrected a small bug in describe().

Corrected a serious bug in seqsearch() which caused wrong %ID.


******* July 3, 1994:

Added the SEARCH_SORT TOP variable for seqsearch(). 

Corrected small problems in Makefile to do with deleting Makefile.hosttype.

Improved ALIGN3D by adding the option of the Subbiah/Laurents/Levitt 
transformation of distances (ALIGN3D_TRF variable) and by allowing for 
three additional initial alignments (ALIGN3D_REPEAT variable).



******* July 16, 1994:

Added full-proof atom building capability to the build() routine.
Atom always built, it is just a question what the coordinates are.
This is usefule when IC entries not sufficient for building (e.g.
only CA atoms available).

Added CHI5_DIHEDRAL type restraint to getcsr()/mdtcsr() and updated
types.cst, TOP files in tests and scripts from 23 to 24 physical 
feature types to reflect this.



******* August 9, 1994:

Included Phi, Psi, and Omega angles in the default refinement in 
__refine.top.



******* August 12-17, 1994:

Added the OMEGA dihedral angle restraint type to MAKE_RESTRAINTS. 
This now allows automated cis/trans restraints to be derived
for proline residues, according to the ALBASE paper (Sali & Overington,
Prot. Sci., 1994). Several other changes had to be made mainly
to the csrdih() and getcsr() routine to make this work. The top routine
__cispeptide.top is now almost irrelevant, unless you still want to
restrain some peptides manually; i.e., the cis/trans Pro restraints
are derived automatically by CALL ROUTINE = 'homol'.

TOP variable BASIS_RELATIVE_WEIGHT was added to allow better reduction 
of poly-Gaussian restraints.

Created PATCH_DISULFIDES command which automatically derives disulfides
for MODEL from its sequence and disulfide presence in aligned structures.

Also changed __*.top scripts so that Chi3 and Chi2 homology-derived 
restraints for S-S bonds are calculated together with other Chi3 and 
Chi2 restraints in __homcsr.top: disulfide restraints are derived 
automatically by CALL ROUTINE = 'homol' if there are equivalent S-S 
bonds in any of the templates; for unique S-S bonds the top routine 
__special_patches still has to be created manually.

Re-calculated all sidechain and mainchain *.mdt and *.bin files using
ALBASE_3.

Added the calculation of the significance score to the SEQUENCE_SEARCH 
command; regulated by the new top variable SEARCH_RANDOMIZATIONS.

Checked all tests\* and consolidated/renamed some tests.


******* August 17, 1994:

Officially released MODELLER 10. Created the anonymous ftp on tammy
with the en-crypt-ed tar file.


******* August 23, 1994:

A bug that set nseq=2 in seqsearch() corrected.


******* August 24, 1994:

Changed many scripts/__*.top scripts to allow more flexible 'homol'
use: using pre-existing initial model or restraints files, exiting during
various stages of 'homol', and flexible specification of optimization
thoroughness. See file scripts/__defs.top for the options.


******* September 1, 1994:

Added the TOP variable FILE_EXT and modified gennam() so that FILE_EXT
is added to all deault filenames. Now MSI can append '.modlr.pdb' to the
output B filenames.

Changed __*.top scripts to write out the final models in the form 
pdbcode.B9999nnPDB_EXT. Made all the test cases consistent with it.

Added the TOP variables FILE_ACCESS and OUTPUT_DIRECTORY. Consolidated
input and output directory handling.


******* September 13, 1994:

Added catching of the undefined atoms in PSA.F to prevent the crashes.


******* September 24, 1994:

Simplified TOP <--> APPLICATION variable copying.

Introduced CONTROL variable, which controls the stop status and
the amount of output written to the log file.


******* October 1, 1994:

Added many similarity matrices for sequence comparisons obtained from FASTA
distribution, Mark Johnson, and David Wishart (seqsee). It was shown by
Feng Yuan that my matrix as1.sim.mat is the best for remote homology searches.

Released MODELLER 11. Advertised it on the bionet.


******* October 29, 1994:

MODELLER12 upgrades started.

Built the dih.F, ngh.F, and psa.F functionality in MODELLER. Calculation
of these derivative data only on demand and when not already in memory.

Added a bi-dihedral feature for Phi and Psi dihedrals -- a new binormal
restraint. This restraint type really improves the Ramachandran plot
quality of the models according to Procheck. It is ideal now. Unfortunately,
the binormal mathematical type can only be applied to dihedral angles, 
not to any feature type (distance, angle) because an assumption is made
about the order of atoms in the 8-atoms list for this feature.

Least-squares fitted the multi-binormal Phi/Psi distributions in 
the database of approximately 440 representative X-ray (<2.3A)
protein structures to obtain the new means, standard deviations
and cross-correlations for Phi and Psi multi-binormals. These
are stored in the new library MNCH2_LIB.

The omega dihedral changes to par_heav.lib are now not necessary anymore
(they were needed in version 11 because par.lib applies to hydrogen
topologies only and the omega restraint was weak) because omega dihedrals 
are restrained explicitly using the homologs and MNCH.LIB where 
appropriately strong omega restraints are specified. The original par.lib 
is therefore used again.

Added SDCH-MNCH and SDCH-SDCH distance restraints for equivalent atoms 
using the new ATMEQV.LIB library. This really helps positioning
sidechains according to the template --- before the sidechain
dihedral angle preferences frequently missed that. Now, if the template
has the same sequence as the target, the model is almost the same
as the template (only a few sidechains may differ a little).

Artificially increased the standard deviations close to gaps for 
0.6*(igap-4) in stdev() because I noticed that stereochemistry close to 
gaps is frequently distorted, presumably due to too strong CA-CA and N-O
restraints.

Increased the number of restraint groups to 27 to allow for new distance 
restraints (SDCH-MNCH, SDCH-SDCH, protein - prosthetic groups).

PICK_ATOMS command was updated to allow it to define three different
sets of selected atoms, selected by a new TOP variable PICK_ATOMS_SET.
The three sets are used for different purposes.

Homology distance restraints derivation is improved a lot. Atom scanning
for generating atom pairs is much more flexible: all pairs of atoms from 
selected sets 2 and 3 (as defined by the PICK_ATOMS command) are generated
that are within the residue span range specified by RESIDUE_SPAN_RANGE. 
The meaning of RESIDUE_SPAN_RANGE is changed, too (a vector of 4 scalars 
now). Also changed RESTRAINT_STDEV which now specifies the linear 
transformation for ANY standard deviation for all 7 standard deviation 
models (s' = a + b*s).

A new command WRITE_DATA is introduced which writes out the PSA, DIH, and 
NGH files for the current MODEL. This is to outphase the psa.F, dih.F,
and ngh.F programs completely. Note that the solvent accessibilities
are slightly different because the atom radii are slightly different 
since the RADII.LIB is now used as opposed to PSA.DAT.



******* November 15, 1994:

.csr extension for restraint files changed to .rsr extension.

KEEP_DUPL_RESTR variable added to READ_RESTRAINTS command, too.

Makefile.include1 improved (mkdir / mkdir -p selected as appropriate).

Introduced STRING_IF TOP command for IF on STRING_ARGUMENTS.

Changed __getnames.top to allowed user specification of the filenames
for the initial model and restraints.

Changed TOP variable VDW_NEIGHBOURS to CONTACT_SHELL.


******* November 15, 1994:

Added strgin() function for unified processing of string options
(case insensitive).

Made a major change in the restraint .rsr file format. The new format
is incompatible with the old one, but it was necessary to deal with
the NMR restraints, restraints on gravity centers, etc.

A new USER restraint format introduced. Introduced new TOP variable 
RESTRAINTS_FORMAT to select between MODELLER and USER restraint formats. 

Added several new tests directories to test new features.

Added two new physical restraint types for NMR distance restraints.

Added a new command PRINCIPAL_COMPONENTS for protein clustering.

Cleaned and changed WRITE, READ, OPEN commands.

Cleaned io.F.

Introduced protected primes \' intro string values.

Since the 'homol' script has become so general, it was renamed to 'model'.


******* December 20, 1994:

Changed the default MAXRES from 400 to 600 and cutoff standard deviations 
in __refine.top from 3 to 4.

Reorganized the src directory to remove unnecessary programs.

Added OFF_DIAGONAL, OVERHANG, LOCAL_ALIGNMENT to ALIGN, ALIGN3D, 
MALIGN, MALIGN3D, and SEQUENCE_SEARCH. Corrected a bug in the 
alignment routines to do with long gaps.

Added logical ALIGN_ALIGNMENTS to ALIGN command.

Added READ_ALIGNMENT2 and COMPARE_ALIGNMENTS commands.

Added variables ALIGN_BLOCK and ALIGN_ALIGNMENT to the WRITE_ALIGNMENT
command so that residue conservation can be indicated for an alignment and
an alignment of two alignments.

Added ALIGN_CONSENSUS command.

Added alignment accuracy from ALIGN_CONSENSUS to be written out
by WRITE_ALIGNMENTS in 'PAP' format if ALIGNMENT_ACCURACY = on. Also, 
absolute conservation of residues is always indicated by '*' in the
'PAP' format.

Added optional version line to .rsr files (both formats).


******* December 29, 1994:

Changed rdpdb() and rdseqpdb() (in rdpir) to interpret @@@@@ and @
strictly as any residue number and chain id, respectively.

Introduced HELIX, STRAND and SHEET restraint types in MAKE_RESTRAINTS.
Not tested thoroughly.

Introduced 'GRASP' atom file format for WRITE_MODEL(2).

Introduced radii and radii2 vectors for MODEL and MODEL2.


******* January 18, 1995:

Changed divide() to divide2() in various *.F files, N-O distance cutoff 
from 15 to 12A, and SDCH-SDCH cutoff from 6 to 5 A (__homcsr.top) to
speed up the execution.

Changed strnum2.F name to string.F

Eliminated SIGNIF2 output in SEQUENCE_SEARCH for now.

Added directory modelib/pdb/chn to the distribution. It contains about
600 representative PDB chains from the 3.0_30_XN list. These chains
can be used for template search by SEQUENCE_SEARCH. Modified
Makefile.install1 to install this directory, too.

Recalculated the representative sets with the PDB version of January 18.

Made SMALL version of MODELLER even smaller.

Changed Makefile.include1 so that MODELLER12 runs fine in double precision
on HP 9000/735 machines. HP's seem to have a problem with the size of the
executable when there is not enough free memory. For this reason, Install
still compiles MODELLER in single precison. Even in single precision, RSIZE
is about 90MB.


Edited the manual; added sections on dynamic programming and comparative 
modeling primer (also in tests/primer).

Cleaned the tests/* directory a little.

Checked the official release 12 for MSI and others. Tested MODELLER on 18 
families from ALBASE3 (test_modeller12).



******* February 1, 1995:

Released MODELLER 12. Notified the current MODELLER users by email.


******* February 15, 1995:

Small changes to sys.F.

Free format for residue and chain ids in the alignment files
(RDPIR()). Also, only the first 6 fields now necessary. 
Improved the description of the alignment file format
in the manual.

Added rotation around axis to ROTATE_MODEL and changed
the rotation matrix multiplication to make it consistent
with QUANTA and MOLSCRIPT.

Added SUPERPOSE_REFINE to SUPERPOSE.


******* March 11, 1995:

Supplementary MODELLER12 release.



******* March 29, 1995:

CONMIN changed to make it more robust with respect to precision 'problem 1'.

SEQUENCE_SEARCH changed to allow writing out alignments.

Corrected chi2 and chi3 spec for PRO in resdih.lib.
Corrected PRO pucker in resdih.lib and par.lib

Introduced 'user_after_single_model' TOP routine so that some action
can be done by user after each model is calculated.


******* April 29, 1995:

Cubic splines transformation added for the poly-Gaussian restraints.
This should speed up the execution and also allow using any number
of templates without speed decrease. Also, should be more robust
for optimization.


******* May 17, 1995:

Increased maxngh from 30 to 50 to allow for buried HEME groups
(Mike Sutcliffe).

Increased mcnsres from 100 to 200 to allow for FAD (Mike Suctliffe).

Corrected the RAND_SEED = ISEED error which resulted in always
the same randomization of coordinates by RANDOMIZE_XYZ (the models
only differed because of the last MD part).

Corrected a bug that replaced a strong stereochemical SG-SG disulfide
distance restraint with a weak SDCH-SDCH distance restraint based
on a homolog if that distance existed in a homolog (csrdst()).

No more local optimization of sidechain dihedral angles in _refine.top
because there are sidechain distance restraints.

Changed version number from 13 to 3.

Added INDEX option to STRING_IF.


******* July 4, 1995:

Cleaned the calculation of the objective function, collected routines
in one place: featpdf, objfunc, ...

Removed the pre-calculation of the violations and saved some space
by deleting the corresponding arrays.

Changed the way the scaling is done: objective function terms and
their derivatives are scaled directly, the restraint parameters
are kept constant.

In PICK_RESTRAINTS, removed the selection criterion relying on the
scaling factors of the current schedule.

Cleaned the output of the REPORT command.

Removed the calculation of many different kinds of violations on
demand (relative, absolute, minimal, heavy). The relative
heavy violations are used in PICK_HOT_ATOMS and REPORT.

Modified TOP scripts to use cubic splines if so selected instead of
poly-Gaussians.

Added GDP and GTP residues to the topology and parameter files.

Added checks for undefined jumps in all computed GO TO statements.

Added automatic generation of stereochemical parameters from
the current structure, for bonds, angles, torsions, and 
impropers that do not have an entry in the PAR.LIB file.

Automatically determines the type of the input restraints file.

Added BLK residue type for modeling residues without RTF entries.

In SEQUENCE_SEARCH, using one file with all sequences (SEARCH_CHAINS_FILE). 
Added SEARCH_CHAINS_LIST which is the same as the previous 
SEARCH_CHAINS_FILE.



******* August 7, 1995:

Corrected a number of bugs found by Andras Szilagyi: MALIGN --> ALIGN
in __align_strs_seq.top; MALIGN3D within TRANSFER_XYZ; a few manual 
mistakes.

Changing TAB to BLANK in the .top files.


******* Sept 10, 1995:

Added check for SG atoms involved in more than one Cys-Cys bond.


******* November 3, 1995:

Greatly improved the manual. Have the HTML version, too.

Changed GENERATE_MOLECULE --> GENERATE_TOPOLOGY
        MAKE_TOPOLOGY     --> MAKE_TOPOLOGY_MODEL

Added RENAME_SEGMENTS command and SEGMENT_IDS argument for
automatically generating reasonable chain ids and residue
numbers for multi-chain systems.

Changed the schedule for variable target function method
and added schedule library.

Changed the residue specification in MODEL_SEGMENT, MODEL2_SEGMENT
and SEARCH_SEGMENT so that #RES:C is used where #RES is residue
number and C is the single character PDB chain id.

Added the symmetry term to the objective function (DEFINE_SYMMETRY
command).

Added check for existence of Cys-Cys pair in target in PATCH_DISULFIDE.

Debugged, changed, and optimized  conmin() code for conjugate gradients.
Removed Newton-Raphson method. Changed UPDATE_DYNAMIC from a single
axis shift (0.23A) to 3D shift (0.39A) (top.ini, movsiz() and md2()). 

Modified wrpap and rdpap so that they can read Insight alignment files too.

Optimized the generation of restraints a lot. Introduced SPLINE_ON_SPOT 
logical variable to save space. Saved lots of space by using splines
instead of multiple gaussians.

Removed KEEP_DUPL_RESTRAINTS variable.

Added CHECK_ALIGNMENT command.

Added DEFINE_SYMMETRY command.

Added generic HET residue type for PICK_ATOMS.

======

******* February 11, 1996: 

MODELLER 3 released

******* March 6, 1996: 

Added WRITE_WHOLE_PDB for MALIGN3D.

Corrected bug in __refine.top: TO-BE-REFINED.TMP

Corrected bug in compare() that did not write comparison matrices
when ALIGN_CODES was empty.

Corrected a bug in rdaln() so that the sequences without pending gaps '-'
also have gaps removed if so selected with REMOVE_GAPS.

Corrected a bug in selatm() which made RESIDUE_TYPES = 'HET' ignored.

Corrected a bug in schedule.lib which made hydrogen bonding group
of restraints ignored (e.g., produced by RESTRAINT_TYPE = SHEET, HELIX).

Corrected a bug in build.F(getijk) found by Lisa Yan (natmpt-1) that could
interfere with building initial coformation.

Corrected a bug in mod2ali that resulted in null characters at the end
of shorter sequences in the alignments constructed by SEQUENCE_TO_ALI.

******* April 11, 1996:

MODELLER 3c released

******* April 12, 1996: MODELLER 4 initiated:

Added secondary structure assignment routine to WRITE_DATA and
added the selection of output in WRITE_DATA by OUTPUT.

Deleted most of .mat files and several other un-needed files in modlib\.

Renamed GENERATE_MOLECULE to GENERATE_TOPOLOGY in several places.

Added the COLOR_ALN_MODEL command that colors a structure according
to equivalences, insertions, and deletions in the aligned sequence.

******* May 10, 1996: combined AS and RS versions:

RS changes: 

The following are the general changes:

- Added reduced model representation based on Herzyk & Hubbard (1993) 
  Proteins 17: 310-324, but using three types of C-alphas for residues
  with helical, strand and turn propensities.

- Added reading and handling of parameter files in modeller restraint
  format.

- Added new RESTRAINT_TYPE : MRFP_STEREO, MRFP_BOND, MRFP_ANGLE, 
                             MRFP_DIHEDRAL, VDW14

- Added options to read multiple parameter and/or topology libraries.
  (ADD_TOPOLOGY and ADD_PARAMETERS options in READ_TOPOLOGY and 
   READ_PARAMETERS, respectively).

- Changed the atom type indexing to allow reading of multiple topology
  files and topology files containing only a subset of atoms. This forced
  changes in several places (check the headers of models.lib and rdrtop() ).

More detailed descriptions of these changes follow below:


Changed models.lib and radii.lib to include the reduced model (model #9).

Added radii14.lib, it contains radii for 1-4 interactions (used for model #9).

Added topology and parameter libraries for reduced model:

	- top_ca3.lib : RTF for C-alphas in reduced model (no sidechains)
	- tophh.lib :  RTF for complete reduced model (C-alphas + sidechains)
	- par_ca3_spl.lib : Parameters for C-alphas in reduced model 
                            (this file is in modeller restraint format)	
	- parhh.lib : Parameters for sidechains from the Herzyk & Hubbard model

Changed rdparf() to add the ADD_PARAMETERS option which allows to read more
than one parameter file. Added the MRFP keyword for parameter files in
modeller restraint format. 

The parameters in modeller restraint format read by rdparf() are stored
in a common structure defined in param.cmn, the corresponding constants are
defined in mod.cst.

Changed getrsr() to add new RESTRAINT_TYPE for MAKE_RESTRAINTS. The new 
types are MRFP_STEREO, MRFP_BOND, MRFP_ANGLE, MRFP_DIHEDRAL, and VDW14.

Added new routine mrf_stereo() which is equivalent to stereo() but it handles
restraints in modeller format. The routines mrf_addcrs(), mrf_addcs() and 
mrf_ifndprms() are equivalent to addcrs(), addcr() and ifndprms(), 
respectively.

Changed rdrtop() to allow reading of multiple residue topology files. These
forced the changing of atom type indexing as explained in the headers of
rdrtop() and radii.lib. Basically CHARMM atom types are not considered anymore
and RADII_LIB dictates the number of residues types and atom types. All atoms
in the residue topology library must be defined in RADII_LIB which dictates
the atom type index.

The number of residue topology libraries in memory is kept in nrtl, which
is defined in topol.cmn.

Changed act56 : removed check for consistency when reading a topology file.
Consistency is now checked in rdrtop() by comparing the topology library
with the entries in RADII_LIB.

Added RESTYP_LIB format check to inires().

Changed ID2 output format from i2 to i4 in gennam2().


******* May 17, 1996: 

Added various output options to the wrpap() routine (sec.str, accessibility,
variable gap penalties, etc.), selected by new TOP variable ALIGNMENT_FEATURES.

Added ALIGN2D routine for alignment of a sequence with structure(s) using
variable gap penalty depending on helix, beta, accessibility, mainchain
curvature, and distance between the two Calphas spanning the gap. 
Using new routines align9 and 10, and TOP variable GAP_PENALTIES_3D.

Added variable BUILD_METHOD for BUILD_MODEL so that simple 3D interpolation
can be used to generate undefined atoms; this reduces frequency of 
knots and insertions modeled in extended conformation.

Corrected the bug in parallel SHEET restraints, pointed out by 
S. Grzybek (rsrsheet). Also changed the specification of sheet
restraints to allow complete control, by introducing ATOM_IDS
and SHEET_H-BONDS TOP variables.

Corrected the inconvenient specification of atoms in ADD_RESTRAINT,
DELETE_RESTRAINT, and in the restraints file in the USER format: 
Now using new atom id specification, ATOM_IDS: atom_name:residue_id[:chain_id].

Added improper dihedral angles to top.lib to ensure more planar sidechain
rings.

Added the ability to write restraints in the USER format (selected via the
RESTRAINTS_FORMAT TOP variable), not only to read them.

Modified WRITE_DATA command to add curvature and secondary structure output.
Removed separate options for writing to the output files and to the fourth 
column of the MODEL data structure.

Added the possibility to specify FILE in READ_MODEL with the second scalar
in MODEL_SEGMENT. The same for READ_MODEL2.


******* June 26, 1996: 

Heme group fix (courtesy of M. Sutcliffe) in top.lib, par.lib, radii.lib, 
radii14.lib, models.lib.


******* July 26, 1996: 

Added SCHEDULE_SCALE. 

Fixed a bug in ALIGN2D so that all ALIGN_BLOCK structures are used
in calculating the gap penalties (it did work for ALIGN_BLOCK=1, NSEQ=2
before).

Introduced new command IUPAC_MODEL which swaps atoms for residues with
C2 planar sidechains (Glu, Asp, Phe, Tyr, Arg), so that dihedrals 
observe IUPAC conventions. This is now done at the end of each
model calculation in __single_model.

Introduced INIT_VELOCITIES for MD refinement. Used in __refine.top

Added TOP variable CURRENT_DIRECTORY for MALIGN3D command.

Added FIT variable to SUPERPOSE command.

'model' script was modified so that all templates and models are MALIGN3D
at the very end and written out to .fit files when FINAL_MALIGN3D = 1 
(0 by default).

Added DENDROGRAM command.

Added EXPAND_ALIGNMENT command.

Only selected atoms are written out for WRITE_MODEL(2) in the PDB format.

Added WRITE_ALL_ATOMS flag to WRITE_MODEL.

Expanded SEQUENCE_TO_ALI, which now copies coordinates from MODEL to ALIGNMENT,
too.

Added RMS and DRMS values to OUTPUT variable for the COMPARE command.

******* August 26, 1996: 

Fixed a bug in patchss which caused bad dihedral definitions when a DISU patch
was used with an all H topology model.

Added generic STD (standard) residue type for PICK_ATOMS.

Removed two bugs from COMPARE_ALIGNMENTS (counted % of correctly aligned
incorrectly).

****** October 25, 1996:

Added SPHERE_SEGMENT option to the PICK_ATOMS command. Usage:
PICK_ATOMS SELECTION_SEARCH = SPHERE_SEGMENT, ;
           SELECTION_SEGMENT = '#RES1:C' '#RES2:C', ;
           SPHERE_RADIUS  = <real:1>

Changed the TOP scripts for 'model' so that READ_RESTRAINTS is done
only once or twice per model.

Added value REPORT_PDB to the OUTPUT variable, which allows writing
model files during optimization.

Added $+-number syntax expansion to the residue id for offsetting 
residue id's.

Introduced GAP_PENALTIES_1D (ALIGN and ALIGN2D), 
GAP_PENALTIES_2D (ALIGN2D), and GAP_PENALTIES_3D (ALIGN3D)
to replace GAP_PENALTIES (ALIGN, ALIGN3D) and GAP_PENALTIES_3D (ALIGN2D).

Added automated addition of the 'pdb' prefix to atom filenames for
easier atom file handling.

Added $(DEFAULT) and $(JOB) for generating default filenames.

Corrected a bug in PICK_RESTRAINTS (pickc()) that picked unselected restraints 
if ADD_RESTRAINTS = on (addrsr=.T.) (default).

Corrected a bug in local alignments (probably infrequent).

Corrected a bug that prevented C-terminal overhangs with similarity
matrices (default).

Extended gap penalty definition in ALIGN2D and introduced MAX_GAP_LEN.

Added RENUMBER_RESIDUES option to RENAME_SEGMENTS command.

Added optional output to the ASGL file of the distribution of the minimal 
non-bonded distance for each atom.
 

****** December 20, 1996:

Made it compile under F90 on IRIX 6.2 (HOSTTYPE=F90).

Corrected many (trivial?) problems with IPT FLINT.

Added Roberto's upgrades to COMPARE_ALIGNMENTS.

Added Roberto's restraint type USER_DISTANCE (hydrophobic effect).


****** January 10, 1997:

Combined with Azat's 'dynamic' restraints changes -- but almost none
of that code is in the current version.

Used flint and cvd to speed up and check the code.

Added non-bonded pairs list for all dynamic restraints. A huge amount
of changes to the energy and reporting code had to be done.

Added special non-bonded restraints between defined atom type classes;
they are specified in the 'MODELLER' block in the parameter library file.

Only the violated restraints are reported by ENERGY when OUTPUT = 'VERY_LONG'
(before it was all restraints).

Corrected a bug that sometimes calculated lower and upper harmonic bounds
without multiplying them by R*T (in the ENERGY output only, I think).

Corrected lowercase 'precision' to upper case 'PRECISION' in numbers.cst and
head.F. The constants in the double precision version were single precision
so far -- not certain about it!

Improved the efficiency of reading reals and integers and logicals from
strings (str_r(), ...).

Added a check of sequences read in by READ_ALIGNMENT.

Roberto added the perl options.pl for processing the manual using top.ini source.

Added segment specs for MODEL2.

Coorected a bug that prevented writing out only selected atoms.

Added the ENERGY_PROFILE command and removed the output of OUTPUT='RESVIOL'
from the ENERGY_COMMAND (now in ENERGY_PROFILE).

Changed VDW_STDV keyword to SPHERE_STDV, DYNAMIC_VDW keyword to DYNAMIC_SPHERE;
VDW and VDW14 values in RESTRAINT_TYPE to SPHERE and SPHERE14; 
ELEC and ELEC14 values in RESTRAINT_TYPE to COULOMB and COULOMB14.

Added FIT option to ALIGN2D (for no alignment and just returning the 3D info').

Corrected rdpdbseq() in rdpir() so that rdpir reads the same sequence
as rdarbk() and rdatm(), according to HETATM_IO, ...

Corrected the bug that made DO IVAR=1,2,3 do DO IVAR=123,123,1.


****** March 12, 1997:

Released to MSI for QUANTA and InsightII 97.

****** March 18, 1997:

Azat added TOP variable NORMALIZE_PROF for normalizing the energy profiles
by the number of restraints per residue.

****** March 20, 1997:

Azat:
src/io/report.F :  third kind of violation: PDF;
src/main/top.ini: TOP variable VIOL_REPORT_CUT2 for third kind of violation

Improved the efficiency of SEQUENCE_SEARCH by optimizing I/O.

Using Roberto's extended significance tests in SEQUENCE_SEARCH

Added syntax checking before command execution.

Added additional restraints for MAKE_RESTAINTS RESTRAINT_TYPE = 'ALPHA'
from a specific helix in one of myoglobins (O-O, CA-O), to supplement
CA-CA and N-O hydrogen bonds.

Added the option to omit overhangs when writing out the alignment.

Added the option to omit beginning and ending residue numbers in the
Pir format .ali file.

Corrected all errors in CHAINS* (mkchn.F, seqfilter.F). Now the chains
are defined exclusively according to the chain id in the PDB files.

Changed the name of temporary file sys.tmp.file into time() so that
several independent modeller jobs can be run in the same directory.

RESIDUE_SPAN_RANGE consists of two scalars now, not four (NRANG1 NRANG2).
It now means the same thing in MAKE_RESTRAINTS RESTRAINT_TYPE = 'distance',
PICK_RESTRAINTS, and in dynamic non-bonded pairs calculation. In addition,
a logical variable RESIDUE_SPAN_SIGN has been introduced. There are two
conditions, the active one is selected by RESIDUE_SPAN_SIGN:

(a) NRANG1 <= |ires2 - ires1| <= NRANG2 when  RESIDUE_SPAN_SIGN = off
(b) NRANG1 <=  ires2 - ires1  <= NRANG2 when  RESIDUE_SPAN_SIGN = on

MAKE_RESTRAINTS: A distance restraint between a selected pair of atoms
with residue indices ires1 (PICK_ATOMS set 2) and ires2 (PICK_ATOMS set 3)
passes the span filter when (a) or (b) is satisfied, as selected by 
RESIDUE_SPAN_SIGN.

PICK_RESTRAINTS: A restraint that has all atom pairs satisfying 
condition (a) above is selected for the specified action. 
RESIDUE_SPAN_SIGN does not have any effect here.

Dynamic non-bonded pair list calculation: An atom pair that passes
condition (a) is added to the list. RESIDUE_SPAN_SIGN does not have 
any effect here.

Added wrtmsg() routine for general message output and exit handling.

Corrected a serious bug in rdabrk() that probably sometimes caused
not to read the appropriate PDB file to complete the alignment entries
in getdata(), COMPARE, SUPEPOSE, MAKE_RESTRAINTS ...

The CG optimization is now more robust (an important source
of inifinites has beeen eliminated).

I corrected a bug in the evaluation of the binormal Phi/Psi
restraints. For a periodic two-dimensional variable, both variables 
and their correlation have to be taken into account simultaneously 
when calculating the deviation from the mean value (itself a vector 
of dimension 2). Thus, the new MPDF terms corresponding to the binormal 
Phi/Psi restraints will be generally different from the old ones. The 
bug was probably not very serious in terms of model quality because it 
resulted only in less efficient optimization of Phi/Psi, not in a 
minimization towards incorrect values of Phi/Psi.

Several constants have been increased to remove 'array too small' 
problems in 'genome' modeling.

Split deltaf() function into scalar and two dimensional versions
to eliminate the IBM AIX xlf resolve problems.

Re-introduced the check for co-linear angles so that the optimizer
does not crash anymore.

Introduced the output from the ORIENT_MODEL command.

Checking at the end of conmin() to see which of the two last
structures has lowest energy.

Updated the examples/define-symmetry.top example.

Increased MRESTYP to 120.

Added SCHEDULE_SCALE argument to MAKE_SCHEDULE.

Added options FAST_SEARCH, FAST_SEARCH_CUTOFF and DATA_FILE to
SEQUENCE_SEARCH.

Not writing atom type errors in atmcls() for HETATM.

Changed several constants (MAXCNS, MAXIMP) to allow for protein
modeling close to MAXRES. Also increased atom index space in 
.rsr file output from i4 to i5 to allow for more than 9999 atoms.

Changed maxpos in string.F to allow MAXSEQ > 100.

Release modeller-4 on 16 June, 1997.
