CNS 1.21 is now available. A particular highlight is automatic
dimensioning
of torsion angle dynamics arrays (e.g., MAXTREE), so no user
intervention
is needed anymore. There are many bug fixes in source code, modules,
and input files.
I would like to thank Joe Krahn, Ben Eisenbraun, and many others for
helpful
comments, bug reports, and extensive testing of the new version.
==================================================================
Announcing version 1.21 (general release) of the software:
Crystallography & NMR System (CNS)
(copyright 1997-2008, Yale University)
==================================================================
Information about the software and instructions for downloading
the most recent version are available at:
**************************************************
************ http://cns-online.org****************
**************************************************
The software is available for download, free-of-charge, by all
academic (non-profit) users.
------------------------------------------------------------------
Installation instructions and documentation can be found in:
$CNS_SOLVE/doc/html/cns_solve.html
once you have downloaded and installed the software.
------------------------------------------------------------------
Please cite the following references for CNS in
publications:
1. Brunger, A.T., Adams, P.D., Clore, G.M., Delano, W.L., Gros, P.,
Grosse-Kunstleve, R.W., Jiang, J.-S., Kuszewski, J., Nilges, M.,
Pannu, N.S., Read, R.J., Rice, L.M., Simonson, T., Warren, G.L.
Crystallography & NMR system: A new software system for
macromolecular structure determination,
Acta Cryst. D54, 905-921 (1998).
2. Brunger, A.T. Version 1.2 of the Crystallography and NMR System.
Nature Protocols 2, 2728-2733 (2007).
Please cite additional original papers when using specific
methods.
------------------------------------------------------------------
Do not distribute CNS to third parties without approval. By
downloading the software you agree to the License in the FTP
directory.
------------------------------------------------------------------
While this new version is compatible with version 1.2 input files it
is highly recommended that you use the new input files and
modules in conjunction this new version of CNS. The http://cns-online.org
website is now pointing to the new 1.21 version by default.
------------------------------------------------------------------
Attached release notes for CNS version 1.21:
=======================================================================
=
= Crystallography & NMR System
=
= A.T.Brunger, P.D.Adams, G.M.Clore, W.L.Delano, P.Gros,
= R.W.Grosse-Kunstleve, J.-S.Jiang, J.Kuszewski, M.Nilges,
= N.S.Pannu, R.J.Read, L.M.Rice, T.Simonson, G.L.Warren
=
= Copyright (c) 1997-2008 Yale University
=
=======================================================================
Program: CNS
Version: 1.21
Patch level: 1
Status: general release
Changes for version 1.21
------------------------
Program:
- multiple changes to source/ dtorsion_top.f
1 removed disfunctional GROUp option
2 automatic dimensioning for MAXTREE, MAXLEN, MAXCHN
3 automatic dimensioning for MAXBND
4 automatic dimensioning for MAXJNT
5 automatic dimensioning for MAXDIHE
6 removed dysfunctional GROUp option
7 updated helplib/cns-dynamics-torsion-topology
8 old line 2135 -- No close quote at the end:
changed to:
WRITE(6,'(17A)')
@ ' %atoms "', SEGID(OUTATM),'-',RESID(OUTATM),'-',
@ RES(OUTATM),'-',TYPE(OUTATM),'" and "',
@ SEGID(JB(JBONDS(CONGRP(THISONE,3-I),J))),'-',
@ RESID(JB(JBONDS(CONGRP(THISONE,3-I),J))),'-',
@ RES(JB(JBONDS(CONGRP(THISONE,3-I),J))),'-',
@ TYPE(JB(JBONDS(CONGRP(THISONE,3-I),J))),'"'
also following statement.
9 old line 3081:redefined IND(3) to INTEGER
10 fixed bug in routine TORMD when the majority of the molecule is
fixed, changed to:
HPIBXCL=ALLHP(INTEG4(2*NBOND))
HPJBXCL=ALLHP(INTEG4(2*NBOND))
...
CALL FREHP(HPJBXCL,INTEG4(2*NBOND))
CALL FREHP(HPIBXCL,INTEG4(2*NBOND))
- source/noe.f and noe.inc: included DEN function (ongoing development)
- modifications in instlib/machine/unsupported/mac-intel-darwin/
machine_f.f:
1 replaced call to INDEX(FILE,' ') with call to TRIMM(FILE,,,).
2 fixed last argument in call to LINSUB in subroutine SYTASK
3 removed leading UNIX pathname in file INQUIRE
- modifications in instlib/machine/unsupported/mac-intel-darwin/
machine_c.c: removed rename_() function.
- copied these machine_f.f and machine_c.c files to
instlib/machine/supported/linux/
instlib/machine/unsupported/intel-x86_64bit-linux/.
instlib/machine/unsupported/intel-itanium-linux
instlib/machine/unsupported/g77-linux
instlib/machine/unsupported/mac-ppc-linux
instlib/machine/unsupported/mac-ppc-darwin
Changed machine name in corresponding machine_f.f files.
- fixed bug in xskel.f: increased dimension of stack to 0:SEARCHDEPTH
throughout.
- angledb.f:2205
When shifting class values, the following loop ends up copying
index 0
values to index 1, but the arrays all start at 1:
DO COUNT = NANGLEDBS+1,
& ANGLEDBASSNDX(CURANGLEDBCLASS)+1, -1
changed to:
DO COUNT = NANGLEDBS+1,
& MAX(ANGLEDBASSNDX(CURANGLEDBCLASS)+1,2), -1
- coorio.f:422
The following can set IATOM to an invalid index if the atom is not
found, and returns MARK instead of a valid index. IOFFS should be
set only when a valid atom is found. Changed to:
COND=SID.EQ.SEGID(IOFFS).AND.RID.EQ.RESID(IOFFS).AND.
& REN.EQ.RES(IOFFS).AND.IUP.EQ.TYPE(IOFFS)
IF (COND) THEN
IATOM=IOFFS
ELSE
IATOM=GETATN(SID,RID,REN,IUP,MARK)
>>> IF (IATOM.NE.MARK) IOFFS=IATOM
- util.f:220 -- the following check is invalid if NTITLE==0
IF (INDEX(TITLE(1),'FILENAME').EQ.0) THEN
NTITLE=NTITLE+1
changed to:
COND=.FALSE.
IF (NTITLE.EQ.0) THEN
COND=.TRUE.
ELSE
IF (INDEX(TITLE(1),'FILENAME').EQ.0) COND=.TRUE
END IF
IF (COND) THEN
- ncs.f: CNS malfunctions if you define too many NCS groups,
because the following test allows NGROUP to go one past the
actual limit (i.e. the comparison should be .GE.):
Modification:
C make new group
>>> IF (NGROUP.GE.MAXNGR) THEN
CALL WRNDIE(-5,'NCS-restraints',
& 'MAXNGR (max. no. of NCS groups) exceeded')
ELSE
NGROUP=NGROUP+1
END IF
- corman.f:533
& ' ORTHO: transformation matrix =',((XRTR(I,J),J=1,3),I=1,3)
changed to:
& ' FRACT: transformation matrix =',((XRTR(I,J),J=1,3),I=1,3)
- noe.f:165-181 -- wrong prompts:
ELSE IF (WD(1:4).EQ.'AVEX') THEN
...
CALL NEXTF('AVERaging=',RTEMP) <-- changed to "AVEXponent="
...
ELSE IF (WD(1:4).EQ.'OREX') THEN
...
CALL NEXTF('AVERaging=',RTEMP) <-- changed to "OREXponent="
- parmio.f:2017 -- fixed format statement:
>>> WRITE(6,'(8A)')
& ' %REDUce-ERR: incompatible dihedral periodicities for types ',
& IAC(IP(I)),' ',IAC(JP(I)),' ',IAC(KP(I)),' ',IAC(LP(I))
- parmio.f:2156 -- Same format problem, but for impropers
- tsmaplm.f:line 65 CF is DOUBLE COMPLEX
- energy.f:26: EDUMMY is COMPLEX
- dynio.f:851
The header string HDR is only set for ensemble
mode and is otherwise uninitialized. Added condition
to define HDR in all cases.
- mindist.f:287 changed to:
CALL CNSHELP('cns-mindist')
The current actual help file is called "cns-mindist".
- xreflstar.f: both help files are non-existent:
call cnshelp('cns-xray-write-reflection-star-translate')
call cnshelp('cns-xray-write-reflection-star')
-> commented out lines.
- vector_func.f 24, :326 -- "...(I)(1:LAST)" can go out-of-bounds.
Inserted additional condition in IF test:
IF ( LAST .GE. VUNIQ(I) .AND.LAST.LE.VNAMLN) THEN
- xfunct.f:1045 -- the .OR. has been set to .AND.
& ATYPE(NL-6)(1:1).EQ.'D'.AND.ATYPE(NL-7).EQ.'DC'.AND.
- xmask.f:900 -- XSYMASK() is undefined if QAVER is false:
IF (QAVER.AND.XSYMASK(AA,BB,CC).NE.-9999) THEN
changed to:
IF (QAVER) THEN
IF (XSYMASK(AA,BB,CC).NE.-9999) THEN
- xmulti.f:381 -- QFFK1 should be QFFK2
ELSE IF (WD(1:4).EQ.'FFK2') THEN
CALL NEXTF('FFK2=',FFK2)
IF (ABS(FFK2).LT.RSMALL) THEN
>>> QFFK2=.TRUE.
ELSE
QFFK2=.FALSE.
- xrmani.f:108 -- strings PROMPT and PROMPT2 are too short. They are the
same length as the names, but need to be longer, due to uses
such as:
PROMPT=WD(1:WDLEN)//'_amplitude='. Changed to max character
size to 100.
- removed unused and unintialized CHISTEP array from angledb.f and
angledb.inc.
- added EOF=EOF.OR.ERROR after two calls to GETLIN in parser.f to
reduce parser error messages after ERROR has occurred during file read.
- source/util.f - set maximum filename size to WORD_SIZE (in two
places).
- dimensioning of filename character variable in multiple places in
source files:
cluster.f-29-C
cluster.f:30: CHARACTER*(WIORD_SIZE) LFILE
cluster.f-31- CHARACTER*4 ROTMOD
dsearch.f-30-C
dsearch.f:31: CHARACTER*(WIORD_SIZE) LFILE
parser.f-4332- INTEGER LL, TLEN
parser.f:4333: CHARACTER*(WIORD_SIZE) TEMP
parser.f-4334- LOGICAL GOTIT, FINISH
parser.f-4352- TLEN=5
parser.f:4353: CALL ADDST(TEMP,WIORD_SIZE,TLEN,WD(LL+1:WDLEN),WDLEN-
LL)
rsearch.f-30-C
rsearch.f:31: CHARACTER*(WIORD_SIZE) LFILE
rsearch.f-32-C
rsearch.f:33: CHARACTER*(WIORD_SIZE) P1FILE
rsearch.f-34- INTEGER
P1NA,P1AMIN,P1AMAX,P1NB,P1BMIN,P1BMAX,P1NC,P1CMIN,P1CMAX
rsearch.f-37-C
rsearch.f:38: CHARACTER*(WIORD_SIZE) P2FILE
util.f-468-C local
util.f-469- INTEGER L, TMAX, TLEN
util.f:470: PARAMETER (TMAX=WIORD_SIZE)
xmphisto.f-135- INTEGER EXUNIT, EXLEN
xmphisto.f:136: CHARACTER*(WIORD_SIZE) EXFILE
xmphisto.f-137- DOUBLE PRECISION HRESO
xskel.f-34- LOGICAL ERR, COND
xskel.f:35: CHARACTER*(WIORD_SIZE) CFILE
xskel.f-36-C pointer
- increased default dimension for MXTITL to 2000 in ctitla.inc
Task files:
- included B-group refinement as an additional option in inputs/
xtal_refine/refine.inp. Set maximum B value to 900. Modified inputs/
xtal_refine/run/Makefile to test new group B-factor refinement option.
- added small scale values in inputs/xtal_refine/optimize_rweight.inp
( 0.025 and 0.05 )
- changed defaults in inputs/xtal_refine/optimize_wa.inp: "cartesian"
instead of "torsion" and final_min steps = 200.
- increased number of disulfide and carbohydrate link slots in inputs/
general/generate.inp
- introduced check for selection of omitted atoms (make sure it is not
zero), and print info about omitted atoms in output header in inputs/
xtal_refine/sa_omit_map.inp
- changed defaults for maxtree, maxlen, maxchn, in general/
model_anneal.inp xtal_refine/anneal.inp xtal_refine/
composite_omit_map.inp
xtal_refine/ncs_average_map.inp xtal_refine/optimize_wa.inp
xtal_refine/refine.inp xtal_refine/sa_omit_map.inp xtal_twin/
anneal_twin.inp
nmr_calc/anneal.inp nmr_calc/anneal_cv.inp nmr_calc/ensemble*.inp
nmr_calc/pmrefine.inp. Removed maxbnd.
- fixed bug in inputs/xtal_refine/ncs_average_map.inp for strict NCS
symmetry and automatic mask generation.
- new auxiliary file to define phi/psi restraints for proteins (inputs/
auxiliary/phi_psi_restraints.def)
- fixed problem in inputs/general/generate.inp, generate_easy.inp and
inputs/xtal_refine/refine.inp when automatic S-S detection is set, but
the sulfur positions are unknown.
- moved velocity assignment (from a Maxwell distribution) after
modification of atomic masses in xtal_refine/anneal.inp, xtal_refine/
composite_omit_map.inp, xtal_refine/ncs_average_map.inp, xtal_refine/
refine.inp, xtal_refine/sa_omit_map.inp, xtal_twin/anneal_twin.inp
HTML documentation:
- updated URL address of CNS site (http://cns-online.org) in bin/
cns_edit, and various files in the doc/html directory tree.
- updated text.html and added new pdf files in doc/html/about_cns
- updated doc/html/main/text.html -> Copyright year and patch level
- updated doc/html/installation/text.html -> supported and unsupported
machine versions.
- fixed problem in doc/html/cgi/cgi_form.cgi for non-Mozilla browsers
(for example, for Safari, the input form delimiter is ------
WebKitFormBoundary)
Modules:
- bug fix in module xtal/ scale_and_solvent_grid_search when bulk_sol
is set to false. Corrected code by excluding grid search if bulk_sol
is set to false.
- bug fix in module xtal/scale_and_solvent: removed superfluous
"isotropic=true" in two places. Fixed do (fpart ...) statement.
- updated contact author email address in modules/xtal/exportmmcifstruct
- modification in modules/xtal/sdb_to_coord: comparison of segids
should not use wildcards to allow for derivative names such as ABC+
- removed "close" statement in module modules/xtal/write_pdb
Libraries:
none
Utilities:
none
Test files:
- new test/noetest7.inp to test new den function.
- new test/torsiontest5.inp to test bug fix in dtorsion_top.f.
- new test/torsiontest6.inp and test/torsiontest7.inp to test new
automatic dimensioning.
- Removed obsolete MAXLEN, MAXCHEN, MAXTREE torsion dynamics keywords
in test cases.
- new test for minimize.inp in inputs/xtal_refine/run/Makefile -> test
"bulk_sol=false".
- increased bmax to 900 in all refinement files.
General files:
- changed "cc" to "icc" in instlib/machine/unsupported/mac-intel-
darwin/Makefile.header
- used 64 bit compilation for Intel mac os x version
- changed bin/update_patch to allow numbers for patch ids
- fixed three instances that produced warning messages in bin/to_cns.c
- increased default maximum number of atoms to 1000000
- redistruted "supported" and "unsupported" architectures in instlib/
machine to reflect actally tested hardware platforms.
- tested Portland Group pgf95 compiler on Intel Mac OS X platform
- tested Intel ifort on 64 bit Intel Mac OS X, 64 bit and 32 bit linux
PCs
- tested Portland Group pgf95 on 64 bit Intel Mac OS X
- tested GNU gfortran on 64 bit and 32 bit linux PCs, and on Mac PPCs.
- new version of "make install" to support different compiler
options. Use the environmental variable fc to force a particular
compiler, e.g.
setenv pgf95
make install
Axel T. Brunger
Investigator, Howard Hughes Medical Institute
Professor of Molecular and Cellular Physiology
Stanford University
Web: http://atbweb.stanford.edu
Email: [EMAIL PROTECTED]
Phone: +1 650-736-1031
Fax: +1 650-745-1463