Changes from 3.10 to 3.11
--> 3.11 released 2025/11/07
Topology and Parameters
databases/repelPot/protein-4.0.dat
-added missing parameter for AIB CB
toppar/atcun.top
-remove ill-advised improper outside of ligating region
toppar/extra/zn-finger-3.2.par
toppar/extra/zn-finger-4.0.par
-updated zinc finger params for protein-4.0; and retained legacy
3.2 parameters
-commented-out redundant and confusingly named ZCH3 patch
toppar/protein-4.0.par/top
-modifications to AIB top and par values so that CA angles and
impropers are consistent
toppar/eefx/protein_eefx2.par
-ring angle parameters for HIS residue (default protonation
state): changed to those of protein-4.0, which has a different
protonation state: otherwise structures are flagged by PDB
validation. Probably the default protonation state should be changed
instead
Helper Programs
bin/calcPSol.in
-calcPSol: if generate table, then only plot calculated
bin/calcTensor.in
-for plotting residue number in the -plot picker and --plotVsResid
output, now use the second selection, instead of the first. This
follows the convention that the first selection is for the tag
atom in PCS data.
-picker improvements:
o threshold (how close mouse must be to point) is now dynamic so
that it is possible to pick points with very large (like 1e4) scale.
o catch exception cases (pointer outside view box, a non-line
picked), and now exits without a traceback message.
o implement the clearing labels behavior by pressing the ``c'' key.
bin/evalCovalent.in
-added the -top option to specify topology file
bin/pip
-fixed shebang line
bin/xplor.in
-added script profiling support with the -pyprof option and
XPLOR_PYPROFILE and XPLOR_PYPROFILESORTVAL env variables
Example Scripts
eginput/cryoEM2D
- added examples
eginput/cryoEM2D/compareMaps.py
- added -writeFTs option; now output experimental R2 output
extractSlices.py
- added -slice, -writeMRCS, -verbose
- no longer compute average map
fitProj.py
- changed map spec for argument to -map option (can now specify slice)
- added -rotateAbout option
- added -radius option
- changed map spec for argument to -map option (can now specify slice)
- added -rotateAbout option
- added -radius option
eginput/dock_dipolar_chemshift/dock.py
-fix bad logic for initial docking loop which resulted in an infinite loop
eginput/pasd/nef/initMatch.py
-added support for pseudo-4D spectra (CNH, NCH, CCH, NNH)
eginput/PSF_generation/genLigandCif.py
-better docs for linkage specifications including terminal
residues. Things *might* work for N-terminal residues now.
-treat bond order specifications properly (so impropers aren't
generated for single bonds)
-generate parameters needed for the case that the residue is placed
on the N-terminus.
-now, when generating angle, improper parameters, print a
warning if entry is not found
eginput/rna/fold.py
eginput/rna/refine.py
eginput/rna/validate.py
-switched from CDIH XplorPot term to DihedralPot
eginput/PSF_generation/README
-added Zinc-finger PSF generation examples
Python Interface
python/anglePotTools.py
-delAndCreateCenterAnglePots: fixed s.t., if centerSels is specified,
residue numbers are included in the term names, to make them unique.
python/atomAction.py
-randomizeDomainPos(): added the rotAxis argument
nmrPot/atomProb.cc
-added AtomProb_Mask class and member for AtomProb base class
-added centroidSel member - can now specify an alternate center of
rotation.
python/atomProbTools.py
-added create_Mask helper function
-added transformedMask function
python/cdsVector_template.i
-added toList member
python/cdsTypeMaps.i
-now catch std::bad_alloc exception by const reference, so that
derived exceptions are also caught (and compiler warnings are silenced).
nmrPot/densityGrid
-broke out as separate struture DensityGrid_CompareData, for
computing correlation and R-factor, used by PropDistPot, and exposed
to the python interface as densityGrid.CompareData. Also computes
Jones et.al. real-space R-factor.
-added initInterpolate to attempt to get it to be Open-MP thread
safe.
-set(val) - added method to set grid to constant value
-added interpolateCentered, where the center of rotation is specfied
python/densityGridTools.py
-added openImageOrDensityGrid function; sliceToImage,
mergedSlicesToImage: added flip argument which defaults to True
(previously, all images were flipped) because image data is actually
flipped relative to MRC data.
-sliceToBytes: optimization - was previously pathologically slow,
primarily due to using the wrong min, max functions.
python/dihedralPotTools.py
-create_DihedralPot:
o restraints argument can now optionally be a list of restraint
strings or file names.
o gracefully handle empty restraints
python/dssp.i
dssp/dssp
- implementation of DSSP secondary structure algorithm.
python/iupacNaming.py
-to/fromIUPAC: updated to translate N-terminal proton atom names
python/ivm.py
-added rotate1 hinge type
-added translaterotate1 hinge type
-autoTorsion: optimization for iterating over hinge atoms:
clear out the groupMap object for all the atoms in a group the currect
group belpngs to: these should be looped over only once - and an atom
can only belong to a single hinge.
-breakAllBondsIn: updated to support optimized PublicIVM.breakAllBondsIn
python/maxHeightPot.py
-analyze: now report on selection/Simulation info
python/pasd/noeTools.py
-getDistanceBinsFromIntensities: protect against empty
intensities list
python/pasd/peakTools.py
-nefPeaks:
o when auto-detecting dimensions, now print message
and throw exception if the number of proton dimensions is not 2.
o now handle pseudo 4D spectra types CNH NCH CCH NNH
common/pdbTool.cc
-readCIF:
o added support for label_seq_id, label_asym_id
o print better message when multiple data blocks encountered
o added blockName argument; now can deal with CIF files
which include multiple data blocks
python/pot.i
-updated to allow key word arguments in constructors
nmrPot/probDistPot
-added the freedom member
-now optionally mask the AtomProb-generated map
-changed pseudoatom -> translation/orientation to the inverse of
what it was previously, s.t. if pseudoatoms are grouped with
non-pseudoatoms, an overall rotation will not change the energy
-added useMaskFrame flag
-energyMaybeDerivs0: make translation relative to mask's mapCenter
if using mask frame
python/probDistPotTools.py
-topologySetup(): added support for probDistPot's freedom member.
-added real-space R-factor to header and .stats output
-centerOnMap:
o fix setting of tAtom pos for new reciprocal definition
o updated for useMaskFrame==True
-added function maskedCorrelation()
python/protocol.py
-initCoords:
o added swapOnIUPAC argument to auto-fix IUPAC proton
naming, if detected;
o fixed verbose arguments to fixMethylImpropers and
fixProtonImpropers calls
o handle case where cifDataBlockName is passed as None
-matchInexactAtomEntry: changed return type to namedtuple with
status and probablyIUPAC members.
-loadPDB, initCoords: added the cifDataBlockName argument
-initTopology: change behavior for reset systems, allowing
them to be re-initialized, but not updating existing
TopologyEntry object.
python/psfGen.py
-seqFromCIF:
o optimize by moving atomCat.group_PDB[i] out of loop.
o add support for label_asym_id, label_seq_id
-pdbToSeq, seqFromCIF: added the cifDataBlockName argument to
support cif file with multiple data blocks.
-pdbToSeq: fixed call to seqFromCIF to specify arguments by
keyword, due to the addition (to the latter) of the optional cif
argument.
-pdbToPSF: pop failIfInsertion so that an error not thrown if it is
used.
-seqToPSF: argument warnOnUnknown has been added to help control behavior
when an unrecognized sequence is encountered.
python/protocol.py
python/psfGen.py
-targetRMSD now warns about unknown residues!
python/rdcPotTools.py
-writeNEF: added missing index category - contributed by Marshall
Smith so that the NEF file is accepted by the wwPDB
python/selectTools.py
-fixMethylImpropers, fixProtonImpropers: find XplorSimulation for
use in XplorPot
-added function findDISUbond to print out possible disulfide bonds
for cysteine SG atoms within a specified distance tolerance, but
trying to avoid Zinc fingers.
python/simulationTools.py
-minimizeRefine: add a call to IVM.init(), required when
XplorPots doesn't contain the ANGL term.
-saRefine:
o energy term setup copied from minimizeRefine.
o add simulation argument
python/termAnalysis.py
-changes for more deterministic violation analysis output. Output
order is now determined by the sort order of the
prefixName value given to registerTerm. [Previously, it was based on
the order the respective registerTerm call.] To achieve this change,
registeredTerms is now a dictionary.
-change mechanism of generating registeringModules info: this
is no longer contained in a variable within this module, but rather in
an external file which is populated when modules are loaded using the
registerModule() function.
python/torsionDBPotTools.py
-create_TorsionDBPot:
o improve message when unexpected keyword is found.
o now give default values to metaselection member of PotData (phi,
psi) so that the metaselection need not be specified in the input
.dat file for that case.
nmrPot/torsionInterpolPot
-added surfderiv methods to 2D, 3D TorsionInterpolPots
nmrPot/vecPairOrientPot
-added vecPairOrientPot, energy term to restrain angles between
vectors defined by two pair of atom selections.
-added vecPairOrientPotTools.py with create_VecPairOrientPot helper.
python/xplorDoc.py
-processRSTblock: modify s.t. paragraph and blockquote markup
is stripped if part is specified as "fragment" or "body" - this
assumes that these cases are used only for inline markup.
-processRSTblocks/HTMLDoc.markup:
o added support for
... blocks.
o implemented ... tags
o now use xplorDoc.css as a stylesheet
python/xplorInit.py
-fixed s.t. cwd isn't mucked with if it's within the Xplor-NIH
distribution.
-added script profiling support with the XPLOR_PYPROFILE and
XPLOR_PYPROFILESORTVAL env variables
python/xplorPotTools.py
-moved initDihedrals here xplorPotTools.py from protocol.py
python/xplorSimulation.i
-addAtom: check each atom attribute for exceeding the 4 character limit
Architecture-Dependent Changes
arch/Linux_x86_64/Makefile.defs
-added -fpermissive CONLYFLAGS for gcc-14 - s.t. mismatched
pointer argument types can be passed (required for fftlib).
OpenMP (using the -omp) flag now is enabled on the Darwin arm64 platform,
Low-Level
-made $function -> $action change for newer versions of SWIG
bin/findSwig
-added note about 4.4.0
python/findPython3
-made more robust the discovery of PYTHON_XPATH for virtual
environments.
-Combined multiple settings in a single script s.t. fewer instances of
Python are executed.
python/checkWrap.py
-fixed DeprecationWarning in call to re.sub by making the count
argument a keyword argument.
source/vcorr.f
-fixed use of $ carriage control character (by adding missing comma)
CDSlib/matrixTools
-added trace template function, test
CDSlib/vectorTools
-added VectorTools::sum (untested)
common/atomSelLangYacc.y
-switch from free() to delete for stringLists - on some platforms
a mismatch will cause a crash
intVar/dint-node.cc
-added rotate1 hinge type
-added translaterotate1 hinge type
nmrPot/pairPot.hh
-changes to accessors to avoid generating AtomSel instnaces, which
tripped things up under OpenMP
intVar/publicIVM
-PublicIVM::init: optimized topological bond setup for the case of
many bondExcludes (such as for Cartesian topology)
python/publicIVM.i
-breakAllBondsIn: now takes AtomSel argument instead of list of
indices - this allows a much faster lookup, instead of search
through full list - particularly important when the argument
contains many atoms (such as when using cartesianTopology)
python/pyConvert
-added toPy(char)
Changes from 3.9 to 3.10
--> 3.10 released 2025/03/21
Topology and Parameters
toppar/protein-4.0.par
toppar/protein-4.0.top
-added missing ISOP (isopeptide) patch
-PPTR patch: added missing bonds, angles
Helper Programs
bin/analyzeRepel.in
-fixes when analyzing more than one structure at a time
-fixed check for nonexisting models
-now throw exception if -psf is specified without -par
bin/calcPRE.in
-added -subSel option
-the correlation plot is now pickable
bin/calcSAXS.in
-fixes for ensembles: ignore ensWeightsRegexp if it has not
matches. Fix s.t. only a plot window is created
bin/evalCovalent.in
-added the evalCovalent helper program
-added -fixImpropers option
bin/evalDihedrals.in
-added the -psf command-line option
bin/evalDists.in
-FIX: added stubs for -selection and -sortDiff options
-added the -psf option
-added the -aveType option
bin/mleFit.in
-added the -psf option
bin/pip
-added pip wrapper command
bin/plotLog.in
-added the -barwidth and -vsLabels command-line options. Now
use -vsLabels instead of special handling for bar plots
-histogram plots: now use Xplor-NIH histogram algorithm instead of that
from numpy
-fixes to histogram plots
-added histogram2d plotType, added numBins option (for histograms)
-bar plots: fixed width specification
-fixed hlines with labelled x-axes
-now support omitting legend entries using '_'
-added support for legend entries for -hline entries
-fix for numRows>1
bin/targetRMSD.in
-added the -orderedSel option
bin/xplor.in
-now set noHelp when the -m option is seen: to allow
appropriate help when running Python modules
-updated to allow building/running from a Python virtual environment.
Creating a distribution in this case is not yet supported- only
running Xplor-NIH from the compilation directory.
Example Scripts
eginput/cryoEM2D/
-scripts to determine projection of structure which best fits a 2D
class average, and manipulate these class averages.
eginput/pasd/cvn
-switched to Python versions of the scripts
eginput/pasd/cvn/pasdContactMap.py
--outFile now implies -plot
eginput/pasd/nef/genTalosNInput.py
eginput/pasd/nef/runTalos.sh
eginput/pasd/nef/talosToNEF.py
-added support for runTalos.sh to handle multiple chains
eginput/pre/refine/newRefine.py
-merged changes from xplor-nih-tutorial
eginput/PSF_generation/genLigand.py
-pdbToResInfo: now set targetSegid to the first it is None
(instead of defaulting to blank)
eginput/PSF_generation/genLigandCif.py
-added the -linkage option to set things up so that the ligand can
be used as an amino acid in a chain
-for protein sequences, clean-up proline-style protons bonded
to N
-linkage option: added docs on handling PRO, now the residue
name specification is case-independent.
-added fluorine nonbonded parameters
eginput/PSF_generation/genModCircPep.py
-switched phosphorylation patch to use SPA and PPTR which include
the PO3 group
-added test of final number of bonds, angles
Fortran Source
source/ccalls.c
-frtn_date: fixed year specification: previously specified %g to
strftime, which is the year at the end of the week, instead of the
current year. This caused invalid dates to reported during the
final week of each year.
Python Interface
common/atomSel
-added containsIndex(list of int)
nmrPot/atomProb.cc
-info(): added atomSel.string() to output
common/atomSelLang.cc
-AtomSelLang::select: when checking for abbreviation replacement,
now check that a replacement has been made, and break out
of recursion loop if not- to catch the case of a '[' character in the
selection string not associated with an abbreviation. Without this
check, an infinite loop is entered in this case (instead of selection
parse error).
python/cif
-added CifDatablock.asTable
-Cif::quoteData: now quote entries which contain a '#' character
python/deerPotTools.py
-fitParams: some work done to improve, but the gradient is
incorrect after the first step.
nmrPot/densityGrid
-added readCCP4fromBytes method s.t. a map can be read from memory
-replace readCCP4fromStream with readCCP4fromString: avoid C++
istream operations altogether
. added data read time (in sec) to verbose output
. optimized reading (10x speedup)
-readCCP4: fixed reading from ifstream: I had previously used the
wrong method (get instead of read), which stopped when reading a
delimiter character.
python/densityGridTools.py
-added mergedSlicesToImage which returns a PIL.Image - this is now
called by mergedSlicesAsImage
-trimDensityGrid: added the percent argument. When set, atom-based
trimming is not used. Rather, the map is cut down by percent of
its current size.
python/deerPotTools.py
-fitBackgroundModdepth: fixed gradient when norm != 1
common/derivList
-added the simulations() method and more documentation on the
sync() method
intVar/dint-node
python/ivm.py
-added translate1 hinge type
python/iupacNaming.py
-added name mapping for resname SEP
python/nefTools.py
-now look at return value of cifData.parse(), and raise exception
if not empty
nmrPot/pairPot.cc
-addSelectionPair: change logic for comparing the Simulations
of the passed sels with the PairPot Simulation: previously compared
raw pointer, now use atomID, which is consistent with the following
use of intersection(AtomSel,AtomSel).
pasd/peak
-Peak: added peakAssignments() const accessor
pasd/peakAssignment
-PeakAssignment::primarySeqDist, and all related accessors: now
have an optional argument maybeUpdate, to indicate whether to
recompute (if necessary) primarySeqDist, which default to true for
the previous behavior
-const versions of the accessors have been added where the
argument is set to false - in this case, updatePrimarySeqDist
must be called ahead of time; this added s.t. the const versions
can be called in a thread-parallel region.
pasd/pasdPot
-added method computeRawPAScores
-computeRawPAScores:
. replaced read-only CDSMap with
CDSMap because reference-counted String is not
thread-safe for this purpose, and caused crashes for
OMP_NUM_THREADS>1. Inner-loop comparison is much faster as an
additional benefit.
. replaced exceptions thrown in OMP-parallelized loop with
message printing, and exception deferred until the loop is finished.
pasd/pasdPot
-PASD_DistPot, PASD_InvPot: add working versions of rms()
method, the values of which are computed in
PASDPot::calcEnergyAndDerivs()
-PASDPot::rms(): now call modified.update() before return.
pasd/peak.cc
-isIntermolecular: fixed for case there are zero shiftAssignmnets
python/pasd/__init__.py
-xeasyShifts: handle blank segid, and auto-add trailing wildcard if
entry atom name matches no atoms.
-added xeasyPeaks()
-added the pippShifts function
python/pasd/formatPipp.py
-moved pippShifts to new formatPipp module (from __init__.py)
-added pipPeaks
python/pasd/formatSparky.py
python/pasd/formatSTAR.py
-split off sparky and star readers into separate format modules
-added CO carbonyl carbon name to STAR name mappings
python/nefTools.py
-readNEF, genMolecularSystem: added the XplorNIH_termination
- -key to nef_molecular_system for initial support of alternate
-termination. Currently support N-terminal acylation, c-terminal
-amidation, and custom termination (using a non-standard residue).
python/pasd/netfilter.py
-switch computation of the raw PeakAssignment score to
PASDPot::computeRawPAScore(). Note, however that the
initScoresFrom="contacts" specification is not yet supported
-filterPAs: properly catch KeyError exceptions - but why do
they occur?
-netfilter: rawSAPairScore: changed from a full matrix to a
dictionary. This seems likely to fix an out-of-memory condition.
python/pasd/protocol.py
-processStructurePass:
. gave default values to in/outPassName
. processStructurePass: now print error message if cannot read
a file
. added removeMissing=True argument to create_PosDiffPot s.t. the
reference PDB need not be exactly the same
-as the current PSF.
-jointFilter: now add a call to reportNOEprecision to get baseline
values before structure calculation
-processStructurePass, analyzePeaks, reportNOEaccuracy/precision:
now pass longRangeCutoff so that all is consistent
-standardInitMatch: added the assignmentThreshold argument - used
to filter out peaks with a large number of possible peak assignments.
python/pasd/reporting.py
-re-added module-scope histogram function, which is now used by
asciiHistogram
-asciiHistogram: fixed use of numBins and interaction with
useIntegerBins
-reportNOEaccuracy: add the maxUnreadEntries=None to allow the
reference structure to have more/fewer atoms than the current PSF
pasd/shiftAssignment.cc
-cacheNoRepeatPeakPositions: fixed memory leak where
noRepeatPeakNeighborhoods_ was not cleared on entry - so it only
grew. This also means that, after the first call to this method, the
reference in the scatterValues() method is incorrect- so that the
answer will differ if the argument rightNeighborhoodsOnly takes a
true value.
python/pasdPotTools.py
-added analyze registered function and extraStats terms
-cooling_updateTerms: changed the default value of charDeltaNoeComplete
common/pdbTool.cc
-readCIF: fixed to preferentially read label_comp_id over
auth_comp_id for residue names
python/posRMSDPotTools.py
-RAPPot: fix s.t. kw/named args are correctly passed to the ctor
nmrPot/posSymmPot.cc
-add/removeEquivAtomSelPair: disable selection swapping logic. I'm
not certain why this exists, but if the order is different
in different EnsembleMemberSimulations, the (Kabsch) fit, and thus the
computed energy is slightly different (not bitwise identical), and bad
things would happen.
common/potList.cc
-recurseToEPot: add logic to deal with empty PotLists. I
*think* this is ok.
nmrPot/prePot
-added removeRestraint method
python/probDistPotTools.py
-centerOnMap: added verbose argument
-added the fitMapToStruct function
python/protocol.py
-get includeHETATM working properly in loadPDB - was not using it
for PSF construction
-downloadPDB: for content=cifHeader, strip off the trailing
loop_, if it is present.
python/psfGen.py
-seqFromPDB: fixed bug in reading sequence from
structure with sidechains with multiple conformations.
-seqFromCIF:
. added includeHETATM argument, added cleanup and comments
. updated to preferentially use label_comp_id over auth_comp_id
for residue names
-addResidueName: no longer add residue name if it is already
present. This is so adding a variant, doesn't override the entry for
a residue in the system's topology.
python/repelPotTools.py
-create_RepelPot: set the default Simulation to that of the
RepelPot before calling addSelectionPair, so that the Simulation
matches when string selection pairs are given
python/rdcPotTools.py
-spaceSeparatedToRestraint: update, fixes from Marshall Smith
to properly handle inter-residue RDCs
python/selectTools.py
-threeToOne:
. If the residue name is variant (defined in
psfGen.variantResidues), now return the single character code for
the unmodified residue.
. now strip leading and trailing whitespace from the input
residue name, as these have no meaning.
python/simulationTools.py
-RunAction.runAction: added documentation
-testGradient: more accurate determination if the pots argument is
a PotList
-AnnealIVM.printTemp: changed message to reference iteration,
rather than temperature if performing minimization.
surfD/compute.cc
-compute_neighbors: instead of throwing exception in case there
are too many neighbors, simply exit with the maximum number,
printing a warning message
common/symSimulation.cc
-ctor: handle case that passed selection has an
EnsembleSimulation: no refer to the appropriate member
-syncDerivs: removed questionable call
-syncDerivs: add contribution from pseudo-atoms (in ensembleSim)
common/tagSimulation
-TagSimulation::addCopy: added the rot argument,
s.t. TagSimulations can be used for strict point symmetry
nmrPot/torsionInterpolPot.hh
-added deprecated message on torScale accessor
python/torsionInterpolPotTools.py
-added helper function create_TorsionInterpolPot1D
-create_TorsionInterpolPot1D: fix setting term's instancName
python/utils.py
-moved histogram from pasd/reporting to utils, and changed
behavior s.t. useIntegerBins now overrides numBins, and fixed the
use of the weights argument
-added histogram2d
nmrPot/varTensor
python/varTensorTools.py
-Non-linear least square optimization for calcTensorOrientation,
implemented in the C++ layer for speed - first contribution from
D. Sarkar.
python/xplorInit.py
-added conditional s.t. dependent code is not executed if
xplor.simulation is not defined. This so that xplor -pydoc xplorInit
works as expected.
-locale setting fallbacks: first try C.UTF-8, then use the user's
default (which will cause failures for files with non-ASCII
characters for some locales). This is a hack.
TCL Interface
tcl/import_pipp.tcl
-readPippShiftTable: switched to use the Python implementation
-process3dPippPeakTable: now implemented using pasd.pippPeaks
tcl/Makefile
-in the rule for the swig tcl runtime (swigtcl8.cc), add a bit to
handle the case that Tcl_Size is not defined
Architecture-Dependent Changes
bin/xplor.in
-for Intel Compilers without AVX2 instructions, now set the
MKL_ENABLE_INSTRUCTIONS env variable to avoid deprecation
messages. Note that the Linux_x86_64 binary will not run if the AVX flag
is missing.
arch/Linux_x86_64/Makefile.defs
-add -D_GNU_SOURCE to CONLYFLAGS to get feenableexcept - this
seems necessary with gcc 14??
arch/Linux_x86_64/source/Makefile
-required optimization downgrade for xscale.f with gfortran version 14
arch/Linux_x86_64/tcl/Makefile
-optimization downgrade for gcc 14
arch/Linux_x86_64/surfD/Makefile
-tessel_patches.cc: update rule for optimization downgrade to
better detect Intel oneAPI compiler
Low-Level
arch/installer.sh.in
-check for presence of wget command, and exit gracefully if it is missing.
CDSlib/cdsString
-CDSString_traits::strncpy: changed implementation to use mempcy
s.t. it now works with binary strings (including embedded nulls)
CDSlib/cdsSStream
-uncomment and fix the signature of CDSStringStreamBuf::seekoff to
enable seekg in the IStream class
-added test of manipulation of String with embedded NULL character
cif/cif.cc
-asTable: added check that specified keys are present
intVar/publicIVM.cc
-hingeList/setHingeList: fixed bug in decrementing/incrementing
the atom0 and atom1 atom indices which would manifest whenever
these were used for an instance where more than one atom is in
the hinge's aList
python/pyConvert.cc
-fromPy(String&): added support for initialization from Python Bytes
-toPy(CDSMap): reworked to avoid memory leak, and to used the
entries() Map method, instead of keys()+values()
python/cdsTypeMaps.i
-exceptions: now catch out-of-memory exception, and print a
somewhat informational message
bin/findSwig
-added comment that version 4.3.0 does not work
python/findPython3
-no longer add the LOCALMODLIBS flags to PYTHON_LDFLAGS, as this
can refer to .a files only available when the interpreter is built
-updates to handling building/running from a Python virtual
environment by setting the PYTHON_XPATH make variable
Changes from 3.8 to 3.9
--> 3.9 released 2024/05/22
Topology and Parameters
toppar/ion.par
toppar/ion.top
-added thulium Tm+3
toppar/extra/zn-finger.top
-added ZC2H2 patchm and fixed angle specification
toppar/eefx/protein_eefx2.top
-PROP patch (N-terminal proline): fixed to contain neutral group
Helper Programs
bin/calcTrace.in
-added fitPositive, errColumn and errDefault options
-now nonTagSel is specified in create_DEERPot
bin/configure.in
-changed the cert error message to indicate it is non-fatal
bin/ens2pdb.in
-added maxUnreadEntries=None to arguments of initCoords and loadPDB,
so that missing atoms don't cause crash.
bin/evalDihedrals.in
-added selection cmd-line argument
-Fixed for case of -nef not specified.
bin/evalDists.in
-fixed default value of nef variable, so -tbl option is operational
bin/hbScore.in
-added the -listDonorsAcceptors option
-added the -listNeighbors option
bin/jupyterXplor.in
-updated to reflect new location of jupyter executables in
Xplor-NIH distributions
bin/plotLog.in
-fixed use of bounds in vertical, horizontal lines
-added ability to assign pickable (with the GUI) labels to each
point using the @ column specifier prefix. Example: file.txt:1:2:@3
-added workaround for behavior when 'c' is pressed in interactive
mode, and the view history stack is unwound by one
-added the -x/yticRot options for rotating tic labels
bin/slurmXplor.in
-reworked command-line processding s.t. leading '--' are no longer
converted to '-' - but both single and double dash command variants
are matched
bin/torsionReport.in
-change for output of CHI1: change range to -120..240 degrees
bin/xplor.in
-added -V abbreviation for -version: this argument seems to be
used internally by some Python modules, but they are looking for
Python version, not Xplor-NIH version.
-disable use of XDG_RUNTIME_DIR as TMPDIR due to problem (under slurm?)
where the directory is removed when multiple jobs run on a single node
-For parallel invocations: OpenMP num threads is specified on the
command-line rather than by env var, as env vars are usually not
passed via $rsh. This change allows the validate use a value of
OMP_NUM_THREADS > 1.
Example Scripts
eginput/assignFit/03assignFit.py
-updated the 02-03 stage s.t. 5 structures are evaluated for
assignFit rather than one - this allows for a greater chance of
success
eginput/deer/
-added initial calcTrace example/test
eginput/gb1_rdc/wrefine.py
-changed keepWaters option from True to False
eginput/pre/calcPRE-example/
-added example command for use of calcPRE, and simple validation
Python Interface
nmrPot/atomProb.cc
-removed ununsed static genCoord function
-added the method getGridRaw
nmrPot/atomProbProjection.cc
-now do not use AtomSel access in calcMap loop, rather extract all
coordinates with a single call in Simulation::atomPosArr(). This
allows a single call to a Simulation's modified.update().
-Removed the genCoord() function
-calcGradient: use faster path to get atom coordinates by caching using
sim->atomPosArr() rather than sim->atomPos()
common/atomSel.cc
-intersection: case when both selections select zero atoms: do not
take the return sel1 shortcut, because the returned sel string is
confusing. Should the returned sel string always be updated?
common/atomSelLang.cc
-processStringProp: OpenMP-parallelize matches loop
python/aWeightsTools.py
-added new aWeightsTools.randomizeWeights
python/cdsVector
-added abbreviated class names
-__getitem__: deal with case negative range
cif/cif
python/cif.i
-added nullCategoryName static member for category name for
entries when '.' is missing - added shortcut __getattr__
-formatCategory: if categoryName is nullCategoryName
python/cifTools.py
-models(): deal with the case of a missing pdbx_PDB_model_num record
nmrPot/deerPot
-added errs/setErrs; changed energy def to use this
-Restraint::setObs() def: moved out of header, now update maxVal,
fitStartIdx
-fixed gradient for non-one errors
-implmented dDeerTraceIntegral_dt
-added Restraint id() member/accessor;
- Restraint::setTimeVals: not handle case of different restraint
having same timeVals
- initialize correct integralList element
-added calcVintra, dVintra_dt helper functions
-dDeerTraceIntegral_dt: fixed for negative time
python/deerPotTools.py
-createTags: now support SEGID:RESID format restraints by changing
selectionMaybeInt to selectionMaybeSegidResid, and adding a segid
wildcard in the actual restraint
-create_DEERPot:
o added errCol, errDefault arguments- updated to provide error
values to create DEERPot instance
o changed interpretation of errCol, errDefault
arguments. errDefault now supports a "deerlab" setting.
o added fitPositive flag argument.
o deal with numCopies argument passed to createTags()
o changed the default value of nonTagSel
s.t. the library value is used by default.
-gaussianZeroFit:
o now use chi^2 cost, changed exit condition
o introduced asymm option
o changed default tolerance to 2.
o added fitTime0 argument, method of specifying initial time cutoff
for halfGaussian algorithm
o added maxiters, verbose arguments
-introduce fitParams
-analyze: add error column
-randomizeWeights now uses aWeightsTools.randomizeWeights
python/deerPotTools.py
-gaussianZeroFit:
-- added returnFit argument so that the fit can be examined.
nmrPot/densityGrid.cc
-added support for MODE 12, used by RELION to hold data in Float16 fields
-splinep is now a union to either 3D- or 2D- spline;
-2D interpolation now used for 2D slice data
-readCCP4: now recognize ISPG=0 (for stack of 2D data)
-added the aveVal method
-interpolate: fix in determining the upper y-bound
common/dihedral.hh
-atomX() accessors: now return objects instead of references, so
they can be used after the Dihedral object is gone, without crash.
nmrPot/dihedralPot.cc
-addRestraints: fixed code for case of bad restraint and
allowBadRestraints==True
python/dihedralPotTools.py
-create_DihedralPot: actually use the the pot's verbose accessor from
the function's argument
python/eefxPotTools.py
-param_LK22 added EEFx parameters for NP type in N-terminal proline
common/ensembleSimulation.cc
-ctor: add call to omp_pause_resource_all before fork so that
OpenMP works ok. This tested with Intel oneAPI (2024) compilers. The
version of OpenMP in pre-oneAPI Intel compilers did not need this fix.
nmrPot/hbPot.hh
python/hbPot.i
-added getKernel()/neighbors() read-accessors and instantiation of
HBBaseKernel
python/findPython3
-added PYTHON_DATAROOTDIR and PYTHON_BINDIR for jupyter support
python/minimize.py
-bfgs: suppress too many iterations warning if verbose is not set
common/pdbTool.cc
-when reading a PDB: read partial segid in the case of line
length< 76; strip off leading/trailing whatespace when matching segid
python/posDiffPotTools.py
-findMatchingSubSel: added special case behavior for when segids
differ, but each selection contains a single segid
-create_PosDiffPot:
o added the kwargs argument, for optional arguments. Now support
the includeHETATM option.
o for the case psf="none" (the string): processing of the input PDB
will now stop when and ENDMDL record is encountered.
o add code to catch invalid keyword arguments
common/potList
-initial isParallel() OpenMP parallelization of energy terms
-updates to fix a bug in PotList::add for finding currentESim,
when the added Pot is an empty PotList - no simulation was found, and
no barriers were called. Now, if no currentESim is set, a second
recursive test is made in calcEnergyAndDerivs.
nmrPot/prePot.cc
-PRERestraint::calcContrib(): fail gracefully if aveSize<1
nmrPot/probDistPot
-added the rho_contrib() method
-added the ProbDistPot::rho_contrib method
-energyMaybeDerivs1: removed spurious call to atomProb_->calc()
-added energyMaybeDerivsPre which simply calls
atomProb_->selection's Simualtion's sync()
python/protocol.py
-cartesianTopology: fix bug where the IVM's baseAtoms were
overwritten instead of appended to.
python/psfGen.py
-seqToPSF: fixed use of rna, dna single character sequences
-seqFromPDB: fixed treatment of isolated atom with disjoint
segid from previous and following entries.
-addResidueName: added the initialize argument to catch calls
to this function not during initialization - because initResidueNames
won't do anything if addResidueName has been caled first.
python/regularize.py
-fixupCovalentGeomIVM:
o now use RepelPot when useIVM=True
o fixed problems in selPair selection passed to RepelPot
python/selectTools.py
-renameResidues: now allow 'rna', 'dna' type arguments
-makeAtomSelStringFromResidList: changed returned selection to new newer
or-less sequence of resids
python/simulationTools.py
-StructureLoop ctor:
o explicitly convert averageTopFraction and averageTopNum to
floats and ints, respectively, so bad values will
crash immediately
o pdbTemplate argument: now support using the INFILE literal.
o added writeViols argument, specify as False to disable writing of
.viols files
-StructureLoop.genAveStats: deal with the case of a zero-sized
ordered region
-genFilename: added the inputFilename argument, with ability to specify
an output file using the INFILE literal in the template string.
-StructureLoop.directFit: some fixes for case when
storeCoordinates=True -- not tested
python/solnScatPot.i
-volContrib: prompted by fix to CDSMatrix copy ctor, make access
to the ret matrix thread-safe (and faster, by pre-spliting, and
using the new rawData access)
nmrPot/tagPairPot.cc
-correlation(): fixed nan for case PrObs is zero
-Restraint::correlation: fixed, setting the denom variable
python/tagPairPotTools.py
-create_TagPairPot: changed the default value of nonTagSel
s.t. the library value is used by default.
python/tagPairDistTools.py
-selectionMaybeSegidResid: allow for non-string input
-createTags: now support SEGID:RESID format restraints by changing
selectionMaybeInt to selectionMaybeSegidResid, and adding a segid
wildcard in the actual restraint
-added module-global variable nonTagSelDefault - nonTagSel will not
default to the database value, if set. Otherwise it
will be set to nonTagSelDefault.
-setWeights: now handle library weights with None value.
python/tagTool.py
-TagDBInfo:
o added tag more tag parameter arguments/initializers
o added systemType ctor arg and class member - this is passed to
psfGen.initResidueNames/addResidueName and as the
seqType argument to psfGen.seqToPSF
-readCoordsInfo method moved from TagInfo to TagDBInfo; now it also
reads nonTagSelString
-updateDBentry: added nonTagSelString and verbose arguments
-TagTool ctor: changed name of argument from selection to nonTagSel
-TagTool.addAtoms: deal with tagInfo.weights have None value
-analyze:
o fixes in output for case of multiple TagEnv variables
o now add nonTagSel to output (so that it is remembered for input)
-loadTopologyIfNeeded: added call to initResidueNames
python/termAnalysis.py
-added the pairLPPotTools module
python/utils.py
-fileContentsOrString: updated the default values for the
contentRegExp argument to exclude directory path elements.
python/xplorDoc.py
-updated for changes to HTML methods in Python's pydoc module
-fixes for HTML rendering with Python 3.11
-ModuleScanner.run: before call to pkgutil.walk_packages, set
PYDEVD_DISABLE_FILE_VALIDATION env var to prevent warning messages
python/xplorDoc.py
-ModuleScanner.run(): changed hack to try to disable warning messages when loading misbehaving modules
python/xplorInit.py
-removed the module argument from the subnormal warning
filter- specifying it disabled the warning disabling
common/xplorWrap.cc
-openTmpFileWithContents: now attempt to create tmpdir if writing
tmpfile fails. This doesn't seem to help the problem because this
directory's parent doesn't exist due to some SLURM/systemd
interaction on multi-job hosts where /run/user/uid is removed while
a job is still running - it seems best to not use this for tmpfiles
TCL Interface
tcl/Makefile
-dropped tclPosnSymmPot.cc: it has no callers or tests
Low-level Changes
CDSlib/cdsMatrix
-fixed copy ctor s.t. the correct version of CDSMatrixBase copy ctor is
called. Previously, the non-reference counted version was used - but
we want reference counting. Fixing this exposed bugs where splitRep
hadn't been called in set, setDiag, setCol, setRow and scale
methods. These were fixed.
-added rawData method to get non-const element access without the
overhead of checking the reference count.
-splitRep() method has now been exposed in the public interface.
CDSlib/cdsString.cc
-matches(CHAR*): removed modification which called matches(String)
- this version should be faster
CDSlib/cdsVector
-added min(vec) function with test, and tests for max(), min()
CDSlib/float16.cc
-added new Float16 type for half-sized floats + test
CDSlib/iomanip.hh
-added hex and dec manipulators
CDSlib/matrixTools.cc
-svd test: reworked to test that SVD eq. holds, but no long
test left and right matrix elements, as their sign is indeterminate.
-callEigen : add element assignment (force copy)
to call splitRep for reference-counted matrix classes - needed now due
to fixing CDSMaitrx copy ctor.
common/modified.hh
-Modified::update():
o add pragma omp single to prevent races.
o added ompThreadSafe argument, now abort instead of raising
exception to get better tracebacks
-added the assertClear method which simply aborts if not clear
common/symSimulation.hh
-sync: now calls modified.update()
Platform-Specific Changes
- jupyterXplor should run on Mac platforms
- AMD64/X86_64 binary package now compiled with Intel oneAPI compilers
-- these are faster
Changes from 3.7 to 3.8
--> 3.8 released 2023/11/08
Topology, Parameters and Databases
toppar/atcun.par/top
-added missing angles around the ligating nitrogens
toppar/extra/ctsa-3.2.top
-moved ctsa.top/par to here, because they're not compatible with
protein-4.0.top/par
toppar/extra/ctsa-4.0.top
-versions compatible with protein-4.0.top/par
-offloaded nonbonded parameters to repel database
-added peptide bond exclusions
toppar/extra/ctsa.top
-symlinks to 4.0 versions
databases/repelPot/ctsa-4.0.dat
-offloaded nonbonded parameters to repel database
databases/repelPot/protein-3.2.dat
-protein-3.2 RepelPot parameters
databases/repelPot/protein-4.0.dat
-added parameters for 4.0
databases/repelPot/protein.dat@
-symlink to protein-4.0.dat
toppar/nag-3.2.par
-NAG parameters moved to protein-3.2 compatible file
toppar/nag-4.0.par
-NAG parameters for protein-4.0, with symlink
toppar/protein.par
toppar/protein.top
-switched default protein parameters/topology to 4.0
toppar/protein-3.2.top
-removed the R1 residue (it is the duplicate of CYSP)
-protein-3.2: added presidues ASPH and GLUH and associated params
toppar/protein-4.0.top
-added group statements to RESIdues to match protein-3.2 (and
earlier). These help maintain a sensible atom order when first and
last patches are applied
-added missing patches to phosphorylate serine, threonine and tyrosine
-removed all nonbonded parameters, including many commented-out
terms; these are now read-in from databases/repelPot/protein-4.0.dat
-CTER patch: fixed carbonyl oxygen names at the C-terminus
-added FIRSt, LAST, option comments where needed
Helper Programs
bin/calcSAXS.in
-added -inner/-outerBoundaryFilename options
bin/contactMap.in
-fix to make work on macs
bin/evalDihedrals.in
-new helper for evaluating dihedral restraints given one or more structure
bin/evalDists.in
-new helper for evaluating distance restraints given one or more structure
bin/mleFit.in
-bin/mleFit.in: added semicolon as delimiter of ordered region
selection to facilitate parsing
bin/plotLog.in
-added the -start/stopString options such that only a subset of
lines are processed to be plotted
bin/xplor.in
-set PYTHONWARNINGS to disable numpy message about subnormals
being disabled
-added support for REPELDB, separated RepelPot parameters
-added the -help-env option and usage_env function - to list
environment variables which affect Xplor-NIH runtime.
-added behavior triggered by the XPLOR_CORESIZE env variable
Example Scripts
eginput/pasd/nef - many updates to this example:
renamed: initMatch3d.py => initMatch.py
-This version should support 2D, 3D, 4D spectra
-fixed proton tight tolerances to those in old initMatch3d
jointFilter.py
-added -refFilename option
-can read all existing distance restraints, using them in the
contact map
-now used single (per spectrum) .pasd file (replacing .peaks,
.exceptions .shiftAssignments files).
-allow specification of all or subset of distance restraints
whose connectivity info to use
talosToNEF.py
-detect symmetric multimers, and handle multiple segids
pass2.py
pass3.py
-changed defaults for highLikelihoodCutoff, violCutoff arguments
to processStructurePass
-allow specification of reference structure
-allow optional specification of distance restraint saveframe name(s)
-use random initial coords, instead of extended structure
-now specify .pasd file names instead of spectrum names
-dihedral restraints now use dihedralPot functionality (but saveframe
name is still specified)
-analyzeStructurePass.py functionality now performed after structrure
calculation (i.e. within the pass2 or pass3 script).
analyzeStructurePass.py
-changed default value of inFileGlob; changed defaults for
highLikelihoodCutoff, violCutoff arguments to processStructurePass
-added -likelihoodCut command-line option
fold.py
-cleanup
-now implement the -dist argument for specify names of distance
restraint saveframes
refine.py
-cleanup
-added the -dist and -refFilename arguments
-switched from CDIH to DihedralPot
-changed averageFitSel to include all backbone heavy atoms
makeNEF.py
-switched over from spectrum names to .pasd file names
-copy all distance restraints from the input .nef file
-in call to removeLowLikelihoodPeakAssignments: changed cutoff to 0.9
-call to removeLowLikelihoodPeakAssignments: switched back to
likelihood cutoff of 0.25
-replace calls to cif.Cif() with nefTools.makeNEF()
pasdContactMap.py
-new contact map tool using restraints in NEF format.
eginput/PSF_generation/genLigand.py
-added entries for lutetium
eginput/PSF_generation/tags/diHisCu/addDiHisCu.py
-fixup for actual location of dihiscu patch/parameters
eginput/strictSym
-removed input .pdb, .psf files, and instead add the scripts which
generate these files: genC2.py and genQuadC2.py
Python Interface
*** Updated Python version to 3.11 ***
python/avePot.py
-allow argument of AvePot ctor to be a callable so that the
current simulation can be set to the local member before the term is
created.
camshift/camshift1.cc
-CamShift1::addResidue: added terminal carbonyl oxygen name
common/aWeights.cc
-setWeights: proper fix for setting pseudo-atom positions which
are exactly colinear
cif/cif
-CIF class: added the catsUseLoops member. When set, use behavior
seemingly required by NEF files.
-Cif::formatCategory: fixed to provide documented behavior
python/deerPotTools.py
-create_DEERPot:
o add the tagInfo and tagSim optional arguments
o the varyWeights argument can now be a aWeights.AWeights object.
python/densityGridTools.py
-trimDensityGrid: added the rectangular algorithm for chosing the
subregion
python/posDiffPotTools.py
-create_PosDiffPot: now allow synthetic AtomSels (created by
atomSel.union or atomSel.notSelection) to be used for the case that
selection2="initial"
python/ensSymSimulation
-new class EnsSymSimulation - an ensemble of structures each of
which has strict symmetry.
nmrPot/gyrPot.cc
-constructor: no longer reset the atom selection to all atoms if no
atoms are in the passed selection.
python/nefTools.py
-CIF class: added the catsUseLoops member. When set, use behavior
seemingly required by NEF files, s.t. all categories after the first
use loops instead of key-value pairs, even for 0 and one-membered
arrays.
-seqFromNEF:
o fix s.t. pseudo-atoms (dummy linkage type) don't
cause a crash
o seqFromNEF: fixes for dealing with cyclic proteins
-genMolecularSystem: fixed for generating cyclic protein systems
-getBlockNames: change behavior for the case of an empty return
value: previously, an exception was thrown, but now an empty
list is returned
-renamed makeCif --> makeNEF
python/noePotTools.py
-readNEF: now print warning if distance bounds are strange
(lower or upper bound specifications are less than zero)
nmrPot/pairPot
-changed the default value of PairPot::rMin from 0.5 to
1e-3. Also, the gradient was fixed to be zero if r1, print additional info about number of
nonbond exclusions.
common/simulation
-currentSimulation: now return 0 if currentSimulation is not
valid
-validSimulation: rework to query only those Simulations in
simulationList
python/simulationTools.py
-testGradient:
o added support for alwaysPrint="nonzero" functionality
o now if passed an iterable potList, use that instead of
creating a new one: In this way, an AvePot(PotList) is not removed.
o can now pass non-PotList sequence.
-minimizeRefine: added verbose argument.
-saRefine:
o added the finalTemp argument, and change its default
value to 5 K -- previous value of 0 caused crashes.
o no longer set the freedom members of any VarTensor objects.
python/socketComm.py
-Comm classes: added singleProc, multiProc, multiProcNoBarrier
methods, test
-startServer: increased the backlog argument from 5 to 1024 to
get rid of kernel messages ``kernel: TCP: request_sock_TCP: Possible
SYN flooding on port XXXX. Dropping request. Check SNMP counters. ''
nmrPot/solnScat
-added inner/outerBoundaryFilename members for writing out
boundary surfaces in SolnScat::calcBoundaryPoints. Also, changed
sign of volume components, and exclude negtaive volume voxels
python/solnScatPot.i
-now separately instantiate CDSMatrix (separate from
that in cdsMatrix module). This cannot be mxed with
cdsMatrix.CDSMatrix_complex
sparta/pdb.cc
-updated to understand C-terminal oxygen names
nmrPot/tagPairDist
-added the tagEnv() accessor
nmrPot/tagPairDist.cc
-saved atoms for TagEnvironment::movedTooMuch: now only
save/compare atoms in nonTagSel- not all atoms in the
corresponding Simulation
python/tagPairDistTools.py
-readWeights: made regexp for reading weights more permissive
(now allows artibrary number of spaces)
-createTags:
o fixed call to TagTool ctor to specify nonTagSel-
need for tags/protein in different Simulations. Also fixed up
analyzePr for this case.
o added tagInfo, tagSim arguments to allow setting
up an TagInfo object outside of the returned object.
-analyzePr(): add the idClosest optional argument
python/tagTool.py
-tags and protein can live in different Simulations. Some
standardization of naming, restructuring, and documentation happened
R1 tag name changed to CYSP so as not to duplicated RESIdue in
topology- it's still a valid name, though,
-TagInfo.simulation member has been rationalized
-added getDBentry, getDBname
-addAtoms: tagName is now reset to dictionary key
-TagInfo.attachTag: corrected the selection used to specify
what is to be attached.
-TagTool.loadCoords: allow tagNum>=num read tag conformations
-TagTool.attachTag(): added fullSim argument, which can be
used to override the identity of the TagSimulation to which tags are
attached.
-analyze(): fixed support for multiple TagEnvironments
python/torsionDBPotTools.py
-torsionDBPotTools.setup_pot() now removes all endocyclic bonds
from global torsions list for torsionDB-affected PROs
-define_cispro_impropers: properly parse PSF !ATOM section
using column numbers. This fixes a failure mode with the previous code
if the segid was a valid integer
python/utils.py
-moved getDBfilename from tagTools module; added dbEnvVar argument
to allow specifying environment variable name of directory where the
file might be located
-fileContentsOrString: added the dbEnvVar argument for the same purpose
python/varTensorTools.py
-addAxisAtoms: add simulation argument to initParams call
python/xplorInit.py
-now suppress disabled-subnormal messages in python/xplorInit.py
common/xplorSimulation
-added xplorSimData member with residueType* accessors/database:
lists of residue names registered for the particular
XplorSimulation.
Documentation
helplib/nih-py-ivm
-added notes about velocities getting reset to zero when a
minimization step type is chosen
TCL Interface
tcl/shiftassign_tools.tcl
-saTools.analyzeShiftAssignments: no longer set PeakAssignment active member, so it only does analysis. Do activation before calling
tcl/marvinAssignment.i
-PeakAssignment added backward compatible accessors for activation
Fortran Interface
source/genic.f
source/rtf.fcm
source/rtfio.f
source/segmnt.f
-removed the MXRTT limit on the number of angles defined in the
topology database - now this is dynamic, with the current value in
num_RTT
Low Level Functionality
CDSlib/matrixTools.hh
-added outerProd(vec,vec)
python/cdsMatrix.i
-removed CDSMatrix - unnecessary redundancy
common/avePot.cc
-energyMaybeDerivs0: now sync() localDerivs, so that subSim's
contribution is summed into that of esim->member()
python/cdsVector.i
-added norm_Vec3 instantiation for norm(CDSVector)
CDSlib/cdsVector.hh
-aborted (commented-out) operator*(s,vec) for general type of s-
the wrong overloaded function of this name gets picked sometimes
common/derivList.hh
-non-const operator[](Simulation*): now set synced flag to false
-init(): no longer treat EnsembleSimulations specially- all
this is now handled in EnsembleSimulation::syncDerivs and
EnsembleMemberSimulation::syncDerivs. Also, unnecessary member
simulation's derivLists were created previously.
-isInitialized: perform extra test to make certain the passed
Simulation has a lookupID in range
common/ensemblePot.cc
common/potList.cc
-calcEnergyAndDerivs: scaling of derivList now happens in
EnsembleSimulation::syncDerivs, if necessary
common/ensembleSimulation.hh
common/ensembleSimulationBase.hh
-moved shared atom quantities to Base class
-syncDerivs methods for both EnsembleSimulation and
EnsembleMemberSimulation: now perform avetype="sum" derivlist scaling
and synchronizing with subSim
common/ensembleSimulationBase.cc
common/ensembleSimulationBase.hh
-clean up used members; added pure virtual resize methods ; moved
ctor to .cc file
-removed unused ensembleIndices_ member; now explicitly initialize
memberNumAtoms/Bonds
-much work to get fill out requierd methods and to get shared
memory working
intVar/dint-node.cc
-construct: improve error message for case of colinear bonds
in bend node configuration
pasd/peakAssignment
pasd/shiftAssignment
-simplified inWrong/RightNeighborhood accessors to be ACCESSORs
-change isActive/activate/inactivate accessor to simply active
python/pyConvert
-added the PyConvert_ModuleError exception
-added new scheme s.t. swig pointer conversion functions
are no longer called directly. but through the new functions
convertSWIGptr and makeSWIGptr. Type info is now initialized when
needed, s.t. not all modules need be loaded before first call to one
of these functions.
-Fixed fromPy(PotList): previously would not properly handle raw Pots:
now throws proper exception
common/simulation.cc
-hack to avoid double deletion issue in deleteSimulation
common/simulationWorld.cc
-finalize: now clear randomSeederList before return
surfD/
-various code cleanup
surfD/chull.cc
-add_on: protect against empty e->adjface[1]
surfD/compute.cc
-Surf::compute_components: recover gracefully from issues in the
convex hull or dual calculations (generating no triangles)
surfD/dual
-work to recover gracefully from issues with the CHull;
-dualize_hull, gen_fc_face now return bool values, false on
unexpected condition
-alloc_fc_edges: now robust to empty temp_e->adjface[1]
-gen_fc_face(): added failing return for case when temp_f is NULL
surfD/io.cc
surfD/surf.hh
-added methods, functions for creating STL-formatted output
Strings Surf::asSTLstring, stlToSatring
common/xplorWrap
-added method openTmpFileWithContents: wrap openFile in loop to
catch case where temp file created in C++ layer is not found on
the Fortran side; now use this in command, fastCommand, select
-openTmpFileWithContents: now exit program if the underlying
directory will not stat (stat returns 0)
python/xplorSimulation.i
-getXplorSimulation: added support for EnsSimSimulation, and now
is recursive, instead of looping
Makefile
-exeinst rule:
now try to deal with symlinked libraries using CANONICALIZE to
get the actual target, and readlink to determine if the library
name is a sym link.
Changes from 3.6 to 3.7
--> 3.7 released 2023/05/26
Helper Programs
bin/aveStruct.in
-changed behavior s.t. -selection option sets -fitSelection if
only the -selection option is given
bin/calcSA.in
-calcSA: removed bad interference between -reportSelection and
-byResidue options (originally, byResidue only considered residues
which contained atoms in reportSelection)
bin/hbScore.in
-updated s.t. the headers are printed after details (if
requested), so they're right above the respective numeric output
bin/mleFit.in
-fixed variance output in the case that fit files are not written.
bin/plotLog.in
-added -xdelta, -title options, and the histogram plotType
-now supports histograms of non-numeric input values
bin/slurmXplor.in
-fixed logic for passing arguments to Python-script options using
the = character separator
-fixes for handling special characters in command-line arguments
Examples
eginput/capsid
-switched from XPLOR VDW to RepelPot in structure calculations
eginput/deer
-added a README file, a brief description of calcPr helper
program, including references
eginput/pasd/nef
o initMatch3d.py
-switched from TCL to Python for standardInitMatch
o refine.py
-added a refinement script
o nef2xplor.py
-simplified output .tbl filenames
-added creation of dihedral restraint table(s)
o fold.py
-update to use DihedralPot instead of CDIH
Topology, Parameters and Databases
toppar/protein-4.0.par/top
-Added toppar/protein-4.0.*, the Xplor-NIH versions of the CNS
topology/parameter files, with 2018 (nuclear) MolProbity radii.
toppar/ion.par/top
-Renamed types (OUF->OUS, SUF->SUS) for sufate atoms in
toppar/ion.* to avoid duplication with toppar/protein-4.0*
toppar/edta.par
-replaced all references to the now inexistent dihe scale constant by 50.0
Python Interface
nmrPot/atomProbProjection
nmrPot/atomProbHeight
-changed bare qc member to an accessor
common/atomSelAction
python/atomSel
-added the AtomSelAction::GetProperty class
-AtomSelAction::Base: added the returnMethodName read-only
accessor. This is now set by AtomSelAction classes which return
values, so that a rewritten Python version of AtomSel.apply, now
returns the named method. This greatly eases the use of the
getter classes.
python/bigraphMatching.py
-python/bigraphMatching: made some debugging lines compatible with python 3
python/cdsMatrix_template.i
-CDSMatrix ctor from list of lists: now throw exception if arg
can't be converted to PySequence
python/cdsVector
-added the __mul__(CDSVector) method,
-added instatiation of __mul__ as FloatMul. Not very
convenient. Would prefer to properly overlad operator*
python/chemShiftTools.py
-convertRestraints: added the "tuples" outFormat option. Also, all
formats should now support both returnDict values.
python/densityGridTools.py
-trimDensityGrid: deal with case that selected region exceeds
the bounds of the original map.
python/dihedralPotTools.py
-create_DihedralPot:
o added nef, nefRestraintName, useSegid arguments - will now read
NEF records
o added restraintString argument for non-NEF input
-added makeTable function
python/iupacNaming.py
-added functions getCurrentScheme, get/setSavedScheme
-to/fromIUPAC: added the check argument: support for
setting/getting/checking the current naming scheme
fixes to iupac<->xplor conversions
python/maxHeightPot.py
-added gamma, softMaxType accessors
-constructor: added the optional target argument
python/maxLikelyFit.py
- added meanCoords method
- fixed PDBWrite to agin write out coordinates for each fitted
structure, but now with a configurable suffix instead of a fixed
prefix
python/nefTools.py
-getBlockNames: fixed code in exception block
-seqFromNEF now correctly identifies cys_peptide residues; throws
exception because we don't know which residue NEF refers to
python/noePotTools.py
-readNEF: can now handle the case where target_value is omitted:
it is regenerated as the midpoint between upper_limit and
lower_limit
-makeTable: now call selectTools.makeAtomSelString so that
restraint tables can be written in a different naming convention
python/pasdPotTools.py
-create_PASDPot: added support for reading from a combined
.pasd file containing peaks, shiftAssignments and exceptions,
optimally, separated with separators.
python/pasd
-pasd.__init__:
o createShiftAssignments: make more robust to missing/bad shift
values and shift uncertainties'
o moved to pasd.saTools
o sparkyPeaks: added the idColumnName, ability to read and use
the Sparky peak id, instead of generating a new one.
-moved asciiHistogram, reportNOEprecision reportNOEaccuracy to
pasd.reporting
-moved removeIntraSegidPAs, removeInterSegidPAs to noeTools
-added new modules to support pasd.protocol.standardIntMatch
-match4d changed id-ing of dimensionality from tolerance
specified to which spectral ranges are specified in the arguments.
-pasd.netfilter:
o added name H for bbSel to support IUPAC
o added members to returned value containing info on the
generated contact map
-pasd.noeTools.getDistanceBinsFromIntensities: now allow distanceBins to be
a list of distances representing upper bounds.
-pasd.peakTools
o added removeLowIntensityPeaks function
o analyzePeaks: now, in reporting, differentiate between
intermolecular and long-range peaks/peak assignments
o nefPeaks: Fix s.t. 2D spectra are properly read.
-pasd.protocol:
o added functions for writing out individual PASD files, and ability to
disable writing in standardInitMatch.
o correctShiftOffset: added name H for bbSel to support IUPAC
o removed writePASDFiles function (only used by jointFilter)
o jointFilter:
- added the refStructFilename argument, deprecate refPDB argument
- replaced the call to writePASD files with individual
write calls (and call other required functions).
o write* functions: fileAccess argument added, passed to TCL versions to
support appending to files.
o added pasd.protocol.standardInitMatch and supporting functions with
capability of writing a unified .pasd file
o added processStructurePass (replacement for newSummarizeMarvinResults)
for analysis of strucuture passes
o createExplicitInverseExceptions: optimized the final loop
adding exceptions including shiftAssignments which overlap SAs in
existing exceptions.
-pasd.reporting:
o added whichBin helper function
o asciiHistogram: added numXdigits argument
o reportNOEprecision: changed heavyatomSel argument name, added
longRangeCut argument, and changed default value of tclOutput.
o reportNOEaccuracy: improved output, added info on intermolecular
restraints
-pasd.saTools:
o renamed initialAnalysis --> analyzeShiftAssignments
o cacheConnectedArray: fixed to work properly for crit argument string
of "three", "four", "five"
o added the function reportShiftAssignLikelihoods
o createShiftAssignments: support shift lists missing error values.
-pasd.selectTools:
o stereopartners: fix to LYS entry;
o stereoPartnerForSelection: default return value changed to None
o added support for IUPAC naming
o added makeAtomSelString function
python/pasdPeak.i
-added overlappingSAs helper function
pasd/peak.cc
-change to isLongRange(): now returns true if isIntermolecular is true
pasd/peakAssignment.cc
-updateIsBackbone: update selection for IUPAC naming
pasd/shiftAssignment
-added overlappingSAsByIndex optimizing helper function
common/pdbTool.cc
-write: add missing TER record at end of final sequence
-verbose() accessor: changed to int type
-added the numRead() accessor
-read: don't print out warning for unrecognized ATOM record unless
verbose>1
python/posDiffPotTools.py
-create_PosDiffPot:
o added the cmpRMSD() method to the energy term returned
o added support for psf="none": reading in comparison coordinates
without a PSF
common/potList
python/potList.i
-added the makeCopy method
nmrPot/probDistPot
python/probDistPot.i
-changed prStruct member name to atomProb_ ; initial work to
support fitting to a map generated from an ensemble of structures
-added code to provide (read-only) access to the (removed) prStruct member
-now computes an ensemble map, and gradient
-added ensembleRotateCenter accessor
python/probDistPotTools.py
-removed unused angle for PA1 pseudo-atom, used to encode the
center position of the electron density map
-massSetup change: default mass will now be mass of the
probDistPot.atomProb's selection
-updates to support EnsembleSimulations, i.e. maps arising from an
ensemble of structures
-for EnsembleSimulation calculations, now shift to using a
separate set of projection pseudo-atoms for each ensemble member. This
is necessary for ensembles of SymSimulations (using strict symmetry),
where absolute position of the active degrees of freedom (the
protomer) determine packing.
-create_ProbDistPot: added ensembleRotateCenter argument
-topologySetup: added support for ensembleRotateCenter=False
python/protocol.py
-update CIF header URL, documentation
-protocol.initTopology now allows white space in front of link
statements in topology file
-initCoords:
o now report number of ATOM records read - using the new
pdbTool.PDBTool.numRead() method. This number includes entries
matched by matchInexactAtomEntry
o set selection argument to module-global variable (which stil has
the value "all").
o now print num ATOM records read for all non-zero (non- False)
values of verbose.
o add numAtomsRead to the returned InitCoordsResult object.
-matchInexactEntry:
o added shortcut for case of no resAtoms- in this case a warning
message is not printed (because this segid, resid was not in
the selection argument).
o instead of True or False, now return values of 0,1 or 2. Matches
return 1, 2 for a miss if the selection argument is specified in
initCoods or the atom entry is expected to match a pseudoatom, and
0 otherwise.
python/psfGen.py
-psfGen.seqToPSF: added N-term patch specific to protein-4.0.top
(for HYP resname)
python/selectTools.py
-numResidues: added short circuit logic for 0, 1 values
-correctSymmetricSidechains now correctly treats protein-1.0-based ARG
python/simulationTools.py
-calcAverageStruct: return value is now a namedtuple
-minimizeRefine: suppress printing of energy messages during
minimization.
-testGradient: random component now supported for EnsembleSimulations
common/softMax
python/softMax.i
-coded softMax and logSumExp algorithms with gradients
common/tagSimulation
-combined the genCopy functionality into addCopy()
-added support for posSel and rotateSel to be members of a
different Simulation
python/torsionDBPotTools.py
-torsionDBPotTools.create_RepelPot14 funct. now passes verbose
argument to returned repelPotTools.create_RepelPot call
python/torsionPotTools.py
-split off readNEF from Xplor_readNEF. The former is also used by
dihedralPotTools.create_DihedralPot
-readNEF:
o original assumed target was centered in the smallest
section by limits - now reads nef target and appropriately
calculates tolerance (delta)
o corrected delta determination from limits; raise exception if
target not centered within limits, or selection is bad
python/utils.py
-moved aveDev here from the restraintStats module
python/vecPairOrientPot.py
-new Python-coded energy term restraining the angle between two
interatomic vectors.
TCL Interface
tcl/aeneas_tools.tcl
-switched over many routines to call Python version
-fixes for arg name change in the Python standardInitMatch
-standardJointFilter: subsume writePASDFile function
tcl/marvinAssignment.i
-added the smartPtr() method for the PASD ShiftAssignment class
tcl/marvin_lowlevel.tcl
-nextXplorWord: added hack to skip reading lines after a -note
literal- this to help support .pasd files combining peaks,
shiftAssignments and exceptions
tcl/noe_tools.tcl
-writeMarvinPeaks, writeExplicitInverseExceptions: added the
fileAccess argument to support appending to existing file.
tcl/noe_reporting.tcl
-initialPeakAnalysis: switch to calling Python version
-initialPeakAnalysis: pass description argument
tcl/shiftassign_tools.tcl
-commented-out expandHalfStereopairShiftAssignments
-expandStereospecificShiftAssignments now calls to Python version
-initialShiftAssignmentAnalysis: now calls Python
pasd.saTools.analyzeShiftAssignments()
-writeShiftAssignments: added the fileAccess argument to
support appending to existing file.
Low Level Functionality
CDSlib/cdsVector.hh
- vector() methods: fill in all of the template members (so
that non-default values of SIZE_T and OFFSIZE_T can be instantiated)
- added operator*(Vec,scalar) to make certain noncommutative
multiplication can be handled
- added a copy method which performs a deepcopy - no test added yet
common/ensemblePot.cc
-calcEnergyAndDerivs: now do deep copy for assignment of derivs0 -
this is the places the copy here, instead of someplace further on
where splitRep is called- *or not* - if raw pointer access is used
common/ensWeights.cc
-EnsWeights gradient: fixed bug for minfrac>0: wScale factor was
applied twice. This fix should improve results for scripts
performing population optimization using EnsembleSimulations.
common/potList.cc
-calcEnergyAndDerivs: now do deep copy for assignment of derivs0 -
this is the places the copy here, instead of someplace further on
where splitRep is called- *or not* - if raw pointer access is used
common/xplorWrap
-added debugging data for openFile failure mode
bin/findSwig
-now support swig verions 4.1.0, 4.1.1
Architecture-Dependent Changes
Darwin_arm64:
-workaround for Mac OS X bug where crash/hang occurs in tcl
finalizer of child process when cleaning up after fork.
arch/darwinParseSharedLibs
-added script to parse otool -L output and replace the literal
@rpath with something useful.
source/osx_arm64.f
-fixed manual string length specification s.t. NULL doesn't
appear in output, causing all tests to appear as binary files, thus
messing up the grep for CPU time.
Linux/x86_64/AMD64:
-binary now compiled with the Intel oneAPI compiler with flags
such that the processor must have AVX instructions. If not, a
message to the effect that the processor is not supported will be
printed.
arch/Darwin_arm64/source/Makefile
-optimization downgrade for parser.f to avoid segfault in
test/macrotest.inp
-further optimization reduction for xadc.f
arch/Linux_x86_64/Makefile.defs
-added definition of CAONNICALIZE, used when building binary
distributions so that shared libs are only copied once.
-No longer attempt to rebuild symlink trees in distribution.
Changes from 3.5 to 3.6
--> 3.6 released 2022/10/24
Helper Programs
bin/analyzeRepel.in
-added the -selPair option to compute interactions between a
subset of atoms
-added the -writeVMD option to generate an output file to visually
represent clashes in the molecular context
bin/calcPr.in
-new helper program to compute the pair distance distribution
arising from doubly-tagged proteins.
bin/calcSAXS.in
-calcSAXS-bufSub functionality subsumed into this helper.
bin/calcTensor.in
bin/calcTensor.in
-files specified by the -crossValidate option can now be in
space-separated format.
-reworked to get rid of matplotlib deprecated message
bin/calcTrace.in
-helper program to compute DEER curve from doubly-tagged
molecules.
bin/configure.in
-now suppress warnings during python module precompilation
-configure: added check to switch to shipped certifi cert file if
the system cert store does not work;
bin/getBest
-getBest now assumes -symlinks if -symlinkSuffix is provided
-fixed the symlinkSuffix behavior
bin/mleFit.in
-added ability to fit a MODEL-separated set of coordinates in
a single PDB file.
bin/plotLog.in
-added the bar potType
bin/pty-xplor
-various fixups, mostly cosmetic, but one consequential: switch
from SIGALRM to SIGUSR1 for parent/child communication, as under
recent versions of xterm on XQuartz, SIGALRM is somehow blocked.
bin/slurmXplor.in
-get the -N option working; now place the -o outfile in the
directory in which slurmXplor was invoked
bin/targetRMSD.in
-targetRMSD now assumes -write if -fitSuffix is provided
bin/torsionReport.in
-added a selection option- this dramatically speeds-up calculation
for large systems
bin/xplor.in
-added stub location to hold cert file definition
bin/xplor.in
-for -slurm case:
add --overcommit option *required* after SLURM 21.08.05:
the task which spawns xplor via srun now counts as a task
for slurm accounting purposes, so we are less one for spawned jobs.
Since this task consumes approximately zero resources, we specify
overcommit. Commands run directly from the batch step do not count
against resources - perhaps there is some way to designate this
script as the batch step.
bin/calcPRE.in
bin/calcPr.in
bin/calcSAXS.in
bin/calcSAXS2.in
bin/calcTensor.in
bin/calcTrace.in
bin/plotLog.in
-updated matplotlib set_window_title to non-deprecated usage
Examples
eginput/deer/validateCalcPr.sh
-added test of calcPr
eginput/emRefine/dock.py
-added moveAtoms argument to call to centerOnMap. Otherwise this
procedure will not work for maps away from the origin - because
pseudoatom translation/rotation is not yet supported for volumetric
maps (by AtomProb)
eginput/pasd/nef/validateFold.sh
-loosened the successful number of long-range restraints
-added accuracy check of fold structures to discovered PDB coords
eginput/PSF_generation/genLigand.py
-added commented-out skeleton for finding and enforcing planarity
for atoms bonded to three atoms
eginput/saxs_EI/EIA-PEP
-exercise the bufSub algorithm in the calcSAXS helper.
Topology, Parameters and Databases
toppar/dihiscu.par
toppar/dihiscu.top
-toppar/dihiscu*: changed N-Cu bond and N-Cu-N angle to averages
between NTA- and IDA(like)-based structures (small changes)
toppar/waterRef/parallhdg5.3.pro.new
-added d-amino improper parameter for N-terminal residue
databases/tags/CED.top
-removed terminal protons, oxygens
databases/tags/R1-deer-20220902-fit1.0_0.5_2.5_73.pdb
databases/tags/R1-database.pdb@
-updated R1 rotamer coords/weigths/parameters
Python Interface
- Python versions 3.9 and 3.10 validated
common/atom
-added Atom::selectionString with test
python/atomAction.py
-randomizeDomainPos: now uses mat3.randRot()
nmrPot/atomProb
nmrPot/atomProbHeight
nmrPot/atomProbProjection
-added AtomProbHeight specialization
-changed zmax --> height; gradient fixed
-AtomProb*: added info() methods
-moved maxType from AtomProb to AtomProbHeight
-changed AtomProb base class gridVals member to MODACCESSOR member
gridParams - this is a safer way of accessing the member, and a more
apprpriate name.
-fixup for uint32_t subtraction issue
python/aWeightsTools.py
-createPseudoAtoms: explicitly disable angle auto-generation
-psfTemplate: remove bond angle
python/cafeMolTools.py
-readCovalentParams: bumped default Repel radius up to 6 Angstroms
to better avoid bad contacts in the CafeMol 12-10 term
-readCovalentParams: increased bead radius from 2 to 5 Angstroms -
with this value, torsion angle randomization is less likely to cause
problems from nbond close contacts
nmrPot/deerPot
-changed accessor names for intrinsic weights from weights1/2 and
setWeights1/2 to iWeights1/2 and setIWeights1/2
python/deerPotTools.py
-create_DEERPot: change handling of paraAtomRadius, probWidth,
distanceSigmoidWidth to use facility where they are recorded in the
tagCoord file.
-now use tagPairDistTools.selectionMaybeInt to convert input to
selections
-analyze:
o added column of intrinsic weights to weights1/weights2 output
o simplify code for computation of centroid positions
nmrPot/densityGrid
-added the x/y/zValues() accessors
-added the shift method
-writeEDM: careful treatment of unsignedness of x/y/znum versus what is
acceptable .edm output
-fixes mostly to get rid of type mismatch warnings
-added copy operator; fix some type mismatches
python/diffPotTools.py
-fill_in_results: protect results.Chi_2_Dof computation from DoF < 1
python/distSymmTools.py
-genDimerRestraints: added support for auto-generation of
residue number range by omitting the resids argument.
common/ensembleSimulation.cc
-shutdown(): now only call Simulation::makeCurrent() if size>1 or the
current Simulation is being shutdown. Otherwise, the current Simulation
is gratuitously changed.
python/globDiffPotTools.py
-loadGlobAtoms: quiet XPLOR PSF messages
-create_GlobDiffPot: case where an atom (specified in globMap)
is missing: previously threw exception. Changed to instead print
warning message.
python/ivm.py
-autoTorsion:
o optimized search for atoms not in any hinge.
o optimized loop getting all grouped atoms into hingeList if one
hinge is specified for any atom in the group.
nmrPot/pairLPPot
-added pairLPPot, Lee-Ping nonbonded term for racer force field
python/maxHeightPot.py
-analyze(): added report on gamma value.
python/pasd/__init__.py
-sparkyPeaks: added the heightColumnName argument - previously
didn't really use peak height/intensity info
-added the updateUser helper function.
python/pasd/match.py
-new module containing match4d function to replace three matching
functions in tcl/aeneas_tools.tcl
-match4d inner loop now implemented in C++, and OpenMP parallelized
-match4d: added debug message and updated call to Peak_match4d for
changed signature
pasd/peak
-Peak ctor: added default name argument; added the match4d inner
loop from pasd.match.match4d
-match4d: parallelize loop matching shift assignments to peaks- make
certain that the CDSString object is only referred to using copy() in
the parallel region.
-switched to manipulating const ShiftAssignment pointers; match4d:
no longer takes PASDPot argument
-addShiftAssignment: make this thread-safe in the sense that
this member can be called in a multi-threaded region while the
ShiftAssignment is shared, by obtaining a copy of sa->name()
s.t. reference counting does not occur.
python/mat3.py
-added mat3 randOrient and randRot functions, with test
-added constructor from three row- or column- vectors
python/maxHeightPot.py
-added the MaxHeightPot term to minimize the height in a specified direction
python/nefTools.py
-seqFromNEF: added support for the +HE2 variant
nmrPot/pairDist.cc
-changed weight1/2 to private members, added getter setter accessors
-ctor, removeAtoms1/2: fixed s.t. weights are always normalized,
if appropriate
nmrPot/pairPot.cc
-energyMaybeDerivs, updateNeighborBin: now throw exception if
number of atoms has changed since construction of the term;
certainly we can't continue if atoms are deleted. Does it make sense
to silently ignore atoms added after construction? Currently,
terms such as RepelPot must be instantiated *after* any atoms
(including pseudo-atoms) are added.
common/pdbTool
-format(): now calls determineFormat if format_="unknown";
determineFormat: no longer does check or throws exception
-readCIF: now check return value of cifData.parse
-readPDB(): will now return unplacedAtoms for the case of zero
atoms in the PSF
python/planeDistTools.py
-create_PlaneDistPot: now register to associated
XplorSimulation, as this is what will be manipulated by the IVM
-now only call simulationTools.registerTopoTerms if pseudo-atoms are
added
common/pot.hh
-updateValues(): now clear modified
common/potList.cc
-PotList: fixed modified clearing
nmrPot/prePot.cc
-setCoeff(): no longer set modified - this is called by
calcEnergy, so it's always left in a modified state
python/probDistPotTools.py
-centerOnMap: added the moveAtoms argument to move the molecule,
instead of the map pseudoatom
-probDistPotTools.analyze() now includes output from
info() method
python/protocol.py
-splitModel: added default value to explicitModel argument
-topologySetup in aWeightsTools, ensWeightsTools, hmxPotTools,
probDistPotTools modules: added the options argument. This is now set to
[rigidSidechain] in the call from protocol.torsionTopology .
-updated pdbLocation
-added checkPseudoTopology function with calls in torsionTopology,
cartesianTopology: checks that all pseudo-atoms are explicitly
configured in the specified IVM.
-added the unknownEntries member to InitCoordsResult so that PDB ATOM
records which can't be matched are recorded.
python/psfGen.py
-cisPeptide: reimplemented s.t. the residue on the C-terminal
side of the peptide bond need not have resid=startResid+1 (so it now
works for deletions, and cyclic peptides).
-cisPeptide: fixed logic for proline links
-added Amber HIE, HSE histidine variant residue names
-added CYANA's CYSS residue variant (CYS w/out HG); updated
atomSelTest output which results
-seqToPSF: seq argument can no longer be a directory
python/racerFF.py
-added initial support for Racer coarse-grained RNA force field
nmrPot/racerHBPot
-new HB energy term.
common/softMax.cc
-added the SoftMax class
python/saTensorTools.py
-analyze: now explicitly unregisterTopoTerm of created VarTensor
(automatic garbage collection no longer works)
python/selectTools.py
-isCisPeptide: made backwards-incompatibile change so that the
definition of the Omega angle is consistent with that in
psfGen.cisPeptide. Also, generalized so that the consecutive residue
numbering is not required.
python/simulationTools.py
-add unregisterTopoTerm, and made calls to gcRegisteredTopoTerms do
nothing. This change means that pseudo-atoms associated with energy
terms must be explicitly removed from an IVM's configuration if so desired.
python/solnXRayPotTools.py
-added entry for potassium, and references (contributed by
Cristian Escobar Bravo)
python/tagPairDist
nmrPot/tagPairDist
-added tagRadius and tagAtoms query accessors
-make TagPairDist a proper stand-alone class, and import it when
tagPairPot and deerPot are imported
-changed accessor names for intrinsic weights from weights1/2 and
setWeights1/2 to iWeights1/2 and setIWeights1/2
python/tagPairDistTools.py
-sortRotamersByIWeight: now copy all tag atom coordinates,
not only that of paraAtom.
-added selectionMaybeInt to do conversion from (something
which can be converted to an int) to an atom selection selecting a
residue number. Use this in createTags.
-added setParaAtomRadiusDistanceSigmoidWidth to set these parameters
from explicit value, a default value or value from tagEntries.
-change setProbWidth to do do the same.
-add check that only a single set of intrisic weights is present
-moved Pr/tag distance and weight info from deerPotTools.analyze
to tagPairDistTools.analyzePr
nmrPot/tagPairPot
-changed accessor names for intrinsic weights from weights1/2 and
setWeights1/2 to iWeights1/2 and setIWeights1/2
python/tagPairPotTools.py
-create_TagPairPot: change handling of paraAtomRadius, probWidth,
distanceSigmoidWidth to use facility where they are recorded in the
tagCoord file.
-analyze(): now call tagPairDistTools.analyzePr
common/tagSimulation
-added the baseAtom() method. Note that this is currently
implemented with a lookup array, which should be fast, but it is
another array of length numAtoms
python/tagTool.py
-doRandomizeTorsions: added attachAtoms argument, used to
specify which tag atoms to hold fixed.
-topologySetup: added options argument to operate only if
rigidSidechains is specified in the options argument
-TagDBInfo (tagInfo): new members probWidth, distanceSigmoidWidth,
paraAtomRadius added
-addAtoms:
o more careful calling of updatePseudoAtoms so it can be
relied on during internal IVM calls
o now read in new TagDBInfo values to tagInfo, if present in coordLibrary
-added analyze function to print these values in header of output PDB.
-analyze: fix restraints-reading code s.t. it operates only on
terms with a tagEnv method
python/torsionTools.py
-added a selection argument to the RotomerStats ctor- this
dramatically speeds-up calculation for large systems
python/utils.py
-fileContentsOrString: added the contentRegExp argument s.t.
non-filename strings without newlines can be passed as contents.
python/varTensorTools.py
-calcTensor:
allow fewer than 5 observed RDCs if fewer than 5 singular values are
used- this occurs for symmetric homodimers- where 4 RDCs can be used to
determine an alignment tensor.
-create_VarTensor:
o added support for use with SymSimulations
o now register to associated XplorSimulation-if simulation is not an
EnsembleSimulation
python/xplorDoc.py
-added HTMLDoc.filelink to return an empty string- these do
not work online (file:// is not going to work here), and leaks local
info. Could be fixed if pages are generated for all source files
-ModuleScanner.html_getfile: fixed by adding imports
-TextDoc: added docroutine method - needed to process restructured
text blocks.
-HTMLDoc.markup: now include all restructured text parts to get
stylesheet (needed for nicely-formatted math), This may cause problems
if multiple stylesheets are emitted.
-ModuleScanner: added a hack to suppress an INFO message from
OpenGL.acceleratesupport. It is possible this is triggered by the
xpra package.
python/xplorPotTools.py
-PotData.__init__: added DANI support
python/xplorSimulation.i
-addAtom: now strip atomName - leading and trailing space should
not be significant/present
common/xplorWrap.cc
-openFile: now perform a ::sync() if the specified file isn't present,
before failing
Low-Level
CDSlib/cdsString
-thread-safety comment added
-copy ctor: changed order of applying reference count
-cdsMapConvertToInt: now a template function
-len is no longer mutable, so will not be changed in const
objects; added a matches(String) implementation; cdsMapConvertToInt:
no longer contains a static variable
CDSlib/cdsList.cc
-copy ctor: changed order of applying reference count
CDSlib/cdsMath.hh
-feq: fixed return value (to bool)
CDSlib/cdsVector.cc
-copy ctor: changed order of applying reference count
common/modified
-Modified: added the asString() pretty-printing method
CDSlib/randomNum.hh
-setSeed: added numReseeds argument- with default value of 23
s.t. numbers are dissimilar for the first few calls to
uniform(). The previous random number sequences can be obtain by
setting numReseeds to 0.
CDSlib/redBlackTree
-removed TemplateStack dependence - now use CDSList; comment-out
Enumerate method
-removed unused class (CDSList serves fine for my purposes
CDSlib/spherePoints.
-pointsOnSphere now takes a (seeded) RandomNum argument so that
*different* random sequences can be generated - this impacts
nmrPot/solnScat.cc.
CDSlib/cdsSStream.cc
-str_volatile(): manually set string length - change required by
CDSString len implementation change
TCL Interface
tcl/aeneas_tools.tcl
-standard3dInitMatch: added info message for verbose output
-cleanups (removals from aeneas_tools)
-replaced all calls to match2d/3d/4d to call pasd.match4d
tcl/import_pipp.tcl
-moved unfoldPeakPosnToMatch, unfoldedPeakPosnMatches from
aeneas_tools to import_pipp
tcl/noe_reporting.tcl
-initialPeakAnalysis: added more info to message printed when no
peaks assigned
tcl/tests/stripeTest.tcl
-added outputting shift assignments
Fortran Interface
source/hbonds.f
-added the param hbond PRINt statement to allow disabling of
HBONDS: lines during energy calculation
-HBDSET: added mssing comma in write statement
Architecture-Dependent Changes
- Linux - x86_64: reduced g++ optimization to -O0 for whole TCL interface
when compiled using gcc-12
- Darwin: in Makefiles replaced cp with $(CP): on Darwin this becomes the
ditto command, because cp does not seem to properly copy .dylibs.
- cif/cifScanner.lex
changed definition of YY_INPUT macro: had used istream::readsome, but this
is not reliable (and didn't always work on Darwin_arm64), so I switched to
using istream::read, followed by a call to istream::gcount to get the
actual number of bytes read.
- Darwin: added support for the M1 ARM architecture (Darwin/arm64).
Changes from 3.4 to 3.5
--> 3.5 released 2022/05/10
Helper Programs
bin/analyzeRepel.in
-new helper program
bin/calcTensor.in
-switched parseArgument options over to form with description included
-fixed ensWeights config error
-added -ensWeights option
bin/detChirality.in
-now exit with error message if no structures are specified
bin/plotLog.in
-for lines specified on the command-line, now convert positions
into floats, so they can coexist properly with other plotted values
bin/ramaStrip.in
-moved set_window_title to manager- upcoming matplotlib change
-switched xplor.parseOptions options argument over to new
version which includes descriptions.
bin/targetRMSD.in
-added -useBIOMT option
bin/xplor.in
-added the -help-all argument, and, for Python helper
programs, removed usage_common output from -help output. Now -help and
-help-script result in the same output, while -help-all reports
-help-script and -help-common output.
-add --exact flag to srun for versions after 20.11.02
Python Interface
nmrPot/atomProbProjection.cc
-AtomProbProjection::calc(): fix s.t. grid is generated, if is has never been set
python/atomProbTools.py
-moved setVdWRadii radiusByName weightByAtomElectrons
weightByResidueElectrons from probDistPotTools to atomProbTools
common/atomSel
-added removeBySelIndex member; with test
python/cafeMolTools.py
-genPSF: added ability to deal with multi-segid (chain)
structures, including dimers; now check name of first atom/glob, and
if it's P, change beginPatch for P-terminated 5' - but this
currently terminates all chains the same.
nmrPot/deerPot
-create_DEERPot: now use already-read weights
-added the removeTagAtoms1/2 methods
python/deerPotTools.py
python/deerPotTools.py
-create_DEERPot:
- added the tagTool monkey-patched member to the returned DEERPot.
If the final time of a DEER trace is larger than 1ms, then times
are interpreted as in microseconds, and scaled down to seconds.
-fitBackgroundModdepth:
- added absSlopeVals, modDepthVals for start points of grid search.
-analyze():
- now write out Vintra contribution in a separate column
- now sort intrinsic tag weights
nmrPot/densityGrid.cc
-readCCP4: allow the NULL character to pad the MAP entry
(previously onlyh allowed space character).
nmrPot/dihedralPot.cc
-fixed showViolations() output; operator>>
-improved error handling of input
nmrPot/eefx.cc
-energyMaybeDerivs: fixed issue where f(z) is not defined for z=0
-resetSelectionPairs: fix arguments to addSelectionPair
python/eefxPotTools.py
-create_EEFXPot: improved group cutoff check error message
python/gyrPotTools.py
-analyze: added title to .viols output
-create_GyrPot: fix targetVol specification s.t. if specified, a
single term is actually returned
python/jCoupPotTools.py
-added reference and standard Karlpus coefficients
python/pasd/__init__.py
-readSTAR: now return the initialize starData Cif object.
-starShifts: now handle case where errors are not present with the
addition of a new defaultErr argument.
-findUnassignedAtoms: some optimizations/simplifications.
-convertShiftsFromTCL: added the optional err argument s.t. errs are
now contained in the returned list of tuples.
-createShiftAssignments: expand the definition of intermediate
dimension nuclei from those atoms bonded to the from- or to- nuclei to
allow 2-5 intervening bonds, or to define the connectivity using a
through-space distance bound. For this the arguments
to/fromConnectedCriterion were added.
-asciiHistogram: now don't crash on empty passed data.
eginput/pasd/nef/initMatch3d.py
-switched over to Python-based findUnassignedAtoms,
- -createShiftAssignments
python/pasd/noeTools.py
-getDistanceBinsFromIntensities: fixed logic for using default
intensity bin values.
python/pasd/protocol.py
-jointFilter:
- added selection argument to pass to netfilter.
- added required required TCL package require call
python/noePotTools.py
-genRestraints: added optional targetDist argument
python/protocol.py
-initCoords: moved fixMethylImpropers/fixProtonImpropers into
argument proper.
-loadPDB: now allow the useVariantResnames keyword argument passed to seqToPSF
-downloadPDB: added the content argument with the ability to
download and return the CIF header.
python/psfGen.py
python/psfGen.py
-seqToPSF: fixed behavior when residue with variant's name is
present in the topology.
-seqFromPDB: don't call processBiomtEntries if there are no remarks350
nmrPot/pairDist
-added removeAtoms1/2 methods; added test
python/pasdPotTools.py
-create_PASDPot: fixed call to utils.fileContentsOrString
python/posDiffPotTools.py
-create_PosDiffPot: improve handling of selection2 argument for
the case where it's an AtomSel
python/probDistPotTools.py
-moved setVdWRadii radiusByName weightByAtomElectrons
weightByResidueElectrons from probDistPotTools to atomProbTools
-centerOnMap: changed warning message
python/protocol.py
-initStruct: use proper Python bool for erase argument
python/pyInterp.cc
-command: no longer print error message for nonzero exit status
nmrPot/repelPot
-added contactDistance method
python/regularize.py
-fixupCovalentGeomIVM: allow rigidRegions, translateRegions
argument to be strings specifying single region
-fixupCovalentGeom: changed use of VDW term (useVDW=True) to
only be used in combination with the bond term
python/shapeBeadRep.py
-create_BeadRep: added xsim.sync call after creating bead atoms
nmrPot/tagPairDist
-added the removeTagAtoms1/2 methods
python/tagPairDistTools.py
-createTags:
- default outSegidPref is now blank
- clamp tagTool.defaultSegid to 3 char in length
-removed rotamerWeights function
-setWeights:
- now allows weights array to be longer than num rotamers
- now use pot.tagTool.weights if weights argument is omitted.
- added warning if no weights to set
-added sortRotamersByIWeight function
nmrPot/tagPairPot
-added the removeTagAtoms1/2 methods
-restraints() method: now returns a reference to the restraints_ method
python/tagPairPotTools.py
-create_TagPairPot:
- formatting change
- now check that restraint selections select>0 atoms
- now use already-read weights
- added tagTool duck member to returned pot
- now actually use instanceName argument; analyze: now sort
intrinsic tag weights
python/tagTool.py
python/tagTool.py
-added R1 residue to default protein.top, so added support for
specifying a system in the TagDBInfo topology entry. Changes required
in TagTool.addAtoms()
-attachTag:
- new requirement that tagged residues have a segid < 2 characters.
- fix code to clamp to 4 char segids
- now use segid of tagged residue as prefix in tagSimulation segid copies.
-TagDBInfo: added otherNames for resname aliases
-addAtoms:
- initParams for tag- make certain it happens only once. This is ugly.
- now read weights, if present and store them in the self.weights member.
- now only read ATOM records if the resName is in otherNames
- only call addUnknownAtoms if atoms are actually missing.
python/torsionTools.py
-genXplorRestraint: removed debugging output
python/utils.py
-added function fileContentsOrString
python/varTensorTools.py
-calcTensorOrientation: now check return value of IVM.run()
and make additional attempts at minimization if it returns a failing
condition.
python/xplorDoc.py
-added support for ... blocks which include reStructuredText
python/xplorInit.py
-parseArguments:
-parseArguments:
- updated to support options argument which contains option
argument and option descriptions, which are used to
auto-generate usage information.
--help output: reduced left margin for option
- parseArguments: fixups s.t. the options argument can contain
mixed string and tuple entries.
TCL Interface
tcl/aeneas_tools.tcl
-createShiftAssignments: now use keyword arguments so as to not be as dependent
on the Python calling signature.
-createShiftAssignments: now use Python implementation
Databases
databases/tags/R1-database.pdb@
databases/tags/R1-deer-20201030-fit20_95.pdb
-switched default R1 database to version CDS created from lysozyme data
Examples
eginput/emRefine
-simple example of refinement against an electron density map
eginput/gb1_rdc/refine.py
-added reference for Karplus coefficients
eginput/pasd/nef/initMatch3d.py
-switched over to Python-based findUnassignedAtoms, createShiftAssignments
eginput/pasd/nef/jointFilter.py
-fix for input exceptions file name
eginput/pasd/nef/summarize_pass2.py
-converted TCL -> Python code
eginput/PSF_generation/genLigand.py
-added values for flourine - getRadius: provide better message when atom key is
not available.
eginput/PSF_generation/genLigandCif.py
-use pdbx_model_Cartn_x/y/z_ideal if experimental coords not present for all atoms
-added the -typePrefix option (to avoid conflicts with other
genLigand-generated top/par sets
eginput/saxsref/refine.py
-modernize script a bit
Low-level
-configure is now generated from bin/configure.in
CDSlib/cdsString
-strip: added optional argument to specify whitespace to be stripped
CDSlib/cdsVector
-added the remove(index) method
common/ensembleSimulation
-EnsembleSimulation::sizeOneSimulation(): added the create
argument- a new SizeOneEnsemble is created only if it's true.
barrier(): now return earlier if size==1 - s.t. barriers for size=1
EnsembleSimulations can occur in single-threaded regions.
common/simulation
-now sync() method is implemented by default, calling the
appropriate EnsembleSimulation::sizeOneSimulation's sync
common/symSimulation.cc
-addCopy: added check for selections with non-empty strings, but which
select zero atoms.
common/tagSimulation.cc
-updateValues: no longer call markAsModified
common/xplorWrap.cc
-xplorwrapproc_slave: doubled initial timeout period
-XplorWrap::openFile:
sometimes, on cold nodes (computers on which Xplor-NIH has not
recently been run by the current user), we get:
%VOPEN-ERR: IOSTAT= " 29 "
%ASSFIL-ERR: error opening file /run/user/...
%ASSFIL-ERR: Error accessing file
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
BOMLEV= 0 reached. Program execution will be terminated.
on the first call to XplorWrap::command. It appears, that the write of
the command file has not occurred prior to opening it (in Fortran) for
read. This mod calls stat() on the file in C++ before the Fortran open
call to hopefully fix this race condition. This may incur a
performance penalty.
Topology and Parameters
toppar/carbohydrate-nmr.param
toppar/carbohydrate-nmr.top
-updated carbohydrate topologies/parameters - reference included
toppar/extra/zn-finger.top
-re-enable HIS-proton deletion in two patches- this will cause a
warning if the HD1 proton is not present.
toppar/protein-3.2.top
-added the R1 MSTL residue
toppar/protein-3.2.par
-reformatted comment to be legible
Changes from 3.3 to 3.4
--> 3.4 released 2021/11/18
Helper Programs
bin/calcSA.in
-now will read multiple PDB files and compute the average over these.
bin/headerHelp.in
-better handling for nonexistant term names.
bin/jupyterXplor.in
-fixed call to which'' - to POSIX command -v
bin/mleFit.in
-added missing parentheses in call to variance file's call to
close (so that the file is always written).
bin/xplor.in
-improve determination of scriptName such that previously
determined value overwritten if it is not an existing file.
bin/slurmXplor.in
-fixed the memory specification to mem-per-cpu instead of mem (per
node). Previous value was actualy memory per job
Python Interface
python/atomProbTools.py
-new module to aid in creating and casting AtomProb subclasses.
python/cafeMolTools.py
-added some support for the CafeMol coarse-grained RNA force field.
python/chemShiftTools.py
-convertRestraints: NMRSTAR tables:
-get error and properly include it in generated restraints.
-add GLY protons and IUPAC names to accepted atom names.
python/deerPotTools.py
-fitBackgroundModdepth: now raise an exception if normalize=True,
as this is not currently supported by DEERPot
-create_DEERPot: added the optional probWidth argument
python/densityGridTools.py
-split off sliceToBytes from sliceToImage
-mergedSlicesAsImage:
- now implement magenta/green color scheme of Geissbuehler, Lasser (2013)
- added offset and verbose arguments
- add ability to deal with DensityGrids with different grid parameters
-sliceToImage:
- fixed minVal subtraction, and deal with constant-value maps.
- added the usePalette argument.
-added functions create_DensityGrid, covarianceValues
python/dihedralPotTools.py
-create_DihedralPot: added the optional allowBadRestraints argument.
python/eefxPotTools.py
-create_EEFxPot:
- now throw exception if asList==True
- added call to testGroupCutoffDist for sanity
python/findPython3
-LIBDIR, INCLUDEDIR: now strip prefix off of directories,
rather than take final path element
-reworked logic for PYTHON_PREFIX, so it is compatible with other
paths (LIBDIR and INCLUDEDIR, from which it is stripped)
python/gyrPot.i
-get Python return values for gyrTensor and eigenPairs methods -
the latter is a cheat
python/mat3.py
-replaced star import with names used
python/noePotTools.py
-added allowBadRestraints to NOEPot, create_NOEPot to accept
restraints specifying nonexistent atoms without throwing Exception
python/pair12_10PotTools.py
-added pair12_10PotTools module supporting the Pair12_10 energy term
python/pairDHPotTools.py
-added support for the pairDHPot term.
python/pasd/noeTools.py
-moved distance-bound code from tcl to Python
python/pasd/__init__.py
-readSTAR: now include error in tuples returned
-changed definition of distanceBins elements to include
intensity fraction from strong to weak
-findUnassignedAtoms:
-simplified selections in default value of expectedNonassigned.
-handle shift lists which include > 2 elements (i.e. including err field)
python/pasd/noeTools.py
-getDistanceBinsFromIntensities: added optional distanceBins
argument; added default binning fraction info for bins which are
missing it (i.e. distanceBins definitions only having distance bounds)
python/planeDistTools.py
-massSetup: fix (skip configuration) when freedom is ignore or fix
python/probDistPotTools.py
-addAxisAtoms(): fixed call to initParams to avoid deprecated warning
-create_ProbDistPot: added mapType argument s.t. map type is
specified at object creation, with a call to
atomProbTools.create_AtomProb.
-analyze:
- increased by 2 the precision of reported correlation value.
- added info on Gaussian blurring
-added function weightByAtomElectrons
-added function setVdWRadii
-changed precision in call to registerExtraStats
python/psfGen.py
-seqToPSF: fix logic finding linkage info for nucleic acids.
-seqToPSF: for rna: fixed use of begin/endPatchCmd
python/pyConvert
-added toPy(SymMat3) - which returns a SymMatrix
python/rdcPotTools.py
-python/rdcPotTools.py: corrected internuclear distances
-python/rdcPotTools.scale_toXH (X=N,C) added custom argument
-rdcPotTools: Added function scaleDa, to which now scale_toNH,
scale_toCH, and newly added scaleRDC use
python/regularize.py
-fixupCovalentGeom: now turn off output for cloned XplorSimulations
python/relaxRatioPotTools.py
-removed * import - this messes up the auto-generated documentation
python/restraintStats.py
-updates for addition of precision member to ExtraStats class
python/selectTools.py
-IVM_flexibilizeRiboses: now, no longer process riboses which are
already in IVM groups (an optimization)
python/simulationTools.py
-testGradient: now allow components to be the string "all"
python/tagPairDistTools.py
-createTags:
- added tagCoordFilename, paraAtomname arguments which get
passed to new call to tagTools.updateDBentry
- added the optional probWidth argument
-analyze:
- now print distance and total weights to the .viols output
- always print second set of weights so that distance weights
are reported .
python/tagTool.py
-added function updateDBentry
python/termAnalysis.py
-registerExtraStats: added precision argument
python/torsionTools.py
-setTorsionsFromTable: added the optional selection argument
python/utils.py
-split off processReStructuredText from printReStructuredText,
adding the part and settings_overrides optional argument, and adding
support for html outputType
-char_range: added the num argument
python/xplorDoc.py
-spilldata defined in TextDoc.docclass:
- fixed body which appears to be from an HTML version - taken from
the pydoc version. If the getdoc function were class-local, then
I could use pydoc.TextDoc, instead of reimplementing it.
-render_doc: refreshed from pydoc 3.9 version
python/xplorInit.py
-parseArguments(): added the minArgs and maxArgs arguments
C++ Level
nmrPot/atomProb
- now can be used as a base class
-change in arg sent to resize() to avoid integer overflow
nmrPot/atomProbProjection
-added AtomProbProjection class dedicated to computing projections
to simplify AtomProb code
-now supports Gaussian blurring
-changed transformed coord formula to R(q-qc) + t
-now have new member - qc, the atomSel centroid
-centerOnMap:
- added separate definition for classes with qc member
- fix calculation for projections
-analyze: print out centroid, if it exists
nmrPot/csaPot
-added removeRestraint
nmrPot/deerPot
-added the g1 and g2 accessors used to specify electron g-factors
of the two tags
-changed obs setter's name to setObs; removed unused norm method
nmrPot/densityGrid
-readCCP4:
-don't let znum be set to 0
-change logic for identifying an MRC file to allow orix, oriy, oriz to
specify the origin
-on verbose output, now print identified format
-removed accessors rotMat, rotMatT, transVec, origin
-toGrid methods: now use rounding instead of cast to int; readCCP4:
-added members variance, interpolate and rotateTranslate
-added function correlation
-changes for being able to read density maps with > 2^31 data
elements; this required changes to CDSVector to handle the larger
size.
-ctor w/ zslice value: now initialize zdelta to 1
nmrPot/dihedralPot
-added allowBadRestraints option, s.t. ill-formed assignmnets
don't cause exception to be raised
nmrPot/eefx
-added testGroupCutoffDist
-energyMaybeDerivs: added energy component output to verbose
report on close contacts
nmrPot/gyrPot
-moved SymMat3 def into CDSlib
nmrPot/noePot
-added allowBadRestraints to NOEPot, create_NOEPot to accept
restraints specifying nonexistent atoms without throwing Exception
nmrPot/pairPot
nmrPot/repelPot
-added PairPot template- this makes very easy the addition of non-bonded
terms depending on only inter-atomic distance.
-converted RepelPot to use it
-reworked to make certain NeighborBin spacing is consistently set
correctly when repel is changed
nmrPot/pair12_10Pot
- new 10-12 nonbonded term implemented using PairPot.
nmrPot/pairDHPot.hh
-added pairDHPot - a Debye-H\"uckel term implemented using PairPot
nmrPot/probDistPot
-ctor: add optional atomProb argument - now have to keep track of
whether it is internally generated for proper cleanup
nmrPot/tagPairDist
-added nonTagSelection accessor
nmrPot/tagPairPot
-Restraint ctor: fix the use of the weight1/2 arguments
-added the nonTagSelection() accessor
common/xplorWrapProc.cc
-XplorWrapProc::XplorWrapProc:
now close of file descriptors 3 and up on fork. For clone=true, first
call xplor_cleanup_output, and afterwards call xplor_init_output
to properly deal w/ i/o in Fortran layer. Failure to close the file
descriptors will lead to duplicated output when files are closed in the
Python layer at shutdown.
TCL Interface
tcl/aeneas_tools.tcl
-moved distance-bound code from tcl to Python
Fortran Level
source/insertText
-converted to Python3
source/parser.f
-now close the previous DISPLAY_FILE when set display is called
source/x86_64time.f
-vclose: print out UNIT number on error
-VCHKTT: now check unit 5 only once, and save the result to
avoid gratuitous reopening
source/xplorFunc.f
-XPLOR_CLEANUP: now unset the initialized flag
-split off xplor_init_output, xplor_cleanup_output from
xplor_init, xplor_cleanup, respectively - allows calling from
XplorProcWrap for clone=true.
Low-level Functionality
CDSlib/cdsList
-added SizeType, OffSizeType typedefs
CDSlib/cdsVector
-added SIZE_T, OFFSIZE_T template parameters so that vectors can
hold full-memory-range objects, while not impacting size/speed of
use for smaller vectors.
CDSlib/fixedVector.hh
-added SizeType, OffSizeType typedefs
CDSlib/matrixTools
-created single, templated EigenPair struct
CDSlib/subVector.hh
-added SizeType, OffSizeType typedefs to generic Vector, SubVector
CDSlib/symMat3
-moved SymMat3 def into CDSlib
CDSlib/vector.hh
-added SizeType, OffSizeType typedefs to generic Vector, SubVector
Examples
eginput/pasd/nef/runTalos.sh
-now allow TALOSN to be an externally-specified env var specifying
the talosn executable.
eginput/PSF_generation/genLigand.py
-added code to deduce bonding in absence of CONECT records
-deal better with situations where there are chemType collisions;
added the -chemType option to manually specify chemType if needed
eginput/PSF_generation/genLigandCif.py
-fixed improper force const value
eginput/runAll
-changes to fix output and naming of .out and .err log files
Databases, Topology, Parameters
toppar/cafeMol_rna.top
-topology info for a coarse-grained RNA force field
Architecture Specific
arch/getDarwinCPU
-updates for Intel i9 and arm64 platforms
arch/Linux_x86_64/Makefile.defs
-fixed adding -fallow-argument-mismatch argument for gfortran
versions 10 and up
arch/Linux_x86_64/tcl/Makefile
-compiler optimization downgrades for gcc-11
arch/Linux_x86_64/vmd-xplor/Makefile
-disable custom definition of createLibrary - falls back to
createSharedLibrary in arch/Linux_x86_64/Makefile.defs
Changes from 3.2 to 3.3
--> 3.3 released 2021/06/11
Helper Programs
bin/aveStruct.in
-update to support colon-separated altLoc field in PDB filename
bin/calcDaRh.in
-added support for space-separated columnar RDC table format
bin/calcPRE.in
-added the -sbmf and -taut options.
-add fix for ens size>1
-fix behavior with multiple plots generated for ensSize>1
bin/calcSA.in
-added -outfileName option to write out PDB file with b-factor
field filled with computed surface area.
-added the -psf option
-added printout of total surface area
bin/calcSAXS.in
-update to support colon-separated altLoc field in PDB filename
bin/calcTensor.in
-added -addUnknownAtoms option
-added support for space-separated column input table for tables ending
in .dat or .txt
-added the -DaRh option, by which Da and rhomicity are specified,
and the orientational portion of the alignment tensor is determined
from input RDC values and the given structure.
-added the -txtNames option s.t. atom names can be speicified for .txt
input tables
-added special rule for -genNames when atoms cross the peptide bond (NC'
RDCs)
-preliminary plotVsResid support
-fixes to allow bad restraints in cross-validated RDCs
bin/compareTensors.in
-updated/generalized the ability to read Saupe matrix info
from PDB headers.
bin/domainDecompose.in
-added -deltaThreshold -smallestDomain options
attempt to treate multiple segids- doesn't yet work
bin/energyPlot.in
-fixed handling of cycle=lines
bin/findClusters.in
-check that atoms in selectin are actually present (and erase
previously read coords)
bin/getBest
-fixup to get --output-rst working
-added the -extension option
bin/mleFit.in
-replace call to PDBTool.read() with protocol.initCoords; check
that files arn't missing atoms in specified selection
-mleFit: now doesn't write structs twice when both -pVariance and
-writeStructs are invoked
bin/ramaStrip.in
-update to support colon-separated altLoc field in PDB filename
bin/slurmXplor.in
-More careful with defaults:
--mem option now specifies memory per task, and defaults to 2G
-ntasks now explicitly defaults to 1.
-The SLURM_MEM_PER_NODE is set to the -mem value s.t. srun picks up the
value when run from the xplor script.
-slurm output filename is now based on Xplor-NIH output filename.
bin/targetRMSD.in
-added maxUnreadEntries=None argument to loadPDB calls
-update to support colon-separated altLoc field in PDB filename
-added -removeMissing functionality for cases in which one of
the selections is missing atoms.
bin/torsionReport.in
-update for change to rotStat.circularStat return value
bin/xplor.in
-fix to allow -pydoc -h to work
-changed TMPDIR setup:
1) now TMPDIR (parent) defaults to XDG_RUNTIME_DIR, if it is set
2) added the -tmpdir option to explicitly override the parent
TMPDIR setting.
3) this can also be set (and propagated to spawned processes) using
the XPLOR_TMPDIR environment variable.
-more complete quoting of input arguments s.t. trailing spaces are
preserved
-added TAGDB env var for tagPairPot
Python Interface
python/atom.i
-fixed and documented Atom::bondedTo
-added the __hash__ method
python/atomAction.py
-multiple functions: fixed for case where current Simulation is
not that refered to by selection argument
python/aWeightsTools.py
-split AWeights-specific functionality from ensWeightsTools to
aWeightsTools
python/cdsMatrix.i
-added the add(), and rawData() methods
python/cdsVector.i
-cdsVector: added the exp function, test
python/chemShiftTools.py
-added support for reading NEF shifts
-now allow glycine alpha carbons
-convertRestraints: now include err in genereated restraints
-convertRestraints: added returnDict argument- this to support
grouping shifts by nucleus type- is required by SpartaPot
-nameConvertType: added support for IUPAC "H" amide proton name
python/cifTools.py
-genAtomSite: fixed treatment of occupancy, bfactor by adding
occupancyPrecision, bfactorPrecision arguments with default values,
and allowing these to take non-floating point values.
python/csPotTools.py
-added support for NEF input. Added iupacNaming argument.
-update analyze term, and now register it.
-create_CSPot:
o pass verbose setting through to created pot term
o added the selectionFilter argument
o now find chem shift block using getBlocksOfType,
instead of by name.
python/deerPotTools.py
-Helpers for DEERPot
python/densityGridTools.py
-added function sliceAsImage()
-added functions sliceToImage and mergedSlicesAsImage
python/dihedralPotTools.py - helpers for DihedralPot
python/eefxPotTools.py
-initEEFx: added verbose argument, passed through to initParams
python/ensWeights.i
-setWeights(): add barrier *before* setting weights to avoid
racing (e.g. in ensWeightsTest)
python/maxLikelyFit.py
-orderedResidues: make more robust with respect to selection
argument not being a string
python/nefTools.py
-readNEF:
o changed first parameter to optionally be a NEF string
o added optional makeDisulfideBond argument.
-seqFromNEF: return disulfide bonds found in covalent_links entries in a
disulfides list.
-genMolecularSystem - added covalent_links section for disulfide bonds
-nefShifts: now include chem shift err in returned list
-added getBlocksOfType where sf_category, if present, determines
block's type
-getBlock: allow shortcut block names for those which start with
the blockType
python/noePotTools.py
-create_NOEPot: gracefully handle block without
nef_distance_restraint attribute.
python/pasd/__init__.py
-nefShifts: fix TCL output
python/posDiffPotTools.py
-create_PosDiffPot: added the removeMissing argument for cases
when atoms are missing from one selection- this is handled by the new
function findMatchingSubSel.
-findMatchingSubSel: now support multiple segids
python/posRMSDPotTools.py
-RAPPot: ctor: add optional tol argument
python/prePotTools.py
-create_PREPot: changed default values of selection1/2
python/probDistPotTools.py
-changed the name of the create_ function- added assignment for
backward compatibility
-create_ProbDistPot:
o changed sel parameter name to selection
o added rotateCenterMap argument, to enable rotation/translation of
projection map
o implemented with 4 pseudoatoms for orientation plus an extra for
translation
-added massSetup, topologySetup, centerOnMap functions
-analysis: add print out of orientation/translation if enabled.
-now properly register topologySetup
-added the weightByResidueElectrons function
python/protocol.py
-added support for begin/endPatch optional kw args passed to
seqToPSF (via pdbToPSF)
-initTopology: rationalize s.t. the system argument does as
the docstring describes.
-Now, initResidueNames() is only called for the specified system, and
no longer with forceReread==True.
-initOrie: add the optional distCutoff variable used in
databases/rna_rna_pairs/rna_nonconsec_setup.tbl
-writePDB: added writeConnect argument, support for writing
CONECT records
-torsionTopology: fixes s.t. flexRiboseRings works when some
regions are configured for Cartesian topology.
-initCoords, loadPDB: added support for setting
PDBTool.allowedAltLoc method using the allowedAltLoc parameter.
-splitModel: now support altLoc field (a non-integer value)
added this support to loadPDB, initCoords
-added massSetup calls for probDistPot
-writeCIF: enable the occupancies and bFactors arguments, and
allow the to take the value "default" to fill the respective field
with ".".
-updatePseudoAtoms: now allowed for Simulations not based on
XplorSimulations.
-initStruct: added the verbose optional argument
-genExtendedStructure: replace "sel" argument with
"selection"- but retain the former as deprecated for now.
-initParams:
o deprecate silent parameter- replace with verbose
o change behavior of weak_omega option to be a scale factor
-initTopology: add the verbose parameter
-cartesianTopology:
o change default value of sel parameter from "all" to "not PSEUDO"
o change previous behavior where pseudo atoms were always excluded.
-initBiomtCoords: don't crash in case there are zero ATOM
entries with a ChainID that is present in the PDB.
-loadPDB():
o added support for useSeqres, deleteMissingResidues, and
deleteMisingAtoms.
o added support for psfGen.seqToPSF's convertToGly argument
python/psfGen.py
-deprecate argument names ntermPatch, ctermPatch. These are
replaced with beginPatch and endPatch, respectively.
-pdbToPSF:
o now only pass begin/endPatch arguments to seqToPSF,
instead of all via kwargs
o add the deleteMissingResids and deleteMissingAtoms options
to read the REMARK 465 and REMARK 470 PDB records, respectively, and
delete atoms as indicated.
-initResidueNames: made initResidueNames_seen a per-system list
-updated seqFromCIF to include seqType entry in each element
of the seqs attribute.
-seqToPSF:
o no longer hard-code termination patch names- they are now
setable using the module-global variables default_beginPatch,
default_endPatch
o added the convertToGly option
o change default value of deprotonateHIS from True to False
-add function findResidueName
-seqFromPDB:
o fix logic for altRec identification to be short-circuited if a
backbone atom is encountered
o don't place tag residues in altRec fields if backbone atoms
are present
o proper support for useSeqres=True
-seqres():
o make compatibile with seqFromPDB return value
o now read the DBREF record for the start resid
o seqres: now deduce sequence type from length of the shortest
residue name: rna for 1, and dna for 2.
o added new logic to determine startResid for chains when
useSeqres=True: the DBREF record may not have the actual
start resid- only the portion corresponding to the sequence in the
database. This *may* be accounted for in a SEQADV record, but the
documentation does not make clear how this is accomplished.
-seqres(): seqType is now "protein" if not "rna" or "dna"
-pdbSeq, pdbToPSF: a blank pdbRecord argument is again allowed, but
now prints a warning.
python/pyConvert.cc
-fixed fromPy('single char') for Python3
python/pyXplor.cc
-pythonStartup: added a python reference to the initial PyInterp
python/rdcPotTools.py
-spaceSeparatedToRestraint:
o fixed for case of segid being specified
o added support for C-N RDCs across the amide bond.
-Rfactor: added selection argument
-showViolations(): now only print deviation if ensemble size > 1,
only print useSign if at least one is false; now print
per-restraint scaling, if at least one is not 1.
-scale_toNH/CH: now don't crash if rdc has no restraints
python/regularize.py
-fixupCovalentGeom/IVM: change default selcetion to omit
pseudo atoms
-fixupCovalentGeom: add True/False return value
python/repelPotTools.py
-analyze: added instanceName to output
-now print out atoms with unknown coords before throwing exception
python/residueAffPotTools.py
-create_ResidueAffPot: changed default sel value to known and not PSEUDO
python/selectTools.py
-numResidues: fixed for sparse selections (which don't
select atom selected by the tag keyword)
-groupRigidSideChains, IVM_groupRigidSidechain: changed default
selection from "not PSEUDO" to "all"
-added the numElectrons function
python/simulationTools.py
-gcRegisteredTopoTerms: garbage collection now depends on the
value of xplor.interp.traceLevel
-minimizeRefine: fix s.t. it works if the ANGL term is missing
-registerTopoTerm:
o remove bit which sets/checks for __topoRegistered member
o fix bug in clause dealing with EnsembleSimulations
python/simulationTools.py
-StructureLoop.run(): fixed placement of s.sharedByStruct assignment
so that it is written to even if structure is not written - this
reverts a change made 2013-11-01. Note that filtering top results is
always required.
python/spartaPotTools.py
-added supprt for reading chemical shifts from NEF data
-now always configure Sparta obj using Xplor-NIH-native atom naming
-get dictionary-split restraints from convertRestraints for NEF input
-create_SpartaPot:
o added the selectionFilter argument
o now find chem shift block using getBlocksOfType, instead of by name
o use from/toIupac logic in potlist setup
python/tagPairPotTools.py - helpers for TagPairPot.
python/talosTools.py
-convertTalosN: protect against missing angle entry
python/torsionTools.py
-added verbose argument to torsionTools.setTorsionsFromTable
-RotomericStats:
o binAngles: now works without angleFilename
o circularStat: now also returns min/max values
o getAngles: capitalized Omega angle name
-genXplorRestraints: add comment argument/functionality
-added ramaNumber function
-genXplorRestraint:
o add new possible value for value argument: None, in which case
the value is read from the current structure,
o added "omega" to supported names.
python/torsionPotTools.py
-Xplor_readNEF: no longer depend on target_value being present
python/varTensorTools.py
-calcTensorOrientation: add the verbose optional parameter to
allow for more quiet output.
-addAxisAtoms: no longer increment current_axisResid- simply
retain test that axis atoms with given resid do not already exist.
-added simulation argument to calls to addAxisAtoms and updatePseudoAtoms
python/xplorDoc.py
-merged changes from Python 3.7->3.9 required to get HTML class
documentation
-ModuleScanner: backbport changes from pydoc.py s.t. keyword
lookup works again
python/xplorInit.py
-added docs on builtin members and functions
-provide fix for case where -m is specified, but no script name
-added helper function: callerName
C++ Level
CDSlib/cdsMatrix
-added the copy(CDSMatrix) method which doesn't do ref cnting;
minor changes which may help with OpenMP thread safety
-CDSMatrixRep: calling delete [] on a zero-initialized pointer can
cause problems under OpenMP num threads >1. Protect against this.
CDSlib/cdsVector
-added element-wise operator*()
-constructor from C array, size: now perform copy so original array
is not overridden
-operator*(v1,v2): fixed by adding splitRep
-added sign( vector ) function template
-added operator==(), operator!=()
CDSlib/fixedMatrix
-added cols, rows accessors
CDSlib/fresnel.hh
CDSlib/nontemplate/fresnel.cc
-added normalized fresnel integral special function code from the
cephes library - CDS code from 1995
CDSlib/gaussQuad
-added template class for Gaussian Legendre Quadrature - 1D integration
CDSlib/mat3
-added fromRows, fromCols methods
nmrPot/atomProb
-added isProjection accessor, initial projection support
-calcMap: verbose output now reports number of contributing atoms
-added orientation accessor, and d_dR member filled, by calcGradient()
for use in projection calculations
-added translation accessor, and d_dt member filled, by calcGradient()
-added the atomWeights member
common/atomSel
-Added AtomSel.difference() function, its doc and test
-AtomSel ctors: changed argument name from defaultSimulation to
simulation to follow documentation, common sense.
-ok member is now true by default- only set to false if there's a
problem reading in operator>>
-intersection: can now take an arbitrary number of arguments
common/atomSelLang.cc
-propList: fix to preserve order for ordered selections
-select(): abbreviations can now be nested.
-abbreviations(): square brackets now removed from abbreviation names
returned as keys.
common/aWeights
-split off angle-encoded weights from EnsWeights into separate
class - AWeights
camshift/camshift.cc
-CamShift::stringToType: recognize GLY HA atoms
-stringToType: now support IUPAC-named amide proton
camshift/camshift1.cc
-Dihedrals::add(): now protect against invalid read when
selection does not include cterminus
-HBond::calcBondEnergy: protect against taking power of small
(including negative) arguments.
-Prot::getChemicalShift(): now protect against invalid sidechain atoms
-ctor: fixed bug in use of AtomSel tag keyword
nmrPot/csPot
-restraint reading: better error handling, reporting
-reworked restraint reading to make sense, and be nmore robust
-added the selectionFilter member to ease specifying a subset of
chemical shifts to use as restraints
nmrPot/deerPot
-added files for new DEERPot term
nmrPot/densityGrid
-added support for 2D maps (.mrcs files) which have one or more 2D
slices, stored in separate Z-layers. The zSlice accessor has been
added to specify slice.
-removed DensityGrid::get
-added minVal method
-added zSlice argument to copy ctor for generating a 2D map
-readCCPN(): now allow NZ!=NS for slice maps
nmrPot/dihedralPot.cc
-Dihedral energy term to replace XPLOR CDIH term.
common/ensWeights
-split off angle-encoded weights from EnsWeights into separate
class - AWeights
camshift/iupac.hh
-removed unimplemented (unneeded?) static functions
nmrPot/pairDist
-now normalized by prodcut of atoms in selections by default;
added normalize accessor; expose members as public; fixed bug when
selections are not the same; fixed gradient error
-added derivatives wrt position weights
nmrPot/pairDistPot
-new energy term
common/pdbTool
-added read/write support for CONECT records
-added altLocs method
-numModels(): fixed for case when read() is not called beforehand
-determineFormat: gracefully handle case of blank input file contents
nmrPot/prePot.hh
-ctor: changed argument name preDefs --> restraints
-added sel1/2Filter members and ctor arguments
nmrPot/probDistPot
-added atomProb(), targetMap() accessors
-added atom accessors defining projection orientation, and
accumulate appropriate gradient wrt energy
-added support for pseudo-atom representation of map translation
nmrPot/psolPot.cc
-fixed missing factor of 1/3 in expression for <1/r^6>
-energyMaybeDerivs1: check for situation of uniform observed
values when using correlation targetType, and print a message and
throw exception.
-fixed misuse of Simulation::currentSimulation(), instead of
sel.simulation() in two instances. This leads to crashes when using
with SymSimulations.
intVar/publicIVM.cc
-idAtom: change atom identification to use atom.string()
nmrPot/repelPot.cc
-bumps(): now call modified.update() so it can be called without
previously calling calcEnergy
common/simulation
-added optional force argument to deleteAtoms method
sparta/sparta.cc
-addAtomType: some IUPAC suport: for atom names HA3 and H
-various optimizations for vectorization and OpenMP parallelization
nmrPot/spartaPot
-added the selectionFilter member to ease specifying a subset of
chemical shifts to use as restraints
surfD/
-changes to use C++ structures, reduce use of bare pointers; removed
matrix allocation routines from utils; important: fixed bug by limiting
calls to Tessel::gen_linear_recurse based on output array size
common/symSimulation.cc
-addCopy: added call to AtomSelLang::clearCache s.t. atom selections
include the newly added atoms
nmrPot/tagPairPot
-added TagPairPot term for restraining to an input P(r).
common/tagSimulation
-added TagSimulation - A Simulation which contains copies of atoms in
a subsimulation, with the positions of atoms related to those in
the subsimulation by translations and rotations relative to
subsimulation atoms.
nmrPot/utils
-moved/renamed eulerFromRotMat/rotMatFromEuler from relaxData to potUtils
common/xplorWrap.cc
-deleteAtoms: add shortcut return if no atoms in selection or simulation
common/xplorWrapProc.cc
-ctor: now print errno message and throw exception if fork fails
Examples
eginput/gb1_rdc/fold.py
-replaced HBDA, HBDB with HBPot
-replaced CDIH XplorPot with DihedralPot
eginput/PSF_generation/addAtoms.py
-fixed up histidine protonation state. Thanks Guillermo!
eginput/PSF_generation/genLigand.py
-added info for MN+2, and changed mass lookup logic
-correctly read continued CONECT records for atoms with > 4 bonds
-use this info to generate a full set of impropers for centers with > 4
bonds
-fix s.t. impropers are included for ligands which aren't at
the beginning of the PDB.
-now use correct impr force constant
eginput/PSF_generation/writeCIF.py
-added "default" values for the occupancies and bFactors
arguments to writeCIF.
Databases, Topology, Parameters
toppar/axes-1.0.par
-added angle parameter to hold the PA1 atom in the xy-plane for
probDistPot calculations
toppar/protein-3.2.par
-updated for changed weak_omega behavior- now can specify the
omega angle scale factor
toppar/eefx/protein_eefx2.par
-added support for weak_omega, scale factor for omega improper angles
databases/rna_rna_pairs/rna_nonconsec_setup.tbl
-now require XPLOR @distcut variable to be set externally
databases/rna_rna_pairs/rna_rna_pairs_correct.setup3
-set XPLOR @distcut variable before executing
databases/rna_rna_pairs/rna_nonconsec_setup.tbl
eginput/deprecated/rna_refi/rna_orient.setup
-set XPLOR @distcut variable before executing
databases/rna_rna_pairs/rna_nonconsec_setup.tbl
Architecture-specific
Makefile.arch
bin/xplor.in
-rework .old supprt: now .old is required for glibc older than
2.17, corresponding to RHEL/CentOS 6
arch/Linux_x86_64/Makefile.defs
-added the -mtune=core-avx2 compiler option which instructs the
code to use the AVX2 instructions, if they are available
Changes from 3.1 to 3.2
--> 3.2 released 2020/12/17
Helper Programs
bin/mleFit.in
-added support for multiple segids newly added in maxLikelyFit
module.
bin/ramaStrip.in
-added the -model option: now analyze all models by default
configure
-added plotLinear to list of scripts for -symlink option
Example Scripts
eginput/PSF_generation/genLigand.py
-added support for reading CONECT records to generate bond,
angle and impropers for tetrahedral-centers, along with the
required parameters.
eginput/PSF_generation/genLigandCif.py
-added the -fixup option
-Added impropers for protons around planar heavy atoms - so they don't
wobble out-of-plane.
-fixed up generated comment-string
eginput/gb1_rdc/analyze_fold.py
-added ordered keyword to averageFitSel argument of StructureLoop
eginput/gb1_rdc/refine_eefx.py
-updated to do proper initialization
eginput/pasd/nef/makeNEF.py
-now use nefTools.shifts_writeNEF() instead of custom code.
eginput/psl/deoxycumambrin/deoxycumambrin.par
eginput/psl/deoxycumambrin/deoxycumambrin.top
-added missing impropers
eginput/psl/deoxycumambrin/refineLoop.sh
-instead of using single structure for subsequent calc, use all
with consistent chirality
eginput/psl/deoxycumambrin/refineStereo.py
-updates found to produce more consistent results:
. On first iteration when no (or "none") input structure is specified,
randomize torsion angles.
. input structure can now be a glob s.t. calculations begin with
multiple structures.
. VDW term's nbxmod changed to 5 in rampedParams - not sure this is
required/useful.
. now call fixupCovalentGeom before structure calculation.
eginput/pre/fitting/ => eginput/deprecated/pre_fitting/
-deprecate eginput/pre/fitting- it is not our normal workflow
Topology/Parameters
toppar/protein-3.2.par
toppar/protein-3.2.top
-added the SPA patch and required masses and parameters
-added the PTPO patch
-added the PPTR patch
Python Interface
common/atomSelLang
-added fric, charge, x,y,z vx,vy,vz atrributes; implemented lazy
attribute initialization
cif/cif.hh
-added the setDataBlocksToRead/CategoriesToRead setters
python/cifTools.py
-added the models() helper function.
-Added the addToAtomSite function, now used by genAtomSite
nmrPot/eefx
-EEFxPot: add bump report for VdW clashes; report the number of
these as violations()
python/eefxPotTools.py
-added analyze function which reports clashing atoms
python/globDiffPotTools.py
-create_GlobDiffPot: added the globMap argument to specify
mappings between atomic and glob coordinates; added loadGlobAtoms
s.t. glob/bead PDBs do not require PSF files
-updated to deal properly with segids, and help with locating
gaps in the PDBs.
python/maxLikelyFit.py
-orderedResidues: now support multiple segids
python/nefTools.py
-added rdc entry to catPrefixes
-readNEF:
-now allow psfGen.seqToPSF to deduce seqType
-added some support for residue variants
-added the shifts_writeNEF function. It is now used by shiftsFromList.
common/pdbTool.cc
-explicitly return -1 for numModels for CIF format files
nmrPot/planeDistPot.cc
-corrected error in computing center averaging distance
python/posDiffPotTools.py
-create_PosDiffPot: added additional option for selection2: it
can now be the string "initial" in which case the AtomSel is taken
from selection, and the coordinates are whatever is loaded when the
function is called.
python/potProxy.py
-__init__: obj's thisown is set to False to break the
reference cycle
python/probDistPotTools.py
-create_probDistPot: now set the asociated Simulation's noFit flag to True
python/protocol.py
-initOrie: for rna, now allocate more assignment slots bases
on the loop in databases/rna_rna_pairs/rna_nonconsec_setup.tbl where
the value seems to scale with the square of the number of residues.
Added informational message about how many restraints are being
allocated.
-writeCIF(): added the modelCoords argument supporting multiple
PDB model entries
-initTopology: added called to psfGen.initResidueNames
python/psfGen.py
-seqToPSF:
. implemented patches in VarientResidue - now
supports phosphoserine with the SEP residue name, using the new
SPA patch.
. added the TPO residue variant
. added the PTR residue variant
. added the useVariantResnames argument
-addResidueName: added the isVariant argument. This supports the
new behavior that variants defined in a topology file override
those listed in this module.
python/pyPot.i
-added keyword args to ctor; fix docs on arg name
nmrPot/rdcPot1.hh
-Restraint::energy() method now public
python/selectTools.py
-numResidues: now do the work in AtomSelLang, rather than in Python
common/ensembleSimulation.cc
common/simulation.hh
common/symSimulation.cc
-added the noFit flag to Simulation: for ensembleSimulations and
symSimulations, this is set to true, otherwise it is false. This
is used by simulationTools.StructureLoop to decide whether
calculated structures should be fit. For EnsembleSimulations and
SymSimulations fitting is either ill-advised, or quite tricky.
python/simulationTools.py
-StructureLoop:
. added pdbFilesInCorrectSymmetricSidechains argument so
that sidechain conformation switching can be disabled.
. changed default value of averageTopFraction to 0.5
. now use Simulation::noFit() to determine the
default value of averageFitSel, and warn if fitting is performed
when it is set.
. added support for maximum likelihood determination
of the ordered residues in a structure - triggered by
adding the "ordered" keyword to the averageFitSel argument.
-AnnealIVM: fix s.t. numSteps=1 doesn't cause divide by zero
C++ interface:
nmrPot/eefx.cc
-bumps(): fixed index-out-of-bounds problem
python/pot.i
-cleanupPythonInstanceData: now clear pot->instanceData_ after
decref'ing it.
intVar/publicIVM.cc
intVar/publicIVM.hh
-removed manual manipulation of potList_ ref count
CDSlib/rc_ptr.hh
-dtor: now set counter pointer to null after freeing
Low-level
bin/findSwig
-added version 4.0.2
arch/installer.sh.in
-now delete old versions of downloaded packages and distribution directory
-added the -noEnter and -symlinks command-line options
Changes from 3.0 to 3.1
--> 3.1 released 2020/09/22
The configure script now has a mechanism to check for
dependencies during Xplor-NIH configuration. Currently, only the bc
program is tested for.
A downloadable installer script is now built for both architectures.
Helper Programs
bin/calcSA.in
-new helper program for calculating molecular surface area.
bin/energyPlot.in
-now support -vsTime for -printOut. Note that the output will
be garbled if minimization info is included in the input log file.
bin/findSwig
-added version 4.0.1
bin/genSurf.in
-added -E option to set maxTessLen
bin/getBest
-added support for the -output-rst command-line option so that
errors do not appear on the helper program web pages. It currently
doesn't do anything else.
bin/pty-xplor (used by VMD-XPLOR)
-updates for Python3
bin/slurmXplor.in
-now allow back-ticks in Xplor-NIH arguments
bin/xplor.in
-added the -argfile option to pass arguments by file when using
$rsh, because we cannot control how shell-special characters might
be interpreted in this case.
Example Scripts
eginput/cmdline/testCmdLine.py
-added test for arguments including a literal backtic
eginput/pasd/nef/initMatch3d.py
-renamed initMatch3d should should now handle more general
spectra, including determining the identity of the labeled attached
heavy atom
eginput/pasd/nef/
-reworked example to perform complete calculation, generate a NEF
output file, and run a fold calculation.
eginput/pasd/nef/genTalosNInput.py
eginput/pasd/nef/runTalos.sh
eginput/pasd/nef/talosToNEF.py
-script tools to generate NEF output from Talos-N, given an input
NEF file (with chemical shift values).
-makeNEF updated to add trailing stop and save lines for loops and
savesets, respecitvely.
eginput/PSF_generation/genLigand.py
-added an informational message
eginput/PSF_generation/genLigandCif.py
-added P non-bonded parameters; now try using first character of
atom name if nonbonded params are not found.
eginput/psl/deoxycumambrin/refineStereo.py
-unify w/ vatiparol example: removed static random seed and doubled final
IMPR energy scale.
Topology/Parameters
toppar/eefx/protein_eefx2.par
-added missing parameters for CTN (amidated C-terminus) patch
-added parameters including atom type CCIS - the C atom in cis-peptides
toppar/waterRef/parallhdg5.3.pro.new
toppar/waterRef/topallhdg5.3.pro.new
-added placeholder values for CYSP
Python Interface
common/atomSelLangLex.lex
-for byres keyword, now allow other characters after first 4
(e.g. byresidue); added test
python/avePot.py
-removed def of class AvePotPtr- base class no longer exists
when using swig-4, and this class doesn't seem to be used.
-import pyXplorHelp from avePot1 to provide module help
python/cdsList_template.i
-changed members to long int from int to avoid overflow
python/help.i
-fixups for swig-4
python/nefTools.py
-added nefComment function; split out getBlockNames from getBlock
as a separate function
-added functions distanceRestraintHeader and addOneDistanceRestraint
as a common resource for writing NEF distance restraints - use
these in noePotTools, pasdPotTools.py
python/noePotTools.py
-create_NOEPot: now raise exception if nefRestraintName is specified
but nef is not.
-makeTable: changed OR format to be more concise and readable.
-readNEF: instead of using NEF ID, use XplorNIH_label field for
comment, if it is present.
-readNEF: added the optional verbose argument
nmrPot/pairDist
-added pairDist - for calculating a P(r)
python/pasd/__init__.py
-nefPeaks:
o now can auto-determine from/to nulcei identities;
o the return value now contains new keys: numDims, from/toHeavyatom,
and from/toProton.
o change peak to contain the literal 'from NEF'
python/pasd/noeTools.py
-added function removeLowLikelihoodPeakAssignments
-added the function makeNEFRestraintLinks
python/pasd/protocol.py
-fixed Python3 mixed tab/spaces issue
python/pasdPotTools.py
-added writeNEF function
-writeOneNEFAssignment: fixed bounds values
-writeNEF: added the optional origin argument; now return a
tuple of the NEF string representation and information about which
peaks gave rise to each distance restraint.
python/pot.i
-removed help function- causes clashes when using swig-4; added
import of rc_ptr.hh for swig-4
python/potList.i
-changes for swig-4: instantiate rc_ptr, split off C++/Python
entries in ExtendPotList
python/potProxy.py
-__del__(): removed explicit call to underlying proxied
object's __del__.
python/prePotTools.py
-fitRho0: fixed chi^2 scaling to use square of the errors. Also
added optional scaling argument to specify alternate (non-chi^2)
scaling options.
python/protocol.py
-initTopology: no longer concatenate per-system linkage
definitions- these should be reset to avoid improper or too many
definitions.
-initDihedrals: reworked to generate a single string containing
all restraints s.t. num assignments can be precalculated and the
correct NASS value entered.
python/protocol.py
-pdbLocation: switched from ftp to http- ftp seems to be block
when connecting from NIH.
-downloadPDB: improved error handling.
python/protocol.py
-removed debug message
python/pyInterp.i
-swig-4 change: replaced SWIGPY_TypeQuery with SWIGPY_MangledTypeQuery
python/pyPot.cc
-ctor: changed CDSVector constructor name from
CDSVector_Vec3Ptr to CDSVector_Vec3
python/pyPot.i
-swig-4 change: no longer call _swig_setattr to set thisown
python/rdcPot.i
-removed typemap, instantiation of CDSMap
python/simulationTools.py
-AnnealIVM.__init__/run: fixes in specifying s.numSteps, s.step
based on a report from John Kirkpatrick.
-convertToPotList: allow a None argument
python/slice.hh
-changed members to long int from int to avoid overflow
python/torsionPotTools.py
-Xplor_writeNEF: added the optional origin argument
python/torsionTools.py
-setTorsions: when setting up an IVM, specify that flexRiboseRing
in torsionTopology affects no riboses, so that sugar torsions are
recognized.
python/xplorDoc.py
-properly refer to objects defined in the pydoc module
-swig-4 changes: need to pull more in from pydoc module
python/xplorInit.py
-added xplor module import so that this module can be imported
for documentation-generation purposes.
-workaround for when running jupyter* scripts so that the
Xplor-NIH lib paths are retained
-fixed logic for len(argv)<2
TCL Interface
tcl/indexTCLPackages.tcl
-add informational message when processing .cc files to better
catch problems.
XPLOR Interface
source/vector.f
-XRSUB: previously, would overwrite following string with spaces. Fixed.
Changes from 2.53 to 3.0
--> 3.0 released 2020/05/06
Xplor-NIH is now based on Python3. This version is built using
Python3.7, and also validated using Python3.8 (where it produces
somewhat different output). Old user scripts should be *mostly*
compatible with the new version. The following issues may be
encountered:
1) The print statement is now replaced by a function, requiring
parentheses around all arguments, so that
print "hello"
becomes
print("hello")
This is the most common required change.
2) Python3 doesn't allow a mixture of tabs and spaces when they are
significant for indentation scope.
3) The division operator ``/'' now performs floating-point
arithmetic. Use ``//'' for integer division.
4) The module string no longer contains the function join- instead
simply use the string object member of the same name.
5) The syntax for catching exception instances has changed.
Helper Programs
bin/calcTensor.in
-calcTensor now can take more than one input psf
bin/energyPlot.in
-added the -ymax option
bin/genSurf.in
-added more command-line help
bin/hbScore.in
-properly handle case of zero bb H-bonds; update definition of bb H-bonds
bin/headerHelp.in
-switch from imp module to importlib.util.find_spec for getting
path to module.
bin/slurmXplor.in
-changed the --workdir option to the short form: -D
In slurm version 19.05 the long name was switched to --chdir, but -D
will work throughout.
bin/xplor.in
-support for XPLOR_NOLINEBUFFER env var
-expand the allowed characters for a script name to start with, so
that the --help option also give --help-script output for more
scripts (including those specified by absolute path).
-added PDF_OPEN_COMMAND env var with values for Linux and Mac platforms
Python Interface
nmrPot/distSplinePot
python/distSplinePotTools.py
-new energy term: distance restraint using a splined
distance-dependent function.
common/ensWeights.cc
-weights() now calls barrier s.t. consistent results are obtained
python/pasd/__init__.py
-python/pasd/__init__.py: added pipeShifts function to read CSs in
NMRPipe format
nmrPot/prePot.hh
-Added setObs() and setErr() methods to PRERestraint class
python/prePotTools.py
-prePotTools.py: added twoStatePREPot python potential
python/psfGen.py
-seqToPSF: added documentation of LINK comments in Xplor-NIH
topology files
-pdbToSeq: added support for includeHETATM=True for PDB files
nmrPot/psolPot
-added centerOffset parameter; removed 3 unused parameters
-added rmin, centerOffset to info() output; removed power parameter
-rationalized rmin: it should never be less than
r_vdw+r_solute-centerOffset.
-added physicalAtoms member
python/publicIVM.i
-IVMError: added backwards-compatibility message member set
from args[0]
python/pyConvert.cc
-fromPy(String): fix so that Strings can be read from
non-ASCII input
python/ramaPushPot.py
-added missing headerHelp string for call to registerTerm
-configure(): now sort terms for reproducible results
python/rdcPotTools.py
-readNEF: gracefully handle missing NEF fields
python/repelPotTools.py
-create_RepelPot: extraRadii: now multiply by 2.
python/shapeBeadRep.py
-create_BeadRep: suppress # calls info for normal verbose setting
python/socketComm.py
-changes s.t. socket communication is done using bytes instead
of strings
-Comm.barrier: handle case where timeout=None
-Connection.writeData: the Python3 implementation of file.write
for binary objects no longer blocks to write multiple buffers, so
now a loop is required, just like for socket.send.
python/sparta.i
-add Python-level support to SPARTA::getDerivs return value (list
of DerivDataElement)
python/termAnalysis.py
-registeringModules: added two missing modules
python/torsionDBPotTools.py
-create_TorsionDBPot:
o fixed to allow use of threshold=None.
o changed order of arguments in to reflect their importance.
o now if a residue doesn't yield a restraint for
a term (e.g., phi/psi/chi1 for the N-terminus), it won't add a
restraint to other terms in the database file; i.e., a residue has
to satisfy all terms or none in the file will be active.
o added functionality to configure 1-4 repulsive interactions
that complement TorsionDBPot.
-create_RepelPot14: fix to avoid redundant interactions in rings
nmrPot/torsionInterpolPot
-nmrPot/torsionInterpolPot.* added constructors from scalars as string.
python/torsionPotTools.py
-Xplor_readNEF:
o now first argument can be object returned by
readNEF. New argument nefRestraintName specifies the table to
read; it can be omitted if there is a single
dihedral_restraint block.
o now given target value is used, while lower_limit and
upper_limit are used to get delta angle.
python/trace.py
-Trace.trace(): now suppress repeated output from a file's line 1
python/utils.py
-printReStructuredText: Python3 fixups for generating txt and
pdf output. Also, for pdf, set timeout for pdflatex command, and print
diagnostics if there is a failure
-printReStructuredText: for outputType=pdf, now use value in
PDF_OPEN_COMMAND rather than hardcoded value of xdg-open.
python/varTensorTools.py
-varTensorTools module: added function generalizedDegreeOfOrder
python/xplorDoc.py
-replace calls to inspect.getargspec with inspect.getfullargspec
to avoid exceptions with some functions
-got rid of docroutine methods of HTMLDoc, TextDoc: use versions
from base classes in pydoc.
-fixes to get the command-line -pydoc -b option working.
-some fixes added for the command-line -pydoc -k option were
added, but it is still buggy, and doesn't seem to produce
information on Xplor-NIH-specific modules.
-the command-line -pydoc -g option is no longer operational. Use
-pydoc -g instead.
python/xplorInit.py
-switch stderr to line-buffered always. Otherwise, error messages can
be lost. Also, when stderr and stdout are mixed, the result is more
garbled than necessary.
-now line-buffer stdout in addition to stderr, by default, but
introduce XPLOR_NOLINEBUFFER env var to allow disabling
-parseArguments: use os.path.join instead of string concatenation
-temporarily disable code to reset LD_LIBRARY_PATH at startup-
need test cases where failures occur;
-writeConsole(): convert output msg to bytes
-now set locale and encoding. If not set, these can depend on
environment variables, and will be different user to user, machine to
machine. This can affect the appearance of output, and can cause files
with non-ascii characters to cause program crashes.
-argument processing code: reworked so that -pdf no longer has to
come before -help*
-changed handling of environment variables such that they do not
adversely:
o LD_LIBRARY_PATH - now remove XPLOR-specific settings so that
launched programs don't try to link to libraries shipped with
Xplor-NIH.
o environment variables whose names start with PYTHON are now
unset so that launched programs do not inherit them. This so
that local system programs written in Python do not attempt
to use modules shipped with Xplor-NIH.
C++ interface:
common/atomSelLangLex.lex
-fixed error in atomSelLang lexer which prevented segi'' from
being recognized as a valid property
CDSlib/spline
-added Spline::size() accessor
python/pyXplor.cc
-PyMainModule::~PyMainModule:
o changed suppression of stderr during Python_Finalize- to now
use a Python-native approach. Move DECREF to after stderr is
closed.
o now check Py_IsInitialized() before calling into Python API
surfD/io.cc
-SurfOutput(): reformatted the output to be more similar to the original
Example Scripts
eginput/pasd/cvn/makeContactMap.py
-suppress warning from PostScript backend about lack of
transparency support
eginput/PSF_generation/genLigand.py
-fixed sulfur mass, added phosphorus
-will now handle blank residue names.
-Prints an informational message if target resid/segid is not found.
-For cases where the residue has resued atom names, will now generate
-new, dummy names and write out an associated PDB.
eginput/PSF_generation/genLigandCif.py
-fixed sulfur mass, added phosphorus
-updated genLigandCif.py to generate more complete
topology/parameter values- so that the flexible ligands can be
treated.
eginput/PSF_generation/tags/proxyl/addPROXYL.py
-proxyl.top/par files no longer explicit added, because the proxyl
residue is now in protein.top/par.
eginput/PSF_generation/tags/mtsl/addMTSL.py
-Updated
eginput/rna/refine.py
-eginput/rna/refine.py: fixed problem when inputting several rdc files
-fixups for rdc calcTensor bits
Topology and Parameter Files
toppar/extra/ctsa.par
-toppar/extra/ctsa.par: rewrote nonbonded params in terms of
MolProbity radii defined in protein.par
toppar/nucleic-3.1.par
toppar/nucleic-3.1.top
-Added residue INO to nucleic-3.1.*
toppar/protein-3.2.par
toppar/protein-3.2.top
-protein-3.2.*: changed types in CIAP residue to be within 4 chars
toppar/extra/zn-finger.par
-missing bond, angle parameters involving NR1-ZN+2 added by Xiao Wang
Databases
databases/torsions/rna/rna09_v0.dat
-Added residues INO and AP7.
Architecture Specific
- Ported to the Linux/armv7l architecture. Binary not yet packaged.
Changes from 2.52 to 2.53
--> 2.53 released 2020/01/28
Helper Programs
bin/calcPSol.in
-added the -selection command-line argument
-fix to deal with ensembles, including heterogeneous
-added -ensWeights, -targetType, -optEnsWeights command-line options
-fix for non-ensemble calc
-added the -radiusOffset command-line option, and a test if
insufficient number of restraints are read.
bin/seq2psf.in
-added the -singleChar option
bin/targetRMSD.in
-add checking for atom mismatch in selection/selection2- to help
find atom mismatches in PDBs with different atoms.
bin/xplor.in
-added comment associated with previous commit changing
countMachines logic for case when slurm is used, but srun is not.
Example Scripts
eginput/gb1_rdc/foldNEF.py
eginput/gb1_rdc/refine.py
-replaced HBDB with HBPot
eginput/pasd/cvn/makeContactMap.py
-fixed to prevent Matplotlib deprecation warning messages
eginput/pasd/mth1743/bmr5106.str
-used to input chemical shifts for initMatch3dC.py
eginput/pasd/mth1743/initMatch3dC.py
-new initMatch Python script
eginput/pasd/mth1743/talos2cdih.tcl
-script to convert TalosN output to XPLOR restraints
eginput/pasd/mth1743/makeNEF.py
-create NEF file with chemical shifts, dihedral and distance restraints
eginput/pasd/mth1743/testNEF.py
-test that output of makeNEF.py can be read
eginput/PSF_generation/writeCIF.py
-added writeCIF.py test of CIF writing (and reading) capability
-single character sequence version of PROT1.seq
eginput/strictSym/
-added example of using Xplor-NIH's strictSym facility
Topology and Parameters
toppar/extra/zn-finger.par
toppar/extra/zn-finger.top
-added initial zinc-finger topology/parameter files
Python Interface
cif/cif
-added useTrailingPound functionality
-Cif::formatCategory: multiline strings in single component data
members should start on a new line with a ; character prepended.
python/cifTools.py
-cifTools now has working genAtomSite function
-genAtomSite: added an optional dataBlock argument so that
order can be controlled.
python/hbPotTools.py
-readConfigFile: support per-map energy scaling
-analyze:
. add title line
. now actually report appropriate filename for each H-bond
nmrPot/hbSurf
-added energy scale factor
-HBPot::NeighborBin::updateBin: fixes to checking for too many
neighbor bins, including the possibility of integer multiplication
overflow.
-now apply mappings scale to HBSurf
-added support for per-map energy scaling
python/nefTools.py
-genMolecularSystem: added required field: nef_sequence.index
-added getBlock, helper function to get datablocks
corresponding to specific types of restraints, with name
optionally given
nmrPot/noePot
-added the "closest" NOEPot aveType - similar to "shortest", but
instead chooses the inter-atomic distance closest to the value
specified by the restraint.
-operator>>(): (restraint reading) better checking of io errors
when reading restraint bounds. Now print more informative
diagnostic message
-not allow distance offsets to be negative
python/noePotTools.py
-NEF: changed field named distance_restraint.restraint_id to
_distance_restraint.restraint_index as required by the specification
-added required nef_distance_restraint.weight field
-create_NOEPot: added nef and refRestraintsName optional
arguments, with support for reading NEF restraints.
-fixes in output format for NEF writing
-genRestraints: added the distOffset optional argument
python/pasd/__init__.py
-nefShifts: switch to use nefTools.getBlock
python/pasd/noeTools.py
-reworking of tcl/noe_tools.tcl. Currently, only implements
writeXplorAssignments
-writeXplorAssignments: added safety parentheses around output
atom selection strings.
-noeTools.writeXplorAssignment: added per-assignment statement
comment consisting of the PASD peak name
-writeOneXplorAssignment: reworked to omit duplicate
assignment pairs from output
python/pasd/protocol.py
-jointFilter(): fix handling for case of missing refPDB
common/pdbTool
-readCIF: allow the following fields to be optional:
-pdbx_PDB_ins_code, occupancy, B_iso_or_equiv
-PDBTool: added the remarksCatName accessor for reading Xplor-NIH
remarks from mmCIF files
-readCIF: fixed logic for reading only first model if model<=0
-added support for reading CIF XplorNIH_remarks.text items in as remarks
python/posDiffPotTools.py
-create_PosDiffPot: when there's a length mismatch between
selection and selection2, find the first atom for which there a name
mismatch and print the atom identities.
python/protocol.py
-added writeCIF function
-writeCIF: now place remarks before atom_site
python/psfGen.py
-seqFromCIF: support optional pdbx_PDB_ins_code field
-allow for no model field being present
-seqToPSF: fixed singleChar=True behavior for proteins
nmrPot/psolPot
-added minDist() to PSolRestraint, and report this in
PSolPot::showViolations
-added gradient wrt ensemble weights
-findImportantAtoms: change logic when bad triangles are
detected. Now don't fail unless there are zero good triangles
-added the radiusOffset accessor member
python/psolPotTools.py
-analyze: now call fitRho0 on terms which use correlation targetType
python/torsionPotTools.py
-NEF: changed dihedral_restraint.restraint_id to
dihedral_restraint.restraint_index.
-Added field nef_dihedral_restraint_list.potential_type
-fixes in output format for NEF writing
vmd/vmdInter
-reworked the facility for drawing lines- fixing a couple of crucial bugs
vmd/vmd.cc
-updated for changes in the line-drawing routines in VMDInter
vmd/publicVMDInter
-expose and update VMDInter line-drawing capabilites
python/xplorDoc.py
-fixed xplorDoc.HTMLDoc.docroutine to correct the arglist for
notrace_decorated functions.
python/xplorInit.py
-save copy of original LD_LIBRARY_PATH before cleanup
TCL Interface
tcl/cdsList.i
-CDSList wrapper: added fromList, smartPtr methods. Added alloc
size template argument, but doesn't seem recognized by SWIG's TCL
interface
tcl/tclTypeMaps.i
-added DEFAULT_IN_TYPEMAP specifier
tcl/marvinNOEpotential.i
-updated so that CDSList_String, CDSList_PeakPtr can be
instantiated in TCL
tcl/noe_tools.tcl
-writeXplroNOEs now implemented using Python's
noeTools.writeXplorAssignments
tcl/shiftassign_tools.tcl
-writeOneShiftAssign: aded parentheses around output selection
strings- they are required for readOneSiftAssign above
Architecture Specific
-changed Darwin* ARCH name to simply Darwin - no more need for
arch/getDarwin or arch/equivList for the Mac as we ship a single
binary.
arch/Darwin_12_x86_64/Makefile.defs
-Intel compiler updates from Pascal Mercier
arch/Linux_armv7l/
-added armv71 architecture
Changes from 2.51 to 2.52
--> 2.52 released 2019/09/24
Helper Programs
bin/calcPSol.in
-added the -prefactor option
bin/calcSARDC.in
-reworked to use gcRegisteredTopoTerms instead of unRegisterTopoTerm
bin/calcTensor.in
-multiple PSFs now now be specified to the -psf option
bin/getBest
-added the -prefix option. Can be used to specify different
directory if structure files/stats file is moved to a different
directory.
bin/headerHelp.in
-helper to generate documentation for per-term information
included in the PDB header of otuput files
bin/mleFit.in
-fixed doc string to include default atom selection
bin/runSparta.in
-fixes, now works with NMRSTAR tables
bin/slurmXplor.in
-removed -jobs_per_node and -max_procs options.
-Now use simpler and more accurate method to generate MACHINES list
-now pass the -slurm option to xplor script
-changed mechanism of obtaining SLURM node names
bin/targetRMSD.in
-now allow none literal to be specified for -psf and -psf2
options.
-To help find differences if fitSel and fitSel2 are of different
length, find the first instance where the atomName or residueName
differ and print
bin/torsionReport.in
-added the -selection option to operate on a subset of residues
bin/xplor.in
-now check the suffix of the script name to check for -py or -tcl,
and run the appropriate interpreter.
-added the -slurm option (settable via the environment: XPLOR_SLURM=true
-added CAMSHIFT env vars
-increased default XPLOR_STARTUPDELAY value to 0.1 sec
-added support for the XPLORNIH_BASE_URL, XPLORNIH_HEADERHELP_URL
variables
-for Python help- redirect stdout to xplor executable so that
the reStructuredText can be processed.
-rearrangement of helpargument processing
Example Scripts
eginput/gb1_rdc/testNEF.py
-replace unRegisterTopoTerm with gcRegisteredTopoTerms
eginput/pasd/nmrstar/genRandomCoords.py
-generate extended coordinates
eginput/pasd/nmrstar/pep.psf
-regenerated to use default top/par values
-added minimal test of runSparta
Topology and Parameter files
toppar/eefx/charmm22/topallh22x-eefx.pro
toppar/eefx/protein_eef.top
toppar/eefx/protein_eef22.top
toppar/eefx/protein_eefx2.top
toppar/waterRef/topallhdg5.3.pro.new
-added missing PEPP LINK statement
toppar/waterRef/parallhdg5.3.pro.new
toppar/waterRef/topallhdg5.3.pro.new
-fixes for ACE linkage
Python Interface
python/atomSel.i
-union(): reimplemented using an iterative algorithm. The
previous recursive version could hit Python's recursive limit.
common/atomSelLang
-added the AtomSelLang abbreviation facility with functions
AtomSelLang::addAbbreviation and AtomSelLang::abbreviations
camshift/camshift
-CamShift is now a base class for CamShift1 and CamShift2 classes,
with a factory function named generator to call the proper
constructor
-added termsUsed accessor to add ability to limit to subset of
contributing terms
camshift/camshift1
-what was previously the CamShift class is now CamShift1
-HBond::complete: fixed logic for terminal residues
-remove the member calcDerivs which shadows parent member- use
that instead
-disable HBOND and DISULF terms by default- there is no
corresponding gradient for these
camshift/camshift2
-changes to make it derive from the CamShift base class
camshift/camshiftdb.cc
-modification such that to conform with atom naming convention in
camshift2 database file
python/chemShiftTools.py
-split out spartaPotTools restraint reading code into new function
convertRestraints in module chemShiftTools. Reads plain
restraints and NMRSTAR format.
nmrPot/csPot
-reworked to support multiple CamShift versions by specifying a
version argument
-cleanup unused parameters rename member Sel --> atomSel
-added camshift accessor
-added ability to access restraints, and obtain per-ensemble chem
shift values
python/csPotTools.py
-create_CSPot: added support to read non-native chemical shift tables
nmrPot/hbPot.cc
-constructor: rework logic for acceptor and donor list num
member so that the acceptor and donor strings can be used multiple
times in the config file.
python/hbPotTools.py
-readConfigFile: reworked logic s.t. the surface files can be
located in the system default location when the configuration file is
in a different directory.
python/nefTools.py
-added the shiftsFromList function
python/pasd/__init__.py
-starShifts:
. changed default segmentName value to None
. added the residOffset argument.
. now always return a list of selection strings
-mappings name map used by correctedSelection() to map IUPAC
atom names to those used by Xplor-NIH expanded and corrected.
python/pasdPotTools.py
-highTemp1/2_updateTerms, cooling_updateTerms: change default arg
values, expose more internal setting via additional arguments.
python/planeDistTools.py
-create_PlaneDistPot: added call to gcRegisteredTopoTerms, and
add explicit check if a term of this name is already a registeredTopoTerm
python/potProxy.py
-PotProxy.__del__: no longer call simulationTools.unRegisterTopoTerm
python/protocol.py
-torsionTopology: changed default value of the flexRiboseRings
argument to [nucleic] abbreviation.
-matchInexactAtomEntry: added rule 21 for matching O to OH2 in
restype WAT
-initNBond: make certain that repel value passed to XPLOR is
never None
python/psfGen.py
-addResidueName: now also updates the appropriate atomSelLang
abbreviation for the specified systemType
-added initResidueNames: removes logic from deduceResidueType
-seqFromPDB:
. added support for single residue chains
. fixed lostRes treatment when there is a gap in residue numbers
. more work on logic for sequence termination caused by gap in
residue numbering
nmrPot/psolPot.cc
-Restraint::operator>>: fixed error message
-added optional argument to setCoeff()
python/repelPotTools.py
-checkGetRepel: changed s.t. the value of repel is not
modified if a Xplor-NIH parameter set version is not detected.
-initRepel: only set repel value if it is not None
python/saTensorTools.py
-analyze: change to garbage-collected simulationTools.registeredTopoTerms.
python/selectTools.py
-IVM_groupRigidBackbone: added docs about which angle is constrained
python/simulationTools.py
-registeredTopoTerms: no longer reap these with
unRegisterTopoTerm, but rather use garbage collection when the number
of Python refcnts falls below a certain number. This achieved with new
gcRegisteredTopoTerms.
-writeStructure: add blurb on headerHelp to PDB REMARKs section
python/socketComm.py
-Comm.__init__: slightly better error message on failure to do
initial read of newProcNum
python/spartaPotTools.py
-create_SpartaPot: added option to specify which save set is to be read
python/termAnalysis.py
-moved term analysis code from simulationTools to new termAnalysis module
-introduce headerHelp facility
python/trace.py
-notrace_decorate: now add __arglist__ member to function wrapper
which is used by xplorDoc.TextDoc.docroutine so that the correct
arglist (with default values) is printed by help routines
python/utils.py
-added printReStructuredText function
python/varTensorTools.py
-added function generalizedDegreeOfOrder
-VarTensor_analyze
-now reports GDO
-output renames matrix and scalar product
-added composite_RDCRfactor and composite_Chi2 for to get values
for the .stats file
-create_VarTensor: change to garbage-collected
simulation.registeredTopoTerms
-create_VarTensor: disabled test if term with this name
already exists. What does it matter?
python/xplorInit.py
-added the --output-rst option which affects the output produced
by --help-script
-parseArguments: added support for the -pdf argument. Now rst
output is handled by utils.printReStructuredText
-when processing -help-script option: now
read all input from stdin and print/format this after the help-script
document. This is so that --help produces sh-script-level argument
info in addition to that from Python script
-parseArguments: added missing import in error path
python/xplorPotTools.py
-added support for printing XREF R-factors in PDB header and in
.viols file
Databases
databases/camshift/camshift-2.0.db
-added database for version 2 of CamShift
Changes from 2.50 to 2.51
--> 2.51 released 2019/05/01
Helper Programs
bin/calcPRE.in
-added support for auto-generating restraints
-don't plot experimental curve if it's auto-generated
-added arguments to help with tag optimization:
-groupedSel
-tagInteractSel
-highTempTime
-annealingTime
-added doAnalyze argument.
bin/detChirality.in
-centers argument can now be colon-delimited, in addition to
being space-delimited
bin/xplor.in
-added the -startup_delay option, for starting up many simultaneous
parallel processes
Example Scripts
eginput/psl/deoxycumambrin
-convert to using refineLoop.sh script
eginput/psl/deoxycumambrin/gen.py
-now randomize torsions on each attempt to generate coordinates,
and take structure with fewest violations
Topology and Parameter files
toppar/eefx/charmm22/topallh22x-eefx.pro
toppar/eefx/protein_eef.top
toppar/eefx/protein_eef22.top
toppar/eefx/protein_eefx2.top
toppar/nucleic-3.1.top
toppar/protein-1.0.top
toppar/protein-2.0.top
toppar/protein-3.1.top
toppar/protein-3.2.top
toppar/waterRef/topallhdg5.3.pro.new
-added LINK comments to these topology files. Going forth, any required
linkage information should be made available in the appropriate .top file
Python Interface
nmrPot/atomDensity
-implemented per-atom radius
-added gradient wrt radius
- rolled into atomProb class, and deleted
-calcMap: reworked to use local DensityGrid only if necessary
- not for FLAT or VOLUME mode
python/atomDensity.py
-new module added for backward compatibility with old atomDensity module
nmrPot/atomProb
-updated to subsume functionality of atomDensity
-ProbDist function classes: now include rc (cutoff radius) within
each class
-added the VOLUME ScaleType
-QuarticDist::invert: corrected the formula
common/atomSel.cc
-added third argument to AtomSelAction::run: an index specifying
offset in the selection
-added deleteAtoms method
python/atomSel.i
-atomSel.union extended so it can now take one or more AtomSel arguments
-union: change implementation of len(args)=1 case, and support
len(args)==0
common/atomSelLang
-added the BYREs AtomSelLang selector with tests, documentation
-atomSelLang added support for space-separated property identifiers
-AtomSelLang: catch case of missing range bound and throw
exception
nmrPot/densityGrid
-changes required to subsume functionality of the old atomProb
Grid class and cleanup
-OpenMP parallelized DensityGrid::operator+= and DensityGrid::scale
-DensityGrid::operator+=, scale, maxVal:
changes for vector, OpenMP optimizations
python/densityGrid.i
-added getData method for backwards compatibility - and some code cleanup
nmrPot/eefx.cc
-energyMaybeDerivs: OpenMP optimization
python/ivm.py
-added the groups() method
intVar/publicIVM
-new method: simulationGroupList - return indices of atoms present in
Simulation - exclude IVM-internal indices
python/minimize.py
-conmin: now pass costTol to linemin as the (new) tolerance argument
nmrPot/noePot
-NOEPot: added distMultMat support
python/noePotTools.py
-added distance correlation metric
-added restraint distance correlation to computed extra stats (for
.stats file)
pasd/shiftAssignment.cc
-simplified ShiftAssignment::primarySeqDistToSA
python/pasd/__init__.py
-added function removeBondedPeaks
-corrected lower bound distance
-reworked pasd.distanceBins s.t. lower and upper distances are
specified for each intensity bin; estimateUpBound was renamed to
estimateBounds
python/pasdPotTools.py
-added numMCsteps as optional argument to cooling_updateTerms,
highTemp1/2_updateTerms, and pass them through to
maybeShuffleAssignments
python/pdbFormat.py
-PDB format tools
-fixed resName entry (4 characters, not 3)
nmrPot/posSymmPot.cc
-PosSymmPot::energyMaybeDerivs1 optimization: remove repeated indexed
access to DerivList
nmrPot/prePot
-distMult: added check that the dimensions of the matrix are
appropriate for the averaging sizes in each existing restraint
nmrPot/probDistPot
-changes for switching from AtomDensity to AtomProb
-added calcRadiusGrad accessor flag and radiusGrad member for
gradient wrt radius to be computed in energyMaybeDerivs0
python/probDistPot.i
-handle error conditions more gracefully with freearg addition;
import atomDensity module so that member is understood without
requiring importing in user scripts
python/protocol.py
-matchInexactAtomEntry: modified rule 6 to match protons in all
residues with methylene groups where PDB uses the naming trailing
digit convention 1,2 -> 2,3; this caused the output of many tests
to require updating
-matchInexactEntry: now use pdbFormat.getAtomEntry instead of
using manual columns positions for PDB ATOM record access
-optimize initCoords with notrace_decorate decorator
-initRandomSeed: now print warning message if called after
EnsembleSimulation created: the seed must be treated carefully in
this circumstance
-added protocol.linkages dictionary to hold XPLOR linkage
statements for protein and nucleic sequence types; to use a linkage
definition different than the Xplor-NIH default, !LINK comments
should be placed in the topology file
python/psfGen.py
-now decorate pdbToSeq with notrace_decorate for optimization
-seqFromPDB: now support side chains with multiple conformations by
returning these in the altRecs member of the seqFromPDB return object
-pdbToPSF: now support the use of these altRecs entries in PSF
generation.
-duplicateSegment: added resid, nameSel and fast optional arguments in
support of alternate configuration sidechain PSF generation
-seqToPSF: now use protocol.linkages for residue LINK statements
nmrPot/rdcPot1.cc
-RDCPot1_Restraint::singleContrib: fixed to gradient prefactor
python/regularize.py
-fixupCovalentGeom: added suppressExceptions argument
now returns state including number of violations
nmrPot/repelPot.cc
-addSelectionPair: fix the test for missing parameters
s.t. only atoms in selPair are tested. Previously, all atoms in sel1,
sel2 arguments were searched for
nmrPot/sardcPot
-addRestraint: improved message given when the input error value
is too small
python/selectTools.py
-convertToAtomSel: with list of atoms argument, now take
simulation from first atom
-groupRigidSideChains/Protein/NucleicAcid, IVM_groupRigidBackbone,
correctSymmetricSidechains, groupRigidSel:
make default arguments more intuitive
-IVM_groupRigidSidechain, IVM_breakRiboses:
optimization: don't consider atoms in ivm-grouped regions
python/shapeBeadRep.py
new module to generate a coarse-grain representation comprised of
overlapping spheres of varying radii.
python/simulationTools.py
-minimizeRefine: added the minimizeSteps argument
-calcAverageStruct: updated averageRestrain code for removal
of atomDensity and changes to atomProb
-testGradient: added the selString argument to allow restricting
tested atoms
python/socketComm.py
-Comm.__init__: added the startupDelay argument
nmrPot/solnScat.cc
-SolnScat::calcBoundaryPoints: add sel as argument to
calcSA. Otherwise, calcSA uses the intersection of the current
simulation and sel. For SymSimulation calculations, the current
simulation is the protomer's simulation, and the intersection contains
zero atoms.
python/spartaTools.py
-create_Sparta: added the verbose argument
python/spartaPotTools.py
-create_SpartaPot: now pass the verbose argument to create_Sparta()
-create_SpartaPot: fine tune when verbose=True gets passed to
create_Sparta
-create_SpartaPot: now throw exception if no chemical shifts
are read
sparta/pdb
-work to OpenMP parallelize collect_HN_S2_and_EF including
optimization removing CDSMap access from energy/gradient loops
-getOrbitalShifts: loop optimization
sparta/sparta.cc
-getPred2ndShift: disabled some OpenMP parallelization due to it
being non-thread-safe
python/structureTools.py
-getAngles: fixup, by removing reserved as'' keyword used as a
variable here
python/torsionDBPotTools.py
-define_cispro_impropers: now print warning message instead of
crashing when there are missing atoms
python/trace.py
-notrace_decorate:
-now use functools.wrap to get the wrapped function's docstring and
name. Still missing function signature in the help output.
-changed behavior of nested (repeated) calls to
trace()/resume() such that trace behavior is not resumed until after
final matching call to resume
python/utils.py
-added char_range function
python/varTensorTools.py
-addAxisAtoms: now throw exception if attempted on
SymSimulation.
-calcTensor: catch case of zero singular values- happens with
strict symmetry
-calcTensor: fixes for when VarTensor and RDC/CSAPot have
different simulations (as for SymSimualtions)
-calcTensor: updated check for too few restraints
fix conversion of selection argument to AtomSel to use a VarTensor
from an experiment term (RDC or CSA)
python/xplorInit.py
-when starting parallel processes, now employ the XPLOR_STARTUPDELAY env
var in setting the startupDelay argument to socketComm.Comm
common/xplorWrapProc.cc
-XplorWrapProc::XplorWrapProc(): use only the PID as the UID for
shared memory identification. This fixes deadlocks occuring with
XplorWrapProcs created soon after program start by parallel processes.
Low-level Functionality
CDSlib/pair.hh
-added OrderedPair class
-made operator== const
nmrPot/eefx
nmrPot/spartaPot
sparta/derivData
sparta/pdb
sparta/sparta
-changed dictionary storage of deriv info to per-OMP thread lists
of entries
TCL Interface
tcl/noe_reporting.tcl
-newSummarizeMarvinResults: more robust location and removal of
input file suffixes- previous implementation assumed 3 character
filename extension
tcl/aeneas_tools.tcl
-standard initMatch functions: added the noCorrectShiftOffset flag
tcl/aeneas_tools.tcl
-generateDistanceBounds: fix bug where the value 1.8 was
hard-coded as the lower bound
-reworked pasd.distanceBins s.t. lower and upper distances are
specified for each intensity bin; estimateUpBound was renamed to
estimateBounds
Changes from 2.49 to 2.50
--> 2.50 released 2018/12/20
Helper Programs
bin/calcPRE.in
-add the -distMultMat option
-now delete missing atoms by default.
-no longer requires a PSF.
-now calls fitTauc at end of tag optimization
-now always refit tau_c using fitTauc when -fitTauc is
specified
-added the -noFitTauc option
-added the -crossTable option
bin/calcSAXS-bufSub.in
-added the -addUnknownAtoms option
bin/plotLog.in
-added the xlog (semilog with logarithm along the x-axis) plotType
Topology and Parameters
toppar/extra/ctsa.top/par - topology and parameters for DOTA tag
attached to cysteine.
Python Interface
common/atomSel
-added the allValid method
python/chirality.py
-absoluteChirality: reworked algorithm to handle branches, and
be more comprehendable.
nmrPot/prePot
-added the distMultMat member for multiplying 1/r^6 distance
contributions. This was used to simulate the presence of a
dimer/tetramer mixture when only a single ensemble member's
coordinates are present.
-PREPot::qFactor: now call modified.update()
python/pasd
-is now a Python package
-some methods have had their names shortened.
-sparkyPeaks: fixed to use the name prefix argument correctly.
-added pasd/protocol.py: high-level procedures
python/pasd/netfilter.py
replaces the TCL version, has some additional functionality:
- can now specify known contacts
python/prePotTools.py
-fitTauc: now do grid search with different starting values
python/psfGen.py
-new function addResidueName, to add a residue name to list of
known residues
-seqFromPDB: fix behavior of usrChainID=False when segid is blank
python/pyInterp.i
-added fromStringRep function to convert from string
representation to SWIG Python object.
-command(): now disable tracing unless it is explicitly specified.
python/rdcPotTools.py
-create_RDCPot: add reference to created oTensor. This fixes a
lifetime error which cascades into improper IVM configuration of
the associated pseudo-atoms.
python/solnXRayPotTools.py
-create_SolnXRayPot: now throw exception if the aSelection
argument has an invalid atom (undefined coordinates)
python/spartaPotTools.py
-create_SpartaPot: added support for NMRSTAR format
python/trace.py
-re-implemented suspend/resume with settrace/gettrace
functionality.
-Added the notrace_decorator function for function optimization.
python/varTensorTools.py
-create_VarTensor: now throw an exception if another VarTensor
with the same name is already registered.
Examples
eginput/dock_dipolar_chemshift/dock.py
-added an updated docking script
eginput/pasd/cvn/makeContactMap.py
-updated to have -cutoff, -dresid arguments; now handles systems
with multiple segids, and with residue numbering not starting from 1
eginput/PSF_generation/tags/proxyl/addPROXYL.py
-changed to add call to addResidueName as converage test, instead
of explicitly setting sequence type
eginput/psl/vatiparol/README
-README docs updated for loop procedure
Low-level Functionality
CDSlib/matrixTools.cc
-inverse: now throw exception for singular 1D matrix
-added new norm template- use as a generalized abs function
TCL Interface
tcl/aeneas_tools.tcl
-standardJointFilter: split off output into new writePASDFiles function
-added the -noStripeCorrection option to standard initMatch functions
Changes from 2.48 to 2.49
--> 2.49 released 2018/09/26
Helper Programs
bin/calcPRE.in
-fixes for when a single structure is specified, and for when
no tag optimization is performed.
-added ensemble support
-added -singleEns option
-added flag: -plotCorrelation for plotting calcd vs. expt.
better support for not writing structures.
-updated to use StructureLoops storeCoordinates option when
structures are not written
-fix bug present if no -plot option is specified
bin/hbScore.in
-added the hbScore helper program
bin/seq2psf.in
-added the -outFile option
-added the deprotonateHIS flag
-documented -cisPeptide option
bin/slurmXplor.in
-no longer specify the --exclusive flag to sbatch so Xplor-NIH
jobs will share nodes by default.
bin/xplor.in
-added docs about important environment variables
-fix in setting up countMachines: some (old?) versions of uniq
include a tab character in the output
-fix placement of xlibs_spec when debugging
Example Scripts
eginput/gb1_rdc/refine.py
-fixed pdbTemplate to use SCRIPT placeholder
eginput/pasd/cvn/pass2.py
-a new Python pass2 script
eginput/relaxRatio/dock_rrp.py
-fixed order of IVM setup
eginput/runAll
-added option -xplorPath so that the tests can be separated from
the binary location
Python Interface
python/atomSel.i
-added AtomSel_fromPtr a.t. TCL AtomSel objects can be used in the
Python interface
python/atomSelLang
-added simpler function nameSelection, test use
-added generalized attribute facility
common/atomSelLangLex.lex
-changed the value values of the segid specifier to be only "segi"
or "segid"
nmrPot/distSymmPot.cc
-fixed the value of numDistances used in gradient calculations
python/distSymmTools.py
-genDimerRestraints: added the extraSels argument
python/gyrPotTools.py
-get the correct number of residues by passing whole AtomSel,
instead of just the selection string
-create_VGyrPot/create_RGyrPot: use sel argument correctly to
compute numResidues
nmrPot/hbSurf
-added HBSurf class for cubic interpolation of r, theta, phi
h-bond potentials of mean force
nmrPot/hbPot
-added 3-D HBPot energy term from potentials of mean force- no
gradient yet
python/hbPotTools.py
-helper functions for generating, creating and analyzing HBPot terms
nmrPot/noePot
-NOEPot: added deleteOverlapping
python/noePotTools.py
-makeTable: will now handle an argument which is a sequence of NOEPots
python/pasd.py
-starShifts:
. fix in exception message
. now support missing AmbiguityCode
. for tclOutput, add outer parentheses to
selections so PASD routines can read them.
-added function findUnassignedAtoms, and supporting function
convertShiftsFromTCL. This now implements the functionality of
reportUnassignedAtoms in tcl/aeneas_tools.tcl
-readSTAR: added the addSaveSet optional argument
-starShifts: added the segmentName optional argument
-added structureMetrics function
-added asciiHistogram function
-added function peakAssignLikelihoodsFromStructs
-added functions removeDiagPAs, removeInterSegidPAs,
removeIntraSegidPAs, reportNOEprecision, reportNOEaccuracy
-atom name mappings (used for reading NMRStar files):
added maps for when trailing number is missing from stereochemically
equivalent carbons (for residues with symmetric sidechains)
python/pasdPotTools.py
-added pasdPotTools module - contains helpers for PASD protocols
python/planeDistTools.py
-create_PlaneDistPot: now set D to 0 if not specified
nmrPot/prePot
-added rho0 scaling accessor
-added parallelization of EnsembleSimulation calculations. This
should now also handle heterogeneous ensembles
python/prePotTools.py
-spaceSeparatedToRestraint: added the residCharPrepend and
illegalValues arguments
-added fitRho0 helper function
python/protocol.py
-matchInexactAtom: change affecting rules 7-9: these now only
apply for names longer than one character.
-initCoords: now q and b attributes are supported if
loadOccupanciesBfactors=True
python/psfGen.py
-seqToPSF: extended the deprotonateHIS argument to allow it to specify
residues which have missing HD1.
nmrPot/rdcPot1.cc
-changed default aveType and threshold to match those specified in
rdcPotTools
-addRestraints: now disallowed after localTensors are defined
python/selectTools.py
-convertToAtomSel:
. added ability to convert from raw SWIG string
pointer representation.
. convertToAtomSel: now can accept sequence of atoms
python/simulation
-added typemap s.t. Python types can be specified as arguments to
setAtomPosArr
python/simulationTools.py
-StructureLoop:
. added storeCoordinates flag to override
default behavior. Previously, atomic coordinates were
transfered using PDB files. With the addition of this flag,
coordinates can be stored in memory and transfered to other
Xplor-NIH processes via the socketComm mechanism used to
transfer other quantities.
. changed storeCoordinates default value to False
-RampAction:
added numSteps, curStep, fractionDone members
The variable name of the RampAction object has been changed from
ParameterRampInfo to rampInfo
-AnnealIVM: added fractionDone member
-minimizeRefine: now supports EnsembleSimulations
tcl/tclInterp.cc
-TCLInterp::command: TCL errors now force the throwing of a Python
exception; added test
python/xplorPotTools.py
-getHBDBbonds: now support presence of segid
TCL Interface
tcl/aeneas_tools.tcl
-reportUnassignedAtoms:
now implemented in Python function pasd.findUnassignedAtoms
-reportUnassignedAtoms: marvinPyth uses the global namespace, so
variable names can clash. renamed variable shifts to avoid clash
-standardJointFilter: added the flags
-minLikelihood
-maxLikelihood
-standardInitMatch* functions: when calling removeDiagonalPeaks,
now use tolerance computed from from/toProtonTightTol instead of
hard-coded value appropriate for solution NMR
-standard4dInitMatch: arguments -peakFileName and
shiftAssignmentsFileName now optional
tcl/selection_tools.tcl
-stereopartnerList: fixed entry for leucine CGs
Architecture Specific
arch/Linux_x86_64/Makefile.defs
-updated for 2018 Intel compilers.
-updates for gcc version 8
arch/Darwin_12_x86_64/Makefile.defs
-removed libfreetype from OMITTED_SHARED_libs
arch/Darwin_x86_64@
-added symlink so Darwin version no longer significant
Low-level
python/cdsList.i
-added macro for instantiation
python/cdsVector.i
-added sort helper function for CDSVector_double
CDSlib/spline3D.cc
-OpenMP parallelized
CDSlib/vectorTools
-added min/max vector tools template functions
CDSlib/cdsMap
-fixed spelling of entries method...
CDSlib/cdsString.cc
-split: repalced use of non-thread-safe strtok with strtok_r
to fix problems with OpenMP parallelization.
marvin/ => pasd/
-renamed directory marvin --> pasd; files MarvinNOEPotential.??
--> pasd/pasdPot.??
-class name change MarvinNOEPotential --> PASDPot
-much simplification, bring more in line with Xplor-NIH coding practices.
Maintained compatibility using wrappers in TCL interface.
pasd/PASDPot
-added sim member; added optional Simulation argument to ctor
-OpenMP parallelized two top-level energy calculation
-added PASDPot child terms which allow independent reporting of
DistPot's and InvPot energies, and independent scaling of energies
-PASDPot: removed useInversePot accessor. Now that term is simply
not computed if its associated energy scale is 0.
XPLOR Interface
source/parser.f
source/xplorFunc.f
-added DISPLAY_FILE DISPLAY_FILE variables to reflect output
destination for the set DISPlay_file statement
Changes from 2.47 to 2.48
--> 2.48 released 2018/05/03
Helper Programs
bin/calcPRE.in
-added the calcPRE helper program for computing PREs given
coordinates.
bin/calcPSol.in
-qFactor: will now not crash for the case of -table generate
-added -singleEns option, and preliminary ensemble
support. Not tested.
-added the -addMissingAtoms option
bin/contactMap.in
-support for PDB MODEL specificatin
-support for -smp parallel operation
-fixups for color-enumerated maps
-fixed filename printed in processOneFile
bin/detChirality.in
-properly added detChirality as a helper program to determine
chirality of specified centers.
bin/energyPlot.in
-new helper program to plot energy terms during structure
calculation. Aids in debugging protocols.
bin/ens2pdb.in
-added -hetatmSel option which generates HETATM and CONECT records
-fixed segid renaming so that map can now be many to one
-added the -renameResname and -altLocOccupancy options
-altLoc config: now put all altLoc entries for an atom consecutively..
bin/getBest
-added the -indices option
-fix for case when multiple .stats files are processed
bin/jupyterXplor.in
-added jupyter notebook and console support via jupyterXplor
command. Invoke with jupyterXplor notebook or jupyterXplor console
commands.
bin/targetRMSD.in
-bin/targetRMSD* now allows input of several psf files - improved
documentation
bin/targetRMSD.in
-fixed multi-psf behavior to work for -psf2 option
bin/xplor.in
-introduce xlibs subdirectory to hold all shared libs so that they
do not interfere with system programs. Update LD_LIBRARY_PATH to
include this dir on each invocation of xplor binary.
-disable the LD_BIND_NOW=1 workaround for Intel Compilers, as
Intel has fixed the bug which required it. This should improve
performance.
-XPLOR_PPORT: no longer static to avoid a port listening collision.
This is possible if two parallel Xplor-NIH jobs are started on the same
host in rapid succession. Now XPLOR_PPORT depends on PID modulus
1000, thus making a collision very unlikely.
bin/torsionReport.in
-added support for PDB MODELs
Low Level Functionality
Makefile
-exeinst rule: now place all dependent libraries in new
bin.$ARCH/xlibs subdirectory
many .cc files:
-change constant name of built-in constant: HUGE -> HUGE_VAL
python/cdsMatrix.i
CDSlib/cdsMatrix.cc
-added max/min functions
Fortran Interface
source/util.f
-WRNDIE: changed unit for writing warning message only to PUNIT
Python Interface
python/atomSel.i
-include accessor.i so ordered() method works; reworked
replacement ctor to better handle argument errors
nmrPot/eefx
-potential fix for overlapping inequivalent selPair bug
-NeighborBin: check for integer overflows; noe place this class in
a namespace s.t. linking doesn't class with NeighborLists in other
.cc files
common/pdbTool
-added hetatmSel accessor to specify atoms for HETATM records;
removed unused writeAltLoc method
python/posDiffPotTools.py
-create_PosDiffPot:
o updated to handle ordered AtomSels
o fixed for case when PDB file not specified.
nmrPot/posSymmPot
-added support for planarFit mode for fitting structures
determined in an implicit membrane. This term removes translation
parallel to the membrane surface and rotates about an angle
perpedicular to this surface.
nmrPot/posSymmPot.cc
-working now with planarFit==True
nmrPot/prePot
python/prePot.i
-changed toggles for specifying whether various correlation times
are fixed to the accessors fixTauc, fixTaut, fixTaui; added swig
wrappers for backward compatibility.
-Restraint: changed weight to ACCESSOR, added swig wrapper for
setWF; info: now print aveSize if >1
-removed assignType from PREPot class: restraints are now
non-specifically assigned on a per-restraint basis.
-operator>>: allow for newline between 2nd and 3rd selection when
reading restraint.
-added correlation funType, test, docs
-PRERestraint method renaming, with wrappers added for backward compatibility
python/prePot.i
-reordered so that rc_ptr_PRERestraint gets all extended method
python/prePotTools.py
-create_PREPot: added scaleType argument
-added functions correlation and fitTauc
-added correlation to output in .stats, .viols files
python/protocol.py
-writePDB: added occupanies and bFactors arguments
python/psfGen.py
-seqToPSF: added the simulation argument
python/psolPotTools.py
-added helper fitRho0
python/regularize.py
-fixupCovalentGeom.fixupLoop_xplor: fix verbosity check for
unknown coords warning
nmrPot/rdcPot
-RDCPot: added per-restraint energy scale factor
--added getLocalTensors() accessor - used to specify a local
coordinate frame. Applicable to PCS Chi tensor definitions.
nmrPot/repelPot.cc
-violations: added call to modified.update()...
-ctor: added check that all atoms have nonbonded parameters.
-now store groupNames (Atom chemTypes), and do the test for
parameters in addSelectionPair
-fixed BUG! for case where a sel Pair has inequivalent members
which have a non-null intersection
-NeighborBin: check for integer overflows
python/selectTools.py
-convertToAtomSel: added the optional ordered argument, and
changed to follow the value of ordered() of arg, if it is an AtomSel.
-getSegsResidues: now return a named tuple
common/simulation.cc
-String atom property setters: fix behavior when new value is String whose
length is >4 characters
python/simulationTools.py
-StructureLoop.run: now save initCoords return value in initCoordsRet member.
-minimizeRefine: add optional simulation argument to allow use on
non-current Simulation
common/symSimulation.cc
-syncDerivs: fixed stupid bug in centroid-using code which forced
an N^2 calculation
python/torsionDBPotTools.py
-create_TorsionDBPot:
o no longer converts axis values to float, removed energy list:
energy values directly handled in data dict as before (simpler
code and no performance issues noted)
o now attempts protein-specific definitions only if system is 'protein'
o support for specifying a non-current Simulation associated with
the selection argument.
-replaced parse_metaselection by three simpler functions which
now work if resid specification appears in middle of metaselection
-setup_pot is simpler and more general (any potential residue type
specification for peripheral residue -denoted by offset- in
metaselection would work), without sacrificing speed.
-setup_pot: fixed confusion between atom name and the name of the potential
-setup_pot: changed verbose messages
python/torsionTools.py
-setTorsions: fix support for the simulation argument
-added function genXplorRestraints
python/xplorPotTools.py
-increased the default DIHE threshold value
python/xplorInit.py
-now remove LD_LIBRARY_PATH elements which have XPLOR_DIR as a parent -
so that non-xplor executables don't try to link against xplor or
distributed libraries
-now place orig_LD_LIBRARY_PATH in the xplorSimulation module
before modifying it. This is so it can be reset before execing the
xplor binary in xplorWrapProc.
python/xplorSimulation.i
-in XplorSimulation ctor wrapper: now restore LD_LIBRARY_PATH to
initial value for the case clone=False: in this case the raw xplor
binary will be exec'd.
Example Scripts
eginput/rna/fold.py
eginput/rna/refine.py
-Minor edit to eginput/rna/ structure calculation scripts
-simplified selection string (minor change)
eginput/psl/deoxycumambrin/validateChirality.sh
-reworked to avoid the '| head' construct which gives broekn pipe
errors on tree nodes
eginput/gb1_rdc/fold.py
-changed energy term from Rgyr to Vgyr
eginput/psl/deoxycumambrin
-updated protocol to work, and improve validation
eginput/psl/vatiparol
-reworked for robustness. Now shell script invokes structure
calculation script multiple times until convergence is achieved.
Documentation
doc/xplor/Makefile
-now copy FXPLOR example files to HTML dir
helplib/nih-py-pot
-added entry for Pot base class
-various fixes for generation of web documentation
Architecture Specific
arch/Linux_i686/tcl/Makefile
-optimization downgrade - seems to be required for gcc version 6
bin/xplor.in
-changed Darwin ARCH to exclude OS release number
Changes from 2.46 to 2.47
--> 2.47 released 2017/12/20
common/atomSelLang.cc
-defined (fixed) atom ordering for compound selection strings by
modifying xplor AtomSelLang::orArr and AtomSelLang::andArr, and
updating test and documentation.
python/anglePotTools.py
-delAndCreateCenterAnglePots: changed order so that it works...
nmrPot/eefx
-addSelectionPair: now takes AtomSel as args instead of String
-changed printAtomInfo to atomInfo, returning a string
nmrPot/eefx
python/eefxPot.i
python/eefxPotTools.py
python/nonBondTools.py
python/repelPotTools.py
-moved resExclude code from repelPotTools.create_RepelPot to
nonBonTools.getNBParamsFromXplor
-updated EEFXPot to use resExclude instead of nbExclude so that it
can be used with SymSimulations.
python/eefxPotTools.py
-create:EEFxPot: aded selPair argument
o enabled a warning when non-hydrogen chem types can't be found in
the EEFx parameters
o added IMMx arguments thickness, profileN, a
o fixed operation of selection argument (previously, it was ignored)
python/nonBondTools.py
-refactored code which reads nonbonded info from PSF and parameter
files into nonBondTools.getNBParamsFromXplor. Consumed by
eefxPotTools, repelPotTools
-getNBParamsFromXplor: updated to generate correct group lists when
processing a SymSimulation
common/pdbTool
-PDBTool: added support for reading HETATM records if
includeHETATM accessor set
python/planeDistTools
-fixes so things work with SymSimulation setup.
python/potProxy
-dtor: now call simulationTools.unRegisterTopoTerm. This is
necessary for object deletion because a reference is held in
simulationTools.registeredTopoTerms
nmrPot/prePot
-removed CENTER, R_3 aveTypes; added SUM aveType,
aveSize to help with symmetric multimers
-removed showCurrentTauc method; moved def. of setTauc to .cc
file for eventual change to update clock atoms (currently clock atom
positions are not modified)
python/prePotTools.py
-added helper function getTagResidSels - used to get info for
setting up nonbonded interactions involving tags with multiple
conformations
python/protocol.py
-initStruct: added the string argument, for uniformity with initParams/Coords
-initCoords, loadPDB: added includeHETATM optional argument
(defaults to False)
-initCoords:
o fixed placement of check for extra (bad) keyword arguments
o when deleteUnknownAtoms=True, use Simulation's deleteAtoms instead of
xplor.command, and added call to updatePseudoAtoms after deleteAtoms()
-loadPDB: now accepts the deprotonateHIS kwarg (passed through to
psfGen.seqToPSF)
-After merge from ~schwitrs/bzr-repo/xplor
python/psfGen
-pdbToPSF: now accepts the deprotonateHIS kwarg (passed through to
psfGen.seqToPSF)
nmrPot/repelPot.cc
-neighborInfo(): added call to modified.update() so results are
up-to-date (and no crash occurs)
python/repelPotTools.py
-create_RepelPot: throw exception if any atoms with unknown
coordinates are included in selection
common/simulation
-added the validSimulation() Simulation* validator. If
Simulations* were reference counted, this would not be needed
python/simulationTools
-moved registerTopoTerm/unRegisterTopoTerm/getRegisteredTopoTerms
from varTensorTools to simulationTools
-un/registerTopoTerms:
un/register term from/to underlying XplorSimulation so that topology
setup is correct for SymSimulations, where the underlying simulation
is manipulated via the IVM.
-registerTopoTerm adds sentry __topoRegistered member to pot term
to be queried by unRegisterTopoTerm.
-StructureLoop: added the pdbFilesInErase optional argument.
python/symSimulation.i
-extended the Python dtor to call Simulation::deleteSimulation, as
is done for EnsembleSimulation (XplorSimulation uses swig's unref
feature).
python/varTensorTools
-massSetup: simplified
Topology and Parameters
toppar/eefx/protein_eefx2.top
-CYSP residue: changed chemtype of HA to HB
toppar/protein-3.2.top
-added CLYS patch for di-ubquitin
Helper Programs
bin/calcPSol.in
-silly fix for when PDB has no models.
bin/contactMap.in
-changed the default printAtomContacts to False
-added the -popEnumerated option so that population levels can be
explicitly represented by color.
bin/ramaStrip.in
-changed wintitle to default to name of first pdb specified
bin/targetRMSD.in
-updated to use ordered AtomSels if psf2 != psf
-fixed to delete unknown atoms when diffSeq=True
Examples
eginput/eefx/membrane/fold_EEF.py
-cleanup in EEFX pot setup
eginput/gb1_rdc/g_new.psf
-Replaced eginput/gb1_rdc/g_new.psf by that generated with protein-3.1.top.
As a result, modified scripts to use protein.par instead of protein-1.0.par
eginput/psl/
-switched from ectein example to deoxycumambrin + vatiparol. The
scripts have been somewhat reworked to improve reproducibility
and ease of use.
eginput/rna/validate.py
-initialize coords, s.t. create_RepelPot doesn't crash; use
nucleic, instead of nucleic-3.1
Low Level
python/cdsVector.i
-added instantiation of dot(CDSVector,CDSVector)
python/pyConvert
-fromPy(CDSList): removed throw decorator, as it's
difficult to enumerate exception types for this template containing
a container class
-fromPy(Atom): improved error messages
CDSlib/cdsString
-subString: implemented negative indexing, thus changing behavior
of negative indices (previously these specified the end of the
string)
Changes from 2.45 to 2.46
--> 2.46 released 2017/09/20
Python Interface
python/anglePotTools.py
-new module from the PSL work implementing a Python bond-angle term
and associated tools.
python/atomAction.py
-centerOfMass now raises exception when sel selects unknown or no atoms
python/cdsVector_template.i
-cdsVector: added min, max functions
nmrPot/densityGrid
-readCCP4: added zeroNegatives optional option
-added setData(CDSVector)
python/densityGridTools.py
-New helper module with function trimDensityGrid for trimming a atom
density map to a give set of atomic coordinates.
python/ensembleSimulation.i
python/protocol.py
-added updatePseudo for EnsembleSimulation::deleteAtoms: requires
a special case trap in updatePseudoAtoms itself. Perhaps only for
Ne=1 EnsembleSimulations
python/ivm.py
-added fixedAtoms accessor
-stepsizeThreshold: set default value to None so that its use
is not accidently triggered by a negative time step.
-fixed stepsizeThreshold to properly query accessor.
nmrPot/noePot
-added "shortest" aveType with test and doc update.
python/noePotTools.py
-create_NOEPot: added the simulation2 argument
common/pdbTool.cc
-support mmCIF files with '.' in the insCode field
python/protocol.py
-loadPDB: make certain updatePseudoAtoms is always called.
python/prePotTools.py
-registerTerm: now register all dependent Simulations. This required
for SymSimulations, where the Pot is registered to SymSimulation, but
coordinates in the underlyaing Simulation are actually manipulated.
-mods to work with SymSimulations. Overall is more general, but mixed
EnsembleSimulation/SymSimulation will not work
nmrPot/prePot.cc
-fixups s.t. clock atoms can be in different simulations from coordinate
atoms
nmrPot/probDistPot.cc
-fixed s.t. non-unit scale works for potType other than diff
-fixes so that help facility works
python/psfGen.py
-support mmCIF files with '.' in the insCode field
-cisPeptide, dAmino, seqToPSF, pdbToPSF: added call to updatePseudoAtoms
-pdbToPSF: added the suppressExceptions argument for allowing
processing of partial sequence information if a sequence in a given
segment is not understood
nmrPot/psolPot.cc
-findImportantAtoms: now allow up to three bad triangles
-retessellateIfNecessary: make certain tessellation happens if the
BadTessellation exception branch is taken.
-energyMaybeDerivs0: changes s.t. modified.clear() is called after any
radius updates.
-ensemblePot-ized: now supports EnsembleSimulations.
-changed name of setWF to setWeight.
-grandMaybeGrad: strength reduction optimizations.
-PSolRestraint::deriv: optimized use of DerivList
-energyMaybeDerivs0: added omp pragma.
python/psolPot.i
-fixes s.t. members of Restraint base class are available
python/ramaPushPot.py
-new energy term based on TorsionDB creates transient repulsive
terms which guide torsion angles away from forbidden regions of
torsion angle space.
python/regularize.py
-addUnknownAtoms: added a maxFastIterations argument to avoid infinite loop
nmrPot/repelPot.cc
-added neighborInfo helper method to get data on neighbors - useful for
debugging.
-fixed bug in treatment of the nbExclusions in the constructor where
some interactions betweeen atoms with the same residue number in
different segids would be omitted.
-ctor: check for identical segids used pointer comparison, not
string. Fixed.
-addSelPair/findNeeded: optimization fixup to recompute only the
needed atoms for the current selPair.
python/sardcPotTools.py
-Rfactor: fixed for useSign=False restraints
python/selectTools.py
-fixed String exceptions
-rigidNucleicSelections:
o added residue AP7
o THY CM -> C5A
o enlarged selections
-Deleted groupStrictRigidNucleicAcid and
strictRigidNucleicSelections functions.
python/simulationTools.py
-StructureLoop: added the ivm argument used to assure consistency
with averageFitSel
-StructureLoop: changed default setting of averageFitSel for
EnsembleSimulations: no fitting performed
-fixed averageFitSel default logic
-StructureLoop: allow averageCompSel arg to be None
python/symSimulation.i
-now include modified.hh to get ModifiedBase portion of definition
sparta/pdb.cc
-SPARTA_PDB::calcHBonds: fixed logic for segid comparison - previously
-didn't work because atom.segmentName() returned garbage char*
python/torsionDBPotTools.py
-create_Terminal14Pot:
o added nucleic acids
o corrected the name of TDBPotl
python/varTensorTools.py
-topologySetup: added support for the ignore freedom specification
-calcTensor: added svdNum argument as alternate method of
explicitly specifying how many non-zero SVDs to include.
python/xplorDoc.py
-writeIndex: changed code to generate google search box
python/xplorInit.py
-rcDir, rcPyDir: no longer create config directory if they do not
exist. This creates a race condition when multiple processes are
starting up. Another solution would be to do these checks after
socketComm is configured, but as these config directories are not
currently used, we chose the simplest solution.
-parseArguments: when encountering an unknown option, now print the
correct usage string (cmdline)
python/xplorSimulation.i
-command, shell, deleteAtoms: udpated to call updatePseudoAtoms
TCL Interface
tcl/noe_tools.tcl
-check and throw error if bad -likelihoodCutoff argument is specified
XPLOR Interface
source/ccalls.c
-frtn_clock: switched from clock_gettime to gettimeofday for
portability to Darwin.
source/darwin64time.f
source/x86_64time.f
-XXNXTFI: increase max path length to 1024 characters (from
132). This caused many problems with long paths.
source/hbdb.f
-alloc_segarrays: no longer attempt to free pointers on the first call-
to avoid segfault on Darwin.
source/xplorFunc.f
-now report wallclock time instead of CPU time. This is so that
output is useful when OMP_NUM_THREADS>1
Topology and Parameters
toppar/eefx/protein_eefx2.par
-added improper parameters for D-amino acids
toppar/waterRef/parallhdg5.3.pro.new
-added impropers for d-amino residues
-added default value for $par_nonbonded XPLOR variable
toppar/nag.par/top
-fixed stereo improper for C5
toppar/protein.top/par: default now bumped from 3.1 to 3.2
toppar/protein-3.2.par
toppar/protein-3.2.top
-mods to those in version 3.1:
o gave CZ of ARG and TYR non-carbonyl radius
o added CTYR-OH-PPP angle
o Added CIAP (Cysteine-iodoacetamido-PROXYL) residue
Low-level
CDSlib/cdsVector.hh
-added (untested) max and min functions
python/cdsVector_template.i
-fixed the definition of min/max (by changing norm(double)
common/atom
common/ensembleSimulation
common/simulation
common/symSimulation
common/xplorSimulation
-changed accessors taking/returning char* objects to use String instead
common/atomSelLang.cc
-improved error message when getting inconsistent named selection
message- to aid in debugging
vmd/publicVMDInter.cc
-psfWrite: fixed use of sprintf with Simulation String accessors.
sparta/sparta.cc
-changed container type from reference to pointer.
common/derivList.cc
-mods to propagate derivs between layered SymSimulations
common/simulation.cc
-mods to propagate modified status to layered Simulation
-getXplorSimulation: added support for nested SymSimulations
python/Makefile
-PYTHON_SRC: added densityGridTools.py
python/pyXplor.cc
-command, shell module shortcuts: now use XplorSimulation versions,
-instead of those from XplorWrap
source/x86_64time.f
-GETSYS: now use ARCH env var for this to make it easier to
identify the subarchitecture/os of the build machine
surfD
-reworked to allow OpenMP-parallelization of surface tesselation facility:
o removal of thread-shared Constraints and Current_atom variables -
they're now per-thread quantities on the stack.
o changed circular linked list of Torus to a simple CDSList.
o removed functions and variables from Surf class to help with
thread parallelization. Variables now passed on stack.
Architecture-specific
added the Linux_x86_64.old architecture for systems with glibc
versions earlier than 2.12. The .old version will be frozen compiled
with version 16.0.3 Intel compilers, while Linux_x86_64 will be
compiled using more recent compilers.
arch/Linux_x86_64/Makefile.defs
-OMITTED_SHARED_LIBS: added SELinux libraries
arch/Linux_x86_64/source/Makefile
-added ARRAY_F_DOWNGRADE for gcc version 7
arch/Linux_x86_64/surfD/Makefile
-compiler optimization reduction for Intel compilers
-optimization downgrade for 2017 Intel compilers: without this,
Surf sometimes gets in infinite loops.
arch/Linux_x86_64/tcl/Makefile
-TCL wrapper optimization downgrade
arch/equivList
-updated Mac Darwin_12_x86_64 entry so that subsequent releases work
-added a line so that Linux_x86_64 machines use Linux_x86_64.old if
Linux_x86_64 is not present
arch/getGlibcVersion
-helper to get major/minor glibc version
Helper Programs
configure
-now hardcode __VERSION__ in a second pass over the .in files
bin/aveStruct.in
-added support for averaging over MODEL records
bin/calcSARDC.in
-added the -noUseSign command-line option
-added the -aveType option
bin/calcSAXS.in
-changed treatment of -ensWeightsRegexp option: now it has a
default value which will be used only for Ne>1 ensembles. It should
be overridden by the -ensWeights option
bin/calcTensor.in
-added the -genNames command-line argument for generating RDCs not
present in an assignment table.
-added svdTol command-line option. It may be useful for systems
with symmetry.
bin/contactMap.in
-added the -suppressDiag option
-added the -cmpPDB,-cmpPSF options
bin/getBest
-fix filenames when subdirectory was specified in the script
bin/pdb2psf.in
-add the -selection option for selecting a subset of atoms to be in the PSF.
bin/targetRMSD.in
-added suppressExceptions=True argument to loadPDB, to allow partial
processing of PDBs which can't be completely understood by psfGen.seqToPSF
bin/testDist.in
-now place output in a file in the testOutput subdirectory, if it
exists and is writable
-output dir support: fixed OpenMP num threads spec in filenae.
bin/xplor.in
-now allow TOPPAR env var to be overridden
-fixes for -pyshell when pyXplor is used as an interpreter- helper
programs gave pyXplor usage info before this fix
-updated to give usage info for pyXplor and tclXplor invocations
-renamed the -version flag to -features. Added new -version
argument to return the version only
-don't apply the LD_BIND_NOW hack to Linux_x86_64.old architecture
Example Scripts
eginput/pasd/cvn/cvn.psf
eginput/pasd/mth1743/mth1743.psf
eginput/sardc/gb3.psf
eginput/saxs_EI/ei.psf
-PSF files regenerated for updated top/par entries in default files
eginput/gb1_rdc/fold.py
-added note regarding how use of hbdb during folding can lead to
reduced precision
eginput/pasd/cvn/convert_restraints_to_xplor.tcl
-removeLowLikelihoodPeakAssignments: fixed name of the -cutoff flag (again).
eginput/psl/
-initial partially worked version of PSL scripts from G. Cornilescu
eginput/eefx/fold.py
-earlier turning-on of all atom REPEL term plus other updates
s.t. -quick runs complete
eginput/pre/fitting/calc.py
-initialize coordinates so energy term setup doesn't fail
eginput/rna/refine.py
-placed torsionDB and repel14 togther in script
-now load 'nucleic' rather than 'nucleic-3.1.par'
-generate_aptamer_psf.py: now doesn't explicitly set default toppar value
Changes from 2.44 to 2.45
--> 2.45 released 2017/04/19
Python Interface
python/atomAction.py
-added mass helper function
nmrPot/atomDensity
-added AtomDensity::writeCCP4 with test
python/avePot.py
-AvePot ctor: update to allow wrapping of non-proxied Pots.
python/csaPotTools.py
-Merged changes from F. Marassi- introduce the Nss parameters.
nmrPot/densityGrid
python/densityGrid.i
nmrPot/atomDensity
-split DensityGrid into its own module - and added some python
code for backward compatible access through the atomDensity module
python/eefxPotTools.py
-added imports from membraneTools for functions moved there for
backwards compatibility
python/ensWeightsTools.py
-now report weights statistics in .stats file
python/ivm.py
-setBaseAtoms optimization
python/membraneTools.py
-new module with helper functions for assisting calculations with
implicit membranes. Contributed by Ye Tian.
python/nefTools.py
-removed spurious beginning of line spaces.
-updates for NEF 1.0
-seqFromNEF:
- add support for dummy linking
- fix support for null residue_variant
- fix support for null cis_peptide
-genMolecularSystem:
- pseudoatoms now get dummy linking
- fixed cis_peptide output. This really doesn't work as cis-ness
is not yet tested (read from coordinates), but proper null
value (.) is now output.
-removed cross_linking from sequence info
-toNefAtomname: added conversion for XPLOR * wildcard
-genMetadata: added tag _nef_nmr_meta_data.format_version
-fromNefAtomname: fixed translation for NEF % character
python/noePotTools.py
-writeNEF: fixed wildcard finding algorithm to be more robust and
inclusive: no longer generates doubled wildcards, and should
do better when matching multiple digits
python/pasd.py
-added sparkyPeaks, xeasyShifts
common/pdbTool
-renamed models() --> numModels(), and created models() member
which returns a list of models
-readPDB: fixed logic for case when no model is specified. We want to
read the first model and then exit. Previously, we assumed that
models where numbered from 1, so the default behavior failed.
python/pdfCore.i
-pdfEvaluate: OpenMP parallelized
python/posDiffPotTools.py
-create_PosDiffPot: added optional absoluteFit argument
nmrPot/posSymmPot
-added support for absolute fitting with new absoluteFit accessor
nmrPot/prePot
python/prePotTools.py
-PREPot::setT?Type: now require that corresponding clock atoms
exist. This required a change in one test script, and in the create_
function
-setClockDeriv: protect against updating clock atom derivs in
non-member 0 members
-addClockAtoms:
o now only add clock atoms to ensemble member 0
o moved simulation arg to end for backward compatibility
o fixes for Ne>1 EnsembleSimulations
nmrPot/probDistPot
-added correlation() method
-added correlation potType (corrected correlation definition)
python/probDistPotTools.py
-added analyze function
python/protocol.py
-initCoords/match InexactAtomEntry: added the assumeSegid optional
argument, so we can more easily load pdbs using psfs with no segid and
visa-versa.
-loadPDB: now can pass failIfInsertion through to psfGen.psfToSeq.
-matchInexactAtomEntry:
with strictResNames==True, now consult psfGen.variantResidues before
deciding that residue names don't match.
-initHBDB: improved selection documentation
-downloadPDB: broke out connectAttempts variable into module-scope
version so that it can be set externally.
python/psfGen.py
-added residue variant capability and HSD amd HSE residue types + test
-pdbToPSF: added the useChainID optional argument which is passed
through to seqToPSF
-pdbToSeq: failIfInsertion is now passed via kwargs to seqFromPDB, seqFromCIF
-autoProcessPdbSSBonds: abort if an insertion code is found.
python/rdcCorrPotTools.py
-Rfactor: updated selection conversion to correspond to current
EnsembleMemberSimulation::atomID() definition
python/rdcPotTools.py
-create_RDCPot: added the optional subSel argument
-write/readNEF:
changed NEF tag use_sign --> xplor_nih_use_sign
readNEF now applies it correctly to the energy term.
-readNEF: properly deal with missing xplor_nih_use_sign key
nmrPot/repelPot.cc
-NeighborBin: optimization: now figure out which atoms need to be
considered by generating an isNeeded entry for each atom which is
updated in add/removeSelecitonPair. Previously, this was generated
each time neighbors() was called.
-energyMaybeDerivs: now compute selPairEnergies in a thread-safe fashion
python/residueAffPotTools.py
-create_ResidueAffPot: fixed AtomSel with simulation argument unspecified
python/restraintStats.py
-updated to support statistics on vector quantities
python/sardcPotTools.py
-added initial, provisional version of writeNEF
-simplified internal SARDC implementation by replacing RDC prefactors with a
single value, scale. The computation of this factor has been moved to
sardcPotTools. For XDIPO-style restraints, a new useDist argument
has been added to create_SARDCPot.
python/selectTools.py
-added function isCisPeptide
python/simulationTools.py
-StructureLoop:
o added the writeSelection optional argument
o pdbTemplate argument: changed default value to SCRIPT_STRUCTURE.pdb
and SCRIPT_STRUCTURE_MEMBER.pdb for EnsembleSimulations.
-StructureLoop.run:
- fix to check for all ensemble files with calcMissingStructs logic
- added logic to allow the number of atoms to increase during a
structure calculation, yet still reinitialize the coordinates
of the atoms which were not added in subsequent calls to
structLoopAction.
- the check that initCoords has sim.numAtoms() has been
expanded, and now a warning is printed.
-genAveStats: protect re-writing of lowEnergyStructure with barriers
to avoid races when other processes read it.
-registerExtraStats: documentation update that lists of values can
now be reported on
common/symSimulation.cc
-syncDerivs: missing transpose of rotation matrix!
-added rotateSel, rotateAmount s.t. the symmetry axis can vary
surfD/io.cc
surfD/surf.hh
-added surfOutput for output like the original surf program - for
use with VMD
python/torsionDBPotTools.py
-create_TorsionDBPot:
now check that threshold value is found in db files: throw an
exception if not.
python/varTensorTools.py
-varTensorTools.calcTensor: added the suppressExceptions option;
this is now used in simulationTools so that situations where there
are fewer than 5 RDCs/CSAs don't cause program crash during final
analysis.
python/waterRefineTools.py
-refine:
- keepWaters now works within simulationTools.StructureLoop when
averageFitSel is not null.
- added call to updatePseudoAtoms after deleting and remaining
waters at the start of this function. This is required when
keepWaters=True and the number of structures calculated is less tham
the Xplor_NIH number of processes.
python/xplorInit.py
-requireVersion: fixed logic when requesting a point release of the
current version
-deal with strings in version_info: they're considered 0
python/xplorSimulation.i
-XplorSimulation: added the addAtom method; used by hmxPotTools
-deleteAtoms: added warning if there's a current EnsembleSimulation
TCL Interface
tcl/noe_tools.tcl
-writeOneXplorNOE: add in parentheses in ASSIgn statement in case
they're left out of the top-level atom selections
Examples
eginput/eefx/fold.py
-changes merged from the tutorial
eginput/PSF_generation/tags/mtsl/addMTSL.py
eginput/PSF_generation/tags/proxyl/addPROXYL.py
-eginput/PSF_generation/tags/mtsl/*py: 10 altconf option now works
eginput/gb1_rdc/
-renamed anneal2.py --> fold.py (including analysis script)
eginput/gb3_ensemble/noise_calc_for_two.py
-protect file output writing from races by non-process 0 processes
eginput/protein
-added symlink to gb1_rdc directory
Low-level
nmrPot/atomDensity
nmrPot/probDistPot
-cleanup, including separation of derivative of energy wrt density
(now in ProbDistPot::energyMaybeDerivs0) from the gradient of
density wrt atomic position (still in AtomDensity::calcDerv). This
will make it much simpler to evaluate alternate energy functions
-moved PotType enum from AtomDensity to ProbDistPot
-ProbDistPot::energyMaybeDerivs0: added omp/vector parallelization pragmas
CDSlib/array3D.cc
CDSlib/cdsVector.cc
-set(): precompute array limit in const variable so loop can be vectorized
nmrPot/densityGrid.cc
nmrPot/densityGrid.hh
-inlined toGridX/Y/Z
common/ensemblePot.cc
-ctor: added registerTo(esim). This to try to avoid situations
where the EnsemblePot exists after the EnsembleSimulation
common/ensembleSimulation
-barrier: added better test of lost synchronization by checking the
-barrierID of all ensemble members.
-atomID: changed to return member's rawID for non size=1 EnsembleSimulations.
This makes sense, but is at odds with the preceeding comment. It
may fail in some XplorWrapProc situations, but all tests pass
-shutdown: disable all signal handlers before final barrier. This to
avoid situation: job finishes (xplorFinal.py executed in process 0),
but other processes have not finished shutting down yet, when the
queuing system sends SIGTERM to all remaining processes. This causes
coredumps for the jobs not yet completely shut down.
python/ensembleSimulation.i
- _eq_, _neq_: properly treat case that other is None
- now python disowns even size-one EnsembleSimulations.
- added shortcuts for sizeOneSimulation, getEnsembleSimulation,
currentSimulation static methods
python/ensWeights.i
-setWeights: added barrier where it really gets called
CDSlib/mat3.hh
python/cdsMatrix.i
-moved rotVector from .i file to CDSlib
bin/includeCC
-fixed regexp for nonduplication to be more robust.
Helper Programs
bin/calcPSol.in
bin/targetRMSD.in
-now use new models method to get list of models present. Previously,
we assumed that models always numbered from model 1
bin/calcSARDC.in
-in plots, scale down subSel font size so it doesn't overwrite
R-factor value
bin/calcSAXS-bufSub.in
bin/calcSAXS.in
-changed call from xplor.simulation.deleteAtoms to ens.deleteAtoms
to avoid warning message
-fix background treatment in output calcd curve
bin/calcTensor.in
-1) added -crossSel command-line option s.t. a subselection of the
cross-validated RDCs can be used. This can also be used with a single
table.
-2) the use of -crossValidate no longer implies -showRDCs
-made plot square
-corrected axes lims
bin/domainDecompose.in
-get default values to print in usageString
bin/genSurf
-added genSurf helper for vmd-xplor - to replace the surf program
bin/getBest
-added the -symlinkSuffix option
bin/plotLog.in
-reduced default font size - necessary due to increased font size
with matplotlib-2.0
bin/ramaStrip.in
-udpated contour color setup for newer version of matplotlib
bin/targetRMSD.in
-now allow very many unknown atoms
-improved error message if there is an error reading pdb file/model.
bin/xplor.in
-fixup s.t. the killChildren signal handler is only registered for
process 0
-fixup s.t. -debug can be used in parallel mode
Architecture Specific
arch/equivList
-on 64 bit machines, Mac OS X 10.10 is now required. 10.12 is now supported.
bin/xplor.in
-added LD_BIND_NOW workaround for Linux_86_x64 Intel Compiler newer
glibc interaction.
Databases
databases/torsions/dna/dna_v0.dat
-Added elevels to dna torsion database
databases/torsions/rna/rna09_v0.dat:
-added elevel entries
toppar/eefx/protein_eefx2.top
-added GLYP patch for n-terminal GLY
Changes from 2.43 to 2.44
--> 2.44 released 2016/11/30
XPLOR Interface
source/hbdb.f
-improved warning message
source/psf.fcm
source/psfio.f
source/xplorFunc.f
-added XPLOR structure DOSCratch statement
source/orientations.f
-READORIEGAUSS: be more verbose about printing warning message when the
number of quarts exceeds MAXORIEGAUSSIANS
Python Interface
python/atomSel.i
-added AtomSel splice support
common/atomSelLang.cc
-cached simulation determination: now use Simulation::modifiedID to get
a base Simulation, so that things work ok for nonlocal
EnsembleMemberSimulations
python/diffPotTools.py
-added guessed radii for phosphorous
nmrPot/eefx
-fixed e14fullscale setter name
-NeighborBin::updateBin: protect against trying to allocate too many bins
-EEFxPot::energyMaybeDerivs:
o micro-optimizations
o converted derivAccumList to derivNeighborList: avoids
CDSList::append in inner loop, and storing index, Vec3 values
o re-enabled the nj b' added baseSize to constructor, and added
weightsFromAngles method
-derivedSpecs: added constant term, and separated baseWeights from
weights s.t. derivedSpecs are always used
-minFrac: now applies only to baseWeights
-setWeights: now use nonlinear least squares to get weights as close as
possible (frequently won't be possible to match exactly for non-unit matrix
derivedSpecs).
-computeWeights: now always check for normalized weights
common/ensembleSimulation
-EnsembleMemberSimulation::modifiedID: moved definition to .cc file
-EnsembleMemberSimulation::modifiedID: change of behavior for
nonlocal ensember members
-sync: now call AtomSelLang::clearCache if num atoms change in a member
-add/removeDependent: now different behavior for nonlocal members
python/evRestraints.py
- new module
python/gyrPotTools.py
-added averaged Rg and gyration volume to quantities reported in .stats
python/ivm.py
-IVM: added addConfigAction. These are now called by protocol's
torsion/cartesianTopology before other topology setup.
python/nefTools.py
-made residue_type --> residue_name switch
-readNEF:
o fix to honor startResid
o now support nucleic acids, cyclic proteins, and cis-residues
-moved psfGen.seqFromStar to seqFromNEF, updated for NEF 1.0
nmrPot/noePot
-added weight and probability NOERestraint members, and WEIGht and
PROB specifiers for restraint tables
-addRestraints: fix problem accessing bogus pointer after catching
addition of bad restraint
-genRestraints: added the deltaSequence and asList arguments
python/globDiffPotTools.py
-added globDiffPot code and test
python/pasd.py
-nefShifts: added name argument to support files w/ multiple cs lists
nmrPot/posSymmPot
-PosSymmPot: added per-atom centroid weighting s.t. all-atom to
glob restraints can be implemented
-added weight() accessor
-PosSymmPot::calcRotMat: make more robust in the face of negative
eigenvalues
-addEquivAtomSelPair: now throw exception if order atomSel is specified
python/posSymmPot
-Fix so that equivAtomSelPairs method works
python/prePotTools.py
-Qfactor, tauc: now support AvePot'd terms (is this a good idea?)
python/protocol.py
-initCoords: added call to XPLOR struct DOSCratch statement
-initParams/Topology:
o added optional system argument to specify which system's
parameters a file should be used for.
o now check _par_vers for all defined systems so specifying
system is seldom necessary.
-initOrie:
o rationalized the use of selection, so now it can be a proper AtomSel.
As a result, removed the simulation argument.
o should now handle arbitrarily-sized systems as the maximum number
of restraints and residues is no longer hard-coded.
o the selection string is no longer used in case where pairs are specified.
o incremented numResidues by one. There may be an off-by-one problem
in the setup for residues.
-initPlanarity: added the basePairs argument, allowing restraints to
be automatically generated if a list of paired based is specified.
-addTopologySetup:
added topologySetup function registration. This is now used in
torsionTopology and cartesianTopology, instead of having to import
and call each potential-specific term.
-initNBond: replaced repel logic with call to repelPotTools.getCheckRepel
nmrPot/psolPot
-rms(): added call to modified.update() to that it's current.
python/psolPotTools.py
-added Q-factor reporting
-changed default value of domainSeleciton to exclude pseudoatoms
python/pyConvert.cc
-toPy( Pair ):
-now call initSIGPY() to initialize swig pointer types
python/rdcPotTools.py
-read/writeNEF: updated to treat all RDCs associated with a particular
alignment tensor.
-readNEF: updates to support calcTensor script
-added function to compute calcd/obs correlation; now print this
in analyze, and in stats
-Rfactor: change behavior if denom is zero: now return -1
python/regularize.py
-renamed addUnknownAtoms to addUnknownAtoms_old and
-addUnknownAtoms_new to addUnknownAtoms, with a addUnknownAtoms_new alias
nmrPot/repelPot
-changed behavior of bumps() method to return bumps for all
selection pairs by default
-added rMin accessor
-added the eMax accessor per-interaction maximum value
-added calcSelPairDerivs and selectionPairDerivs members/accessors
to obtain per-selection pair gradients.
-selectionPairEnergy: added call to modified.update() so
calcEnergy need not be first called.
-RepelPot::NeighborBin::updateBin: now protect against
overallocating memory for very large systems, and against
uninitialized atom positions
-RepelPot::NeighborBin::updateBin: deal with case of zero atoms
-RepelPot: fixed gradient for scale!=1 ; added test
python/repelPotTools.py
-create_RepelPot: added suppressException optional argument
added the checkGetRepel function to implement repel consistency check,
and fix this to really catch inconsisten protein and nucleic acid
parameter sets.
-added printSelPairStr object to RepelPot
python/selectTools.py
-correctSymmetricSidechains:
use more straightforward logic in generating the default selection,
and no longer convert to atom indices
-convertToAtomSel:
now support conversion from indices
-getSegsResidues:
rationalize s.t. selection isn't prematurely converted into indices
-new function genPlanarityRestraints
common/simulation.hh
-added numDependents accessor- useful for debugging
python/simulationTools.py
-renamed RampParam --> RunAction
-added IVMAction class
python/socketComm.py
-startServer: listen: increased the backlog value from 1 to 5
-Connection.writeln: switched to using lower-lever socket send
function instead of file object interface, because the later is not
safe against interrupted system calls.
python/surfD
-fixup to allow generate call to update_radii() from Python
common/symSimulation
-added centroidProj component to SymSimulationOp, addCopy
surfD/compute.cc
surfD/surf
-calcSA: now takes a selection s.t. the surface area of a
subregion can be computed
python/torsionDBPotTools.py:
-added create_Terminal14Pot function to avoid eclipsed
conformations for dihedrals not covered by torsionDB.
python/torsionPotTools.py
-Xplor_readNEF:
-fixed for NEF 1.0.
-now print proper error messages for restraints we can't handle.
Example Scripts
eginput/gb1_rdc/testNEF.py
-now verify RDC restraints from NEF
eginput/gb1_rdc/makeNEF.py
-now write RDC restraints to NEF
eginput/gb1_rdc/anneal2.py:
now use Terminal14Pot
new addConfigAction topology setup
eginput/eefx/fold.py
eginput/eefx/refine.py
-modernized the EEFx setup
eginput/eefx/membrane/fold_EEF.py
-modernize examples
eginput/pasd
-updated with NEF version 1.0 example; added validation
eginput/capsid/
eginput/gb1_rdc/refine.py
eginput/pre/refine/newRefine.py
eginput/rna/
eginput/sardc/refine.py
-updated to use RepelPot and Terminal14Pot, or commented that such
an update is recommended
Topology/Parameters, Database entries
databases/rna_rna_pairs/rna_quarts_setup.tbl
protect against using partner info (from store4) when it is not
set. In this case, the values are garbage, and in some cases these
will generate XPLOR errors.
toppar/protein-3.1.par
toppar/protein-3.1.top
-added top/par for residue LYR, Lysine with retinoic acid from F. Marassi
-added residue AIB (alpha-aminoisobutyric residue)
toppar/eefx
toppar/protein_eef.par@
toppar/protein_eef.top@
-renamed eefx top/par files and symlinks to match those in the
eefx2 paper
Helper Scripts
bin/calcPSol.in
-added Q-factor reporting; added support for back-calculating
sPREs with no experimental table (with -table generate -genSel)
-now print out fit value of probe concentration
-added support for multiple pdb files, including MODEL entries and ranges.
-fixed rho0 calculation when multiple structures specified
bin/calcTensor.in
-added NEF support
-documentation update
-now don't clobber tensor pseudoatom coords when structure is read
bin/slurmXplor.in
-now support the --ntasks slurm sbatch argument
-now set the --cpus-per-task slurm argument based on ensemble and OMP
parallel settings
-now use -s argument to hostname when comparing to node name to have a
better chance of matching.
Architecture-specific
arch/Darwin_10_x86_64/Makefile.defs
-updates for the 2017 Intel Compilers - courtesy of Pascal Mercier
-for gcc: added OpenMP flags if USE_OPENMP set
Changes from 2.42 to 2.43
--> 2.43 released 2016/08/31
Example Scripts
eginput/cmdline/testParallel.py
-commented, and now no longer dependent on ssh/rsh
eginput/gb1_rdc/analyze_refine.py
-various update/modernizations
eginput/gb1_rdc/anneal2.py
-RepelPot setup change: now use 1-4 interactions during high
temp. dynamics, but not during simulated annealing. This seems to
work well
eginput/pasd/cvn/validate.py
-loosened accuracy threshold from 1.0 to 1.1 angstrom; increased
coverage threshold from 4.5 to 5.5 lr hl assignments per residue
eginput/pasd/nef/initMatch3dN.py
-fixed up to use portable string rep to pass pointer from Python to TCL
eginput/pre/atcun_motif/addATCUN.py
-addATCUN.py: atoms added before optional replicatio
-New eginput/PSF_generation/tags/atcun_motif/addATCUN.py
eginput/pre/refine/generate.py
-switch to default nucleic.top
eginput/pre/refine/validate.py
-replaced RAMA with TorsionDB
- HHn RDCs: loosen tolerance from 1 to 1.2 Hz
- refRMSD accuracy tolerance: loosened from 0.83 to 0.95 angstrom
- refRMSD fit selection: now omit phosphate oxygens, as they are swapped
in the reference structure
eginput/pre/refine/newRefine.py
-replaced RAMA with TorsionDB
-initCoords: no longer call correctSymmetricSidechains: may conflict
with defs in dihedral table
-after reading input file: now flip coords of O1P/O2P
-now erase and rebuild all proton coords
-now use final force constant throughout for DNA torsionDB term
-now use nbxmod=4 with VDW
-now use hingebend nodes for all riboses
eginput/pre/atcun_motif/ => eginput/PSF_generation/tags/atcun_motif/
eginput/protG/anneal.py
-fixup to allow small repel value to initNBond
eginput/PSF_generation/genDNA24bp.py
-modernized and made more robust
eginput/sardc/gb3.psf
eginput/sardc/refine.py
-fixup for protein.top/par update, and use of torsionDB
eginput/analysis_SRY
eginput/sry
eginput/prot_prot
eginput/fbp
eginput/DNA-SRY
eginput/T1T2
eginput/mef_dna
-moved these examples to the deprecated subdirectory
Helper Programs
[ Now build helper script/program documentation from their command-line
accessible documentation. This documentation is available at the
new page: https://nmr.cit.nih.gov/xplor-nih/doc/current/helperPrograms ]
bin/calcSAXS.in
-added support for :model suffix syntax for pdb files
bin/contactMap.in
-added the -printAtomContacts and -noPlot options
bin/getBest
-fixed logic for case when both -suffix and -symlinks are
specified
-added --help-cmdline/description/usage for compatibility with
automatic document generation facility
bin/plotLog.in
-merged features from forked plotLinear. New options:
-asTime, -legendLocation, -line, -figsize
bin/xplor.in
-removed debug text
-split usage function in two with new addition usage_common whose
output can be obtained by itself with the new -help-common option
Parameters/Topology
toppar/atcun.top/par
-New atcun topology and parameter files
toppar/edta.par
toppar/nucleic-1.2.top
-TED: added missing impropers for linker planarity
toppar/eefx/protein_eefx.par
-Modified protein_eefx.par
toppar/nag.par
toppar/nag.top
-fixed improper def in patch region
databases/torsions/dna/
-Added databases/torsions/dna
-Moved protein-3.0.* => protein-3.1.*
toppar/nucleic-3.1.top
-changed TED H6 chem type to match that of thymine
toppar/nucleic-3.1.par
-flipped sign of C2' improper s.t. is has proper proton IUPAC naming
toppar/nucleic-3.1.par
toppar/nucleic-3.1.top
-added missing THY methyl improper
toppar/protein-3.1.top
-fix ARG symmetric branch naming - it is now consistent with the
docstring for selectTools.correctSymmetricSidechains
toppar/nucleic.par@
toppar/nucleic.top@
toppar/protein.par@
toppar/protein.top@
-bumped default versions to 3.1 (using molprobity radii)
Python Interface
nmrPot/atomDensity
nmrPot/probDistPot.cc
-DensityGrid: added the setData accessor
-Density Grid: removed members alen, gridCoords and method getGridCoords
common/atomSel.cc
-intersection: optimization, and addition of optional createString
argument which can be set false for optimization if the string is
not required
-intersection, asUnion:
now return first selection if two selections are identical
common/atomSelAction.cc
-Fit::construct: now throw exception if selection contains fewer
than 3 atoms.
common/atomSelLang.cc
-atom method (for ATOM selector): optimization
-AtomSelLang: added caching of atom name/resid/segid info. This
greatly speeds repeated AtomSels for large structures. Of course,
the cache must be updated when atoms are added or changed. Also,
the cache entries must be deleted entirely if atoms are deleted.
-changed static variable atomSelLang_result to static class member
AtomSelLang::result
-changed AtomSelLang::return type to typedef
-added atom ordering to AtomSelLang, Simulation and AtomSels
-added AtomSelLang::setUseSegmentCase to help support
circumstances where case is significant in segmentNames. If you
have a lower-case segment name (or chainID) place this at the top
of your script:
import atomSelLang
atomSelLang.setUseSegmentCase(True)
common/atomSelLang.cc
-changed AtomSelLang::ResultType from boolVec to class
python/Makefile
-PYTHON_SRC: added chirality.py
nmrPot/csaPot.cc
-now use BogusAtomSel for axis atoms in restraints to arbitrary text can be
specified between parentheses
python/csaPotTools.py
-create_CSAPot: added the optional string argument so restraints
can be directly specified
nmrPot/eefx
-reverted setter accessors named useOption(val) back to
setOption(val). The rationale is that the getters are named option(),
and that the Xplor-NIH standard is that accessors be named option/setOption.
python/eefxPotTools.py
-create_EEFxPot:
slight tweak to paramSet configuration
python/noePotTools.py
-create_NOEPOt: splitRestraints setup:
changed naming of terms, removing digit.
now support NOEPot terms with > 1 selPair (ASSIGN ... OR entries)
-readNEF: now print number of sucessfully loaded restraints in
addition to number found
common/pdbTool
-write functions: now wrap the atom id number at 100,000 so that
it no longer overflows its field
sparta/pdb.cc
-SPARTA_PDB::updateNeighborLists: add optional arg to call to
intersection for optimization
common/pot.hh
-Pot::calcEnergyAndDerivs argument changed from reference to
pointer. clang and gcc-6 did not work with any optimization with the
previous defs using the idiom of passing a dereferenced null pointer
when gradient evaluation was not desired
python/protocol.py
-added learnParams function
-initNBond: change the default repel value to 0.9 for nucleic and
parameter versions 3.1 and later. Also check that the repel value is
appropriate if a recent parameter set is used. Finally, check for
mixed use of pre- and post-3.1 parameter sets. Added the new optional
suppressException argument.
python/psfGen.py
-cisPeptide: now raise an exception if no peptides are selected
python/regularize.py
-fixupCovalentGeom/IVM: fix call to initNBond to leave out repel value
s.t. it will work with both pre- and post-version 3.1 top/par settings
nmrPot/repelPot.cc
-ctor: protect against bad values in nbfix term, and print warning
-info: now call modified.update() so that it doesn't crash if called first
python/repelPotTools.py
-added use14 arg to create_ and initRepel funcs
-create_RepelPot:
catch cases where sigma or LJ B parameter is zero and reset to 1 to
avoid NANs in C++ ctor
-initRepel:
o support case of AvePot-wrapped term.
o now set the 1-4 scale factor to 1
o fix the version detection logic s.t. repel is set to 0.9 for newer
parameter sets.
-create_RepelPot, initRepel: added logic from protocol.initNBond
for setting default repel value and checking for inconsistancies in
repel and parameter sets
-repelPotTools.analyze: prettify selection pair output
python/selectTools.py
-IVM_flexibilizeRiboses: added default value to sel argument, and
updated so that it only acts on riboses.
-IVM_breakProlines/Riboses:
made more robust for the case of structures with missing atoms.
python/simulationTools.py
-StructureLoop.genAveStats:
o lowest energy structure's energy is now re-evaluated prior to final
writing (after fit). The energy reported in the .stats file was
frequently different from that in the PDB headers before this
change, when it was thought that this was unnecessary as the lowest
energy structure is not changed by the fitting procedure.
o all instances calling atomSelAction.Fit: now enclose in try .. except
statements, so catch cases where fewer than 3 atoms are attempted to
be fit.
o When rewriting fit structures, preserve extraRemarks
-StructureLoop.run: deal correctly with the case structure doesn't
pass averageAccept. Previously, averageContext would not be called on
these structures before they were written out.
python/torsionDBPotTools.py
-optimizations:
o create_TorsionDBPot: no longer convert energy values to floats: this
is now done by PyConvert in the TorsionInterpolPot* constructors.
o setup_pot: now pass very simple, single atom selections to the
constructor for each term. Previously, the complete metaselection
was passed, leading to bad N^2 slowdowns for large structures.
o parse_metaselection: modified to remove _RESID* entries and return
their specified offset (if any). This modification means that
each metaselection now requires a resid _RESID* component.
o Added 'dna' system to torsionDBPotTools
nmrPot/utils.hh
-moved BogusAtomSel to utils
vmd/vmdInter.cc
-objName: no longer convert names to lower case
python/xplorInit.py
-parseArguments:
o added the cmdline, description, and usageString arguments
o will now internally handle --help-cmdline, --help-description, and
--help-script options.
o updated help-script behavior to add title, and change
order to description, cmdline, usage.
XPLOR Interface
source/update.f
-suppress warning messages about erased terms if WNRLEV==0
TCL/PASD
tcl/sa_protocols.tcl
-fixup for protein.top/par update: final repel value now 0.9; now
call Python protocol.initNBond, instead of directly calling into
xplor
-fixes for repel radius scale factors to be consistent with protein-3.1.par
Architecture-Specific Changes
arch/Linux_x86_64/source/Makefile
-updated for 2016 Intel Compilers
-optimization downgrade for fenergy.f with 2016 Intel Compilers
-apply array.f optimization downgrade for gfortran version 6
arch/Linux_x86_64/common/Makefile
- now emptybecause the Xplor-NIH idiom of using null references has
been changed to use pointers
arch/Linux_x86_64/surfD/Makefile
-optimization downgrade for 2016 Intel Compilers
arch/Linux_x86_64/Makefile.defs
-updated openmp option for Intel Compilers, and moved to global
location (Makefile.defs)
-Intel Compilers: now link libifport statically: this prevents
Fortran's system() from segfaulting when run with a libc other than
that with which was used for compilation
-added def of GCC_MAJOR/MINOR_VERSION if gcc detected
-no longer leave out libresolv
arch/Linux_x86_64/tcl/Makefile
-apply optimization downgrade for gcc version 6
Low-Level Libraries
CDSlib/spline3D.cc
-optimizations of genTricubicCoeffs
bin/seq2psf.in
-fixed usage string and added --help-script option for web-doc generation
bin/targetRMSD.in
-updated usage for web-doc generation
bin/scriptMaker.in
-added usage info with --help-script option for web-doc generation
bin/pdb2psf.in
-switched usage info to use new parseArguments facility
Makefile
-split BIN_INHELPERS off of BIN_INSCRIPTS
-added web-helper-doc rule
Changes from 2.41.1 to 2.42
--> 2.42 released 2016/05/02
Example Scripts
eginput/rna new example. Moved the old RNA example (eginput/rna_refi) to
eginput/deprecated
eginput/gb1_rdc/refine.py
-added HBDB, updated comments
eginput/gb1_rdc/analyze.py
-updated from tutorial version
Helper Programs
bin/calcPSol
-added -rmin and -genPDB options
-now does rho0 prefactor fit unless -noFitConc is specified.
-added -plotVsResid option
configure
-now test for spaces in installation path and exit if found
bin/contactMap
-added -xticks, -yticks options
-added the -printContacts and -absolute options
-adjusted the ranges s.t. the resid numbers are better centered on the
x- and y-axes
-fixed bug if both -absolute and -printTable specified
-added -includeZeros flag and changed the default to not print
zero-valued fields when -printTable is specified
bin/contactMap
-allow per-selection pair cutoff specification
bin/echo
-fixed default path and removed debug output
bin/ens2pdb
-added the -ensTerm option - necessary for structures with multiple
EnsWeights terms
-added the -ensMemberOrder flag
bin/ramaStrip
-added color:colorName entries for filenames
Parameters / Topology
toppar/charmm22/topallh22x.pro
-included change from imm1 branch introduced by Ye Tian which
-removes a all of dihedral terms in the PPG1 patch definition.
toppar/protein-1.0.top
-optional enable auto-generated dihedrals for all residues. This only
works with Xplor-NIH version 41.2 and onwards, as it requires a change
to rtfio.f
toppar/protein-1.0.par
-fixed nbfix comment
Databases
-Added databases/torsions/rna/eg_generate_potential
toppar/eefx/charmm22/
toppar/charmm22/topallh22x.pro
-charmm22 force field added.
Python Interface
python/atomAction.py
-randomizeVelocities, translateFit: updated to use
selectTools.convertToAtomSel
python/chirality.py
-initial version of absolute chirality module
common/derivList
-added sync method and synced bool for synchronizing SymSimulation gradient
python/eefxPotTools.py
-removed the alignTensorToZ function:
it is now in the varTensorTools module
-removed the EEFxBoundary function:
it is replaced by the create_EEFxBoundaryPot function
-added module-local variable useTorsionDB
-new function initEEFx for appropriately intializing toppar values
-create_EEFxPot: paramSet arg now takes a default value of None, and
now, by default, an attempt is made to set this using the value of the
XPLOR variable protein_par_vers which should be set in the protein
parameter file. Additionally, this value is used to set the
useE14FullScale value of the EEFxPot term.
common/ensWeights
-replaced symmetryTrans w/ more general derivedSpecs method to specify weight constraints
python/ensWeightsTools.py
-updated for symmetryTrans -> derivedSpecs transition
-added helper function: optimizeWeights
python/nbTargetPot.i
-added sel() method for compatibility with PSolPot
python/nonBondTools.py
-readXplorRadii: (mostly) fixed logic for nbxmod=+/-5; still need
to read 1-4 parameters
common/potList
-add:
-No longer sort the energy terms by name. They now stay in the order in which
-they were added.
-energyReports:
-These are now sorted by name, so that most of the output remains the same as
-previous.
python/protocol.py
python/selectTools.py
-Added flexible ribose capabilities. See the
protocol.torionTopology documentation for the new flexRiboseRing
argument.
-writePDB: removed premature dependence on XplorSimulation
-initDynamics: now pass the IVM's simulation to randomizeVelocities
python/psfGen.py
-seqToPSF: added logic s.t. the correct patch is used for
N-terminal GLY for charmm22
nmrPot/psolPot
python/psolPotTools.py
-renamed dp --> rmin added sel() accessor
-removed rho, pconc members - replaced with rho0
python/rdcPotTools.py
-composite_Rfactor_infinite: add normalize argument and have it default
to True
-getRDCType: logic to catch nonprotein CH RDCs
nmrPot/repelPot
python/repelPot.i
python/repelPotTools.py
-repelPot: a C++ implementation of XPLOR's REPEl nonbonded
term. Easier to apply term to subsets of atoms within a
structure, and more accurate violation reporting. An example of
use can be found in eginput/gb1_rdc/anneal2.py
python/simulationTools.py
-StructureLoop: get things working properly if pdbFilesIn contains
the STRUCTURE literal- including handling nonexistent files
-StructureLoop.getAveStats: protect against case when no structures are found
common/symSimulation
-new facility to introduce strict rotational and translational symmetry
python/torsionPotTools.py
-added XPLOR_makeTable
python/varTensorTools.py
-alignTensorToZ: added the tensorTrans argument
python/xplorInit.py
-requireVersion: add optional raiseException argument so it can be
used to query, without raising an exception
python/xplorPotTools.py
-fixed numRestraints output for VEAN; added test
XPLOR Interface
source/hbdb
-hbdb: lifted the (silent) limitation of having 10 unique segids
source/rtfio.f
-RTFRDR: autogenerate: added parser call so that conditionals can
be used in topology files
Low-level
CDSlib/cdsList.cc
-contains(): reimplemented getIndex() is not called.
CDSlib/fixedMatrix.cc
-generic operator*=: fixed typo!
CDSlib/mat3.hh
-added generic assignment operator
-added template arguments - weren't needed before...
CDSlib/matrixTools.cc
-generic callInverse:
added special case for 1x1 matrix. Get a huge speedup
CDSlib/subMatrix.hh
-added operator-=
-added generic versions of assignment operator and operator*=
intVar/publicIVM.cc
-calcEnergy: added call to DerivList's new sync() method after
-evaluating energies and gradients
intVar/dint-node.cc
-calcP: hand optimizations
intVar/publicIVM.cc
-calcEnergy: added call to DerivList's new sync() method after
-evaluating energies and gradients
bin/findSwig
-whitelisted swig 3.0.8
python/Makefile
-added -modern swig option s.t. modern'' style Python classes are
used. This to fix a swig regression when the option is not specified
starting with swig 3.0.3.
python/pot.i
-removed hacky workaround no longer necessary now that swig's
-modern option is used
python/noePot.i
-modified specialized code used to implement backward
compatibility for the sel1/sel2 members
common/ensembleSimulation.cc
-sync: for Ne=1, don't sync pos/vel. This simply overwrites
coords, and breaks SymSimulation usage
arch/Linux_x86_64/common/Makefile
-compiling with clang++ v. 3.8: optimization downgrade for potList.o
Changes from 2.41 to 2.41.1
--> 2.41.1 released 2016/01/06
python/simulationTools.py
StructureLoop.genAveStats: fix s.t. reported input structure
(initialized from) is correct.
arch/getDarwinCPU
fixed silly bug such that program would not run on Xeon processors.
Changes from 2.40 to 2.41
--> 2.41 released 2015/12/18
Example Scripts
eginput/capsid/validate2.py
-relaxed med-conc. N-terminal R-factor by 0.05%
eginput/gb1_rdc/testCalcTensor
-updated to include composite results, and to set the -subSel option
eginput/gb1_rdc/testCalcSARDC
-fixup for addition of normalized R-factor
eginput/capsid/validate2.py
-relaxed refsaxsChi2
eginput/relaxRatio/calcRelaxRatio.py
-added support for XPLOR-style restraints with -restraints argument
-added code to rotate structure to demonstrate rotational dependence of
the result
eginput/relaxRatio/ub_strDet.py
-set showAllRestraints for relaxRatio term
eginput/relaxRatio/validate.py
-moved refRMSD to crossTerms; relaxed refChi2...
eginput/pre/refine/validate.py
-reduced refRMSD accuracy required
eginput/eefx/membrane/
-new EEFx-membrane example
Helper Programs
bin/calcSARDC.in
-now to a per-ensemble printout of RDCs and alignment Tensors
-now print overall normalized R-factor
-now compute normalized R-factor for each subSel.
-fix accuracy of printed ensemble weights
bin/calcSAXS.in
-added new option -formFactors which can be used to specify Jinbu
Wang's calibrated RNA form factors
-deal with the case:
ensemble specified, but no EnsWeights output in the PDB file (so
should use default equal weighting)
-fix ensWeights reading logic
bin/calcTensor.in
-now compute and print as overall R-factor-inf
-now use rdcPotTool's new composite_Rfactor_infinite helper
-neaten and add composite_chi2 to output
-added -fitallExps option; minor docstring edits
bin/ens2pdb.in
when calling initCoords, previous coords were not always
overwritten. Fixed by adding erase=True argument.
bin/pbsxplor.in
-add support for running in directories whose names include spaces
-fix bug in log file specification. May have reintroduced problem
with space-containing directory names
bin/ramaStrip.in
-added the -axesNumbers option
bin/targetRMSD.in
-now, when -write is specified, REMARK headers are preserved in the
output .fit files.
-now use the (new) PDBTool::readRemarks method when writeFit is True so
that coordinates are not read.
Parameters / Topology
toppar/nucleic-3.1.par
toppar/nucleic-3.1.top
-Added residue AP7
-added GTP residue and missing improper for P chirality in 5pho patch
toppar/proxyl.par
toppar/proxyl.top
-Added topology/parameter files for proxyl: toppar/proxyl.*
databases/torsions/rna/default@
databases/torsions/rna/rna09_v0.dat
databases/torsions/nucleic/ => databases/torsions/rna/
python/torsionDBPotTools.py
-Added torsionDBRNA database - implemented it in torsionDBPotTools
Python Interface
nmrPot/eefx.hh
-EEFXPot, NeighborBin: now keep local copies of numAtoms, numBonds
such that more atoms (particularly pseudoatoms) can be added
after instantiation. Otherwise we get a segfault
common/ensWeights.cc
-setWeights: fix bug when setting weights for Ne>3
-added clearEnsWeights() and changed return type of getEnsWeights to ref, so they can be modified
python/ensWeights.i
-updated envelope version of setWeights to allow dictionary argument
python/ensWeightsTools.py
-freedom: allow 'vary' to be used instead of 'bend'
python/ensembleSimulation.i
python/socketComm.py
-..Comm: added procs() method
nmrPot/gyrPot
python/gyrPotTools.py
-GyrPot updated to support Rg target, with SAXS-defined ensemble
averaging along with weight optimization
-info: print Rg, Vg for each ensemble member
python/nbTargetPotTools.py
-create_: now print warning if no restraints are added; now
properly register correlation stats
nmrPot/noePot.hh
-Restraint::selPairs_: now public so that it can be easily swapped
python/noePotTools.py
-added the genRestraints helper function
-genRestraints: added omitIntraResidue argument
-added spaceSeparatedToRestraint helper to generate restraints from
tabular data.
-added functions for initial support of stereo-unassigned geminal
nuclei: addNonstereoRestraints and processNonstereoRestraints
common/pdbTool.hh
-addRemarks: arg can now optionally be a list of strings
-added the readRemarks method
python/protocol.py
-initCoords: added the optional fixProtonImpropers argument.
-matchInexactAtomEntry:
matchInexactAtomEntry: added rule numbers for all matched atoms
(when verbose is enabled)
--fixed rule 12 s.t. at least 2 characters match; the way it was, a
single character could match twice.
python/psfGen.py
-seqToPSF: add ability to alter n- and c- terminal patches for RNA and DNA
nmrPot/rdcPot1.cc
-addRestraints: don't print error warning if selectionFilter is set
python/rdcPotTools.py
-added composite_Rfactor_infinite helper function
-added helper function composite_chi2
python/relaxRatioPotTools.py
-Added support for XPLOR-style restraints:
-create_RelaxRatioPot: added optional restraints argument
-added writeTable helper to write out restraints
python/restraintStats.py
-RestraintStats.collect: now more robustly deal with dead procs
python/sardcPotTools.py
-Rfactor: now add option to compute a normalized R-factor
python/selectTools.py
-added fixProtonImpropers helper function
-rigidProteinSelections: added CYSP
python/simulationTools.py
-StructureLoop.genAveStats():
reworked such that structures are actually fit to the lowest energy
accepted structure. Now proc 0 collects, sorts and filters energies,
and then distributes the identity of the best structure so that all
structures can be fit in a distributed fashion.
-StructureLoop.run: now robustly handle errors in extraRemarks
-minimizeRefine: fixedRegions and rigixRegions can now also be
simple strings
-StructureLoop.run/genAveStats:
-if fitting structures, call averageContext before writing fitted
structure. This is important s.t. translation or
orientation-depedent properties (e.g. Euler angles) are
correct. Note that energies will change due to
1) coordinate roundoff due to the PDB format.
2) limitations of some energy terms (such as RelaxRatioPot), which
may be slightly dependent on orientation.
-now call averageContext before writing average structure
-writeStructure:
added makeBackup and clearRemarks optional arguments
python/solnScatPot.i
-calcIfromF, calc_dIdrhob: fixed OpenMP parallelization
python/solnXRayPotTools.py
-added Jinbu Wang's form factor setup with the new option formFactors="JBW"
python/varTensorTools.py
-calcTensor: added -fitallExps option; minor docstring edits
low-level:
bin/findSwig
-whitelist swig 3.0.7
intVar/dint-node.cc
-HNodeTorsion: constructor: disable special purpose code for when
rotDir0 is in the x-z plane. It was incorrect, and the other code
generalizes to this case.
python/tests/testScripts
-removed duplicate line
python/cdsTypeMaps.i
-with swig version 3 need an explicit typemap such that non-boolean Python objects (e.g. 0,1) can be passed into C++ functions requiring bools
tcl/findTCL
-search for libtcl.so/a/dylib:
-add additional path based on upstairs path from TCL's autopath
tcl/Makefile
-removed .NOTPARALLEL:
arch/Linux_x86_64/tcl/Makefile
-optimization downgrade for g++ - 5.2
arch/Linux_x86_64/python/Makefile
-enable OpenMP for gcc
arch/equivList
-added Darwin_15 (El Capitan)
-added missing Mac OS X symlinks
arch/Linux_x86_64/Makefile.defs
-added CLANG_VERSION variable
arch/Linux_x86_64/common/Makefile
-optimization downgrading (to -O0!) for potList.cc for clang++ 3.5
Changes from 2.39 to 2.40
--> 2.40 released 2015/09/25
[Contains source code contributions from Hoi Tik Alvin Leung, Ye Tian,
Guillermo Bermejo, and C.D. Schwieters.]
Helper Programs
bin/calcPSol.in
-added calcPSol helper script
bin/calcSARDC.in
-plot is now specified as square.
-now always print ensemble weights, if they're not the default 1/Ne values
bin/calcSAXS-bufSub.in
-added non-None value for ensWeightsRegexp
bin/calcTensor.in
-fixed the behavior of the -subSel argument to be the intersection with
ASSIgnment statements.
bin/ens2pdb.in
-added a -psf option
bin/pbsxplor.in
-add -toQsub option to pass arbitrary options to qsub
-added OpenMP support
bin/runSparta.in
-added the runSparta helper script
bin/slurmXplor.in
-added slumXplor frontend
-updated SYMMETRY path env var to its new deprecated location
bin/xplor.in
-OpenMP support: set default OMP_NUM_THREADS to 1
-added the -omp argument to set this
eginput/relaxRatio/calcRelaxRatio.py
-added tempRange argument for temperature optimization
-added plot option and plotLabels option
-switched x- and y- axes
Example Scripts:
eginput/pre/atcun_motif/addATCUN.py:
improvements
eginput/PSF_generation/addAtoms.py
eginput/PSF_generation/addAtoms2.py
-now delete any sidechain coords of mutated residues so that any
incorrectly matched coords are cleared
-moved old XPLOR script examples to subdirectory named ``deprecated''
Documentation
helplib/nih-py-solnScatPot
-added docs on rigid body setup
helplib/nih-py-relaxRatioPot
-added bit on sigmaFactor and cutoff computation
Topology / Parameters:
toppar/atcun.par
toppar/atcun.top
-updated/fixes.
toppar/nucleic-1.2.par/top
-new (default) nucleic acid parameters with missing P improper
added (to get P oxygen naming consistently correct).
toppar/nucleic-3.1.par/top
-Added impr for P chirality in nucleic-1.1.top/par
Python Interface
common/atomSel.cc
-intersection: changed selection string so it is now valid, and
can be reevaluated
python/chemShiftTools.py
python/spartaPotTools.py
-moved format conversion code to (new) chemShiftTools module
nmrPot/eefx
-update to get per atom Egc and Evolt values
-added accessors for pore model
-OpenMP parallelization
-added read accessors for IMMx options
python/eefxPotTools.py
python/varTensorTools.py
-moved alignTensorToZ from eefxPotTools to varTensorTools
-micelle and bicelle module added.
python/ivm.py
-minimizeEscape: fixed String exception
python/ivm.py
-added stepsizeThreshold, minStepsize accessors;
-reworked minimizeEscape to not testGradient
nmrPot/nbTargetPot
-added correlation potType
-restraint: added accessor methods with same names as those in PSolPot
nmrPot/noePot
-added removeRestraint method
python/pcsTools.py
-XTensorFit:
-added a tol argument
- -XTensorFit:
-added maxDisplacement, tol arguments
- -added spaceSeparatedToRestraint restraint conversion helper function
common/pdbTool.cc
-readPDB: better support for reading malformed ATOM records
--no longer skip lines shorter than 66 character
--now conditionally read b-factor and occupancy fields
nmrPot/prePot.cc
-operator>>: added better diagnostics error
python/prePotTools.py
-create_PREPot: added the optional argument nucleusID
o added appropriate sync after call to addClockAtoms. This calls to
the PREPot's EnsembleSimulation, while currentSimulation will not be
an EnsembleSimulation for ensemble size 1.
-added spaceSeparatedToRestraint helper function
-added the makeTable helper function
-getNucleusType: fix bug if no restraints are present.
-added helper functions: addNonstereoRestraints and
processNonstereoRestraints
python/protocol.py
-initDihedrals:
o will now handle empty string filenames
o made ensemble-safe
o replaced opne fastCommand call w/ command() to force a sync
nmrPot/psolPot.cc
-OpenMP parallelization
-added energyMaybeDerivs for conditional gradient computation;
area for all triangles now computed once and restraint-specific
quantities computed in inner loop
-added atomContribThreshold, logic to use only important atoms in
surface integral calculation
-Restraint: renamed g -->obs, gSigma ->err, gamma -->calcd
-support for adding radius noise to avoid regions of bad tessellation
-added correlation targetType
-cleanup
python/psolPotTools.py
-added this module with helper functions
-switched to radii from diffPotTools. Find consistent improvement of
correlations.
nmrPot/rdcPot1
-Restraint:
o added selectionFilter_ member used to filter atoms when restraints are
specified
o selPairs() now returns a (const) reference
o added comment(), selectionFilter() accessors
o aveSize_ member is now shared and checked. If any
ensemble member has zero aveSize, the restraint is rejected
-Pot:
o addRestraints(): added optional selectionFilter argument.
o restraints(), rawRestraints() now return references so that restraints
-change behavior when encountering small RDC error: now check sum
of minusErr and plusErr
python/rdcPotTools.py
-added spaceSeparatedToRestraint conversion function
-create_RDCPot:
when creating a VarTensor object, now try to generate a unique name
python/regularize.py
-fixupCovalentGeomIVM: fixed docstring for extraTerms
-addUnknownAtoms_fast:
change algorithm to look for known bound atoms
nmrPot/relaxRatioPot
-RelaxRatioPot: renamed rangeTmpFit --> tempRange, with backwards
compatibility wrapper
-updateValues: now always update cutoff
python/relaxRatioPotTools.py
-create_RelaxRatioPot: added optional argument sigmaFactor
-analyze: now report summary of tensor parameters
-changed default sigmaFactor to 10000000
python/residueAffPotTools.py
-create_ResidueAddPot: optimization of setup when selectionPairs
are specified
python/restraintStats.py
-RestraintStats.collect: handle the case where a process has no data to
report.
python/sardcPotTools.py
-added function makeTable
python/simulationTools.py
-StructureLoop: broke writeStructure out to be a stand-alone function
-writeStructure: added newline after extraRemarks
-analyze: finally accept an exterTerms value of None
-genFilename: deal with case that scriptName contains path elements
python/socketComm.py
-Comm.readDataFrom:
now handle case where specified proc does not exist
nmrPot/surfTessellation
-added oldSurf and savePrev accessor. If set previous tessellation
is saved and retried by retessellateIfNecessary for force>2
python/utils.py
-Added python/utils.py with duration function
python/varTensorTools.py
-calcTensor, calcTensor_ensemble, chi^2: now take error as
1/2(minusErr+plusErr)
vmd/vmdInter.cc
-changed call from molWid_colorSet to molWid_color to reflect
renaming on tcl side
Fortran Interface
-added deprecated warning for use of ParaRestraints
TCL Interface:
tcl/sa_tools.tcl
-setupIVM: change to use pyInterp.portableStringRep to instanciate
C++ object from Python interpreter. This required for swig 2.0.12.
Low-level libraries:
CDSlib/sthead.hh
-added stubs so omp API functions can be used when OpenMP is not present
common/ensemblePot.hh
-changed setEnsWeights to virtual function
common/potList
-added overridden setEnsWeights:
now set esim member (of EnsemblePot) to currentESim
common/simulation
-added the forceUpdate flag to aid in resetting tessellation updates/resets
CDSlib/cdsList.hh
-added reserve and append methods to CDSListRep - CDSList versions call these. These can be used in optimization to avoid calls to split(), and additional pointer dereferencing
-inlined CDSListRep::reserve, append
CDSlib/cdsString.cc
-doGsub: removed unused variable
intVar/dinternal
intVar/publicIVM
-added force/clearRecalc methods which are called in step() when a
small timestep is encountered - to aid with retessellation
python/pyInterp.i
-added portableStringRep function
bin/findSwig
-whitelist swig-2.0.12
surfD/compute.cc
surfD/surf.hh
surfD/surfInternal.hh
-reworked atom neighbors structures to be more transparent/readable
-Surf: changed type of Extents member to be more readable
-compute_extents: improved readability
-compute_neighbors: cleanups for readability
-simplification: moved neighbor_list from Surf class to
compute_components method
surfD/surf
-renamed update_atoms --> updateAtomPos
-split out updateGridDelta into separate method
common/xplorWrapProc.cc
-noncloned wraps: now grab final argument from XPLOR_EXE- to work
with profilers and such
python/Makefile
-disabled .NOTPARALLEL directive
Architecture Dependent:
arch/Linux_x86_64/source/Makefile
-added ARRAY_F_DOWNGRADE setting for gfortran 5.2
arch/Darwin_10_x86_64/Makefile.defs
-added a libgss_s library which is symlinked into a libSystemA library
Changes from 2.38 to 2.39
--> 2.39 released 2015/05/08
[Contains source code contributions from Guillermo Bermejo, Ye Tian
and C.D. Schwieters.]
Helper Programs
bin/calcSARDC
-give ensWeightsRegexp a default value - one better than the
previously suggested value
-don't print out ensemble weights for Ne=1
bin/calcSAXS
-added the -nm and -addUnknownAtoms flags
-actually use solventRadius and boundaryThickness values
bin/calcSAXS-bufSub
-now supports multiple sample/buffer curves so that it performs
merging of SAXS/WAXS data as was done for the examples in the
AXES paper.
-fixed deleteAtoms selection
-now pass verbose flag to create_SolnXRayPot
bin/convertTalos.
-added -omitResids option
-changed default output filename
bin/getBest
-file|directory argument now defaults to the current directory, so
it can be run with no arguments.
bin/pbsxplor
-now allow options to be specified with two dashes "--", in addition to
a single dash
bin/xplor
-in argument processing: replaced instances of echo with printf %s
to avoid issues w/ echo escape char processing
-add support for the -py -m command-line option to run modules
from the command-line.
Example Scripts
eginput/eefx/fold.py
-doubled length of h.t. run of all-atom repel
eginput/pasd/nmrstar/README
-fixed version number
eginput/dna_refi/ensemble.py
-Added hingebend node types to the ribose rings. I confirmed that the
resulting overall energy is slightly (slightly outside the spread)
lower with this setup for Ne=2. Many energy terms show lower
energy. Those outside spread ranges are:
noe, rap, bond, orie, vdw
and many others close to the edge of the range of improvement. No
energy term is significantly higher, however, the number of angle
violations greater than 2 degrees increases from 182.7 +/- 7.5 to
189.5 +/- 8.2. So some care should be used in using this hingebend
setup with RDCs should be noted.
-changed annealSteps to large number to avoid deadlock
eginput/rna_refi/rna_database_refine.inp
-Fix incorrectly listed energies in pdb headers.
eginput/saxs_EI/refineDocked.py
-now use torsionDB; increased SAXS numPoints from 26
eginput/saxs_EI/validate.py
-increased SAXS numPoints from 26; added accept function
eginput/pasd/nef/
-added example of loading shifts, peaks lists from a NEF file.
eginput/pasd/talosn/
-added example of using TalosN output.
eginput/PSF_generation/genLigandCif.py
-new example script for ligand-topology/parameter generation from a
ligand mmCIF file.
eginput/gb1_rdc/makeNEF.py
-added initial example of creating a NEF file.
eginput/gb1_rdc/makeCIF.py
-basic script for creating a mmCIF atom_site record from a pdb file
eginput/gb3_ensemble/testConvertTalos.py
-added test for convertTalos helper
bin/calcDimerConc
-fixed -pop if -subunit is specified
Python Interface
python/atomAction.py
added genRandomCoords
common/atomSelAction
Fit constructor: now throw exception if fitTo size is zero
common/bondAngle.cc
-derivs: fixed sign for theta<90 degrees
nmrPot/ccrPot
-Restraint class: moved many quantities to accessors
-showViolations: fixed title
-restraint atom initializers: now use the member simulation,
instead of the underlying XplorSimulation
cif/
extended to support NEF STAR files.
cif/cif
-CifDatablock: added isSaveframe accessor; now write correct
header for saveframes
-Cif::formatCategory: added a check that category lengths are all the same.
-add useTrailingStop useTrailingSave ability
-Cif::formatBlock: no longer write out datablock category
-formatCategory: updated loop output to set field width for each
category item to be the largest of all with the same itemName
python/cif.i
-added has_key and __setitem__ methods to Cif objects
python/cifTools.py
-new module with tools for CIF file manipulation. Currently
contains function for generating mmCIF atom_site records
nmrPot/eefx.cc
-fixed the selectionPair logic. The functionality never worked
previously for a non-all selection
python/eefxPotTools.py
-removed noise output
common/ensembleSimulation
-SimulationWorld::finalize() added isSubprocess argument it's set
to true for XplorWrapProc subprocesses so that ensemblesimulation
processes are not reaped.
-added deleteDependentSimulation
-EnsembleMemberSimulation: changed id() to lookupID(); added atomID() method
-EnsembleMemberSimulation::atomID: fixed for Ne>1
-EnsembleSimulations: added barrierDebug argument to constructor
for better (earlier) diagnostics when threads lose synchronization
python/ensembleSimulation.i
-rewritten EnsembleSimulation constructor: fix s.t. keyword
arguments can be used
python/ensWeights.i
-redefined setTargetWeights to take a dictionary (output of
targetWeights) in addition to list
common/ensWeights
-accumDerivs: fixes associated with the gradient fix in the BondAngle class
python/iupacNaming.py
-new module to help in converting to and from IUPAC atom naming.
python/minimize.py
-bfgs:
o changed the definition of stepsize0
o fix stepsize as fraction of grad step behavior
o in update of dg, try to carry on in the presence of singularities in
gradient directions.
nmrPot/nbTargetPot
-updated nbTargetPot to be an EnsemblePot, with test
-NBTargetPot: added slope and intercept members
python/nbTargetPotTools.py
-added callibrate helper function, test
python/nefTools.py:
-new module to help reading/writing NMR Exchange Format (NEF) files.
nmrPot/noePot
-NOEPot: added allowOverap; showViolations: now print out comments
-change behavior for overlapping selections: don't print warning
if overlaps are allowed and omit identical pairs in distance
computation
python/noePotTools.py
-added readNEF, writeNEF
python/posDiffPotTools.py
constructor: set currentSimulation to an appropriate XplorSimulation
before calling XplorSimulation() to avoid a crash
python/pyConvert.cc
toPy(Vec3):
now initialize SWIGTYPE_p_Vec3, if necessary. Fixes failures at
inopportune times.
python/restraintStats.py
RestraintStats.collect:
-reworked to collect results from one remote process at a time-
to reduce the memory footprint of process 0
-don't throw exception if a remote process has successfully
calculated no structures
python/socketComm.py
-Comm class: added readDataFrom, writeDataTo methods
nmrPot/solnScat
-made external definition of Voxel struct accessed via the
surfVoxels accessor if freeSurfVoxels is false
-now store volume sign
python/solnScatPotTools.py
-fitSolventBuffer: many updates to support multiple sample/buffer
curves with merging with a new regularization term for bg
python/pasdPeak.i
python/pasdPot.i
-swig interface files for PASD Peak and MarvinNOEPot classes
python/pasd.py
-added nefPeaks to read in 2-,3-,4-D peak lists
-added nefShifts to read in chemical shift lists
common/potList.cc
-energyMaybeDerivs*:
protect against uninitialized derivLists.
python/protocol.py
-initDihedrals: now silence the %CSTRAN: allocating space message
-torsionTopology:
breakRiboseSel and breakProlineSel arguments
-initHBDB: cleanup info messages
-torsionTopology: changed default value of breakRiboseSel
python/psfGen.py
-seqToPSF: changed behavior for seqType='custom'
-cisPeptide: now supports aria/EEFx topologies
-deduceSeqType: now will work with lower-case residue names
-added seqFromSTAR; updates to seqFromCIF
python/rdcCorrPotTools.py
-added calibrate function
-added Rfactor function- and added this to analyze, stats
nmrPot/rdcPot1.cc
-RDCPot: alignment tensor atoms no longer need be valid atom selection syntax
python/rdcPotTools.py
-added read/writeNef
python/regularize.py
fixupCovalentGeom:
- fixes s.t. fixupCovalentGeom can be called by different
EnsembleMemberSimulations (i.e. different threads):
o fixup s.t. AtomSels always use the same Simulation
(previously mixed sim/xSim).
o use the XplorSimulation instead of current Simulation throughout
o changed use of XplorSimulation.command to fastCommand, followed by
explicit syncFrom to allow use in Ne>1 EnsembleSimulations.
- protection against setting dEPred to 0
- fixupLoop_xplor:
o increase output for verbose>3
o fixed treatment when unknown coordinates error arises:
now reset to initial coordinates and try again.
- fixed reversed verbose logic
python/residueAffPotTools.py
-create_ResidueAffPot: added selectionPairs argument to specify
specific interactions
nmrPot/sardcPot
-SARDCPot: added omitTensorGrad accessor so that the alignment
tensor portion of the gradient is not calculated.
python/sardcPotTools
-readRestraints: added better diagnostics for missing atoms
python/selectTools.py
-IVM_breakRiboses: changed default ring break location from
O4'-C1' to C4'-O4': by itself this changes results little, but
can be combined with bendtorsion hinges for ring degrees of freedom.
common/simulation.cc
-deleteSimulation:
o added call to EnsembleSimulation::deleteDependentSimulation
o add logic to reset currentSimulation() if it is to be deleted
o deleteSimulation: added range check
-added dependentSimulation which is removed when the Simulation is deleted
-renamed id() --> lookupID():
while not unique, this is used to id Simulations
-added atomID() -- this is used to id atoms across Simulations
python/simulationTools.py
-StructureLoop:
-run():
o now print full Python traceback when a structure calculation fails.
-genAveStats:
o now fit ensemble structures if s.averageFitSel is specified.
o no longer clone Simulation to fit- this saves much memory
-testGradient: added **ERROR** indicators for ensemble pots if
alwaysPrint=True
python/solnScatPotTools.py
-added water volume to Svergun set
-fitParams:
-now use the SolnScat values of solvent radius and boundary
thickness, instead of resetting them.
-fitSolventBuffer:
o increased sigmaBG to 0.01
o change default value given qValues to qValuesExpt
python/solnXRayPotTools.py
-genFormFactors:
o remove water from list
o add H20 (replicated zero times) to atomGroups
-create_SolnXRayPot:
o added useNM and verbose arguments
o create_SolnXRayPot: added optional verbose argument
o added the useNM argument to specify that q is in units of inverse nm
instead of inverse angstroms
python/sparta.i
-disable the special-case exception-handling
python/talosTools.py
-split off convertTalos function (in bin/convertTalos) into new module
python/torsionDBTools.py
-torsionDBTools: added nucleic chi angle to torsion_info
python/torsionPotTools.py
-NEF read/write support
python/varTensorTools.py
-normalizedScalarProduct: fixed docstring (thanks to Santhos Kumar)
-add error message when trying to add axis atoms to nonlocal
EnsembleMemberSimulation
common/xplorWrapProc.cc
-constructor: now throw an execption if the current simulation is
not an XplorSimulation
-proper fix for non-cloned simulations: don't call csim->syncTo
-constructor: added back the csim->syncTo() call for the case
clone==True, currentSimulation==default XplorSimulation
TCL Interface
tcl/import_nmrstar.tcl
-removed old note which does not apply to newer formats
tcl/talos_tools.tcl
-added readTalosN to read Talos-N prediction tables
tcl/tclXplor.cc
-tcl_interp: now returns error status if error on startup
-tcl_interp: now allow specifying exit status with the TCL exit command
Parameters/Topology
toppar/atcun.par
-toppar/atcun.par: edited/added parameters for realistic NH2 conformation
toppar/eefx/protein_eef22.top
-bumped protein_top_vers to eef-1.1
toppar/protein_eef.top@
-changed symlink from eefx/protein_eef.top to eefx/protein_eef22.top
toppar/protein-1.0.par
-reduced phosphate group angle values
Platform Specific changes
arch/Linux_x86_64/
-update deoptimizations for 2015 Intel compilers
-added support for llvm clang/++ (by specifying LOCAL_CC/LOCAL_CXX
in Makefile.loc)
Linux platform Intel compilers:
-added OpenMP support if USE_OPENMP is set to a nonblank value in
Makefile.loc. OpenMP is disabled in the current binary release:
this is for future use.
arch/Darwin_10_x86_64/
-changes for compilation with Intel compilers on Darwin_14 -
thanks to P. Mercier
-additional updates so that everything works on Mac OS X 10.10.
Low-level changes
modified:
README.beowulf
-updated with suggested setttings for optimized network settings.
CDSlib/sthead.hh
-added conditional include of omp.h
marvin/Peak.hh
-removed const qualifer from name_ member so that the default operator= works
bin/findSwig
-determined regression which causes SWIG post-2.0.10 problem. Will
fix this in a future release.
python/solnScatPot.i
-added OpenMP directives
nmrPot/solnScat.cc
-added OpenMP directives, with some loop rearrangement
Changes from 2.37 to 2.38
--> 2.38 released 2014/12/12
Helper Programs
bin/pbsxplor
-change jobs_per_node behavior:
if it's set, do not invoke pbsnodes on the compute nodes
added the XPLOR_JOBSPERNODE env var to set the default value
-fix job name determination for .tcl and .inp scripts
bin/plotLog
-added plotLog helper script to make 2D plots with linear, semilog
and log-log axes.
bin/ramaStrip
-fix so that points show up for matplotlib 1.4.2
bin/getBest
-fixed to work with directory specification containing trailing slashes
-now handle mixed wildcard directory and stats file arguments
bin/xplor
-fixed behavior of -scyld with num_threads > 1 such that jobs are
packed on each node.
bin/calcTensor
-added the -plotLabels option to print residue numbers at each point.
-the plot is now pickable: the first atom selection for a point will
now be printed when it is clicked on.
-give more informative error message if bad averaging is detected.
-fixed behavior when no files are specified
Examples and Documentation
eginput/capsid/validate2.py
-no longer raise exception in case of failure - caused validation
jobs to stall.
eginput/capsid/refine2.py
-now use fixed ensemble weights
eginput/dna_refi/validate.py
-fixed logical error in validation
eginput/saxs_EI/refineDocked.py
-updated for use of getBest, pdbFilesIn, and additional call to
initial params
eginput/saxs_EI/dock.py
-switched from RAMA to torsionDB
-added a SAXS refit stage before final minimization
-added additional SAXS surface calc in docking phase
-now use solnScat rigid regions and update globCorrect at a more
opportune time during docking
eginput/saxs_EI/validate.py
-write structure and perform analysis using StructureLoop now.
Many documentation updates
Topology/Parameters
toppar/eefx/protein_eef.par
toppar/eefx/protein_eef22.top
-Updated solv parameters, and force field for CHARMM19 and CHARMM22 runs.
Python Interface
nmrPot/atomProb.cc
-AtomProb::setWeights: fixed bug uncovered by gcc warnings
nmrPot/eefx
-e14Factor added for electrostatic term, default value 0.4
-Added the elec/solv/vdwPot accessors. These allow independent scaling of
the different terms
-renamed solvEnergy --> energyMaybeDerivs
-completed EEF/IMM merge, removed memEnergy method
-converted a, thickness to accessors
-renamed parameter order to profileN
-Report individual energies for EEFx.
python/eefxPotTools.py
-alignTensorToZ:
deprecation message added
-Updated solv parameters, and force field for CHARMM19 and CHARMM22 runs.
-changed default value of paramSets argument to param_LK.
-Added the potList and asList optional arguments.
-changed N dG-free value to that sent by Lazarides
common/ensWeights
-added the minFrac accessor for constraining the minimum weight
-ensWeights: potential is now a square well with width given by
the targetWeight member
-added symmetryTrans to ensWeights to enforce symmetry in ensemble weights
python/ivm.py
-changed 2nd arg given to trajFile.write() to work with constant time
nmrPot/nbTargetPot
-changed default name to be targetSel string
-fixed up showViolations output
-now assign diff() a value.
python/nbTargetPotTools.py
-helper tools for nbTargetPot - used for effective surface area restraint
-added analyze function
python/prePotTools.py
-added printout of tau_c values to .stats file
nmrPot/rdcPot1.cc
-RDCPot1_Restraint::updateAveSize():
-added restraint name to output for easier debugging.
-reading a restraint: added warning if a small error value is entered, and
reset the value to a finite (small) value.
nmrPot/saTensor.cc
-removed old debugging line....
python/simulationTools.py
-updated docstring regarding not fitting ensemble structures.
-run: if writing a structure, now call s.averageContext() beforehand.
-testGradient: fix in error printing for alwaysPrint==False
-testGradient: with alwaysPrint=True, now indicate which elements of
gradient fail.
python/socketComm.py
-disable keepalive capability message
nmrPot/solnScatPot.hh
-added addRigidRegion shortcut
-split SAXS calculation code off from potential term tp solnScat
-expose much of the internals to the public interface (mostly for
swig/python access; add accessors for rigidRegions
nmrPot/solnScat.cc
-added facility for exceptionally efficient computation of rigid
body contributions to the SAXS amplitude during dynamics and
minimization. Documentation pending.
-disable calculation of posCenter (it is always (0,0,0) now)
--prevent crash for the case numQ==0
-calcI_uniform: removed unneeded intermediate variable
python/solnScatPotTools.py
-interpolateCurve: fix to prevent crash it numPoints==1
python/solnXRayPotTools.py
-fix to allow uniform grid calcs for numQ=1
-in buffer+sample calculations, now properly add the buffer and
sample error contributions
python/trajFile.py
-changed default start value from 1 to 0; added constantTime write capability
python/trajFile.py
python/xplorDCD.i
-write: now pass coords in separate coords arg to support interpolation
python/trajFile.py
-added support for trajectory reading with read and readNext methods
python/trajFile.py
-__init__: changed default for fixXY to False, documented this argument
nmrPot/utils
-split pointsOnSphere from SolnScat::setNumAngles to utils
standalone function
python/varTensorTools.py
-calcTensorOrientation: now preserve the freedom settings
python/xplorDCD.i
-implemented the read wrapper function
TCL Interface: The PASD facility
tcl/noe_reporting.tcl
-reportNOEaccuracy:
-added report for short range assignments in addtion to long range
assignments
tcl/aeneas_tools.tcl ( python/pasd.py )
-removed tight tolerance specifications from the pasd Python
module - now these are (optional) arguments to the standardInitMatch
functions
-changed names and allow tight tolerance for each dimension to be
specified (via the pasd Python module)
tcl/aeneas_tools.tcl
-standardJointFilter:
added the -dontPreferIntra option (which takes a 0/1 argument)
-standardJointFilter:
made the flag -referenceStructureFile optional.
Thank you to Philippe Cuniasse!
tcl/netfilter.tcl
-netfilter:
-changed the dontPreferIntra to an option which takes a 0/1 argument
much reformatting to fit 80 columns
Low-Level / Development / Architecture Dependent
common/pot.hh
-added the resetInstanceName method
bin/findSwig
-older swig versions no longer work
python/pyConvert
-added toPy(const long&)
arch/Linux_x86_64/source/Makefile
-commented-out intel-compiler specific optimization downgrade
-added gfortran 4.9 to list of versions for which to downgrade
array.f optimization
CDSlib/interpSphere
template class for interpolation of a function on the surface of a
sphere. The function can be a scalar, complex or a vector field.
CDSlib/spline.
-added support for 2-point splines (uses linear interpolation)
python/cdsMatrix.i
-fixed complex matrix __getitem__ to split out a Python complex
CDSlib/cdsVector
-CDSVector: added constructor from pointer
-added const version of vector()
CDSlib/fixedVector
-operator-=, operator+: now take templated arguments
-scale member: now returns this
CDSlib/Makefile
-now builds a library for non-template functions in CDSlib/nontemplate/
CDSlib/array3D.hh
-fixed constructor initializer
CDSlib/cdsList
-added fromVector, constructor from generic Vector
cif/cifScannerInt.cc
-CifScanner::ProcessNoneFromScanner: commented out code disallowing
-a non-newline after the sequence \n;
cif/cifParserInt.cc
-updated saveframe support: now add a catagory named datablock,
containing one key, 'name' with the value being the name of the
encompassing datablock, if one is present
Changes from 2.36 to 2.37
--> 2.37 released 2014/09/09
Helper Programs
bin/xplor.in
-add XPLORNIH/bin path to PATH
-use full path when querying version
-now do ipcs semaphore cleanup only on 32 bit linux
bin/calcSAXS-bufSub.in
uses an alternate fitting procedure and has a -plot option
bin/getBest
-fixed symbolic behavior for .stats files in different directory
-fixed behavior when no dir specified, but multiple .stats files present
-minor usage string fix
Documentation
helplib/nih-py-atomDensity
-readCCP4: updated for reading MRC files
online tutorial updated
Python Interface
common/ensWeights
-setWeights(list):
* fixed/removed apparent singularity issues.
* now limit minimum weight to 1e-7 to prevent IVM failures
-energyMaybeDerivs0:
* now explicitly call computeWeights so they are updated. This may
result in an extra call to computeWeights.
* fixed subtle, seldom encountered bug in wderivs calc.
python/ensWeightsTools.py
-ensWeightsTools: added additional origin atom for each ensWeights dof
due to IVM limitation; this changes output due to nuisance message
-addPseudoAtoms: fixed code so patch definition isn't loaded on
subsequent calls.
python/protocol.py
-replaced XplorSimulation.command calls w/ fastCommand and syncTo/From when necessary
-small change to orie setup
python/solnXRayPotTools.py
-create_SolnXRayPot: before construction: explicitly sync all Simulations
python/regularize.py
-fixupCovalentGeom:
fixed bug possibly leading to all atoms moving regardless of the selection.
-fixupCovalentGeom, addUnknownAtoms_new:
replaced calls to Simulation.command w/ fastCommand/syncFrom
python/simulationTools.py
-StructureLoop:
added inMemberModulo for generating larger ensembles from smaller;
-StructureLoop.pdbFileIn:
fix use of inMemberModulo for non-ensemble calcs
-StructureLoop.writeStructure:
now report in REMARKS name of file used to initialize coordinates, if any
-StructureLoop.genAveStats:
fix issue with structure number of fit-to structure when the first
structure is not numbered 0.
-Initial/FinalParams:
added optional argument to ctor to disable calls during construction
python/psfGen.py
-seqToPSF: added dna to seqTypes in docstring
python/noePotTools.py
-added the removeLowerBounds helper
-create_NOEPot: now print warning if the restraints string or any file
adds no restraints.
python/atomAction.py
-randomizeDomainPos: added the deltaAngle argument/functionality
nmrPot/ccrPot
python/ccrPotTools.py
-initial implementation of the CCR potential term
python/rdcCorrPotTools.py
-add in addXplorRestraints method to potential term
-added analysis
python/selectTools.py
-added function oneToThree
-added function toAtomSelString
python/saTensorTools.py
-analyze: fixed bug where incorrect SATensor name would be output
python/eefxPotTools.py
-added setCenter and setCenterXY functions.
common/pot
Pot::numRestraints: changed to const. The affects many potential terms.
nmrPot/ccrPot
-new potential term for cross-correlation relaxation restraints.
python/sardcPotTools.py
-create_SARDCPot: now print warning if no restraints read
python/rdcCorrPotTools.py
-an implementation of the tensorless RDC restraints as introduced here:
C. Camilloni and M. Vendruscolo, ``A tensor-free method for the structural
and dynamical refinement of proteins using residual dipolar couplings''
J. Phys. Chem. B, in press.
python/sardcPotTools.py
-create_SARDC: disable no restraints warning if no file and no restraints
are specified
nmrPot/sardcPot
-fix computation of gradient of prefactor scale wrt ensemble weight
common/atomSelAction
-AtomSelAction::Fit: now do rotation/translation determination in
the constructor (as stated in the help page)
-fix swig overloading of constructor so cruft hack can be removed
common/ensembleSimulation
-fix from P. Mercier
-singleThread: changed arg name so swig doesn't do improper arg checking
common/simulation
common/ensembleSimulation
common/xplorSimulation
-deleteAtoms: added optional noSync argument. Use with care.
This allows the disabling of the global sync, with the associated
EnsembleSimulation barrier.
python/ensembleSimulation.i
- single/multiThread: change logic to check if the current simulation is an
EnsembleSimulation
Topology/Parameters
toppar/atcun.par
toppar/atcun.top
Added topology/parameters for the ATCUN motif
toppar/nucleic-3.1.par
toppar/nucleic-3.1.top
improved RNA topology/parameters
toppar/dihiscu.par
toppar/dihiscu.top
-added toppar/dihiscu.par and toppar/dihiscu.top
toppar/protein_eef.par
-added missing parameters for amidated c-terminus
databases/torsions_quarts/nucleic_deltor_quarts2d.tbl
-removed ill-advised vector store statement
Example Scripts
eginput/pre/atcun_motif/
-new example of generating initial structures/PSFs with the ATCUN motif.
eginput/eefx/fold.py
eginput/eefx/refine.py
-fixes to work more reliably (and to pass validation tests)
-added the torsionDB term; changed potlist --> potList
-changes s.t. -quick runs don't crash
eginput/saxsref/refine.py
-comment cleanup
eginput/gb1_rdc/wrefine.py
-now use pdbFilesIn, with corrected glob
eginput/gb1_rdc/refine_eefx.py
-now refine files from refine.py, like wrefine
eginput/capsid
-added validation
Low-Level / Development / Architecture Dependent
arch/Linux_x86_64/source/Makefile
-selective merge for gfortran 4.9
bin/findSwig
-blacklist swig 2.0.11, 2.0.12
Makefile.loc.in
-now set TMPDIR by default
arch/Linux_x86_64
-added support for 2013/2014 Intel compilers
tcl/findTCL
-updated for Debian multiarch
vmd/tclStream.cc
-fix inspired by P. Mercier
source/supccr.fcm
-fix inspired by P. Mercier
nmrPot/atomDensity.cc
-fix from P. Mercier
common/xplorWrapProc.cc
-fix from P. Mercier
arch/Darwin_10_x86_64/Makefile.defs
-updates from P. Mercier
arch/Darwin_10_x86_64/README
-added note about incorrect version of libstdc++ and _macosx.so
Changes from 2.35 to 2.36
--> 2.36 released 2014/05/30
Helper Scripts
bin/calcSARDC.in
-make more robust in the presence of empty subSelSets:
now a warning is printed and the program does not crash.
-suppress extra VarTensorTools.analyze output
bin/calcSAXS.in
added the -noSpline and -splineToExpt options
bin/calcTensor.in
-added the -noUseErrs - by default, now weight the SVD calculation
with the observed errors.
-fix -plot option to work w/ no cross-validated data
bin/calcETensor.in
updated to use error weights in SVD calc
bin/convertTalos.in
add the -ignoreWeights option
bin/ens2pdb.in
-By default, now convert three character nucleic acid residue names
to their one character counterpart. The new -threeLetter flag will
disable this feature.
-right-justify single-character nucleic acid residue names
-added the -twoLetter option (apparently used for nucleic
acids). Thanks to G. Cornilescu for the heads up.
bin/pbsxplor.in
-added the -max_procs argument to limit the total number of proceses
run to some number less than num nodes time num cores.
bin/pdb2psf.in
added command-line options: -disulfide_bond -topology -outfile
bin/targetRMSD.in
-fixed operation of the -write flag and added test
-added the -fitSuffix option
bin/xplor.in
added the -sh command-line option to invoke /bin/sh
bin/pbsxplor.in
bin/xplor.in
added parallel support for the -sh command-line option
XPLOR Interface
source/dynio.f
source/util.f
incompatibility break: binary trajectory files now use 4 byte
integers (previously, 8 byte integers were used on 64-bit
architectures.
source/update.f
now print >SCRATC-warning: STORe selections erased.< message only
if WRNLEV>0
Low-level Libraries
CDSlib/cdsString.??
added startswith method
CDSlib/cdsSStream.??
added CDSStringStreamBuf::seekpos so that IStringStream now
supports seekg(arg)
CDSlib/array3D.cc
rawCopy: fix and addition of unit test. Thanks to Gary Thompson.
cif/
Initial cif data class with parser and writer with basic support
of NMR-STAR files
arch/Makefile.common
tcl/Makefile
fixes s.t. the SWIG env var can be set to an alternate value
Examples and Documentation
eginput/PSF_generation/readCIF.py
eginput/PSF_generation/readCIF2.py
examples of reading CIF files
eginput/pasd/nmrstar/
example of NMR-STAR 3.1 file import
eginput/saxsref/
updated refine.py and validate.py based on saxsReview results
eginput/eefx/
EEFx example
eginput/capsid/
added HIV capsid example
eginput/gb1_rdc/refine_eefx.py
doc/python/tut.tex
G. Bermejo-inspired fixups for MultRamp docs
helplib/nih-py-ensWeights
added docs about use as a stabilization energy term.
helplib/nih-py-noePot
added documentation for the RMSD value.
helplib/nih-py-solnScatPot
document splining behavior
Architecture-Specific Changes
arch/Darwin_10_x86_64/Makefile.defs
intel compiler settings: make optimizations host-specific, instead
of hard-coding an SSE version.
arch/Darwin_13_x86_64@
new symlink: support for mavricks.
arch/Linux_i686/README
added bit about libstdc++ issues/replacement for ochre
TCL Interface
tcl/import_nmrstar.tcl
added support, example of NMR-STAR 3.1 file import
shifts/peaks: changes for saveSet specification
tcl/marvin_lowlevel.tcl
added option for setting global updateUserNewline option
tcl/noe_reporting.tcl
initialPeakAnalysis: now print error message if no peaks are
given assignments
tcl/aeneas_tools.tcl
match3d: now print message (via updateUser) if peak has no assignments
tcl/import_nmrstar.tcl
added process2dNMRSTARPeaks
Database/Parameters
toppar/protein_eef.par
toppar/protein_eef.top
new EEFx topology/parameters
toppar parameter and topology files:
split protein_toppar_vers into separate top/par variables.
Python Interface
nmrPot/atomDensity.??
-calcDerv: protect against zero values
-readCCP4: updated to handle MRC files. These files have XORG,
YORG, ZORG field which are used instead of NCSTART, NRSTART,
NSSTART to specify the origin position. A consequence of this is
that the origin can now be placed at a position which is not an
even multiple of the grid spacings- so all of the class needed to
be modified.
-DGridhelp::atomProb2atomDensity: for backward compatibility,
xmin, ymin, zmin are placed at the closest multiple of the
respective grid spacing.
-replaced integer a/b/cmin w/ floating x/y/zmin
-renamed centroid --> origin; CalcCentroid --> centroid ; other cleanups
python/atomAction.py
PrintPos: increased print precision to 3 digits past the decimal
python/cdsVector
fix splices to work with None arguments
intVar/dint-node.cc
Rotate2 HNodes: setPosVel: add redundant call to calcRot to set
the A matrix
python/eefxPotTools.py
helpers for the EEFX implicit solvent model
python/minimize.py
-bfgs: added writer arg; updated verbose output
-fix placement of warning message
nmrPot/nbTargetPot.cc
NeighborBin::init: bug fix: now clear all neighbor bins before
use. In this context, I think this only has performance
implications.
nmrPot/noePot.cc
operator>>(NOERestraint): changed error if intersecting selections to warning: this is not necessarily an error if center averaging is used
python/parseTools.py
readFloat: added missing + character to regular expression.
python/pasd.py
-added support for NMR-STAR 3.1 file import
-added starPeaks. Supports 2-4 dimensional spectra
-starShifts: now search for correct (unique) shift list save set
-starShifts/Peaks: can now explicitly specify saveSet, or have a
single one auto-chosen
common/pdbTool.??
added support for reading mmCIF files; PDBTool: added the format
accessor
python/posDiffPotTools.py
added a xsim member for lifetime issues; updated docstring
nmrPot/probDistPot.cc
contuctor: now throw exception if there are no atoms in the selection.
python/protocol.py
-initHBDB: updated docs
-initDihedrals: now quiet output if reload=True
-split topology/parameters into separate version strings
-genTopParFilename: added optional suffix argument
-initCoords: now prints pdb file format type (if verbose)
-initCoords: now print file format type if verbose>1
-initRama: added selection argument
-loadPDB: add call to updatePseudoAtoms on exit s.t. it can be
called consecutively
python/psfGen.py
-mod for new protocol.genTopParFilename argument
-added support for eef topology
-pdbToSeq: split into seqFromPDB and seqFromCIF now supports
CIF-formatted strings
-residueMap: added two character residue names for DNA
python/pyConvert.hh
added fromPy(FixedVector)
python/restraintStats.py
added maximum negative violation for each term - to find maximally
violated minimum distance value
updated maximum violation report
python/saTensorTools.py
-analyze: now call protocol.initDihedrals at end because
addition/deletion of pseudoatoms clobbers that term.
-analyze: now get dmax from saTensor restraints and use in
VarTensor analysis
python/selectTools.py
-mods for protocol.topparVersion split
-correctSymmetricSidechains: added topology initialization so that
special case ARG code is called
-correctSymmetricSidechains: silence output from initTopology
python/simulationTools.py
-StructureLoop:
*averageFitSel can now be the empty string, for no fitting
*__init__: improve error handling in case where structureNums and
psbFilesIn as string are both specified.
-calcAverageStruct: fitSel can now be the empty string, for no fitting .
python/solnScatPot
added calc_dIdrhob
python/solnScatPotTools.py
added fitSolventBuffer- uses algorithm of AXES program to include buffer
subtraction to the excluded solvent parameter fit procedure.
python/solnXRayPotTools.py
create_solnXRayPot:
-added support for adding sampleData/bufferData members
-now throw exception if experiment not specified
python/trajFile.py
-reworked to used xplorDCD so that it is now functional
-added example
python/varTensorTools.py
calcTensor: added the useErr argument: by default, now weight svd
calculation by restraint error
calcTensor: useErr: change default to False
calcTensor_ensemble: updated to use error weights in SVD calc
python/xplorDCD
added low-level DCD writing capability
python/xplorPotTools.py
PY_Restraint: violated: change def. s.t. restraint is violated if
the diff() is equal (or greater than) pot.threshold(). This
changes the behavior of setting the threshold to 0.
python/xplorSimulation
XplorSimulation: rewrote ctor, s.t. if clone, the new simulation
is added to protocol.topologyInitialized
Changes from 2.34 to 2.35
--> 2.35 released 2014/01/10
Helper Scripts
bin/xplor.in
-for Darwin, fix up (complicated!) library search path by adding
/usr/X11/lib to DYLD_FALLBACK_LIBRARY_PATH
-re-added declaration of localMachine
-fixed code for renaming machines to localhost
-added the -fpe command-line flag which specified that the program
abort when a floating-point exception occurs. Currently only
supported for AMD_64.
-now run local procs by forking, instead of using $rsh - this
to conserve privileged outgoing ports. This improves performance
and reliability on fat-node clusters.
bin/idleXplor.in
added idleXplor to binary distribution- a version of the idle IDE
which works with Xplor-NIH.
bin/calcTensor.in
-now allow bad RDC restraints, but with warning messages printed: this
allows a table specifying a larger protein to be run on a fragment
pdb.
-fixed docstring typo -fixed bug with -crossValidate whereby
script would crash if num cross-validated tables > num fit tables.
-now also plot cross-validated rdcs
-added erase=True to initCoords, s.t. atom matching works when
multiple pdbs are specified.
bin/convertTalos.in
new helper script to generate Xplor-NIH restraints from TALOS+ or
TALOS-N output.
bin/calcSAXS.in
updated to always compute values splined to expt datapoints
bin/calcETensor.in
added -aveType option, and default it to pairwise .
bin/targetRMSD.in
-added support reading models, and the -model option - for the
comparision structure(s). Model number can also be specified
using the syntax file.pdb:model.
-added the -perResidue command-line option to optionally print out
per-residue RMSD information.
-added the -perStructure cmd-line option to optionally print out
per-structure RMSD.
bin/scriptMaker.in
-fixed the value of scriptName
-removed calcTensor() call in rampedParams
bin/getBest
added the -symlinks command-line option. This creates symbolic
links to the top structures for further analysis or calculation.
Example scripts
eginput/gb1_rdc/testCalcSARDC
added test of calcSARDC helper
eginput/saxs_EI/validate.py
-relaxed precision/accuracy tolerances slightly
-updated to for the SAXS term to use useInternalSpline
eginput/saxs_EI/dock.py
optimizations to speed-up docking portion of structure calculation:
-now fit rdcs before fixing broken bond
-now call calcTensor inbetween minimizations to fit rdcs
-slowly ramp bond force constant s.t. initial rdc minimum is
maintained.
-now use fixupCovalentGeom for linker geometry fix
-now properly fit computed structures using cterminal CA atoms
eginput/relaxRatio/ub_strDet.py
removed force_tessellation line - it messes up the printed results
eginput/relaxRatio/validate.py
added r_600.setShowAllRestraints
eginput/relaxRatio/calcRelaxRatio.py
untested helper utility
eginput/pre/refine/inputs/chi_final-altered.tbl
fixed defs of two sidechain dihedrals
eginput/pre/refine/validate.py
reduced # structures to 64 to match num structures previously calculated
eginput/pasd/mth1743/Cnoesy.peaks
eginput/pasd/mth1743/Nnoesy.peaks
updated comments to reflect use of Sparky-formatted data. Thanks
to G. Cornilescu for pointing this out .
eginput/assignFit/01assignFit.py
simplified input file path
eginput/assignFit/02refine.py
changed random seed
Documentation
doc/python/tut.tex
added use of scale() accessor to PotList example
Databases
toppar/nucleic-3.0.par
toppar/nucleic-3.0.top
-merged new nucleic top/par version from G. Bermejo
-commented out nbfixes involving aliphatic hydrogens
toppar/edta.par
toppar/edta.par now supports nucleic-3.0.top
XPLOR Interface
source/cstran.f
CDIASS: now print restraint index if selection size != 1
source/cstran.f
format field fix (for gfortran)
tutorial/mad/sclpckxplor.f
tutorial/xtalrefine/convert_fob.f
updated to compile w/ gfortran 4.7.3
Low-level Functionality
CDSlib/cdsIterator.hh
Iterator: changed _container type to pointer; added default
constructors; partial documentation
arch/Makefile.common
removed DEBUG=1 setting. This should instead be in the
toplevel Makefile.loc
arch/Linux_x86_64/source/Makefile
added -lm to get feenableexceptions
arch/Linux_x86_64/source/Makefile
update (optimization downgrade) to get gcc-4.8 working
common/ensembleSimulation
common/simulation.hh
-sync: added testResize argument;
-removed barrier calls from setAtomPos/VelArr, setAtomMassArr
python/cdsMatrix
rotVector: new implementation (same results)
python/pyXplor.cc
Change finalizer order: Python now before EnsembleSimulation. This
to avoid crashes at shutdown due to EnsembleSimulation resources
not being available.
python/xplorFinal.py
Make final status collection and printout
ensembleSimulation-safe. This is now required due to Python
shutdown occurring before that of EnsembleSimulation.
python/pyConvert
added to/fromPot(Pair
bin/findSwig
added version 2.0.11
The Internal Variable Module (ivm)
intVar/dint-powell.cc
-fix a bug where coordinates corresponding to the minimal energy
were not saved/restored.
-utilize new save/restoreState feature of the IVM.
-added more informational messages when verbose includes printStepDebug.
intVar/publicIVM
changed derivList from static variable to class member
intVar/dinternal.cc
AtomTree::AtomTree: only actually populate constraint loops if
useLengthConstraints is true
intVar/dinternal
intVar/publicIVM
implemented save/restoreState to be used to set/reset minimum
energy config. when minimizing
step: only restoreState if Finished or exception occurs.
intVar/publicIVM.cc
PublicIVM::step: fixed type of variable done
intVar/dint-test.cc
updated for working useLengthConstraints_
intVar/dint-xplor.cc
reset statement: now also clear useLengthConstraints_
python/ivm.py
-export IVMError to external ivm module
-autoTorsion: re-optimized for case of large groups with prespecified
hinges.
-run(): cleanup; now treat negative values of done, and return it.
TCL Interface
marvin/PeakAssignment
added aveExp accessor
python/pasd.py
added aveExp for global control of PASD's PeakAssignment aveExp
tcl/aeneas_tools.tcl
tcl/import_pipp.tcl
tcl/make_random_noes.tcl
tcl/marvinAssignment.i
tcl/noe_reporting.tcl
tcl/noe_tools.tcl
added aveExp support setting via -aveExp flag in initMatch functions
Python Interface
nmrPot/distSymmPot.cc
addRestraint: fix error message
python/sansPotTools.py
python/solnXRayPotTools.py
create_SolnXRayPot/create_SANSPot: changed default normalizeIndex to -3
(Icalc normalized to minimize chi^2).
python/solnXRayPotTools.py
-getCombinedAtoms2: for metal Atoms, only consider first two
characters to allow for ionization specification .
nmrPot/solnScatPot
-change default fit/representation: now fit to experiment using
cubic spline of calculated scattering curve.
-fixed up for special case of a single q value
python/solnScatPotTools.py
analyze:
-updated for splining calculated curve.
-fixed the definition of deviation.
python/solnScatPot
calcIfromF: updated to deal with splined calculated curves.
nmrPot/saTensor
nmrPot/sardcPot
-split the alignment tensor from SARDCPot so that multiple
terms can share a single alignment tensor
nmrPot/saTensor
-Added variables s.t. spherical grid is reinitialized if parameters
changed.
python/saTensorTools.py
helper tools for SATensors, includes SATensor analysis.
nmrPot/sardcPot
-energyMaybeDerivs1: changed handling of avectorScale when
optimization is off: Now leave it alone. i.e. it can now be
manually, statically set.
-info: added info on tensor object, and linkedTo potential
python/sardcPotTools.py
analyze: added statistics for avectorScale
python/restraintStats.py
-summarizeTerms: potlist TOTAL is now always first
-added maximum (of all restraints) violation amount
-collect: fix s.t. statistics on remotely-calculated structs are
reported even if no structure is successfully computed by process
0.
python/simulationTools.py
-StructureLoop:
+added writeCrashStructures option: write out coordinates for
failed calculations. See new behavior for run().
+pdbFilesIn argument can now contain a glob wildcard. For
ensembleSimulations it should include the MEMBER literal.
+pdbFilesIn argument can now specify fewer than numStructures
files, with the pdbFilesIn files now being looped over.
+now by default, no regularization if no averageFilename
+added mechanish to pass back arbitrary (pickle-able) data from
structLoopAction to process 0 by writing to the sharedData member.
+StructureLoop.run
-catch Exceptions in calcOneStructure s.t. the
loop can continue w/o writing the structure
-fix to allow use of pdbFilesIn with null structLoopAction
for analysis.
-change behavior of averageAccept to filter structures before
choosing goodNum via averageTopNum or averageTopFraction. In
this way there is better chance that the analyzed structures
will be the sepcified number.
+writeStructure: extraRemarks can now be a sequence of strings.
-MultRamp, LinRamp: convert bounding values to floats to avoid
weird roundoffs
-testGradient: added random component type
python/atomAction.py
randomizeDomainPos: added optional centerSel argument
common/potList
-calcEnergy/AndDerivs: disable pid check if not an ensemble simulation
-changed instances of setScale to scale.raw() --to avoid calling
modified.update()
-calcEnergyAndDerivs: reworks s.t. Ne=1 code follows the same code
path as larger ensembles.
common/ensWeights
-acot: protect against divide by zero
python/ensWeights.i
-setWeights(list): Python version of this accessor now calls
simulation()->barrier() to keep all ensemble members
synchronized.
-getEnsemblePots: now flatten potList to get all terms
python/protocol.py
-cartesianTopology: update atom selection used in call to
breakAllBonds, to use proper simulation
-initCoords: allow maxUnreadEntries to be an integer
-initCoords, loadPDB: added fixMethylImpropers, swapProtons
optional arguments.
-matchInexactAtomEntry:
+add logic to perform OP1 -> O1P conversion
+added the swapProtons argument via a new kwargs mechanism so
that it can be specified in initCoords or loadPDB.
-new function splitModel for use in loadPDB, initCoords to support
file.pdb:model syntax
-initParams: addded the silent option
-added protocol.initOrie helper setup function.
python/regularize.py
-fixupCovalentGeomIVM:
+added the suppressExceptions optional argument now catch
ivm.IVMError exceptions.
+fix to suppress SCRATC-warning messages
+fixed incoming selection so that it never contains pseudoatoms.
-addUnknownAtoms: added call to fixupCovalentGeom
common/atomSel
-apply: to avoid EnsembleSimulation barrier, now give false
argument to sync call
-added (read-only) iterator support.
common/atomSelAction
-RMSD: changed byResidue to perResidue, returning an ordered list
of residues which include segid specification.
nmrPot/posSymmPot
-energyMaybeDerivs1: replaced calls to rotMat() with rotMat_
-PosSymmPot (and Python PosDiffPot): fix energy def s.t. it
scales w/ system size.
python/posDiffPotTools.py
create_PosDiffPot now allows for input psf with the psf option is
specified.
python/psfGen.py
-seqToPSF:
+fix s.t. singleChar=True works for nucleic acids
+now able to write the psf file if the psfFilename argument is
specified.
-autoProcessPdbSSBonds: now return SSBOND records
python/selectTools.py
-IVM_breakRiboses: now call ivm.constrainBond in addition to
break. Recall that the bond will not actually be constrained
unless ivm.setConstrainLengths(TRUE) is also called.
-added threeToOne function for residue renaming.
-renameResidues: now allow spaces in the seq argument
-added the fixMethylImpropers function, which swaps methyl proton
coordinates s.t. the improper energy is minimized.
python/xplorPotTools.py
added BOND, IMPR and DIHE restraints support (for .stats output)
nmrPot/rdcPot1
-added allowBadRestraints flag, behavior, and warnOnEmpty argument
to addRestraints
python/rdcPotTools.py
-create_RDCPot: now allow empty restraints to be specified with no
warning.
-r_caha, and r_cohn updated to reflect scaling factors in JACS 122,
10143 (2000). Suggested by G. Cornilescu
nmrPot/rdcPot1
nmrPot/csaPot
bug fix: oTensor->accumDerivs must be called from same
energyMaybeDerivs, now moved to Post version
python/varTensorTools.py
saupeToVarTensor: add type check for the first argument
python/socketComm.py
collect/distribute: added calls to barrier() at start to update keys
python/socketComm.py
startClient: set the close-on-exec property s.t. children (new
Simulations, EnsembleSimulations) do not have to close the socket
python/torsionTools.py
torsionTools.setTorsionsFromTable: added more input options
python/torsionDBPotTools.py
torsionDBPotTools: added find_minima_parallel function
python/densityEstimation.py
densityEstimation module: added gengrid function
python/gDB
new module based on code from Yang Shen which reads/writes
the tabular data format used by TALOS and SPARTA.
Changes from 2.33 to 2.34
--> 2.34 released 2013/06/05
Helper Scripts
bin/calcDimerConc
added the calcDimerConc helper script for calculating monomer and
dimer concentrations given subunit concentration and a
dimerization equilibrium constant.
bin/calcSARDC
-added the -psf option for use with a protein with a nonstandard PSF.
-added -ensWeightsTerm and -ensWeightsRegexp command-line option
bin/calcSAXS
added the -ensWeightsRegexp command-line option
fixed the treatment of the -psf, -minQ, and -maxQ options
bin/calcTensor
added the -correctSign option
bin/contactMap
-added -selPair arg: ability to visualize multiple selections in
different colors
-updated ticks and tick step s.t. they always start on an even
multiple of 10
-added the -ensWeightRexep command-line option
bin/ens2pdb
-added back spurious TER statements- these seem necessary for BMRB
deposition
-updated for ensembles, to use altLoc field, if it is
specified, and appropriately specify ensemble weights in the
occupancy field. If altLoc is not specified, fall back to placing all
ensemble members in separate MODELS, and including ensemble
weights in REMARK headers.
bin/getBest
added the -nl command-line option
bin/ramaStrip
now report files which have zero violations
bin/scriptMaker
a new graphical tool to generate Xplor-NIH scripts - developed by
Alex Maltsev.
bin/xplor
when running under numactl, now print process id along w/ numa
node(s) at startup.
python/pyXplor.cc
do %q% --> single quote mapping for -c pyshell command-line option
bin/pyXplor
bin/xplor
-Now can pass single quotes on the command line
-Now support the standard Python -c command-line option
bin/testDist
added MALLOC_CHECK_ env var hack which seemingly avoids race
condition crashes at shutdown
Example scripts
eginput/relaxRatio/ub_strDet.py
switched over to using torsionDB
eginput/relaxRatio/filter_data.py
-improved readability and comments
-Now writes out backcalculated R2/R1
Python Interface
nmrPot/atomDensity
nmrPot/probDistPot
rearrangements/cleanups/pointer removal/conversions
nmrPot/atomDensity.hh
-removed AtomDensity_GridValues structure
-DensityGrid: new constructor args
-AtomDensity: added selection() accessor method
-removed ecalc() method changed
-verbose from bool to int, to have multiple levels
python/atomProb.i
fixed memory leak
nmrPot/atomProb
AtomProb: added optional per-structure weights
common/atomSel
AtomSel contructors:
change setting of the sim_ member to use the simulation's id to
obtain a reference. This to help in the case of Ne=1
EnsembleSimulations such that there are not separate selections
for the subSim and the member simulation.
common/atomSelLang
getNamedSelection: add optional simulation argument
common/bondAngle.cc
-derivs: protect against divide by zero
-added cos() method
common/ensembleSimulation
-EnsembleMemberSimulation:
override id() to now return the subSim's id for Ne=1
-EnsembleSimulation:singleThread() now takes optional index arg
python/ensWeightsTools.py
new EnsWeights facility for optimizing ensemble weights. Includes
an energy term to bias weights toward spcified values.
common/pdbTool
-added writeOneAtom, writeInitialize, writeClose methods- to do
record-by-record addition of pdb ATOM entries
-added the writeAtoms public method
-get rid of spurious trailing TER record
python/diffPotTools.py
-readInRelaxData: added optional verbose argument
-fill_in_results: bug fixes
-renamed function get_InG --> diffValuesEuler
-added function tensParams
python/nbond
added function findContacts - significantly speeds up contactMap
helper
nmrPot/posSymmPot
-PosSymmPot: renamed: variance() --> deltaVariance()
fitCoords() --> aveCoords()
-now support optimizing ensemble weights
-diffFac: bug fix for cases of near-degenerate eigenvalues
nmrPot/probDistPot
python/probDistPotTools.py
-ProbDistPot constructor: removed the unused CDataflag argument
-create_probDistPot: rename one and remove one argument
python/protocol.py
-initNBond, cartesianTopology: changed default selection from "known"
to "all". This reduces confusion when coordinates are loaded after
these functions are called.
-Added protocol.initPlanarity() helper for XPLOR planarity restraints.
python/psfGen.py
psfGen module: added (U, URI) key-value pair into residueMap
python/rdcPotTools.py
analyze: added per-structure chi^2 report
python/regularize.py
-fixupCovalentGeom: Added note on extraTerms arg
-fixupCovalentGeomIVM: fixed treatment of extraTerms arg one other
bug fix
nmrPot/relaxRatioPot
-fixed forceTessellation
-calcSigma: shortcut return if there are no restraints
python/relaxRatioPotTools.py
-string typo fixes
-filterRelaxData: added optional outFilename argument to enable
printing out backcalculated relax ratio values
-improved readability and documentation
-filterRelaxData: now print chi^2 and tensor parameters at each
iteration.
-meanChi2ExN, meanExResN: fixed to work
-fixed all ExtraStats to work
-create_RelaxRatioPot:
o added optTemp argument, deprecated addAtoms,
o removed unused arguments
o updated docstring
-added massSetup, call from protocol.py
python/ringGeom.py
-Added functions pucker_all, puckerRao and puckerRao_all
-pucker and puckerRao functions now accept an
input sequence of angle values as an alternate to dihedral
definitions
nmrPot/sardcPot
-added gradient wrt ensemble weights
-fixed gradient for case optimizeScale==False
-optimization for repeated calcEnergy calls
python/simulationTools.py
StructureLoop:
-fixed treatment of pdbFilesIn argument
-update pdbFilesIn to handle a template string
-pdbFileIn: now fill MEMBER literal with zero if
there is no EnsembleSimulation.
-genAveStats: handle case of genViolationStats==False
-genAveStats: fix to read in first structure- caused problems
when run in parallel and fitting structures
nmrPot/solnScatPot
-setCmpType: now leave the calcd values alone- they need to be
recalculated anyway
-updated to take the gradient wrt to ensemble weights
python/solnScatPotTools.py
fitParams: handle very large RMSD values
surfD/compute.cc
fixed off-by-one index
python/torsionDBPotTools.py
-the atom keyword is now removed upon reading
the db file in create_TorsionDBPot function
-Simplified code in create_TorsionDBPot
TCL Interface
tcl/noe_reporting.tcl
-replaced individualStructNoeReport with individualStructNoeReports
giving more info in a nicer format
-added energyReport: now report RMSD individualStructNoeReport: now
report rmsd instead of energy
-added CDIH to xplorReport
tcl/pdb_support.tcl
writePDB: removed inserted blank remarks inserted between each remark
tcl/sa_protocols.tcl
for all passes: added calls to energyReport, individualStructNoeReport
marvin/PeakAssignment
python/pasd.py
tcl/aeneas_tools.tcl
tcl/import_pipp.tcl
tcl/make_random_noes.tcl
tcl/marvinAssignment.i
tcl/noe_reporting.tcl
tcl/noe_tools.tcl
PASD: added support for nMono in distance calculation via python
pasd.nMono setting
Architecture-specific changes
arch/Darwin_10_x86_64/intVar/Makefile
arch/Linux_x86_64/intVar/Makefile
added 2013 to list for optimization downgrading
arch/Linux_x86_64/intVar/Makefile
updated optimization downgrade for newer Intel compilers - thanks
to P. Mercier
Low-level Functionality
test/numDiff
anum/getnum: updated to deal with trailing ``} character
common/atomSel
removed get method - returned reference to temporary
tcl/Makefile
added (noneffective) .NOTPARALLEL rule
CDSlib/cdsString.cc
doGsub: fixed issue with adjacent matches; add test
common/ensemblePot
EnsemblePot: energyMaybeDerivs*: changed the call signature pass
single pointer arg
CDSlib/iomanip.hh
added left and right manipulators
bin/findSwig
added version 2.0.10 to supported versions
Changes from 2.32 to 2.33
--> 2.33 released 2013/01/09
Helper Scripts
bin/calcSARDC
added -singleEns option
bin/contactMap
a new helper to visualize intramolecular contacts.
bin/ens2pdb
added support for EnsembleSimulation members specified using a wildcard
bin/getBest
added the -wildcard option to specify ensemble simulation members
bin/pyXplor
fix to allow empty string command-line arguments
bin/pbsxplor
-modified to get log file in the current working directory.
-added the -jobs_per_node option to be able to manually control
the number of processes run on each node.
-now support Torque -f option for fault tolerance.
-updated to work on Altix under PBSPro using the SGI-specific
cpuset command. On that platform, jobs should be launched using
the ncpus resource to specify the number of cores.
bin/ramaStrip
a new helper to help quickly evaluate Ramachandran quality of a
large number of structures. Based on torsionDBPot.
bin/xplor
-fixup for bad versions of ``which'' which print errors places other
than stderr
-fixup in allLocal determination logic
-fix to allow empty string command-line arguments
Example scripts
eginput/gb1_rdc/refine.py
replace RAMA with torsionDB
eginput/pre/refine/newRefine.py
change tuples to lists s.t. things work if only a single expt.
eginput/PSF_generation/genLigand.py
fixed so that it works with the HEME example in the tutorial
Python Interface
python/ensembleSimulation
added memberFromSimulation - to subclass a Simulation ->
EnsembleMemberSimulation
nmrPot/nbTargetPot.cc
bug fix in the neighbor search. This should prevent a progressive
degradation in performance during a calculation.
python/noePotTools.py
create_NOEPot: added optional verbose argument
common/potList.cc
PotList::rms(): fix treatment when all terms are negative
python/prePotTools.py
-getNucleusType: change heuristics to query residue name. Now much
more robust.
-create_PREPot: added verbose argument
python/prePot
instantiate the base case Restraint to get its methods
python/protocol.py
updatePseudoAtoms: better handling for default sim values
nmrPot/psolPot
-now uses SurfTesselation, surface integral integral evaluation,
instead of volume integral.
-working approximate surface integral gradient
python/pyXplor.cc
when handling -c from the command-line: now correctly include the
rest of argv - needed by idle
nmrPot/rdcPot1
-showViolations: now print contribution from each atom pair in all
ensemble members
python/regularize.py
fixupCovalentGeom: changed default sel argument to omit pseudoatoms
python/restraintStats.py
RestraintStats now supports to optional potential term members:
noPotSummary and noViolationStats to suppress unwanted output.
python/selectTools.py
added threeToOne function for residue name conversion.
python/simulation.i
-rationalized derived/base relationship between Simulation and
classes which derive from it.
-__eq__, __ne__: now handle case of simulation compared with other type
python/simulationTools.py
-StructureLoop:
*new argument: pdbFilesIn: if specified, a coordinate file
will be read in before each call to structLoopAction. This allows
easier parallelization over a list of arbitrarily named input
files, for analysis and validation.
*added mechanish to pass back arbitrary (pickable)
data from structLoopAction to process 0 by writing to the
sharedData member.
*added the pdbFileIn method, returns the current input structure
file name.
-StructureLoop.makeFilename: added optional memberNum argument to
override default
-StructureLoop.run: change behavior if calcMissingStructs and
doWriteStructures are specified: now read in pre-existing
structure and rewrite them, to make re-analysis
easier.
-StructureLoop.writeStructure: extraRemarks can now be a sequence
of strings
-flattenPotList:
*added argument: includePotLists. If true, return
(non-toplevel) potlists in addition to individual pot terms.
*now flattens any type of potential which is iterable (instead
of only PotLists).
python/socketComm.py
collect/distribute: added calls to barrier() at start to update keys
python/torsionDBPotTools.py
-Removed class TargetTorsionPot from torsionDBPotTools module
-torsionDBPotTools module: added TargetTorsionPot class
python/torsionDBTools.py
-python/torsionDBTools.py: some fixes associated with the
introduction of nucleic info
-python/torsionDBTools.py: added definitions of nucleic
(pseudo)torsion angles
python/torsionDBPotTools.py
create_TorsionDBPot: got rid of reporting # of terms generated
if SimulationWorld_world().logLevel()==none
python/torsionDBPotTools.py
torsionDBPotTools module: added analyze function
nmrPot/torsionInterpolPot.cc
nmrPot/torsionInterpolPot.hh
python/torsionDBPotTools.py
python/potList.i
python/restraintStats.py
Added noPotSummary member data to torsionInterpolPotND (N=1,2,3)
and torsionDBPotTools.TDBPotl
Merge from /home/schwitrs/xplor
python/torsionInterpolPotTools.py
python/varTensorTools.py
torsionInterpolPotND (N = 1,2,3) added violations() member function
python/torsionDBPotTools.py
torsionDBPotTools: subclassed potList.PotList and used instances
to pack the terms; this is to facilitate violation analysis
python/torsionDBPotTools.py
Added elevel entries to torsionDBPot database files and modified
create_TorsionDBPot and setup_pot functions (torsionDBPotTools
module) to read them and set thresholds
nmrPot/torsionInterpolPot.cc
TorsionInterpolPotND constructor initializes threshold() to
1e30; TorsionInterpolPotND_Restraint energy member funct. sets
diff_ to the unscaled energy (N = 1,2,3)
nmrPot/torsionInterpolPot.cc
TorsionInterpolPotND_Restraint (N = 1,2,3) now uses name()
member function inherited from Restraint; relative to the
previous commit this one works
nmrPot/torsionInterpolPot.cc
nmrPot/torsionInterpolPot.hh
TorsionInterpolPotND_Restraint (N = 1,2,3) now uses name()
member function inherited from Restraint
python/torsionTools.py
-setTorsions function no longer accepts
reference to angles by name (e.g. phi)
python/varTensorTools.py
calcTensor_ensemble: added the optional selection argument updated
to work for inhomogeneous ensembles with nonuniform weighting
updated to support pairwise averaging
python/waterRefineTools.py
buildShell: fix to deal with >10 water boxes in a dimension.
Also now gracefully exits if too many water boxes are required.
python/xplorInit.py
added the -- option to stop command-line option processing
python/xplorSimulation
getXplorSimulation: fixed to work for EnsembleMemberSimulations
Architecture-specific changes
arch/Linux_x86_64/include/alignof.h
arch/ARCH/include/alignof.h
added platform-specific alignof.h which implements __alignof__
arch/Darwin_10_x86_64/intVar/Makefile
reduce optimization for 2011 and 2012 versions of Intel
compiler. This may not be necessary for 2013 version...
arch/Linux_x86_64/source/Makefile
update (optimization downgrade) to get gcc-4.7 working
arch/Darwin_8_ppc/Makefile.defs
arch/Darwin_8_x86/Makefile.defs
added excluded (system) libraries
arch/Linux_x86_64/Makefile.defs
do substring match for easier alternate gfortran/gcc version spcification
Low-level Functionality
common/atom
added bondedTo method; added cdsMapConvertToInt so Atoms can be CDSMap
keys
common/atomSel.hh
added (read-only) iterator support
CDSlib/cdsComplex.cc
add unary minus
CDSlib/cdsIterator.hh
Iterator: changed _container type to pointer; added default
constructors; partial documentation
common/modified.hh
Modified- now allow argumentless constructor- for use without
ModifiedBase
common/pot
Pot::violations now floating point value s.t. AvePot can report on
EnsembleSimulation violation averages
common/relAlloc.cc
a very simple heap allocator to be used for shared memory
allocations.
common/xplorSimulation.cc
pad4: now use snprintf instead of sprintf to avoid very unlikely
buffer overrun.
CDSlib/mat3.hh
CDSlib/vec3.hh
nmrPot/utils.hh
moved crossMat from vec3.hh to mat3.hh; moved outerProd from
utils.hh to mat3.hh; these changes forced additional includes
surfD/
-removed unused methods, functions
-clean up
-Surf:
*renamed Max_Tess_Len to maxTessLen accessor
*renamed struct SurfacePointOut to AtomPoints
in this struct replace in At_nmbr member with atom
*renamed out_spt member to atomPoints
*new method calcSA for calculating surface area for an existing
tessellation.
-converted Surf::atoms to CDSList, removed Num_atoms member
-changed type of SurfacePointOUT::Sum
-SurfacePoint:
*added delta member, dCoord method
*replaced At_nmbr index with Atom
-Tessel::gen_tris:
removed calculation of surface area.
nmrPot/relaxRatioPot
added use of retessellateIfNecessary instead of direct call to calcSurf
nmrPot/diffPot
-calcEnergyAndDerivs: now increment retessellateCount
-now use SurfTesselation helper methods to reduce code duplication
-removed surfDiff member from SurfTessellation, added to DiffPot,
RelaxRatioPot
nmrPot/surfTessellation
-SurfTessellation: shuffled members to simplifiy retessellation,
cuttoff recalculation logic
-added retessellateIfNecessary method to encapsulate normal
calling logic
-removed use counter stuff
-added verbose member
bin/findSwig
added 2.0.8
tcl/Makefile
swig fixes
tcl/findTCL
added logic to use $tcl_library to search for the include dir
Databases
databases/torsions/protein/top8K_bb/
Added databases/torsions/protein/top8K_bb/ for protein backbone
validation with multiple elevels in each file
databases/torsions/protein/top8K_v0
Renamed files in databases/torsions/protein/top8K_v0/ and
explained elevel in databases/torsions/README.format
Changes from 2.31 to 2.32
--> 2.32 released 2012/09/06
Documentation
helplib/faq/node0600.txt
include final resid in dimer restraints
doc/python/index.html
updated base Python documentation link
doc/xplor/manual_ypress.tex
again corrected switching function definition (eq. 4.9 in the
XPLOR manual)
Example Scripts
eginput/gb1_rdc/analyze_ProbDistPot.py
fixed typo in atom selection
eginput/saxs_EI/testCalcTensor
added calcTensor test with segid-less restraints for symmetric dimer
eginput/PSF_generation/genCircPep.py
modernized and made to work
Topology/Parameters
toppar/CNS/
added recent CNS topology/parameter files
Python Interface
python/findPython: now support version 2.7
python/atom.i
added __ne__ method
nmrPot/noePot
to the Restraint class, added method:
bestPair() - for ASSIgn ... OR restraints, the (zero-offset) index of the
selection pair which gives the smallest energy contribution.
python/pcsTools.py
added pcsTools module (contributed by M. Stanton-Cook)
This includes the calcXTensor function for calculating the delta
chi tensor (alignment tensor and paramagnetic center).
python/protocol.py
initParams: added optional string argument
nmrPot/psolPot
fixed setRp() accessor to calls setRadii()
changed restraints to be rc pointers
nmrPot/rdcPot1
added Restraint::setErr() accessor
python/residueAffPotTools.py
added reference
nmrPot/sardcPot
added optimizeScale accessor, allow avectorScale to be set
python/simulationTools.py
StructureLoop:
-added doWriteStructures to obviate the need for writeStructure in
structLoopAction.
-added calcMissingStructs boolean to indicate that only non-present
structures are to be calculated.
-pdbTemplate now takes a default value.
eginput/gb1_rdc/refine.py now uses these three changes.
StructureLoop.genAveStats: initial barrier: disable the
timeout. Will now block for all processes to compute structures.
added sortFilesByEnsMember- used to match ens weights with proper
filename
python/socketComm.py
Comm.barrier: fixed logic problem for timeout==None
python/torsionDBPotTools.py
create_TorsionDBPot:
optimized for much faster initialization.
parse_metaselection now returns smaller selection string (when
resid=False) and handles input list (when resid!=False)
now counts and reports potential types.
The format of the database files has changed. See
databases/torsions/README.format
python/torsionInterpolPotTools.py
new module to be used for splined torsion angle energy terms.
python/torsionDBPotTools.py
create_TorsionDBPot: increase verbose verbosity
nmrPot/varTensor.cc
setDa: make error message more informative
python/varTensorTools.py
calcTensor:
-added the optional svdTolerance argument
-fixes for dealing with RDC averaging, deal with singular SVD
values; will now work for symmetric dimers with a single set of
restraints
TCL Interface
tcl/findTCL
added tcl/tk version 8.6
Helper Scripts/Programs
bin/calcSARDC
added a helper program for calculating steric alignment rdcs given
table and structure
bin/calcSAXS
-when -exptPointsSpline is specified, now compute the second chi^2
value using just these points using splined calculated
values. Previously, we always evaluated chi^2 at the calculated
points, linearly interpolating the data. The new approach is much
more stable with respect to changing numQ.
-input files are now sorted by ensemble member so that weights can
be matched to structures.
bin/pbsxplor.in
mod to allow = character in filenames
removed bin/xplor_mpi
it was not used for anything
Low-Level Libraries
alloc
quieted test output
cminpack
tests updated to self-test results and be quieter by default.
common/atomSelLang
allow + characters in atom selection strings
common/atomSelLangYacc.y
fixed bug where single # was not recognized as a wildcard
bin/findSwig
updated for swig 2.0.7
Architecture-specific changes
arch/Darwin_12_x86_64
arch/equivList
added entries for Darwin 12 - thanks P. Mercier
parallel.txt
updated for current situation on modern Darwin
arch/Darwin_10_x86_64/Makefile.defs
OMITTED_SHARED_LIBS: many additions due to change in toplevel Makefile
Changes from 2.30 to 2.31
--> 2.31 released 2012/05/16
Python Interface
nmrPot/atomProb
now expose the val(i,j,k) method to Python
autoExtent: now include a list of coordinates (corresponding to an
ensemble of structures) to check when generating grid
extent.
nmrPot/distSymmPot.cc
showViolations: fix the id field in the output
nmrPot/noePot
changed members d, dMinus, dPlus and comment to accessors to allow
setting
nmrPot/posSymmPot
-now supports EnsembleSimulations
-added variance tensor (ORTEP) component for ensembles
(enabled by setVarScale(1))
-removed the single-atom selection sets for simplification.
-added addEquivAtoms -
takes selection strings for arguments, needed for
inhomogeneous ensembles
-added member gamma, and made fixes to always maintain proper rotation
matrices (determinant=1)
nmrPot/relaxRatioPot
-added Restraint subclass
-renamed some accessors:
getMedianTmp --> medianTmp
get/setFr --> freq/ setFreq
change name rot_Mtrx --> rotMat
-added cutoff() read accessor
-removed selection() accessor- this can be obtained from
selection()->string()
-added violations(), showAllRestraints - violated_ is now set
-now cache more values to prevent recalculation
-now pairwise due averaging over atom selections
nmrPot/sardcPot
added Restraint::setErr and test
python/cdsMatrix.i
added SymMatrix +-* methods
python/diffPotTools.py
RelaxData: now support NOE field and leading hash comments
python/ensembleSimulation.i
added __eq__ and __ne__
python/ivm.py
added the time() and iter() accessors
python/noePotTools.py
splitTable:
-fixed selection of short range restraints (changed < to <=)
-fixed bug where an ambiguous restraint was also classified as
short range.
python/posDiffPotTools.py
fixed setup for EnsembleSimulations
python/protocol.py
matchInexactAtomEntry:
-leading/trailling segid whitespace is not significant
-added missing simulation argument from an AtomSel- atoms were
not matched in noncurrent Simulations.
initCoords: fix for deleted bfactors, occupancies if
deleteUnknown=True and loading from a noncurrent Simulation.
python/psfGen.py
pdbToPSF:
-improved documentation.
-now pdbRecord arg is optional
addDisulfideBond:
added option to treat a disulfide as a distance restraint
pdbToSeq:
-now raises custom exception if seqs is empty before returning
-now strip leading/trailing whitespace from segid
cisPeptide:
updated to deal automatically w/ multiple segids
python/rdcPotTools.py
added chi2 function, ExtraStat
python/regularize.py
fixupCovalentGeom: always set mass>0, even if not doing dynamics
python/relaxData.i
broke out the RelaxData into a separate relaxData module
python/relaxRatioPotTools.py
analyze:
now print out per-restraint information
python/sansPotTools.py
python/solnScatPotTools.py
python/solnXRayPotTools.py
create_ helpers:
added minQ parameter/argument
python/sardcPotTools.py
added chi^2, rmsd functions
Rfactor: add support for sub-selection
python/selectTools.py
correctSymmetricSidechains:
-better handle missing atoms
-now checks angle is inside range *after* correction and reverts
it if farther away
python/torsionDBPotTools.py
torsionDBPotTools module: updated torsion angle database potential
currently for proteins only.
python/varTensorTools.py
saupeToVarTensor: now return ensemble VarTensor - to support
ensembles of Saupe matrices.
python/varTensorTools.py
added pairwise averaging to RDCPot.
vmd/publicVMDInter
vmd/vmdInter
added the reap method to clean up thread environment
vmd/thread.cc
wait: now reset tp member to 0 so pthread_join does not get called twice
Fortran Interface
source/comand.fcm
source/symbol.fcm
increased maximum line length to 512 characters
Common Low Level Libraries
CDSlib/fixedSymMatrix
added operator*(mat,symmat) operator*(mat,symmat) and test
CDSlib/symMatrix
added operator+/-(SymMatrix,SymMatrix) and tests
common/atomSelLang
-atomSelLang: added support for ranges for index and id properties
-made attr >=/<= actually work
common/ensembleSimulation.cc
added getEnsembleSimulation static function
common/pdbTool.cc
write(): added TER after final structure if writeChainID==True
nmrPot/utils.hh
moved outerProd to utils.hh
many files:
various changes to silent gcc -Wall
the most important being changing
Simulation::type and Simulation::name from char* to String
UNUSED was added to sthead.hh to demark (sometimes) unused
functions.
TCL Interface
tcl/import_nmrstar.tcl
formatting (whitespace) changes
tcl/findTCL
updated to deal with system Darwin installations
Helper Scripts/Programs
bin/calcSAXS.in
added minQ parameter/argument
bin/calcTensor.in
-added pairwise averaging to RDCPot.
-added chi^2 to output
bin/getBest
added the -members command-line option
bin/xplor.in
add quotes around $USER in case it is not set.
Architecture-specific changes
arch/Darwin_10_x86_64/source/Makefile
Intel compiler updates - thanks to P. Mercier
arch/Darwin_10_x86_64/Makefile.defs
updated omitted lib list
arch/symlinks
updated for Darwin 11
arch/Linux_x86_64/Makefile.defs
-OMITTED_SHARED_LIBS: removed libresolv - problems on Ubuntu
-updated for old versions of gnu make
Changes from 2.29 to 2.30
--> 2.30 released 2012/01/26
Example Scripts
eginput/PSF_generation/genLigand.py
added proper masses
eginput/assignFit/02refine.py
changed the random seed... so that subsequent 03assignFit succeeds
Fortran Interface
source/fxrefin.f
catch overruns in bessel function lookup array
source/fxmap.f
source/xmap.f
fix old(?) bug: not enough args in wrtitl
source/comand.fcm
source/parser.f
source/xplorFunc.f
fixed memory growth problem caused by repeated calls to
xplor_parse() from xplor.command().
The command buffers grew without bound.
Now, there are two buffers, one used if the qsubshell argument is true
and the other if it is false. This safely allows XPLOR --> Python -->
XPLOR calls. Also, if qsubshell is true, the buffer indices are reset
to 1, so memory use no longer grows without bound.
The BUFSTK variable has been removed- this is a vestige from the
``rotating'' command buffer.
TCL Interface
tcl/aeneas_tools.tcl
standardJointFilter: added -primarySequenceDistanceFilter flag to
(optionally) filter out all other assignments if an intra-residue
assignment is a possibility.
tcl/import_pipp.tcl
process2dPippPeakTable: added the -intensityThreshold option
Python Interface
python/cdsVector
added __radd__ __rsub__ __rmul__ __rdiv__
nmrPot/distSymmPot.cc
allow atoms to be missing in some ensemble members
common/ensemblePot
added the ensWeights() read accessor
ensWeight() read accessor: added a default memberIndex value
common/ensembleSimulation.cc
fixed invalid reference to sim pointer
python/ivm.py
ivm fixup for translate + torsion topology
python/planeDistTools.py
added a call to protocol.updatePseudoAtoms()
python/regularize.py
covalentMinimize: the meaning of the selection argument had been reversed!
nmrPot/sardcPot
-fixed bad ensemble weighting booboo
-fixup to consistently use pot->ensWeight instead of member->weight
-added the Dmax() accessor
-added PAIRWISE averaging, test
python/sardcPotTools.py
-saupeMatrix: this now returns something, but needs testing.
-added useSign arg default val
-fix to deal w/ ! comments and properly deal w/ nonmatch condition
python/simulationTools.py
StructureLoop: added the structInfo member
python/trace.py
class Trace: added method run()
python/xplorInit.py
fixes s.t. cwd is last in the Python load path
(also changes in bin/xplor.in for this)
python/varTensorTools.py
-saupeToVarTensor: updated to take optional Dmax argument so that
proper (not scaled by Dmax) Saupe matrices can be input.
Helper Scripts/Programs
bin/calcTensor.in
added -plot option, facility to plot calculated vs. observed correlations
including error bars representing spread in calculated values
bin/ens2pdb.in
initCoords: disable maxUnreadEntries check
-missing atoms are now deleted, so that invalid coords aren't printed
-the -delete command-line option has been added
bin/xplor.in
-quiet output of ipcrm - so no program or people get confused.
-fixups for case when num_threads > number of cores on a numa node.
-added smarts for better dealing with the case of the number of
processors on a numa node is not an even multiple of
NUM_THREADS. Previously, numa nodes would be under/oversubscribed in
this circumstance.
-fixes for mixed localhost remote.host localhost specifications of
machines: to get process id correct.
bin/calcSAXS.in
add an EnsembleSimulation.sync() after deleting atoms- otherwise
confusion ensues if atoms are really deleted and Ne>1.
bin/getBest
fixed -all to work with ensembles with more than 10 members
bin/pbsxplor.in
now generate a default output (log) file from the input script filename
Documentation
helplib/nih-py-csaPot
python/csaPotTools.py
update concerning units
Low Level Libraries
CDSlib/cdsSStream
fixed IStringStream str() members
common/mmapMalloc.cc
alloc
-reworked MMapMalloc to use alloc from Rusty Russell. Previously,
fixed-address mmaps were used, and ensemble simulations would
sometimes crash, particularly for heterogeneous ensembles.
nmrPot/ Potentials:
make error message (when reading restraints) less confusing and
deterministic:
fix behavior of hitting nonfatal error when reading restraints:
the remainder of the restraints would not be read.
fixed by clear() ing the input stream.
added another supported swig version
Added support for python2.7
arch/Makefile.common
add: if DEBUG==1, add FFLAGS_NOOPT to FFLAGS
Architecture-specific
arch/Darwin_10_x86_64/surfD/Makefile
updated optimization reduction
arch/Darwin_10_x86_64/source/Makefile
updated gfortran-4.6 options - thanks to J. Howarth
arch/Darwin_10_x86_64/Makefile.defs
added optimization flag
arch/Darwin_10_x86_64/fortlib/pppack/Makefile
reduce optimization level for ppvalu (segfaults w/ -O2 or -O3)
arch/IRIX64_6.5/Makefile.defs
now use c99 C compiler
arch/equivList
updates for 64 bit Darwin
arch/Linux_x86_64/intVar/Makefile
arch/Linux_x86_64/source/Makefile
reduced optimization levels to avoid optimizer-induced regressions
arch/Linux_x86_64/Makefile.defs
updated optimization flags - thanks to P. Mercier
arch/Darwin_10_x86_64/Makefile.defs
updates from P. Mercier for intel compilers
arch/getDarwinCPU
added the i3 processor
Changes from 2.28 to 2.29
--> 2.29 released 2011/09/20
Example Scripts
eginput/assignFit
added assignFit example, for assignment using rdcs, csas
eginput/pre
rearranged and added a second example contributed by N. Anthis
eginput/PSF_generation/pdbTest
mod for pdb update of entry 2lhb
eginput/relaxRatio
added example of use for ubiquitin structure determination
eginput/sardc/refine.py
updated
Fortran Interface
source/genic.f
source/initia.f
source/intcor.f
source/intcr.fcm
removed the MAXLIC fixed parameter
TCL Interface
tcl/import_nmrstar.tcl
readNMRSTARShiftTable: updated to read single character residue names
Python Interface
common/atomSel.cc
comparisons between Simulations now based on modifiedID, not pointer val
common/atomSelAction
Fit: added the transDiff accessor
python/csaPotTools.py
makeTable function: fixed so it actually works
nmrPot/noePot:
-various fixes to better support EnsembleSimulations, including
heterogeneous ensembles.
-now, sum weighting and per-term weighting should be supported
nmrPot/relaxRatioPot
updates
implemented cut_off leveling of Chi^2
nmrPot/posSymmPot.cc
addEquiv... : throw exception if given an EnsembleSimulation
nmrPot/sardcPot
-gradient fixes
added gradient wrt alignment tensor,
added gradient contribution due to alignment tensor rescaling
-changed get_avector_scale() to avectorScale()
-removed avectorLimit fudge factor
-code reworked to make it readable.
-added domainSel member
-fixed definition of variance
-showViolations: now print out restraint err
-added the err restraint accessor
-added the irredTensor accessor
-avectorScale is now allowed to be negative
-changed diff(): now it is no longer predivided by deltaObsErr
This changes the reported rmsd.
-returned chisq value was corrected: now it is divided through by the
number of restraints.
-Restraint:
renaming and now expose useSign and distance members with accessors.
-added freeDist member to change distance parameter
-removed spherical_sampling_init from the public interface
python/cdsList_template.i
added remove method
python/distSymmTools.py
-added genPolyRestraints
python/ensembleSimulation.i
rewritten destructor: now disown after calling deleteSimulation
python/monteCarlo.py
randomizeTorsions: added range.
python/parseTools.py
-new module with custom tools for parsing strings as input streams
-moved findNested, readFloat to this file.
python/potProxy.py
fixed up potProxy s.t. AvePot(PotList) are now iterable
python/protocol.py
initStruct: optionally suppress output of XPLOR commands. Only
required for XplorWrapProcs (from non-default XplorSimulations).
python/psfGen.py
fixes biomt case with ssbonds
seqToPSF: allow comments preceeded by # character
python/rdcPotTools.py
Rfactor_infinite: updates for special cases
python/restraintStats.py
now use simulationTools.potType instead of potName to id type
python/ringGeom.py
-ringGeom: pucker function modified to additionally accept a list
of torsion values as input
-ringGeom: pucker function: changed order of angles and buffed up
docstring
python/sardcPotTools.py
-convertFromXplor: fix for assignment regular expression
-readRestraint: fix: now use XPLOR restraint err value
-added R-factor to analysis
-readRestraint: fixed value of useSign for DIPO-style restraints
-added chi2 to extraStats
- create_SARDCPot: will now read DIPO-style XPLOR rdc table,
deducing the value of distance. Added the useSign argument.
python/simulationTools.py
-StructureLoop.makeFilename: fixed so optional structNum is really
used
-genAveStats: increased initial barrier timeout to 1 week (was off by 24)
python/torsionTools.py
torsionTools: setTorsions function: changed first dir to -1
python/varTensorTools.py
calcTensorOrientation: fix for axis atom resid overlap with other resids
python/waterRefineTools.py
documentation update
python/xplorPotTools.py
added VEAN support
surfD/surfInternal.hh
increased constants
Helper Scripts/Programs
bin/calcDaRh.in
added the -segid and -startResid cmdline options
bin/calcETensor.in
now use loadPDB s.t. heterogeneous ensemble members can be
read. (but calcTensor_ensemble does not yet support this)
bin/calcTensor.in
-fixed bug which scrambled order of output when multiple tables
were specified.
-added -getTags to give verbose, parsable tensor info.
bin/getBest
added the -quoted option
bin/targetRMSD.in
-added the -psf2 cmdline option s.t. two different psfs can be specified.
-fixed bug in which -diffSeq was required for different selections,
even when the sequences were identical
-now report Fit.transDiff instead of Fit.translate: this is the
distance between centers of mass.
-added the -showRigid cmd-line flag to print out transDiff, and
rotation for each rigid body fit.
bin/xplor.in
-changes to parallel processing s.t. XPLOR_RSH is called once for
each remote host and then one process is run (via -smp) for each
time the host is listed. This conserves networking resources and may
speed startup time. It is essential to be able to use rsh with a
large (> ~100 cores). For it to work, like node names must be grouped
together. If the node names are not grouped (e.g. -machines node1
node2 node1 node2), then this optimization will not be used.
-changes to better support Solaris (grep --> $GREP, etc)
-THREAD_FILENAME hack to deal w/problems with multiple processes
writing to /dev/null and corrupting mmap-allocated memory
on Darwin x86 and ppc platforms
-fix logfile naming for case when a single job is running on a
remote host.
-Change: .0 is not added for process 0 log file
Documentation
doc/python/tut.tex
updates to MultRamp docs
helplib/faq/node0150.txt
added ACPYPE link
helplib/nih-py-csaPot
added bit about DaScale, reference
helplib/nih-py-xplorWrap
added docs on disableOutput, enableOutput
doc/xplor/manual_ypress.tex
fixup in nonbonded description
Low Level Libraries
common/dlmalloc.c
new upstream version
common/ensemblePot.cc
calcEnergyAndDerivs: now call modified.clear()
common/ensembleSimulation
common/simulation
SharedAlloc:
no longer initialize the esim member to the current EnsembleSimulation:
this must now be manually initialized
(this is so that SizeOneSimulations are used when appropriate -
in the future it's also possible that sub-EnsembleSimulations will be
allowed)
As a result all CDSVector objects which use SharedAlloc must
initialize the alloc member
SharedAlloc now has an EnsembleSimulation* member
EnsembleSimulation now has a SharedAlloc member
these used so that multiple EnsembleSimulations can be active at once
(in particular, Ne=1 allocations should work correctly when Ne>1
EnsembleSimulations are current)
constructor:
change for size one ensembleSimulations: id is no longer reset to
the subSim's id. This is so that Simulation::deleteSimulation works
properly for size one ensembleSimulations (and doesn't cause a later
crash).
deleteAtoms:
now call Simulation::syncAllSimulations so that everything is
properly sized, etc. Otherwise AtomSels return bogus values.
Simulation:
added the rawID() method, and made id() method overridable.
id() is overridden by size=1 EnsembleSimulations to return the id of the
subSim. This is to maintain behavior that size=1 EnsembleSimulations are
identical to their subSims, but still retain a unique rawID which can be
used (for instance) to delete them.
EnsembleSimulation::SharedAlloc members now explicitly constructed
- to specify EnsembleSimulation
CDSlib/cdsVector.hh
-added setAlloc method
-Rep: no longer call allocator for zero size allocations
CDSlib/spline
spline: added getderiv member funct.
fixed end value of slope in periodic case
fixed type in operator
added periodic case to derivs
spline 1D: added getsecondderiv member function
Architecture-specific
-add amd64 architecture package for Mac
-now used simpler Linux ARCH setttings.
-no longer compile IPO for AMD64 Linux package
Changes from 2.27 to 2.28
Example Scripts
eginput/saxs_EI
added EI-free SAXS+RDC example
includes mutation script
eginput/PSF_generation/genLigand.py
now also generates a .top file
new behavior:
typenames are now truncated to 4 characters w/ leading "G" -
if there is a clash- those atoms will have the same typename.
Documentation
corrected switching function definition (eq. 4.9 in the XPLOR manual)
Databases
databases/chemShiftTens
additional and updated tables from Ben Wylie
Helper Scripts/Programs
bin/calcTensor.in
added R-factor, and R-inf to default output. updated documentation
bin/pyXplor.in
properly protect single/double quotes in arguments
bin/xplor.in
added mechanism to propagate INT or TERM signals to remote jobs.
fixup for SCYLD misbehavior for num_threads<2
Python Interface
python/atomSel
AtomSel: get constructor from list of atom indices working in Python
python/bigraphMatching.py
Tools to perform bipartite graph matching.
common/bondAngle
python/bondAngle.i
added BondAngle class
python/cdsVector_template.i
fixed fromList (previous only worked if size did not change)
python/diffPotTools.py
python/ensembleSimulation.i
added the Comm wrapper class
python/h3JNC.py
python/h3JNCPot.py
new H3JNC potential term
nmrPot/sardcPot
avector_real: removed two-layercontainer of container with SharedAlloc
merge from xplor-mmap (no change merge)
nmrPot/planeDistPot
added weight member to Restraint class
along with WEIGHT statement in input tables
added GAUSSIAN and SIGMOID potential types
nmrPot/prePot
PREPot::showViolations: improved output for SUM restraints
PREPot: added mkSumRestraints
fixed bug: some arrays were never sized for stereo mode
python/prePotTools.py
create_PREPot: added optional paraCenter, sumWeights args to facilitate
creating SUM restraints
python/protocol.py
genExtendedStructure:
added support for maxFixupIters=0
initCoords:
changed erase implementation from using XPLOR interface
initDihedrals:
default dihedral restraints: now only add them if
the atom farthest from the backbone is present.
python/psfGen.py
pdbToSeq: better deal with misformatted ATOM records seqToPSF:
added ntermPatch, ctermPatch arguments to customize protein
termination
seqToPSF:
-bugfix for ctermPatch
-added the "custom" seqType
-now treat seq arg as file if its length is > 4 characters
-add singleChar argument to interpret sequence as
a single-character residue names
python/pyConvert
Vec3s are no longer converted to tuples
python/relaxRatioPotTools.py
updates
python/restraintStats.py
RestraintStats:
-added collect method for parallel communication of
per-structure stats. Now collect stats on all structures and
then subsample based on structNums argument.
-added s.structNums member for to simply store seen structures
members summarize* structNums is now optional.
summarizeViolations:
now sort by name instead of index: index is meaningless in the
vdw term.
python/regularize.py
fixupCovalenGeom.fixupLoop_xplor: now catch unknown coordinate
(and other) errors in XPLOR minimization and dynamics.
nmrPot/sardcPot.cc
added missing initializations
python/selectTools.py
renameResidues 1->3 protein sequence mapping.
python/simulationTools.py
StructureLoop:
docs for averageRestrain: clarify meaning of inconsistentAveStruct.
writeStructure:
added exception type encountered if pwd.getpwuid fails
changes made while unbound
genAveStats:
-reworked to collect per structure energy/violation info and
communicate it back to the proc 0.
-now do not try to do any fitting in the case of
ensembles waitForProcesses: now commented-out.
filename, makeFilename: now take an optional structNum argument
run(): now use ensembleSimulation.Comm for ensembleSimulations
minimizeRefine():
reworked s.t. flattened PotList is not used in minimization
analyze():
remove extra comment listing cross-validated terms which is
printed only if the terms contain sublists.
python/solnScatPot.i
pairDistribution: now initialize count field
python/solnScatPotTools.py
bugfix
python/torsionDBTools.py
tools for updated torsion database potential
python/torsionTools.py
setTorsions: bug fix:
if angle specification was in opposite direction of tree def., the
rotation would be incorrect.
python/varTensorTools.py
added configIVM_fixAxis function
topologySetup: added fixAxis keyword
added eulerAngles function and test
changed current_axisResid to 5000
C++ Interface
common/atom.hh
isValid: now return false for default-constructed Atoms
common/atomSelLang
AtomSelLang: added the recall keyword
added the dollar sign to characters allowed within strings
new atomSelLang.setRecallSelection() function
common/dihedral.hh
added derivs(pref,derivList) convenience function
common/ensemblePot
common/ensembleSimulation
common/xplorWrapProc
re-enabled MMapMalloc for better ScaleMP performance
now use fflush(NULL) before fork.
CDSlib/cdsMap
added clear() method, test
changed visibility of methods getAtom, getAtomConst, and add to private.
operator[], getAtom: optimization removing multiple map passes.
CDSlib/cdsMatrix
added operator*(vector,matrix) - more efficient for column-major
matrices
added operator*=(matrix)
CDSlib/cdsSStream
added second str() method which takes an argument
CDSlib/cdsString.hh
added synonym for gsub method: replace
added find methods
added count method
CDSlib/cdsVector
added append method/test
CDSlib/fixedVector.hh
added scale method
CDSlib/pair.hh
simplified the default constructor
CDSlib/spline.hh
Spline (1D):
added constructor from two vectors
added deriv(), secondDeriv() methods
CDSlib/vec3.hh
default constructor:
Added initialization (0,0,0) - to make sparta derivs earier .
intVar/publicIVM.hh
PublicIVM::step:
now check for error when catching Finish, return val changed.
TCL interface:
marvin/MarvinNOEPotential
marvin/Peak
fixed inappropriate use of non-public CDSMap methods
Architecture-specific
arch/Darwin_8_x86/Makefile.defs
FLD_FLAGS cleanup
createF77SharedLibrary: now use $(CC) instead of hard-coded gcc
new element for OMITTED_SHARED_LIBS
Changes from 2.26 to 2.27
Helper Programs
bin/calcSAXS.in
-added -exptPointsSpline cmd line option removed debug print message
-fixed difference calculation (5th column of output)
-change to output residual instead of calcd/expt difference
-now check that input pdb files exist missing protons warning now
goes to stderr
bin/calcTensor.in
added the -subSel option
bin/testDist.in
applied A. Bornstein's patch to make path independent
bin/xplor.in
-added A. Bornstein patches to
1) get --help-script output when --help is given
2) properly propagate binary xplor's return value
-updated fortran i/o buffering settings from Jack Howarth
-will now consider the CINGSH env var to locate cing startup script
Example Scripts
eginput/PSF_generation/addAtoms.py
eginput/PSF_generation/addAtoms2.py
updated to use high level PDB reader/writer from protocol module
eginput/dna_refi/refine_full.py
added comments re: use of old parameters
eginput/saxsref
added example of use of SAXS data in protein structure determination
Python Interface
nmrPot/csaPot.cc
nmrPot/cstMagPot.cc
nmrPot/jCoupPot.cc
nmrPot/nbTargetPot.cc
nmrPot/orderPot.cc
nmrPot/planeDistPot.cc
nmrPot/posRMSDPot.cc
nmrPot/prePot.cc
nmrPot/psolPot.cc
nmrPot/rdcPot1.cc
nmrPot/sardcPot.cc
merge A. Bornstein patch for better treatment of spaces in
restraint tables
nmrPot/atomDensity
DensityGrid:
added readCCP4 (for maps) + tests, docs
changed signature of writeEDM: now takes filename argument
added default constructor
getData: added swig range checking for arguments
nmrPot/prePot.cc
-fix: added nissing allocations
-PREPot::showViolations:
updated output along lines of suggestions from N. Anthis
-calcGamma:
fixed bug in stereo calc for slow interconversion
-PRERestraint::energy(): now truncate the value of diff to
10,000. This to avoid crashes due to very large energies when
the atoms get unphysically close.
-Restraint::energy: remove truncation of diff_
nmrPot/posSymmPot.cc
fixup for error message
nmrPot/sardcPot.cc
fix: added missing allocations
nmrPot/torsionDBPot
Added torsionDBPot module with TorsionDBPot2D and
TorsionDBPot3D.
python/cdsMatrix.i
added __iadd__ (performance improvement for large matrices)
python/protocol.py
-initParams: added the use_dihe optional argument
-initRamaDatabase: change nres to a number proportional to the
number of residues in the appropriate simulation. Required for
use with very large systems.
python/pyInterp.cc
PyInterp::command: change to get correct return value
python/selectTools.py
rigidProteinSelections: added entries for the CED residue
python/simulationTools.py
-StaticRamp constructor: added stride parameter; plus new test
-saRefine: fixes to topology, parameter setup
python/solnScatPotTools.py
fitParams: inner loop optimizations
python/spline.i
-Spline: added 2nd constructor (taking 2 arguments)
-added typecheck
-typemap: use of overloaded functions w/ typemapped args requires
typecheck typemaps.
python/spline3D.i
-new 3D spline class with gradient.
python/torsionTools.py
deleted rotomericStats.py after moving RotomericStats class to
torsionTools.py
python/varTensorTools.py
calcTensor:
added the optional selection argument to specify a subset of
restraints to use for the SVD fit.
python/rdcPotTools.py
Rfactor_infinite: added selection argument
TCL Interface
tcl/aeneas_tools.tcl
match2d: reversed the order of range in warning messages about
from/toProtonShifts being out-of-range. createShiftAssignments:
now check for empty (missing) shift values and simply print a
warning message (instead of crashing).
tcl/import_pipp.tcl
added process2dPippPeakTable (after verifying it works)
tcl/marvinNOEpotential.i
added sorted versions for some PASD output quantities
and updated output for new order of output
prompted by CDSMap reimplementation
tcl/tclXplor.cc
now override built-in tcl exit command so that proper Xplor-NIH
cleanup takes place.
Output changed because now final messages (and times) are
printed.
XPLOR Interface
source/fenergy.f
source/setor.f
added missing parameter to SEDIHE. This likely has no affect on
the results
source/hbdb.f
bugfixes: hbdbpatt:
-initialize all of hbfiltmap, hbprop elements
-now more careful about going out of range
-removed multiple infinite loops
source/slink.f
bugfix: subroutine slink: logical flags for dihedral and improper
terms were incorrectly set. This resulted in slinked dihedrals and
impropers getting zeroed out.
Low Level Libraries
CDSlib/fixedArray3D.hh
New container class for statically-allocated 3D data.
CDSlib/cdsExcept.hh
added A. Bornstein patch: additional constructor taking String arg
CDSlib/cdsIterator.hh
members now protected to allow class derivation
python/cdsMatrix
-fixed constructor w/ initializer for CDSMatrix
-New cdsVector.CDSVector*cdsMatrix.CDSMatrix operation
-(cdsVector.CDSVector=v, cdsMatrix.CDSMatrix=m) Faster m*v.
CDSlib/cdsMap
CDSlib/redBlackTree
CDSlib/templateStack.hh
modified patch from A. Bornstein:
converted CDSMap to use red black tree
CDSlib/cdsString
-merge A. Bornstein patches:
added cast to int
change argument of constaints(string)
fixed justification of operator<<
-readline: fix for reading long (>1024 char) lines, added test of
this functionality
CDSlib/spline.cc
merged periodic 2D fixes (gradient estimation in constructor)
from Guille.
CDSlib/spline3D
New 3D spline template class with gradient.
common/atomSelLang.cc
added the index keyword
common/mmapAlloc
-alloc: added (optional) 4th addr argument - used by mmapMalloc
-alloc: do not subtract from addr unless it is !=0
common/dlmalloc
common/mmapMalloc
-initial version of malloc-on-mmap for shared memory allocation
This motivated by poor performance on the ScaleMP architecture and
suggested by their personnel.
-added mutex protection for alloc and free
-cleanup: add explicit call to MMapMallocData destructor to
prevent resource (semaphore) leakage
common/ensemblePot
common/xplorSimulation
-sharedPID now calls MMapMalloc::alloc (and it is now cleared)
-added support for prepending pid to C++ cout output by setting
the PREPENDPID env var. This should be expanded to include stdout
from the C library.
common/ensembleSimulation.cc
common/ensembleSimulation.hh
updated to use MMapMalloc instead of MMapAlloc
bug fix for SharedString: no longer return raw char* ( so binary
strings can be better handled, and so string length is properly set )
common/semaphore.cc
-added query method for SVSV semaphore implementation
-added extraData member. It is used by the SysV implementation to hold the
pid of the Semaphor creator. The destructor only allows the
creator to call IPC_RMID.
common/xplorWrapProc.cc
-added calls to MMapMalloc:incr/decrNumThreads before fork/after waitpid
-slave no longer deletes sharedData- that is done by the master
(who created it - this is necessary to delete the Semaphore (SysV)
now slave does call SimulationWorld::finalize() - to clean up its
SysV semaphores new debug output added
surfD/compute
surfD/surf
bugfixes
Surf class temp_cons member: change type and initialize
Surf::quick_sort_planes: replace use of memcpy w/ memmove because of
known memory overlap.
Documentation Updates
doc/python/rdc-expt.pdf
added fig needed for tutorial
helplib/nih-py-pdbTool
update read() docs regarding negative model
Platform Specific
arch/equivList
fixed mac (Darwin) ppc lines
updated for 64-bit version of Intel/Darwin
arch/getDarwinCPU
added full path for system_profiler command (in case /usr/sbin is
not in path).
arch/Linux_2.2_i686/Makefile.defs
GNU C/C++:
reduced optimization from -O3 to -O2
arch/Darwin_10_x86_64/Makefile.defs
arch/Darwin_10_x86_64/fortlib/Makefile
arch/Darwin_10_x86_64/python/Makefile
arch/Darwin_10_x86_64/source/Makefile
source/darwin64time.f
source/osx_x86_64.f
untested contributions from J. Howarth
arch/Linux_2.4_x86_64/Makefile.defs
Intel V11 compilers: add the -ipo flag - improves C++ performance,
makes linking take longer.
arch/Linux_2.2_i686/Makefile.defs
now default to gfortran if LOCAL_F77 is not specified in Makefile.loc
Changes from 2.25 to 2.26
Helper Scripts
bin/aveStruct
script to compute average (unregularized) structure
moved and updated from previous location eginput/gb1_rdc/aveStruct.py
bin/calcSAXS
- widen numeric output fields for increased precision
- added -exptPoints cmdline option verbose output changed
- added command-line options to fully control fitting parameter range
bin/ens2pdb
generates pdb entry from ensemble of structures
(and does SEGID -> ChainID conversion)
bin/xplor
-change to allow middle entries in equivList to be recognized
-added -rsh cmdline option.
-no longer append .0 to outFile if numProcs=1
bin/pbsxplor
- added support to propagate the -rsh option or the value of XPLOR_RSH
on the submitting machine to the batch job.
- fix: output of qsub is to be printed, not returned
- added the -N cmdline arg to set pbs name
- added -nomail option
bin/targetRMSD
changed selection of atoms which are moved in the fit to all known
Python Interface
fixed missing exception handling: this means more errors are catchable.
python/cminpack
added cminpack + python interface for nonlinear least squares
python/cdsList_template.i
-added append method
-added removeAll method
nmrPot/cstMagPot.cc
Fixed verbose output of cstMagPot.CSTMagPot.addrestraints()
python/diffPotTools.py
added call to protocol.updatePseudoAtoms after adding clock atoms
python/ivm.py
breakBonds: now can optionally take two arguments (to specify two atoms)
nmrPot/nbTargetPot.cc
added nbTargetPot - can target various functions of atom-atom distance
nmrPot/noePot.cc
addRestraints: properly clean up partially-built restraints
(avoid memory leak)
python/potProxy.py
Python proxy class used in fixing python potential term reference
counting, avoiding reference cycles:
->potential terms can now be freed after they're created.
Potential terms are wrapped in a PotProxy which decrements the
rc_ptr refcnt when __del__ is called.
python/prePotTools.py
create_PREPot: fixups for fixTau=False
registerTerm:
fix to avoid reference cycle
now unset thisown for each term to avoid shutdown errors
nmrPot/prePot
-updates to support fast/slow ensInterconvert
-showViolations output improvements
python/protocol.py
-matchInexactAtomEntry:
*updates to better read cyana-generated iupac files:
-will now match name H to HT1.
-for rule swapping leading digit with trailing:
now the entire non-digit portions of the names must match.
*added more code for nucleic customRename=True (HN)
*now handle malformed coordinate fields
-initDihedrals:
fixes to work properly with reloading.
-initCoords: changed message printed if unreadEntries to add warning
-initCoords: return value now also has an entry for PDB remarks
-writePDB: now takes remarks argument
-cartesianTopology: added updatePseudoAtoms call
nmrPot/relaxRatioPot.cc
resetTesselationFlags: added resize of omega2 to avoid array overrun
python/restraintStats.py
-in concert w/ that in XplorPotTools:
treat VDW restraints in standard way
-getViolations: added method to signal that restraints is unsupported
python/psfGen.py
seqToPSF: for proteins, now support aria peptide linkages
(more link statements) for aria topology files.
python/regularize.py
-covalentMinimize, fixupCovalentGeom,
-fixupCovalentGeomIVM, addUnknownAtoms:
now reset the constraints interaction settings before return
-addUnknownAtoms_new: fixed selection of which unknown atoms to add.
nmrPot/sardcPot
python/sardcPotTools.py
added SARDCPot contributed by Jie-rong Huang and S. Grzesiek
python/selectTools.py
added IVM_breakIsopeptides
python/simulationTools.py
minimizeRefine: added translateRegions argument
python/simulationTools.py
-StructureLoop.writeStructure: deal gracefully with failures of
pwd.getpwuid (seen on scyld systems).
-StructureLoop.filename: fixed old string exception
-saRefine: added numSteps, htFinalTime, htNumSteps arguments,
added high-temp dynamics phase.
-testGradient: made exception type more explicit
-fixed exception type encountered if pwd.getpwuid fails
python/sansPotTools.py
python/solnXRayPotTools.py
added genFormFactors functions- called by the create_ functions, and
also called externally to regenerate form factors w/ new values of q.
python/solnScatPotTools.py
-solnScatPotTools:
added readData func- used for sans and saxs data
-fitParams:
*initialize bg s.t. this function can be called more than once
*fitParams: now rhobNum, r0Num and V0Num treat values <1 as 1.
nmrPot/solnScatPot
-added setExpt accessor
-modified:
calcI_N- to include boundary contribution
setQValues: to allow the number of q values to change
-no longer a C++ template
python/torsionTools.py
setTorsions: added optional ivm and verbose arguments.
python/varTensorTools.py
added varTensorTools.registerExptToVarTensor for expts handling
python/waterRefineTools.py
tools used in explicit solvent refinement.
python/xplorInit.py
changed socketComm startup timeout to depend on numProcs
python/xplorPotTools.py
-now add restraints method for class, instead of per instance
-> this to prevent a reference cycle. also added VDW ``restraint list''
-violations now returns PY_Restraints
XPLOR Interface
source/fxparse.f
source/fxrefin.f
added default value, input checking of TURNS fiber parameter.
source/hbdb.f
fixes from Alex (via Justin Lorieau) to properly recognize
N-terminal protons.
source/linuxtime.f
source/x86_64time.f
frehp: rearrange s.t. verbose mesg prints before abort
source/genic.f
fixed ancient bug in genic.f wherein subroutine patch didn't check for out
of bounds natom count. This bug only struck with structures having
residues numbers of special size. A test case has been added for this.
source/sup2.fcm
source/supccr.fcm
patch to reorder COMMON elements - contributed by Jack Howarth
Platform Specific:
arch/Darwin_8/Makefile.defs
arch/Darwin_8_x86/Makefile.defs
arch/getDarwinCPU
-Darwin findSharedLibs mods s.t. Frameworks are also searched
-merged contribution from Pascal Mercier to support 64-bit Darwin.
involves renaming PPC platform to Darwin_8_ppc.
Examples
eginput/gb1_rdc/anneal.py
-add HBDB term
eginput/gb1_rdc/wrefine.py
new water refinement example
eginput/pasd/mth1743
added the mth1743 pasd example
eginput/pre/newRefine.py
now write out a .bumps file which lists close contacts obeying
constr inter
eginput/PSF_generation/addAtoms2.py
fixed selection syntax error
eginput/PSF_generation/isopeptide.py
added isopeptide example
eginput/PSF_generation/PROT2.seq
added example of N-terminal acylation
eginput/sardc/
New example of use of SARDCPot contributed by Jie-rong Huang and
S. Grzesiek
Common Code
common/atom.cc
increased value of INVALID_COORD to be consistent with XPLOR value-
important for atomSelLang atom selection.
common/atomSel.cc
containsIndex: fixed bug in which index range was not checked
common/atomSelLang.hh
added getNamedSelection (and it checks that the selection is up-to-date)
the pseudo keyword now uses this new function.
differences from the XPLOR atom selection language:
removed two bugs:
1) previously HB# would match HB (in addition to HB1, HB2, etc)
2) previously, an extra trailing ) produced no error
common/ensembleSimulation.cc
finalizer: now shutdown ensemble threads
common/pdbTool.cc
-read():
*added check for short lines
*now use special rule for (molmol created?) files which lack segid
columns
*remarks start in column 7 (previously included space in col 6)
-writePDBAtom: now write a TER record between segs if writeChainID set
common/potList.cc
PotList::add now print warning mesg if checks that ensemble sizes
do not match
common/simulation.cc
deleteSimulation: changed simulationList delete from direct
ref count decr to assignment.
This fixes a nasty bad pointer dereference.
common/simulationWorld.cc
init: reworked putenv use s.t. arg is char* (not const char*)
common/xplorSimulation.cc
select: changed from XPLOR to AtomSelLang selection language
common/xplorWrap.cc
deleteAtoms: now do syncTo at start
common/xplorWrapProc.cc
before forking: call XplorSimultion::syncTo to get XPLOR atom data in
state consistent with that in Simulation.
Low-Level Libraries
CDSlib/cdsComplex
added abs2 method; test of norm/abs2
CDSlib/cdsList.cc
-fixed memory leak in resize: for case when cnt>1
-added uniq helper function
CDSlib/cdsVector.hh
removed unneeded/unused destructor
CDSlib/matrixTools.cc
callEigen: changed call signature to pass by ref instead of val
CDSlib/rc_ptr.hh
-fixed destructor memory leak: the CountHolder (counter) was
never deleted.
-destructor: now, if refcnt gets to zero, delete the ref cnt holder
(previously, it was never deleted)
-added forceDelete method for manually deleting reference counter object
-changed ~CountHolder s.t. it no longer explicitly deletes the
pointed-to object - this left to operator-- (this s.t.
forceDelete can be used).
-added test of forceDelete use.
-added release method
CDSlib/spline.cc
Spline2D: constructor from vector: fixed to read row-major
fortlib/blas
fortlib/lapack
resynced lapack and blas from netlib source
TCL Interface
tcl/aeneas_tools.tcl
protect against divide-by-zero range errors
Topology/Parameters
toppar/waterRef/
inputs for explicit solvent refinement.
toppar/protein-1.0.top
toppar/protein-1.0.par
added isopeptide linkage patch - contributed by Olivier Serve
Changes from 2.24 to 2.25
Platform Specific Changes:
now works with Mac OS X 10.6 for Intel platforms
Mac OS X build now uses frameworks for Python and tcl.
Helper Scripts:
bin/calcSAXS
-change behavior for calcSAXS: no longer delete missing protons
-added -sans cmdline option: for calculation/fitting of SANS curves
-added -rhobStart, -rhobEnd cmdline options
-now add appropriately scaled bg back to calcd (and expt) on output
doc updates.
-added -altDeuteratedSel cmdline option
-can now fit or specify value of isotropic background contribution
using the new command-line options -bg, -bgNum, -bgStart, -bgEnd.
-now place info in header of output
-added -fractionDeuterated cmd-line argument
-added -maxQ command-line option + functionality
-added warning if very few protons found
-bug fix! - previously always reset rhob to zero after the fit
-now print vacuum radius of gyration
bin/calcTensor
-bugfix for case (not ensembleMode) and multiple pdbs:
only a single pdb was considered in the fit
-fix for multiple rdc tables: treated potList as list- could
generate errors.
bin/findClusters
added -noFit, -fitSelection cmdline parameters
bin/getBest
-fixed order of presentation of usage string
-can now specify multiple .stats files on the command line
bin/pbsxplor
-limit length of -N (job name) argument to 15 characters
-look for the resources_available.cores resource (if available) to
determine ncpus (thanks to Steve Fellini)
bin/targetRMSD
bug fix: fixed fitSel so it works added calculation of rigid body
rotation, translation amounts. Also chaned default setting for fitSel2.
bin/torsionReport
now actually generate psf and read coordinates if -psf option is omitted.
bin/xplor
-command-line args -csh-env, -sh-env: no longer export PYTHONHOME
-added -cinsh, CING environment support
-numabind: now use multiple numa nodes, if a single node hasn't
enough cores
Example Scripts
eginput/dna_refi/refine_full.inp
eginput/dna_refi/refine_full.py
eginput/dna_refi/refine_full_lj_elec.inp
fix nucleic parameter file used to version 1.0
eginput/dna_refi/ensemble.py
changed name of average structure file
eginput/PSF_generation/genCircPep.py
added simpler example of generation of cyclic peptide. The
previous example is now named genModCircPep.py
eginput/PSF_generation/addAtoms2.py
now use faster addUnknownAtoms_new
eginput/diffTens:
examples using the diffusion tensor as a structural restraint.
eginput/gb1_rdc/aveStruct.py
now use loadPDB/initCoords/writePDB instead of pdbToPSF/PDBTool
eginput/gb1_rdc/analyze_ProbDistPot.py
- allow all dof for alignment tensors (for ave. struct calc)
- no longer treat StructureLoop.inconsistentAveStruct as an error
eginput/gb1_rdc/pairRMSD.py
change: now read all coordinates into memory once
eginput/pasd/cvn/makeContactMap.py
helper to generate residue contact maps like those in
J. Biomol. NMR 41, 221-239 (2008).
Fortran Interface:
source/linuxtime.f
source/util.f
-hacks/workarounds for treating /dev/null (corresponding to filename
off or none) when running -smp on binaries compiled w/
gcc/gfortran-4.4.3:
VINQRE: always treat file w/ unit 5 and name /dev/null as unopened.
ASSFIL: retry VOPEN w/ different unit # if there is a failure opening
/dev/null
source/enbond.f
source/parmio.f
-expanded use of vdwoff to all VDW potential types
-reversed (internal) vdwoff meaning
Python Interface
enabled SWIG-generated keyword support.
common/xplorWrapProc.cc
common/xplorSimulation.cc
XplorWrapProc: change the behavior of simulation.Simulation(clone=True)
If the current XplorSimulation is not the default Simulation, it is
now properly cloned if that flag is set (previously the default
XplorSimulation was always cloned). This required:
-arranging for the correct slave to fork/wait at creation/de
-saving a ref the XplorWrapProc associated with the cloned XplorSimulation
-keeping track of whether the slave is a direct child.
nmrPot/jCoupPot.cc
calcContrib: now throw exception if atoms are too close
nmrPot/solnScatPot.cc
-calcBoundaryPoints: fix computation of triangle center points
-added bg accessor, support for isotropic background correction
-changed boundary layer calc to simply place a sphere at the
center of each boundary voxel- no more random generation of points.
-boundary volume calculation improvements:
now bounded by outter surface generated by increasing atom
radius by 3 angstroms and inner surface compsed of triangles
from the outter surface dropped along the normals.
python/atomAction.py
PrintPos: change to print SEGID instead of index
python/cdsMatrix.i
CDSlib/matrixTools.cc
added fix, test for determinant of size 1,1 matrices
python/checkWrap.py
fixed to find memory leaks in wrapped constructors
python/csaPotTools.py
added GLY-specific NCA-style auto-parameter assignment
python/diffPotTools.py
python/planeDistTools.py
python/prePotTools.py
create_*Pot: added call to updatePseudoAtoms()
python/distSymmTools.py
genDimerRestraints:
added resids2 arg so that different residue ranges can be specified,
and the segids argument can be set to None to disable segid
specification.
python/ensembleSimulation
added collect method to EnsembleSimulation, and added coverage test
python/ensembleSharedObj.py
added collect helper function
python/pasd.py
tcl/aeneas_tools.tcl
tcl/sa_protocols.tcl
in anticipation of more some transition to Python, added pasd.py,
currently holding default values of some parameters.
updated sa_protocols, aeneas_tools to use these parameters.
python/pdfEstimation.py
tools for probability density function generation.
python/posDiffPotTools.py
loadPDB now called with deleteUnknownAtoms=True; docs updated
python/protocol.py
-no longer refer to deprecated Exception.message
-syncArrayBeforeDelete:
(used to synchronize bfactor, occupancy fields if atoms are deleted)
now returns a cdsList instead of a Python list.
-matchInexactAtom: change matching rule from 1st char to all but last
-added writePDB helper function. PDB contents are returned.
-initCoords, loadPDB:
*added optional loadOccupanciesBfactors argument to load these fields
in to an XplorSimulation.
*added processBiomt argument. If set to True, BIOMT PDB will be
read, and PSF+PDB entries will be added.
-loadPDB: added optional processSSBonds argument
python/psfGen.py
-changed default value of failIfInsertion
-psfGen.pdbToSeq() now raises an InsertionExceptionexception when
a nonblank iCode entry is found. This can be disabled if
psfGen.failIfInsertion is set to False.
-pdbToPSF, pdbToSeq:
*added support for reading, understanding BIOMT PDB records
*added optional processSSBonds argument
-addDisulfideBond: fix to deal more gracefully with missing
entries specified by an SSBOND record.
python/regularize.py
-fixupCovalentGeom optimization:
now only loop over those residues included in sel arg.
-no longer refer to deprecated Exception.message
-addUnknownAtoms_fast:
now always catch CovalentViolation exceptions from fixupCovalentGeom
-added addUnknownAtoms_new:
uses algorithm to iteratively add atoms using addUnknownAtoms_fast.
-fixupCovalentGeom: print more info for verbose>4
python/sansPotTools.py
-added SANS support for Mg
-added fractionDeuterated argument - describes the deuteration of
non-exchangable protons.
-create_SANSPot:
*added arg to deal w/ alternatively deuterated selections
*added maxQ, cmptType arguments
python/simulationTools.py
StructureLoop:
-added averageFixed/RigidRegions arguments passed down to
minimizeRefine.
-writeStructure: now add username/time/date to pdb REMARKs
-genAveStats: now print out sorted loops
-calcAverageStruct:
-now recalc alignment tensors after computation of ave. struct
-fix up tensor pseudoatoms for case where regularization is not done,
-minimizeRefine:
-clean up minc: no need to have two ivm objects
-switch to use cartesianTopology helper
-rigidRegions, fixedRegions again obeyed.
-removed varTensor stuff.
->initial, final tensor values will not be set by calcTensor.
- this now needs to explicitly done after averaging coords
->tensor freedom setting should be obeyed.
python/solnScatPot
calcIfromF: barriers added to prevent races for Ne>1, num_threads>1
python/solnScatPotTools.py
-fitParams:
will now optionally fit isotropic background scattering
optimized parameter search loop.
-normalize(): fixed for normalizeIndex=-2,-1
python/solnXRayPotTools.py
create_solXRayPot: added maxQ argument
python/torsionPMFTools.py
tools for generation of database torsion-angle potential surfaces.
python/varTensorTools.py
-added function getRegisteredTerms()
-now use this in massSetup() and topologySetup()
python/xplorPotTools.py
improved nonbonded violations printout
TCL Interface
tcl/import_xeasy.tcl
added process2dXeasyPeakTable
tcl/aeneas_tools.tcl
added standard2dInitMatch
Databases
databases/torsions_raw
replaced all remaining instances of rama w/ xrama so that raw
torsions work correctly.
Low Level
CDSlib/array3D.hh
added Array3D template with reference counting and resizing;
and unit tests
CDSlib/cdsMatrix
added operator+=(T)/operator-=(T)
CDSlib/cdsVector
added operator+/i(T)
added operator+=(T)/operator-=(T)
CDSlib/fixedMatrix
added rawCopy method
CDSlib/spline.cc
Spline2D constructor from zVec:
fixed so that the zVec data is read correctly.
common/atomSelAction
added minDistance function
common/derivList
operator[]: add check that derivList for sim was allocated
common/atomSelLang
added the AROUnd selection keyword
python/cdsVector
-added __iadd__ and __isub__
-added __add__(T) and __sub__(T)
Build/Test Process
arch/Darwin_8_x86/Makefile.defs
findSharedLibs: updated to deal w/ otool results lacking leading /
eginput/gb1_rdc/testTargetRMSD
improved coverage of targetRMSD
arch/Linux_2.4_x86_64/Makefile.defs
intel v9 compiler: added intlc lib for forwards compatbility
arch/Darwin_8/Makefile.defs
arch/Darwin_8_x86/Makefile.defs
arch/Linux_2.4_x86_64/Makefile.defs
arch/Linux_2.2_i686/Makefile.defs
fixed XLIBPATH
arch/Linux_2.4_x86_64/vmd-xplor/Makefile
no longer try to statically linnk libstdc++
bin/findSwig
validated swig version 1.3.40
python/Makefile
added link to libpy for all wrapper .so objs- to provide direct
symbol linkage.
Changes from 2.23 to 2.24
Example Scripts:
eginput/gb1_rdc/analyze_ProbDistPot.py
eginput/gb1_rdc/analyze_anneal.py
eginput/gb1_rdc/analyze_refine.py
eginput/gb1_rdc/anneal.py
eginput/gb1_rdc/dihed_g_all.tbl
eginput/gb1_rdc/refine.py
modified TYR/PHE chi2 torsion angle restraints to be used with
useDefaults set in protocol.initDihedral
eginput/gb1_rdc/anneal2.py
added alternate faster version of anneal.py
eginput/protG/anneal.inp
updated XPLOR script s.t. .pdb files are always written
Help System:
online tutorial updates
rdcPot docs
clarified useSign meaning
New FAQ entry
entry regarding powell irregular exit messages
added google search on some web help index pages
web-dist: now copy INSTALL instructions to WEBDIR
Helper Programs/Scripts
bin/xplor.in
-now use numactl to get better memory affinity, particularly
important for Ensemble calculations.
-will now better handle spaces and single quotes in arguments
-removed Darwin env vars which, while once necessary, now mess things up
-now allow (option, argument) pairs to be separated by =, for
consistency with Python cmdline args
bin/pbsxplor.in
-add warning message if node isn't found in psbnodes output
-added error message and quit if input file can't be found.
-fixes for job shell, and not hardcoding rsh use
bin/pyXplor.in
-reworked special character protection again
bin/torsionReport.in
-now use circular statistics for more reliable computation of
average rotomer angle values.
bin/idleXplor
idle for Xplor-NIH- available only w/ srcdist. This is a GUI for
Xplor-NIH Python development.
bin/getBest
added -index cmd-line option
bin/calcSAXS.in
-now support resampling experimental data using -numQ argument
-add -rhob, -volumeScale command-line options- these override the fit
parameters.
-updates for hetereo Ensembles
-now can set ensemble weights
bin/targetRMSD.in
-added -write flag for writing out fit structures
-fix so that fitSel is actually used.
bin/calcETensor.in
-fix for -weights option when space is used for separator
Python Interface
python/protocol.py
loadPDB:
added correctSymmetricSidechains argument - passed to initCoords
initDihedrals:
changed TYR/PHE default restraints to be consistent with
selectTools.correctSymmetricSidechains
loadPDB:
added maxUnreadEntries arg, passed to initCoords.
initDihedrals:
-added reload argument
-now print out # restraints read
-changed counting to use (perhaps faster) numRestraints() instead of
len(restraints())
RDCPot:
added support for ASSIgn ... OR assignment table syntax for precise
ambiguous assignment.
RDCRestraint::bondVectors method has been removed.
added test, and updated docs
showViolations: fixed atoms printed for when both selections have wildcards
made useSign a per-restraint variable - motivated by ssNMR
RDCPotTools:
comment-out unused calcTensorSize function
removed CC prefactor definition
getRDCType:
added methyl type (only for THY for now); updated examples
python/csaPotTools.py
-added alternate NH CSA parameters contributed by D.A. Marvin and
S.K. Straus. Doesn't use the HN atom for def. of tensor orientation.
-added note on sigma units
-doc/python/csa-methods-marvin.pdf
python/solnScatPotTools.py
python/sansPotTools.py
python/solnXRayPotTools.py
-added analyze_chi2 function - added chi^2 analysis to .stats file
-lifted the restriction that q values must start at q=0 for using
the efficient uniform-q algorithm. This slows down gradient
calculations a little bit.
-getF accessor: now calls modified.update()
-normalize: fixup for problem uncovered by use of chi2 function in
analyze_chi2- for case normalizeIndex>=0.
-switched to linear interpolation for sampling saxs/sans curves, errors
-fix for (non-1) vol/rad scale setting.
-change parameter range argument processing to make easier to specify
default value
-fixes for ensemble calculations:
calcIfromF:
fixed to work properly with ensembles
-changed return type of SolnScatPot::qValues(), others to const&.
This results in a huge speedup, because it's called in inner loops in
calcI_uniform, and calcDerivs_uniform.
NOEPot
showViolations: fixed distance report output. Now print distance range.
python/selectTools.py
-convertToAtom:
change behavior for Atom arguments when there is a Simulation mismatch.
-convertToAtomSel:
allow input sel's simulation val to be used
-rigidProteinSelections:
fixed longstanding selection error for GLU entry
-updated helper functions to recognize swig 1.3.36 wrapped objects
python/simulationTools.py
-RampedParameter.runAction:
changed representation of substituted VALUE literal to avoid underflows
-added a new function named saRefine() which does performs a
simplified simualed annealing protocol.
-minimizeRefine/ensembleAvePos:
don't try to compute ens. ave. struct for heterogenous
EnsembleSimulations.
-minimizeRefine:
added initial cartesian minimization to fix the bond and angle
terms before the main minimization with minPots.
-testGradient:
cap absolute error threshold at the value tolerance
python/torsionTools.py
-new tools for analyzing/manipulating torsion angles
rotomericStats.py
-new tools for rotomeric state analysis w/ circular statistics
python/cdsList_template.i
__getsplice__: change return type to simple CDSList (from CDSList_out)
This so that resulting slice template is instantiated.
python/cdsVector_template.i
-added support for element-by-element vector division
python/ivm.py
removed unused method
python/trace.py
-added hack to search XPLORNIH distribution if filename not found and
it's a relative path
python/pyXplor.cc
-pythonStartup:
now properly call Py_SetProgramName()
-python_interp:
now handle the Python -c cmdline argument
common/pot.hh
python/pot.i
python/potList.i
python/publicIVM.i
python/pyConvert.cc
reference counting cleanups for Pot (and PotList) objects
common/pot.hh
clear instanceData_ member on initialization s.t. we can properly
tell if it's never been initialized by a Python object
python/pot.i
added decrRefCount method
destructor: no longer delete self. This may cause new reference cycles
python/potList.i
remapped remove method so that associated Pot's ref count is decremented
added an unref typemap to decrement all Pot's ref counts before deleting
a PotList
python/publicIVM.i
added an unref typemap to decrement the PotList's ref count before
deleting the PublicIVM obj. This unref typemap is necessary for all
objects which contain an PotList member.
python/pyConvert.cc
fromPy(PotList): increment PotList's reference count if the arg is a
PotList. If it's a plain Python sequence, then create a Python
PotList first - so that all pots have their reference counts
incremented- and then decremented when the PotList is destroyed.
common/pdbTool.cc
common/pdbTool.hh
python/atom.i
python/pdbTool.i
-Added a new method called writeAltLoc() that can write the altLoc
field.
python/diffPotTools.py
python/protocol.py
-some small fixups for relaxation data read in subroutine in
DiffPotTools.py and for setting pseudo atoms topology in
protocol.py
python/protocol.py
python/psfGen.py
-changes so that Ensembles can be loaded w/ different numbers of
atoms, and different numbers of sequences. i.e. so that loadPDB
works for this circumstance.
-Converted xplor.command uses to xplor.fastCommand to avoid sync/syncFrom
added new sync arg to seqToPSF, mods to pdbToPSF to sync after
complete psf is generated.
-added topology/parameter support for metal ion atoms
nmrPot/orderPot
-initialize Restraint a/bSel using esim instead of its subSim
python/orderPotTools.py
-updated orderPotTools.analyze to print ave, min, max order parameters
nmrPot/relaxRatioPot.cc
nmrPot/relaxRatioPot.hh
python/relaxRatioPotTools.py
-initial support for refining directly against NMR relaxation
data.
nmrPot/distSymmPot
-changed constructor to take two Simulation* args.
-addRestraint: carefully set current EnsembleSimulation to obtain
the correct shared memory allocation behavior for
EnsembleMemberSimulations.
python/distSymmTools.py
-create_DistSymmPot: added optional sim, sim2 arguments
python/varTensorTools.py
-mods so that a VarTensor can exist in only a single
EnsembleMemberSimulation
-copyTensor:
fix so that it actually works.
-addAxisAtoms:
add sim argument
update so that ANI residue number can be 4 digits
-configIVM_fixRhToOther:
bugfix.
-cleanups so that hetero EnsembleSimulations work properly.
-create_VarTensor: added simulation arg to updatePseudoAtoms call
nmrPot/varTensor
-fixes for EnsembleSimulation tensor parameter atoms :
introduced local-copies of orientation atoms used for case
ensembleAxis()==False, ensembleDa/Rh()==True
-setEnsembleDa/Rh():
fix so that Da, Rh have same values when going from False --> True
-updates to work with hetero EnsembleSimulations
-set default value for the freedom member
python/atom.i
-Python Atom object pos/vel accessors now return new Vec3 objects
instead of references. This should have minimal performance impact.
python/socketComm.py
added extra communication at client startup to try to shake out Darwin bug
python/xplorSimulation.i
fromSimulation: now supports EnsembleMemberSimulations
python/pyConvert.cc
fromPython(AtomSel): now allow argument to be an Atom obj
common/atomSelLang
common/atomSelLangLex.lex
common/atomSelLangYacc.y
common/testClass.cc
supports subset of XPLOR atom selection language
now used by EnsembleSimulations, but not by XplorSimulations
python/atomAction.py
randomizeDomainPos: now use convertToAtomSel
common/potList.cc
-fixed up energyReport values for EnsembleSimulation::AVETYPE_SUM
-calcEnergyAndDerivs: fixup for ensemble aveType=SUM
common/derivList
-derivList: now have special treatment for
EnsembleSimulations. See help file.
-expand Ensemble/MemberSimulation sharing to include the subSim
nmrPot/posSymmPot
added fix for case in which rotation matrix is singular
common/ensembleSimulation
common/simulation
common/xplorSimulation
-added read access to chemType array
-added residueNum, residueName, segmentName atomNameArr array accessors
-now allow heterogeneous ensembles of collections of species
-updates for hetero EnsembleSimulations
Simulation: changed def of char4 to use FixedVector
EnsembleSimulation: now share all atom data (name, chemType, etc)
EnsembleMemberSimulation: no longer use subSim's atomString
-only potential term which may not handle hetero
EnsembleSimulations: NOEPot
python/atomSelLang.i
python/protocol.py
-added atomSelLang wrapper- for named selection registration.
-updated protocol.updatePseudoAtoms to use this new interface, and
to treat EnsembleSimulations specially: update pseudo atom
selection for all member simulations.
common/ensembleSimulation.hh
-EnsembleSimulation: added makeCurrent static method-
-EnsembleMemberSimulation: added appropriate type() return value
-now use subsim's select() if size==1
common/ensemblePot
-EnsemblePot:
changed name of set-accessor setWeights to setEnsWeights
nmrPot/atomDensity
-Fixed bugs in atomProb based density to atomDensity based grid
conversion
-WriteEDM fixed with the data output. Data would not get divided
by dmax if data is 0. This avoids NaN in edm output.
nmrPot/atomProb
WriteEDM()-> if the data value is zero, data value is not
divided by dmax. This avoids NaN in edm output
nmrPot/probDistPot
python/probDistPotTools.py
python/simulationTools.py
-Added new energy function based on cross correlation
-Redefined rms() value.
-Scaling depends on number of atoms in selection.
-probDistPotTools.py forms the frond end for creating probDistPot class
-"prob" object is created using probDistPotTools.py now in
simulationTools.py
TCL Interface
tcl/startxplornih.tcl
-now clear errorInfo so that previous (ignorable) errors don't cause
spurious printouts in the tcl tests.
XPLOR Fortran interface
source/cstran.f
fixes in treatment of CICP abd WCICP arrays. This fixes a major bug
introduced on 2009-09-04, where CDIH energy evaluation would be
nondeterminant.
source/cstran.f
finally rationalized use of CICP/WCICP arrays- now allocated by NATOM,
their use w/ MCMPHI has been removed.
source/hbdb.f
setpottype: fix to handle case nij=-2 (i.e. so it doesn't crash)
hbdbpatt: moved large 2D arrays from stack to heap to avoid segfaults
when running 32 bit code on amd64 (on scalar)
databases/torsions_raw/setup_new_shortrange.tbl
-updated to call xrama instead of rama
Topology and Parameters
Low Level C++ routines
CDSlib/cdsRegex.hh
findIndex(): added default offset value
CDSlib/fixedVector.hh
added pointer() accessors
common/semaphore.cc
wait: now protect sem_wait from EINTR. This so that e.g. strace
doesn't crash the program.
common/xplorWrapProc.cc
remove atomRadius array manipulations
bin/findSwig
added version 1.3.36, changed various files so it works.
common/xplorSimulation.cc
syncTo: moved assertion into if clauses where it's really required
common/simulation.cc
common/simulation.hh
python/simulation.i
Simulation: added syncAllSimulations helper static method
common/xplorWrap.cc
common/xplorWrapProc.cc
now use Simulation::syncAllSimulations where appropriate
common/ensembleSimulation.cc
enable line-buffering for stderr. Without this, output is lost when
the children are killed.
common/semaphore.cc
unified the Sys V and posix semaphore code in semaphore.cc. This
simplifies make dependecies and the compilation of nmrPot/test
common/xplorWrapProc.cc
generating random seed: now use rand num from SimulationWorld
Architecture Specific Notes
arch/Darwin_8_x86
updates for gfortran 4.4. Still some problems, so distributed
binary still compiled w/ gcc-4.2
arch/equivList
update such that AMD64 platforms use the ia32 build if running a 2.4
kernel (this because 2.4 doesn't properly support posix semaphores)
arch/Linux_2.6_x86_64 (amd64)
switch to posix semaphores - simpler and more robust
Changes from 2.22 to 2.23
Example Scripts:
new eginput/pre example of using PRE distance restraints with the
improved/simpler PRE interface.
new eginput/diffTens example set including scripts for relaxation
data processing, docking and structure refinement using rotational
diffusion tensor-based restraints.
eginput/gb1_rdc/refine.py
now perform SVD during simulated annealing
eginput/gb1_rdc/analyze_ProbDistPot.py
New analysis script which includes ProbDistPot to restrain the
average structure to the calcualted input structure ensemble.
Analyze the structural file produced by running anneal.py. Check for the
violations in energy, rmsd and stereochemical violations between average
structure calculated with and without using probDistPot.
eginput/PSF_generation/genLigand.py
helper script to generate top/par info from a pdb
file. Currently, CONECT records are ignored, so the molecule
should be grouped as a rigid body.
eginput/dna_refi/validate.py
added validation script
eginput/dna_refi/ensemble.py
now support -quick flag
noeNH force constant reduced from 200 to 1
xray scattering terms now have radiusType specified
eginput/PSF_generation/testHBDB.py
added test of Python interface helpers for HBDB
eginput/PSF_generation/pdbTest
updated to reflect change in pdb entry 2ycc (mutation from lys to M3L
eginput/runAll
now can use the runDirPrefix env variable to specify alternate
location for the runDir
now set the return status appropriately
eginput/PSF_generation/genCircPep.py
now initialize random seed (by time) and decrease MD stepsize
eginput/PSF_generation/gen-edta-dna.py
eginput/PSF_generation/gen-edta-k28c.py
added generation examples for CED and TED residues
Help System:
updated pyXplor -py -pydoc -k so that keyword search works better.
Atom Selection Language
added the PSEUdo token- used to select pseudoatoms.
Python Interface
python/diffPotTools.py
nmrPot/diffPot
added support for relaxation data processing.
added support for optimization of diffusion tensor
temperature.
python/prePotTools.py
create_PREPot:
added clockResid, clockSegid arguments
addClockAtoms:
rearranged argument order
rework so that preexisting clock atoms can be used.
renamed T?X/Y atoms to T?A/B
topologySetup: will now fix or free appropriate atoms
python/atomAction.py
centerOfMass: return (0,0,0) if selection empty, mass=0 or unknown atoms
XPLOR Fortran interface
source/rama_gaussians.f
ALLOCRAMAS: add shortcut return if oldsize==newsize
source/hbdb.f
fixup for if-clause which assumed logical short circuit (not-Fortran)
source/nbonds.f
fix possible memory leaks where heap pointer was assumed to be >0
source/x86_64time.f
increased heap debugging messages
Topology and Parameters
toppar/nucleic-1.1.par
toppar/protein-1.0.par
be more careful about restoring previous echo/message state
toppar/edta.par
added include protection ; now include ion.par for MN params
toppar/ion.par
toppar/ion.top
added include protection (to prevent loading more than once)
toppar/nucleic-1.1.par
toppar/protein-1.0.par
moved edta.par include protection into that file
toppar/axes-1.0.par
removed dependency on protein.par:
kbond is now hardcoded to a value of 1000
toppar/edta.par
toppar/nucleic-1.1.par
toppar/nucleic-1.1.top
toppar/protein-1.0.par
added TED nucleic residue - modified from Junji Iwahara's files.
Parameters for the portion of the conjugated EDTA tag shared with CED
is now in edta.par- it is only loaded once. protocol.py was updated
such that erasing these parameters is possible.
toppar/protein-1.0.par
toppar/protein-1.0.top
CYSP: added missing methyls impropers
added CYSP and CED spin-labelled residues to the topar files
Helper Programs/Scripts
bin/targetRMSD.in
fix for case selection != selection2 and diffSeq==True
fix so that running with -diffSeq works again
changed doFit variable name to be less confusing
bin/pbsxplor.in
try to get pbs output to a single file in the current directory
bin/pyXplor
bin/xplor
allow the # character in command-line arguments
fixup for SMP process startup
for localhost-spawned jobs, make separate TMPDIR for each process
update TMPDIR to be unique for localhost MACHINES
TMPDIR setting: now use /dev/shm if it's writable. Can be overridden
by XPLOR_TMPDIR.
bin/xplor.in
now set TMPDIR to a subdirectory which is created (and destroyed at
the end of this script). For this to work, the execs were removed (so
that removal would happen after execution of bin.$ARCH/xplor.
This change will help reduce spew in /var/tmp and more importantly,
will avoid mmapAlloc crashes due to the presence of old mmaped files
left when a jobs was aborted.
bin/testDist.in
set ECHO to /bin/echo on Darwin (thanks to Ben Eisenbraun)
bin/findXcookie
fixed to deal with case that xauth returns more than one match
bin/compareTensors.in
new helper used to compare two alignment tensors
bin/calcSAXS.in
changed default normalizationIndex to -3
increased the precision of the output
added -fit option now calls solnScatPotTools.fitParams, and includes the
solvent boundary layer.
bin/testDist.in
added tests in eginput
add infrastructure for running quick tests in eginput
build setup:
modify Makefiles s.t. lapack/blas are autobuilt if LAPACK/BLAS_LIB isn't
set.
Python Interface
python/varTensorTools.py
calcTensor: remove rdcs, csas from calc if their scale val is 0
VarTensor_analyze:
fix logic for syncAxisAtoms
added helper function saupeToVarTensor
calcTensor, calcTensor_ensemble:
now make alignment tensor orientation right-handed
added function unRegisterTerm; added info to ivm topo config function
nmrPot/varTensor.cc
Rh: protect against returning (slightly) negative values
energyMaybeDerivs1:
enabled derivative calcs for the case ensembleAxis==True
python/protocol.py
ion.par/top: added reset support in initParams/Topolgy
initCoords: now allow file or string to be specified
initCoords: use new bfactors, occupancies pdbTool accessors for speed
initCoords: now pass sim to correctSymmetricSidechains
matchInexactEntry: logic to read H2 and H3 (HT1 and HT2) atoms
loadPDB:
now return the InitCoordsResult from initCoords
initHBDB:
fix to work with multiple segments
cartesian/torsionTopology:
updated so that rdcPot, prePot and planeDist pseudo atoms get topology
autoconfigured
python/simulationTools.py
1. Added two new passing arguments to structureLoop(averageRestrainSel &
averageRestrain)
2. minimizeRefine:
added a straight gradient minimization before calling AnnealIVM()
added new code to reflect the changes made in atomDensity &
probDist class.
StructureLoop:
Added argument named averageRestrain in to control the inclusion
of probDistPot energy term in average structure calculation.
New member named "inconsistentAveStruct" which
is set to 1 if the average structure calculated have an
energy or violation greater than the calculated structures.
In addition, warning will be written on to the ave-structure
pdb file
common/atomSel.hh
AtomSel:
removed the non-const version of the indices() method
nmrPot/solnScatPot
fixed gradient for case useGlobs==TRUE and normalizeIndex>-2
added volumeScale, radiusType
added boundary-layer solvent contribution to SAXS calculation.
Also- now allow atom radii and excluded volumes used in excluded
solvent calculation to float independently
(as done in Svergun et al. J. Appl. Cryst. 28, 768 (1995).)
Some changes commented-out to allow all tests to pass.
optimization:
converted F (scattering amplitudes at all angle values) from vector of
vectors to matrix.
change to meaning of glob entries - now assume weight is normalized
energyMaybeDerivs2: various optimizations
python/sansPotTools.py
python/solnXRayPotTools.py
python/solnScatPotTools.py
svergun volume/radius params: correct to reverse-engineered values
create_SolnXRayPot: added rho0 argument
create_SansPot, create_SolnXRayPot:
added volumeScale argument
analyze: changed floating format of output saxs data
added fitParams helper function used to fit solvent parameters of the
scattering curve.
nmrPot/csaPot.cc
nmrPot/cstMagPot.cc
nmrPot/jCoupPot.cc
nmrPot/noePot.cc
nmrPot/orderPot.cc
nmrPot/planeDistPot.cc
nmrPot/posRMSDPot.cc
nmrPot/prePot.cc
nmrPot/psolPot.cc
nmrPot/rdcPot1.cc
added better checking for restraint table input errors
python/selectTools.py
correctSymmetricSidechains:
speed optimizations
performance improvement by restricting initial atom selection
common/pdbTool
added occupancies, bfactors accessors
nmrPot/atomProb
Added a new ScaleType in atomProb class called normalize.
added getGrid accessor
python/symmetry.py
testC2: now use mat3.rotationAmount
python/mat3
added functions:
det, rotationAmount
added method:
scale
rotVector: added code for special case (from intVar/dint-node.cc
python/cdsMatrix.i
SymMatrix: added scale method
python/cdsVector_template.i
added element-wise operator*
added numpy-style (element-wise) vector multiplication
added pow, removed duplicate __mul__
python/minimize.py
added a simplex optimization routine (from scipy) and test
python/potList
added the keys() method
nmrPot/atomDensity
python/atomDensityTools.py
-added variable to control the atomRadius of the generated
-Updated the atomDensity to incorporate grid rotation & translation
-map / added new code for picking Map rotation &
translation that gives energy less than the
given percent of the max energy.
nmrPot/probDistPot.cc
New energy term which restrains a structure to a target map
(computed from an ensemble, EM map, SAXS curve, etc)
nmrPot/atomDensity.cc
nmrPot/atomProb.cc
nmrPot/probDistPot.cc
Done optimization on the files to reduce the computational time.
nmrPot/atomDensity.cc
nmrPot/atomDensity.hh
nmrPot/probDistPot.cc
python/tests/probDistTest.py
Added rotation and translation to the grid class.
nmrPot/atomDensity.cc
nmrPot/atomDensity.hh
nmrPot/probDistPot.cc
nmrPot/probDistPot.hh
python/atomDensity.i
python/probDistPot.i
python/tests/probDistTest.py
atomDensity.cc & atomDensity.hh-> class which calculates the
reweighted atom densities.
probDistPot.hh & probDisPot.cc -> energy term based on reweighted
atom density.
probDistTest.py-> test files for the energy term mentioned above.
common/ensemblePot
common/ensembleSimulation
intVar/publicIVM
implemented sum aveType in EnsembleSimulation
signal_childDied:
only abort if one of the ensemble processes has exited.
EnsemblePot:
added a local set of ensemble weights. Updated all appropriate
pot terms to use the accessor to get the correct set of weights
common/xplorPot
common/xplorSimulation
added some nonfunctional stubs for XplorPot ganging
python/pot
all potential terms:
removed a built-in reference cycle which prevented Python and C++
Pot objects from being deleted.
python/avePot1
common/avePot.cc
violations: now do proper rounding in float->int conversion
avePot:
now save a copy of the averaged pot. term so that it doesn't get deleted.
python/xplorPotTools.py
fixed HBDB analysis
nmrPot/selNBPot.cc
NeighborBin::findXYZBin: make sure return result is in range.
python/atomSel.i
fixed __eq__ method
python/atom.i
added __eq__ method: can now compare Atom objects
python/posDiffPotTools.py
now crash if no atoms are selected
common/xplorWrap.cc
XplorWrap::select: now add linebreaks to lines longer than 125 char
common/xplorWrapProc.cc
better randomization of MMapAlloc uid
nmrPot/planeDistPot
showViolations: now print range rather than single target distance
python/psfGen.py
pdbToSeq: optimizations by reordering and use of elif
pdbToSeq: now recognize water
residueTypes entries are now autofilled from the registered (in
protocol) topology files - when deduceSeqType is first called
python/regularize.py
fixupCovalentGeomIVM: output formatting fixup
fixupCovalentGeomIVM: added translateRegions argument
python/ivm.py
- fixed problem of run exiting during minimization if temperature=0:
do bathTemp=0 check only for integration.
added constrainBond method
hinge: replaced '==' w/ 'is' when comparing AtomSel
python/atomSel
fixed __eq__ s.t. AtomSels can be compared w/None; added test
TCL Interface
tcl/noe_reporting.tcl
replaced ln --symbolic with ln -s
Internal Variable Module
intVar/dint-node.cc
HNodeTorsion(): properly treat speecial case where |rotDir| almost 1
removed dubious conditional for bend-type nodes
Low Level C++ routines
CDSlib/cdsComplex
added / operator for noncomplex arguments
complex multiplication by float fixed. Test added
CDSlib/cdsMatrix
added setCol/Row and tests
optimization: use memcpy instead of for loop
Changes from 2.21 to 2.22
Helper Scripts
bin/calcSAXS.in
fixed so that the -psf flag is actually used
added the -expt command-line option for better comparison w/ experiment
added -selection and -normalizeIndex cmdline options
add support for normalizeIndex=-3
added -nostderr option so that runAll tests pass
added the -fit and -verbose flags
now print out chi2 value
bin/pbsxplor.in
added pbsxplor convenience command - to launch Xplor-NIH jobs without
writing a PBS script
bin/calcTensor.in
added -ensemble flag/capability to properly treat a structural ensemble
bin/targetRMSD.in
now support selection2, fitSelection2 cmd-line arguments
bin/findClusters.in
new script use to find clusters of similar structures
bin/getBest
now support absolute paths
------------------------------------------
Example scripts
eginput/gb1_rdc/analyze.py
averageFilename: now include SCRIPT
eginput/gb1_rdc/aveStruct.py
added -psf flag
eginput/gb1_rdc/anneal.py
eginput/gb1_rdc/refine.py
reduce high-temp nonbonded force constant
updated to use new massSetup, torsion/cartesianTopology capabilities
eginput/PSF_generation/pdbTest
added example with resid=0
eginput/dna_refi/ensemble.py
fixups to remove parameter errors
moved initCoords/covalentMinimize to avoid ANI atom warnings
fixed up xray setup for compatibility with new defaults
eginput/EIN_HPr_diffTens
new example illustrating the use of diffusion tensor-based restraints
in protein-protein docking
eginput/dna/axis.pdb
changed axis atom coords s.t. bond lengths are 1A
------------------------------------------
Topology and Parameter file changes
toppar/protein-1.0.par
toppar/protein-1.0.top
toppar/protein-2.0.par
added setting of toppar version variable
toppar/protein-2.0.top
fixed ALA HB methyl def; added version variable
toppar/axes-1.0.par
updated to include parameter pseudo atoms used for RDC Da and Rh
------------------------------------------
Changes to low-level libraries
CDSlib/cdsString
added strip() method
CDSlib/cdsMath.hh
added cube() inline function
CDSlib/cdsList
added 2nd DEFAULT_ASIZE template parameter
added qsort method
fixed array allocation s.t. memory is not wasted
(was array of void*, now array of char)
fixed to that DEFAULT_ASIZE is applied to the copy constructor
added letterObj() method for debugging.
template arg mods s.t. g++ 4.2, 4.3 will compile
CDSlib/cdsString.cc
const fix
------------------------------------------
TCL interface
tcl/import_pipp.tcl
tcl/import_xeasy.tcl
increased verbosity of read functions
tcl/aeneas_tools.tcl
defaultJointFilter: added options -passNetFrac and -minExpectedNetScore
capitalization fix
------------------------------------------
Common C++ Interface
common/ensembleSimulation.cc
common/ensembleSimulation.hh
fixup const method declarations:
members of the MemberData struct *can* change for const objects
common/coordComparer
added CoordComparer class- to measure differences from one step to the
next
common/pot.hh
common/potList
Pot: added empty updateDelta method
PotList: created implementation which calls updateDelta for each
contained potential
common/pdbTool.cc
pdbTool read optimization.
major bottleneck was the use (primarily construction) of the old
pdbHash table used to map (segid resid atomName) to id. Replaced this
data structure with something faster and more balanced.
Other optimizations include less use of StringStream and subString
functions which have some overhead.
The code includes a fix: previously, the least significant digits of
the floating point numbers were filled with garbage. During to
rounding differences, this changes the test output slightly.
created AtomToIndex class to formalize interaction with the
num/name/segid -> index map
Also, fix bug encountered for minresids<1.
writePDBAtom:
clamp values of bfactor and occupancy fields such that pdb format is
preserved in the face of invalid values
------------------------------------------
Python Interface
python/nbond.i
python/nonBondTools.py
readXplorRadii:
optimization and fixup of functionality for 1-3 and 1-4 contact
exclusion generation (by using a C++ routine). This will speed up the
first invocation of vdwViolations.
nmrPot/planeDistPot.cc
addRestraints: print warning if no restraints read
addPlaneAtoms: left justify segment name
added simulation() accessor
python/solnScatPotTools.py
analyze changed output format for calcd/exptScale values
changed default cmpType to plain
python/regularize.py
fixupCovalentGeom: don't process residues not in selection
python/ivm.py
now call updateDelta before each step
run: added check for zero temperature
nmrPot/solnScatPot
mods so that globCorrect can be called in the middle of a
dynamics/minimization run if a threshold # of steps have been taken,
or if an atom has moved too much.
auto glob correct fixes
verbose: changed from bool to an int
setGlobCorrectReference: now also set globCorrectCalcType
info: output auto glob correct info
added new normalization type: minimizing chi^2 (normalizeIndex=-3)
normalizeIndex=-2 gradient fixed
moved calc of excluded solvent scatt contribution from python to
C++ layer
add read-accessor for radii member
python/derivList.i
python/pyPot.i
update DerivList python interface to work with
PyPot::calcEnergyAndDerivs
added tests to exercise this
updated pyPot docs accordingly.
python/simulationTools.py
now include summarizeExtraQuantities output in .stats output
use registerExtraStats function
get extraStats reporting and output working, including for potLists of
terms which have extraStat
testGradient: added the eTolerance argument
python/rdcPotTools.py
added R factor, Da and Rh to extraStats
removed unused psf_template
create_RDCPot:
file argument can now be a sequence of filenames
now support CAHA measurements
python/varTensorTools.py
calcTensor:
now set oAtom to the origin, if its coordinates are invalid.
addAxisAtoms: left justify segment name
python/protocol.py
added support for versioning of topology and parameter files
initCoords:
move call correctSymmetricSidechains to after matchInexactAtomEntry call
initHBDB:
added restraintFile argument for specifying fixed HB restraints.
cartesianTopology:
fixed breakAllBondsIn statement to work with non-trivial nonstring
selections
torsionTopology and cartesianTopology now configure the appropriate
topology for pseudoatoms associated with VarTensor, PREPot and
PlaneDistPot pot. terms
massSetup:
sets mass and friction settings for pseudoatoms associated with
VarTensor, PREPot and PlaneDistPot pot. terms
python/planeDistTools.py
python/prePotTools.py
python/protocol.py
python/varTensorTools.py
moved initialization of parameters for axis pseudo atoms from *Tools.py
to protocol.py. Now use axes.par.
python/selectTools.py
correctSymmetricSidechains:
-added backwards-compatibility hack for incorrect ARG sidechain chi5
torsion definition, and corrected it for future toppar versions
-changed allowed range of chi2 for TYR, PHE to 0..180 degrees
nmrPot/planeDistPot
added useSign method - now allow signed atom-plane distance
python/prePotTools.py
new set of helper tools for PREPot
now properly supports EnsembleSimulation
nmrPot/prePot
regularize txmin/max accessor cases
info:
print out much more state information
added clock atom read-accessors with rationalized names
showViolations: updated to support showAllRestraints
python/xplorPotTools.py
for HBDB term, now place output of HBDB print in the .viols files
python/residueAffPotTools.py
create_ResidueAffPot: added intradomainContacts argument
surfD
new algorithm for numerical representation of a molecular surface.
nmrPot/diffPot
new potential term for encoding a rotational diffusion tensor restraint
python/psfGen.py
pdbToSeq: fixes so residue number=0 works
python/cdsTypeMaps.i
now fail gracefully if None argument is specified
python/checkWrap.py
fixups to get minimally working again
in particular findNested was completely broken...
fix to catch variable names with surrounding () in NewPointerObj
added -v flag
------------------------------------------
Documentation Updates
helplib/nih-py-planeDistPot
corrections from J. Ellena
helplib/nih-py-prePot
regularized txmin/max accessor cases
helplib/nih-py-ensembleSimulation
now document identical nature of each ensemble member
test/fiber.inp
added example of writing out diffration data
online tutorial:
conversion to pdflatex and replaced large bitmaps with pngs
updates from Jan. 2009 Xplor-NIH class
------------------------------------------
Platform Specific
arch/Linux_2.4_x86_64/Makefile.defs
PROFILE=1
-no longer try to get gprof working. It doesn't work with shared libs,
so it's hopeless.
-now try to get stack callback info from oprofile using
-fno-omit-frame-pointer
added support for version 11 of the Intel Compilers
------------------------------------------
XPLOR Interface:
source/fxmap.f
FXBFT2: fixed argument list for BSLTBL call
---------------------------------------------------------------------------
Changes from 2.20 to 2.21
XPLOR Interface
source/parser.f
set print:
now attempt to close a file before reopening for write. This may be
dangerous, but it fixes use of the -smp flag under Darwin.
source/darwintime.f
now allow closing of unit 5 (stdin). Dangerous?
source/ncs.f
source/rotlsq.f
changed output from unit 6 to PUNIT
source/xplorFunc.f
fixups flagged by g77. In particular:
it doesn't like initialization of file-static data (initialized in
XPLOR_INIT). Hopefully, this will always by initialized to zero and
that corresponds to .FALSE.
Python Interface
DistSymmPot: new Python/C++ potential term:
DistSymmPot - for distance symmetry restraints
supports both ensemble-averaged symmetry and strict symmetry of each
ensemble member
intVar/dinternal.cc
resetCM: handle the case in which all atoms are fixed
python/maxLikelyFit.py
-Added a new method in maxLikelyFit.py for calculating the Average
RMSD and made necessary changes in mleFit to reflect this.
-Fixed the methods in maxLikelyFit.py that is used to write the
variance of selected atoms and rotation & translation matrix
obtained from maximum likelihood fitting.
-Added a new method for writing out the PDB files of the fitted
structures along with the mean structure in maxLikelyFit.py
noePot:
fixed bug in which spaces were required between selection parentheses
python/noePotTools.py
create_NOEPot: now allow file arg to be list
python/nonBondTools.py
changed defaultRadiusScale from 0.9 to 0.8
common/pdbTool.cc
Changed default value of b factor in pdbTool.cc from 1.0 to 0.0.
This matches the default value given by the XPLOR interface. The
default occupancy value remains at 1.0, since that matches
classic xplor.
python/posDiffPotTools.py
-analyze: added more info output
-set a default threshold value (used to det. # of violations)
nmrPot/posSymmPot.cc
fixed the definition of violations() to use threshold()
common/potList.cc
rms():
change calculation method for the case of same type of restraint,
but numRestraints=-1.
python/protocol.py
loadPDB:
-added deleteUnknownAtoms argument
-added optional model argument
-now catch exception in initCoords so that currentSimulation is
properly reset.
initCoords:
-allow maxUnreadEntries to be None to disable the check
-fix so that erase option only affects atoms in selection.
-add call to selectTools.correctSymmetricSidechains
-properly handle 2nd maxUnreadEntries (fractional) component
-now returns an object with two lists--one of the b factors of
every atom in the simulation, and one of the occupancies of
every atom in the simulation.
initNBond:
changed default rcon and repel values to the final values used in
refinement scripts
python/pyInterp.i
added pyInterp python interface
python/psfGen.py
-fixup for DNA generation: better way of getting resid range
-Added code to automatically parse PDB SSBOND header lines. It's
called by pdbToPSF after reading in the sequence, and
automatically calls addDisulfideBond for each SSBOND line.
nmrPot/rdcPot1.cc
-addRestraints: now print warning if no restraints read
-added support for varying axis atoms separately in different
ensemble members
python/regularize.py
-fixupCovalentGeomIVM: covalentViols:
-added fixupCovalentGeomIVM:
-the old version of fixupCovalentGeom, which has grouping features
not present in the new version
-deal with terms which return violations==-1
-in case multiple structures are found w/ same # of violations,
set the return structure to that w/ the lowest energy.
-addUnknownAtoms: added optional maxFixupIters arg
python/selectTools.py
convertToAtom:
fixed exception error
added correctSymmetricSidechains - to swap atoms to conform to
Xplor-NIH conventions: Valid range for phe, tyr, and asp
chi2 and glu chi3 is -89.99..90 degrees. Beyond that, the names are
getSegsResidues:
-changed invocation so that it now accepts AtomSels
-Bugfix. Old code was returning a list of
residue numbers & names with an entry for each selected atom,
resulting in many repeats.
python/simulationTools.py
fixed b-factor calc in aveStruct.py and in StructureLoop.genAveStats
python/simulationTools.py
minimizeRefine:
added arguments rigidRegions, fixedRegions
fixed bug in which only one potential term was scaled
nmrPot/solnScatPot.cc
weights member:
changed accessor from MODACCESSOR to explicit, because
setting it can change exptScale, so it must be recalculated.
calcGlobCorrect:
-fixes so it doesn't have side effects. It should now properly work
to correct for small numAngles, even if useGlobs=False.
-overriden so that corrected I(q) can be explicitly specified
-fixes to normalization - introduce ave. normalization (index=-2)
-now throw exception if calcing derivs when using non-uniform calcType
-fixed rms definition to better reflect energy
python/solnScatPotTools.py
analyze:
updated calculation of deviation and chi^2
now always scale calcd/expt by the proper normalization
python/sansPotTools.py
python/solnXRayPotTools.py
no longer pre-normalize weights for chi^2 calculation:
this is now handled by the potential
create_*Pot: now throw exception if no datapoints are defined.
moved globRules to common solnScatPotTools location
create_solnXRayPot:
-fix up treatment of chi^2 weighting for normalizeINdex>=0
-fixup handling of weights and normalizeIndex
aSelection now excludes ANI atoms
added normalizeIndex and preweighted arguments
getCombinedAtoms:
optimization to remove creation of AtomSels in an inner loop.
This changes output because the atom selection used the hydro
keyword, while
now all atoms whose name starts with "H" are chosen (the correct
behavior).
useGlobs:
-optimization: remove use of AtomSels inside inner loop of glob
determination
-fixed so that it handles multiple segments
python/varTensorTools.py
configIVM:
now enable topo setup for case of ensembleAxis
python/xplorPotTools.py
add some support for the NCS term
common/xplorSimulation.cc
-fixed setAtomMassArr so that XPLOR-side values would get updated by
implementing an overloaded version in XplorSimulation
Example Scripts
eginput/runAll
Removed the -f option
renamed
eginput/marvin => eginput/pasd
eginput/protG/protG_mkpsf.inp
actually make peptide bonds...
eginput/pasd/cvn/.runAll
add example of using mleFit
eginput/PSF_generation/genDNA24bp.py
added genDNA24bp.py example (using fixupCovalentGeomIVM)
eginput/gb1_rdc/anneal.py
fix so that commented-out rdc code will work (if uncommented)
eginput/gb1_rdc/pairRMSD.py
Added a command line option called -noFit. If specified, the
structures are not fitted together before the RMSD
calculation.
eginput/gb3_ensemble/order.py
update NOE setup to use Python/C++ NOE term with explanatory comment.
Helper commands
bin/xplor
-The -smp command-line option now works correctly for Intel Macs.
It now works on all platforms except for ppc Macs.
-fixup for -scyld when num_threads<2 and SCYLD_PROCESSES>#nodes
-fixed: changed == to =
moved eginput/protG/tang.py to the helper script bin/torsionReport
fixed up for degrees --> radians change in Dihedral::value
added getBest helper to toplevel bin directory. This helper grabs
the structures in a .stats file - it is useful for command-line
manipulation.
renamed:
eginput/dna_refi/plotIrange.py => bin/calcSAXS
added -psf and -help-script options
bin/pdb2psf
-Added a command line option to delete the unknown atoms from the PDB file
before the PSF file is been written.
-Bugfix. If pdb2psf is called on a file that doesn't contain any
periods (eg., 'temp'), the resulting PSF file is named '.psf'.
Changed to check for PDB filenames that don't contain periods, and
to produce PSF files with appropriate names (eg., 'temp' -->
'temp.psf')
bin/calcDaRh.in
fix so that rdc scaling actually works.
bin/targetRMSD
Added a command line option called -noFit. If specified, the
structures are not fitted together before the RMSD
calculation.
Parameters / Topology
toppar/protein-2.0.top
ARG: swapped chi5 definition to match IUPAC
toppar/nucleic-2.0.par
added base angle corrections from the 1.1 file
Low-level modifications
CDSlib/cdsVector.hh
added sum() function
The gfortran compiler (as of version 4.3) now works for AMD64.
Changes from 2.19 to 2.20
XPLOR Interface
merged FX-plor functionality. Special thanks to
Wen Bian, Gerald Stubbs and Don Marvin for making this possible.
See documentation at
http://nmr.cit.nih.gov/xplor-nih/doc/current/xplor/
------------------------------------------------------------
added fortlib/specfun/ribesl.f
------------------------------------------------------------
hbdb
allow zero value of hbprnfrq to disable facility
------------------------------------------------------------
source/genic.f
source/prototypes.hh
replaced the DELTI2 subroutine with deleteAtoms, which has
been modified so that it can be easily callable from the C++
interface.
------------------------------------------------------------
source/xplorFunc.f
xplor_init: added flag so its not executed twice
------------------------------------------------------------
arch/Linux_2.2_i686/Makefile.defs
common/simulation.cc
source/linuxtime.f
mods to support gcc/gfortran 4.3 on ia32
------------------------------------------------------------
source/carb.f
printcshifts:
define RMSD as a weighted average of CA and CB shifts
define NUMBER ans the sum of CA and CB violations
DECLAR RMSD --> $RESULT
DECLAR NUMBER --> $NUMBER
------------------------------------------------------------
source/etor.f
added a tolerance parameter dihed_colin_tol:
the value of cosine of the angle between two bonds above which the bonds
are considered colinear. Previously, it was a hard-coded constant.
it can be set via the command set TOLTorsion end
the current value can be accessed via the $DIHED_TOL variable.
------------------------------------------------------------
source/x86_64time.f
mods to allow compilation using gfortran
------------------------------------------------------------
PASD/Marvin
Example Scripts
eginput/marvin/cvn/refine.py
Added a final refinement stage. Refine.py is based on
eginput/gb1_rdc/refine.py, with filenames changed and only NOE
and TALOS restraints enabled.
eginput/marvin/cvn/talos2cdih.tcl
Also added a short TCL routine to convert TALOS restraints into
a XPLOR CDIH file, using the rules worked out for Marvin.
Marvin reads the TALOS files directly, so it doesn't need this,
but refine.py needs an XPLOR constraints dihedral file.
eginput/marvin/cvn/talos/pred/
Now shipping the individual-residue TALOS output for the CVN
example, since we're using it in the example structure
determination.
eginput/marvin/cvn/check_talos_predictions.tcl
Converted CVN eginput scripts to those used for structure
calculations in paper.
TCL Interface
tcl/aeneas_tools.tcl
-Made writing of .peaks, .shiftAssignments, and .exceptions files
optional.
-Added stereopartner recording to standard3d and 4d initMatch
procs to support stripe routines
-Added support in standardJointFilter for applying netfilter
contact map to different pots than those used to generate it
-Bugfixes to correctShiftOffset proc. In determining output
report, was comparing calculated offset to minOffsetToApply,
rather than comparing their absolute values.
-Changed flag name in solvent line proc from shiftTolerance to
just tolerance, to match all the other procs' flags.
-correctShiftOffset: minOffsetToApply argument:
changed default value from 0.02 ppm -> 0.015 ppm
bugfixes
-Eliminated calls to initializeLikelihoodsFromFilters in
standardJointFilter. These were overwriting the previous
likelihoods generated from each peak assignment's network
score.
-Added -verboseOutsideSpectrum flags to match*d procs. Lets
me control whether complaints about peaks being outside of
the spectrum are added to the remarks.
-Removed symmetryFilter proc
-Removed primarySequenceDistance proc
-Removed generateShiftAssignmentPeakPositionLikelihood proc,
which was never used.
-Removed markCrowdedPeaks, which is no longer used
-Removed stripeCorrection proc, which is replaced by code in
newstripe.tcl
-Removed netfilter proc: functionality moved to netfilter.tcl
-Removed secStructFilter proc - never used.
-Updated correctShiftOffset proc, to agree with my old
codebase. Now includes flags for minimum number of
symmetric peaks, below which no offset will be calculated,
and minimum offset to apply, below which I judge that it's
just noise and not worth applying. Finally,
correctShiftOffset now throws an error if it does find an
offset worth correcting, so that the standard*match proc can
know that it needs to re-match the peaks.
This routine might be worth getting rid of entirely, since
it appears to be relevant for IL-4 only. My initMatch
scripts for IL-4 now apply Dan Garrett's hand-determined
offset corrections to the peak locations before matching, so
correctShiftOffset isn't even used in that case.
-Removed netFilterMini: replaced by code in netfilter.tcl
-Updated standard3dInitMatch in a few ways:
A. Can now define solvent ranges here, so that solvent
peaks are removed consistently with any hand-solvent range
determination
B. Now drops shift assignments whose proton shifts are
outside of the from and to spectral ranges. This replicates
what Dan Garrett does in STAPP, whose parameters don't
allow folding or aliasing along proton dimensions.
C. Can now define the size of the broad tolerance (in ppm)
D. Changed call to correctShiftOffset to handle the
possibility of an error being thrown (described above).
E. Added -allWeakPeaks flag, which causes all peaks to get
distance ranges for weak peaks. Needed because some
datasets don't have peak intensities available.
F. Added -writeEachStage flag, which forces shift assigns,
peaks, and exceptions to be written at several places during
initialMatch, to support statistics gathering on prefilters
G. Changed to call new stripe filter code
H. Changed standard tight tolerance from 0.03 ppm to 0.02
ppm, which is what my 2.1.19 code used.
-Made corresponding changed to standard4dInitMatch
tcl/deprecated.tcl
includes symmetryFilter and primarySequenceDistanceFilter procs-
used in old scripts.
tcl/netfilter.tcl
-moved the network filter code out into a separate file
-temporary? change to rollback likelihood
calc change. I now just give previous likelihood = 1 for PAs that
pass, and 0 for PAs that don't. Was what I had for 1/24/08 marvin
runs, which seemed to be more accurate.
-Changed behavior when raw intrares scores are low. Was
previously setting low scores to be equal to the floor
value. But that leaves suspicious residues easily able to
make contacts. Changed so that low scoring residues get
their intrares score reset to 1.0, which makes it harder
(but not impossible) for them to create contacts. Seems to
be an improvement, judging by contact maps
-Changed netfilter proc to allow it to calculate a contact
map on the basis of one set of spectra, and to apply it to a
different set. This is because 3dN and 4dNC spectra rarely have
any long-range contacts, and therefore add nothing but noise to
the contact map calculation.
-Bugfix to code that deals with to-from partners. If a given
SA has a recorded name for its to-from partner, make sure an
actual SA with that name exists, because it could have been
deleted (which leaves the name string describing a non-existent
SA)
tcl/noe_reporting.tcl
-added completenessSummarizeMarvinResults
proc, which generates PA likelihoods from the best 10% of
structures as measured by their local NOE completeness--ie., NOE
completeness of just the from and to SAs that go into a
particular PA. Uses different structures for each PA. Seems to
work better in noisy situations, like ThTP pass2.
-Fixed overall NOE completeness calculation used in selecting
converged structures. Was using mean of each spectrum's
completeness, which is clearly wrong. Now I count numbers
of neighbors and accounted neighbors for each spectrum, sum
them up, and calcualte overall completeness correctly.
-Added new summarizeMarvinResults proc, which ranks structs by #
peaks nonviolated. Doesn't use completeness.
-Added nunNonviolatedPeaks proc to support above.
-Modified chooseBestFraction to support above.
-Bugfix to old summarizeMarvinResults--was using -inverseBound
flag to set inverse methyl correction. Doh, but I don't use
that proc any more.
- Added support for not writing avg PDB, .peaks,
.shiftAssignments files to newSummarizeMarvinResults and
completenessSummarizeMarvinResults.
- Bugfix to newSummarizeMarvinResults: Before I create a
symlink to a converged PDB file with the "converged" tag in its
name, I now check to make sure it doesn't already exist.
- Change to completenessSummarizeMarvinResults. I now
activate peakAssigns (for calculating individual SAs' NOE
completeness) based solely on whether or not they're violated in a
given structure. There's no stochastic element to it at all,
which is appropriate. I should perhaps eliminate this entire proc
as a clever idea that didn't pan out, but I'll make that decision
later.
tcl/noe_stats.tcl
-Changed settings used for updating activation during NOE stats
calc to prevent SA inactivation, and to explicitly set
inverse bound
-Added new tcl file noe_stats, which contains procs to handle
activation-sensitive calculation of NOE statistics.
-Added procs to calculate
number of high likelihood peaks
number of good high likelihood peaks
number of high likelihood long range peaks
number of good high likelihood long range peaks
number of shift assignments with no high likelihood peak assignments
-added calls to print those stats as part of the standard newStats report.
tcl/pdb_support.tcl
-Changed readPDBremarks proc to require a -fileName flag, for consistency
with readPDB, which also uses the -fileName flag
-Added support for writing to the occupancy and b-factor columns
of PDB files, using names "aux1" and "aux2".
tcl/import_pipp.tcl
- Modified to make experiment-specific import routines (eg.,
read3dCPippPeakTable) optional, and to allow nmrDraw import
routines to receive and pass on remarks correctly. All of
this comes down to running the low-level procs inside of
eval statements, with the remarks variable names being
passed along correctly.
- Better handling of errors that I catch involving unassigned
peaks during process3dAssignedPippPeakTable. I now reset
errorInfo appropriately, so spurious errors don't appear in
top-level calls to puts $errorInfo.
- I now set the previousLikelihood of peakAssigns in
process3dAssignedPippPeakTable to 1.0
- Added process4dAssignedPippPeakTable, which is entirely
analagous to process3dAssignedPippPeakTable
marvin/ShiftAssignment
-Eliminated references to EquivPeakAssignmentSet.
-Bug fix to support removing shift assignments correctly.
marvin/MarvinNOEPotential
- Added functionality to remove all peakAssigns and explicit
exceptions involving a given shift assignment. This is
automatically called when actually removing a shiftAssignment,
but is exposed to the user as well. Makes removing shift
assigns much easier, since it eliminates a lot of TCL-side
code.
- Bug fix involving neighbor list regeneration. I wasn't
forcing a neighbor list regeneration when I added or removed
shiftAssignments or when the inverse caches need updating.
- Bug fix in updateInverseCaches. When I delete a
shiftAssignment, I clear its toFromPartner's pointer to the
removed SA. But I don't clear its toFromPartner SA's
toFromPartnerName slot. Now I check whether that name is the
name of a valid shiftAssign before trying to set the pointer.
tcl/shiftassign_tools.tcl
-Added a proc--dropShiftAssignsInShiftRange, which is used in the
standardNDinitMatch procs.
-Bugfix to recordStereoPartnersForShiftAssignments.
-Added support for recording a shiftAssignment's stereo partner
in a table.
marvin/Peak
Changed chooseAnAssignment method to calc overall likelihood of
each peakAssignment just as it's done during
PeakAssignment::updateActivation, and then to normalize them.
If total likelihood is very low (<0.001), it gives up and makes
all of that peak's peakAssignments equally likely.
tcl/sa_protocols.tcl
pass2 proc was missing calls to use the original MC scoring
function and to prevent SAs from being inactivated. Fixed.
tcl/sa_protocols.tcl
Temporary? change to support changing the values of krama and
ktalos during pass2 and origPass-
tcl/primarySequenceExceptions.tcl
Code to create inverse exceptions for every SA pair that's
within a particular number of residues in primary sequence.
Helps ensure that TALOS alone can set the backbone angles, and
deals with problems caused by few observed NOE contacts
between residues close in primary sequence leading to missed
contacts. Primary sequence neighbors often have very
limited sidechain-sidechain contacts because of restrictions
placed by secondary structure.
tcl/newstripe.tcl
New stripe analysis method that avoids using the same peaks as
targets for multiple shift assignments
- Moved code for counting SAs w/ zero targets into its own
routine, so it can be called either after recording all
possible targets, or after they've been filtered.
- Reorg of prefiltering code (targetIsReasonable).
- Now iterates calls to targetIsReasonable during
filterTargetsForInitialReasonability, to promote convergence.
Note that this doesn't guarantee identical results each time,
since it depends on the order in which SAs' targets are
filtered.
- No longer force from SAs to choose targets before the to
SAs. Now just choose targets for all SAs, in random order
- Changed scoring function from fraction of intrares + bbnseq
partner SAs that are covered by compatible targets to fraction
of intrares + bbnseq possible targets that are compatible.
- Added optional proc that deletes SAs which have zero targets
tcl/import_nmrdraw.tcl
tcl/marvin_lowlevel.tcl
Change to the flagVal proc, to allow it to match several
different targets.
For example,
flagVal $args [list -pot -potList]
will match both -pot and -potList calls in an argument list.
Needed by several procs in the new stripe filter,
standardInitMatch, etc.
tcl/selection_tools.tcl
-stereopartnerList proc: added asn HD21/22 and gln HE21/22 as
stereopartners.
-Changed behavior of previousResidue and nextResidue procs to
always return a single residue string, and throw an error if >1
next- or previous residue is found.
tcl/sa_tools.tcl
-Bugfix to structPrecision. Was allowing (optional) grabPDBfiles
call to overwrite main coordinate set before it was copied to
the comparison set.
-Added automatic generation of symbolic links to converged
structures, so they can be grabbed easily by other scripts
without having to refer to the avg pdb file's remarks lines.
Probably useful
-Added createViewScript proc, for VMD inspection of converged structures
-Changed standard method for generating mean coords to allow vdw
minimization during cleanCovalentGeom.
tcl/talos_tools.tcl
-Folded in individual-residue TALOS input/output from my old codebase.
This creates restraints more conservatively, direct from TALOS's
res_*.tab files for each residue. The acceptable range is set
to the observed range of database hits, plus a padding (default
5 degrees). There's also a minimum range (default 20 degrees)
to prevent over-restriction from cases where you
have very tightly grouped database hits.
-This also adds the ability to write out the resulting TALOS
restraints as XPLOR dihedral restraints.
-This code also has a bugfix relative to my old codebase.
Situations where the database hits wrap around +/- 180 degrees
are handled gracefully. This was causing surprisingly large
numbers of bad (or extremely broad) TALOS restraints
in my old codebase.
------------------------------------------------------------
------------------------------------------------------------
Python
changed default Python version for output from 2.4 to 2.5
------------------------------------------------------------
new: python/symmetry.py
contains test for dimer C2 symmetry
------------------------------------------------------------
added distance symmetry potential:
same as the XPLOR NOE distance symmetry restraints for normal
Simulations, but enforces symmetry between EnsembleSimulation
members.
------------------------------------------------------------
atomSel module
added asUnion/union function
nmrPot/posSymmPot.cc
-fixed bug in gradient
-now throw an exception if there are fewer than 3 equivalent atom sets
-changes to PosSymmPot mostly to expose internals so that the
translate/rotate operations could be repeated externally
rationalized return type of equivAtomSelPairs and equivAtomPairs
-added rotMat, centroid and translatedCoords accessors
nonBonTools.py
vdwViolations now takes extra arguments to optionally determine
violations involving only selected atoms.
python/xplorPotTools.py
PotData.__init__:
added try...except clause for getting violation info
motivated by distance symmetry NOE restraints for which the noe
print statement doesn't work.
now print out XplorPot::scale in analysis (.viols file)
now get, print rmsd, violation info from the CARB term
------------------------------------------------------------
rdcPot
added gyroA/B output to info()
atomSelAction:
RMSD: constructor can also take an AtomSel argument
Fit.translation now returns a Vec3, not a tuple.
------------------------------------------------------------
python/simulationTools.py
StructureLoop:
-rmsd to average structure is now calculated
correctly. Previously, rmsd was calculated to unregularized structure.
-constructor: added averageRegularize flag to allow disabling
regularization.
-added the structureNum method
-averageFilename now supports the SCRIPT replacement of pdbTemplate.
-fixups for EnsembleSimulation calcs:
-now call barrier in constructor to clean up list of
running processes early
-run(): made cpuTime calc EnsembleSimulation-safe
StructureLoop.genAveStats: allow for missing files when
generating statistics (instead of crashing)
StructureLoop.run() now sets a number of members to the instance
(self) object, including cpu time, calculated structure precision and
restraint statistics. Also, it now returns the instance object.
StructureLoop.writeStructure:
set the default potList and altPotList arguments from
StructureLoop's averagePotList and averageCrossTerms, respectively
calcAverageStruct:
now takes new arguments potList and regularizeSteps, used for optional
regularization by minimizeRefine
minimizeRefine:
fixed typo in clause which ensures covalent energy terms are present.
testGradient:
-added a text header for EnsembleSimulation gradient tests
-fixes for when dealing with EnsembleSimulations: it should
now actually work correctly and now supports xyz components
convertToPotList: can now take a bare potential object
------------------------------------------------------------
python/solnScatPotTools.py
python/solnXRayPotTools.py
added Xiaobing Zuo's nucleic acid volume values- can optionally
activate these values.
added Mn,Zn to supported metal atoms
create_solnXRayPot: changed the default selection from not hydro
------------------------------------------------------------
ivm
-added untested rotate2 node type
-fixes s.t. IVM.hinge() actually works with previous argument types
-optimization of breakAllBondsIn method- moved loops to a
C++ extension defined in the .i file.
-added simulation() accessor
step():
now check if newTimeStep is smaller than minStepSize and throw an
exception if so.
-additional optimizations
------------------------------------------------------------
python/residueAffPotTools.py
added 1999 Mizagawa/Jernigan contact potential
create_ResidueAffPot:
added optional argument interdomainContacts.
fix justification (to left) of segname
now has optional potentialName argument to switch
between different potentials
------------------------------------------------------------
python/selectTools.py
numResidues:
fixed default argument (so a null selection correctly selects
zero atoms)
added getSegids() helper
added convertToAtomSel() helper
------------------------------------------------------------
avePot:
fixed gradient error which sometimes would double the gradient
------------------------------------------------------------
python/psfGen.py
seqToPSF:
right justify space-padded segid
the length of segName is now handled correctly.
deduceSeqType:
will now throw an exception if a residue name is longer than
four characters
pdbToSeq:
added helper code to catch the case of truncated ATOM records:
short lines such that the segid has fewer than 4 characters.
------------------------------------------------------------
python/regularize.py
fixupCovalentGeom:
-now catch and ignore small timestep errors from the IVM
-new algorithm which works residue-by-residue
and uses fast SetProperty and new AtomSel helper functions.
-vdw fixup
-added fixupLoop_xplor: now do residue-by-residue fixup in XPLOR
addUnknownAtoms:
now just exit if there are no unknown atoms
fixupCovalentGeom: tighten XPLOR TOLT parameter for this routine
simple fixes to covalentMinimize
------------------------------------------------------------
python/protocol.py
added initHBDB helper function
matchInexactEntry:
added new name transposition rule.
matchInexactAtomEntry:
import regularize.CovalentViolation
initCoords matchInexactAtomEntry:
add strictResNames flag argument
moved covalentMinimize and fixupCovalentGeom to regularize.py
genExtendedStructure: now use fast atomSelAction.SetProperty
genExtendedStructure:
changed the default atom selection to exclude RDC axis atoms. This
so it will now do the right thing when called after the RDC terms
are set up.
pdbLocation:
switched to new .gz ftp location
downloadPDB:
now use urllib2
loadPDB:
fixup resetting of current simulation
added addUnknownAtoms_fast, and call to it from addUnknownAtoms if the
missing atoms are separated by a single bond from a known atom
------------------------------------------------------------
pdbTool
added strictResNames flag and ability to require strict residue naming
changed exception type returned by PDBTool::read to IOError
------------------------------------------------------------
atomSel
added helper functions intersection(), notSelection() and union()
which create pseudo selections
------------------------------------------------------------
common/xplorWrap.cc
deleteAtoms:
added call to XplorSimulation::syncFrom after deletion
------------------------------------------------------------
simulation
all Simulation objects are now reference counted
Simulation::deleteAtoms:
the argument is now a list of atom indices instead of a
selection string.
the Python .i files added an indirection to keep the
previous behavior.
added atomMassArr/setAtomMassArr accessors
------------------------------------------------------------
common/atomSelAction.cc
python/atomAction.py
moved SetProperty from atomAction to atomSelAction for optimization.
Renamed previous definition to SetPropertyArr
------------------------------------------------------------
common/xplorWrapProc.cc
freeAtomData: bug fix:
now use dynamic_cast and check result when down-casting to obtain a
XplorWrapProc.
------------------------------------------------------------
python/socketComm.py
collect: added diagnostics in case of readData failure
------------------------------------------------------------
added posDiffPotTools
a potential term to help evaluate structural RMSD
------------------------------------------------------------
selNBPot
added CENTER aveType to selNBPot
------------------------------------------------------------
restraintStats
TermEntry now has methods to calculate mean, dev of energy,
rmsd and viols
------------------------------------------------------------
added python/maxLikelyFit.py
module for molecular fitting based on maximum likelihood estimate.
written by Robin Thottungal
------------------------------------------------------------
jCoupPot
better diagnostics if bad selections are encountered
------------------------------------------------------------
Low Level Libraries
------------------------------------------------------------
CDSlib/cdsList.hh
sort method: try to make a default comparer argument
------------------------------------------------------------
CDSlib/rc_ptr.hh
allow proper cleanup of pointee.
no longer set counter member to zero.
copy constructor: made safe for null counter members
added methods for manual reference count manipulation:
incr, decr count
added methods for casting up/down TYPE class heirarchy:
cast, dyn_cast
mods so that destructor zeros counter member
Helper Scripts
------------------------------------------------------------
calcTensor, calcETensor, calcDaRh have been moved into the bin directory
added mleFit and domainDecompose helper programs
seq2psf:
added the -cisPeptide option and usage test
targetRMSD:
add check that all atoms used for fitting are known
calcTensor:
fix crossTabs initialization type
added -crossValidate option
bin/xplor
-handle the case in which the machines list starts with localhost, but
also contains nonlocal machines.
-formalize and document arch/equivList format
tcl/findTCL
support for recent versions where TCL_INC_SEPC is replaced by
TCL_INCLUDE_SPEC
Example Scripts
-added validation scripts
these check that the calculated results are of suffient quality.
These can take a long time to run. Run with
eginput/validate
-eginput/runAll
added -keep command-line option
------------------------------------------------------------
eginput/gb1_rdc/
* added analyze_anneal.py, analyze_refine.py for analysis, validation
*refine.py
-added SCRIPT to averageFilename
-accept function:
loosened tolerance on rdc rmsd
-properly ramp the Vgyr scale factor
- added a cross-validated PosDiffPot term to compute rmsd to the crystal
structure.
- bumped the number of calculated/analyzed structures to 20, and added a
-quick flag to reduce it back to 3
*anneal.py
-now start from randomized torsion angles instead of extended structure
- anneal:
- initialize coords from model.pdb - these coords are not used in calcs
- remove initial calcTensorOrientation- but add it after extended
structure is generated
- set averageContext in StructureLoop
*analyze.py
- allow for missing structure files (instead of crashing)
------------------------------------------------------------
eginput/dna_refi/ensemble.py
fixup selections: hydro --> name H*
------------------------------------------------------------
eginput/PSF_generation
*testNAG.py
increased maxFixupIters
* added addAtoms2.py
* added writeChainID.py example
Changes from 2.18 to 2.19
new helper script:
bin/targetRMSD - to compute rmsd to a known structure
arch/equivList - Mac platform
updated to run Darwin_9, confirmed by user feedback
added parallel.txt
write-up describing parallel structure calculation capabilities
configure script
improve error message for case appropriate xplor binary is not present.
XPLOR interface:
removed the BUFMAX parameter from comand.fcm
a consequence is that the rotating command buffer no longer rotates:
it just gets larger
added two array helpers:
assign_char_2d and get_char_2d
removed the NDSMAX parameter - associated arrays are now on the heap
removed the MXRTP parameter
removed the MXRTI parameter
removed the NHBMAX constant parameter
fixed ASSIgn docs for xdipo/dipo potential
added xadc XPLOR term contributed by G. Bermejo (reference ???)
source/parser.f
changes to sizes of heap-allocated strings. Probably not needed.
XPLOR angle, bond, dihedral and improper violations:
added NUMBER declar'd variable
Python Interface
gyrPotTools:
updated Vgyr ranges to match those in the paper
added Rg targetType - needs gradient, testing of Rg targetType
pdbTool:
added ability to write to the ChainID field (by setting the
writeChainID flag).
PDBTool::read():
better support for a subset selection- these atoms are no
longer added to the unplaced list.
protocol:
loadPDB: added simulation argument
addDisulfideBond: fixed to make working, plus docstring
initDynamics:
fix so that eTolerance isn't specified as negative if bathTemp argument
is omitted.
initCoords: now allows selection to be a plain string
fixupCovalentGeom:
changed default angle and dihedral tolerances from 5 to 2
degrees. This picked up some problems in less-used parameters.
matchInexactAtomEntry:
handle case when occupancy or Bfactor are invalid numbers
xplorPotTools:
now get number of XPLOR restraint terms from XPLOR NUMBER variable
added restraints class support for the ANGL XplorPot term
python/psfGen.py
moved addDisulfideBond from protocol to psfGen w/ compatibility call
spline:
added support for periodic splines
added Spline2D - bicubic interpolation, w/ gradient
vec3:
__neg__: fixed so that it doesn't have side effects
dihedral:
overhaul of Dihedral class
changed return units from degrees to radians
added derivs method
changed constructor (old constructor is emulated by Atom typemap)
densPotTools:
create_DensPot:
fixed location of an import statement
added cstMag potential for refinement against chemical sheilding
tensor magnitudes. Reference forthcoming.
nonBondTools:
allow atom names to contain the +'' character
simulation:
added Simulation::deleteAtoms
ivm:
ivm.hinge: change arguments to be more sane.
backward compatibility maintained.
added support for Python2.5
Example scripts
eginput/PSF_generation/testDiS.py
added disulfide test/example
eginput/gb1_rdc/bicelles_new_hnc.tbl
removed one rdc due to consistent violations
eginput/gb1_rdc/refine.py
accept: loosened required rdc tolerance
updated eginput examples in eginput/gb1_rdc/
eginput/protG/calcDaRh.py
small fixes
CH normtype should now work
modePowder should now be correct
noise argument should be better handled
documentation fixes
eginput/protG/calcTensor.py
- added normType option for RDC scaling
- fixes to correctly handle multiple rdc experiments
- added rdcWeights option to correctly weight multiple experiments
- added the following command-line flags:
-psf, -useDistance, -maxDa
- fixed bug in which tensor atoms were improperly reset before
calculating rmsd.
eginput/PSF_generation/addAtoms.py
added call to fixupCovalentGeom
Parameter/Topology Changes
toppar/ion.par and toppar/ion.top:
changes to avoid conflicts with protein.top/par
toppar/nucleic-1.1.par
nucleic base proton angle parameters:
adjust angles proton+heavy atom angles so that they add up to
360 degrees. Previously, there were always violations of >2 degrees.
Internal Variable module:
fixed handling of diatomic molecules
resetCM():
now perform reset if fixed atoms are present - previously it just
exited if there were any fixed atoms.
corrected center of mass calculation:
this improves algorithm stability for the case of nonuniform masses.
Marvin/PASD
tcl/noe_selecting.tcl
Changed definitions in isShortRange and isLongRange to do
exactly what the C++ code in PeakAssignment.cc does, in order to
eliminate confusion.
eginput/marvin/cvn/convert_restraints_to_xplor.tcl
removeLowLikelihoodPeakAssignments:
fixed name of the -cutoff flag
LICENSE
added government rights clause from A. Hubbs
switched from cvs to bzr version control software.
documentation fixes, additions
Changes from 2.17 to 2.18
Helper scripts
-bin/seq2psf
added the -protonateHIS flag
-added bin/targetRMSD
C++ infrastructure
CDSlib/cdsComplex.hh
fixed up pow(complex,pow)
added functions operator*(int,complex) and pow(complex,exponent)
CDSlib/cdsMatrix.cc
now support multiplication with GenMatrix; SymMatrix*vector now works
added rawCopy method
CDSlib/cdsVector.hh
splitRep: made this method public
CDSlib/fft.cc
disambiguate ::pow call for Irix
fixed call to ::pow
added wrapper class for FFTPACK
CDSlib/fft.hh
added wrapper class for FFTPACK
CDSlib/fftpack.hh
removed redundant consts
int --> long conversion: needed for 64 bit arches
added wrapper class for FFTPACK
CDSlib/matrixTools.cc
determinant:
reworked to have saveData- for optimization
explicitly coded size 2 and 3 expressions - much faster than lapack calls.
added function determinant (from PLU decomposition) and tests
CDSlib/symMatrix.cc
now support multiplication with GenMatrix; SymMatrix*vector now works
added missing #include
CDSlib/vec3.hh
crossMat: reworked to use only constructor
intVar/publicIVM.hh
added recenterLargeDispl to PublicIVM: used in
syncPos. Disabled by default.
common/atom.cc
atom:
pos, mass, vel, fric read accessors have been inlined.
This required #including simulation
simulation:
which required un-inlining Simulation::atomByID and rearrangement of
#includes
made usual constructors inline
common/atomSel.cc
AtomSel: moved binary methods out to stand-alone functions
intersects --> intersect
isMonomericallyEqualTo --> monomericallyEqual
primarySequenceDistanceTo --> minResidDiff
Added primarySequenceDistanceTo function. This is broadly
useful, so it belongs here. Need to add a test for it.
common/atomSelAction.cc
updated Fit and RMSD to use AtomSels for fitting, comparison
common/mmapAlloc.cc
added the deleteFile function
so that the mmapped file can be deleted regardless of order called.
common/pdbTool.cc
better treatment of altloc and icode entries:
nonblank icodes are now ignored
altloc enties in allowAltLoc are read, otherwise entry is ignored.
added commented-out check of residue name
write: check if atom coordinates are within range (valid). Warn if not.
common/pot.hh:
calcEnergy() now returns float_type instead of EnergyReport
common/simulationWorld.cc
added memoryUsed function
common/xplorSimulation.hh
added clone argument to constructor - if True, the new
XplorSimulation will be a copy of the current one. If False,
if will be a brand new XplorSimulation, with no atoms, etc.
common/xplorWrap.cc
fixed bug: SELRPN messages were printed when XplorWrap->select called
added the qatmchk argument to the XPLOR energy() subroutine.
This defaults to .TRUE. for all XPLOR use. Within the C++ interface it is
.FALSE.
This is for performance in addition to provide proper (not crash)
behavior, particularly when gradient minimizing.
common/xplorWrapProc.cc
XplorWrapProc::freeAtomData:
make sure pointers are correctly mmap or free - deallocated
exec'ed children are now started -quiet -- banner is not printed
disable master_exit_handler:
it kills the slaves, and they don't get a chance to clean up.
two bugs fixed:
the master process now has a xplorDerivs instance variable - it had
been using the static variable, leading to problem when multiple
XplorWrapProcs were used.
shutdown/cleanup change:
now only the slave deletes sharedData. It seems to be cleaned up
anyway when the slave exits- causing semaphore errors when the
master had tried to clean up.
added the clone argument to the constructor:
if false (old behavior) a new xplor process is exec'd, if true
the existing forked process info is used.
static variable firstCall in function allocSharedData replaced by
a variable in the instance-specific sharedData structure -
this so that calls to XplorSimulation after the first one would be
successfull.
xplorwrapproc_slave:
added a wait loop so that the slave process waits for the master at
startup
fixed bug: SELRPN messages were printed when XplorWrap->select called
added the qatmchk argument to the XPLOR energy() subroutine.
This defaults to .TRUE. for all XPLOR use. Within the C++
interface it is .FALSE.
This is for performance in addition to provide proper (not crash)
behavior, particularly when gradient minimizing.
common/xplorWrapProc.hh
two bugs fixed:
the master process now has a xplorDerivs instance variable - it had
been using the static variable, leading to problem when multiple
XplorWrapProcs were used.
shutdown/cleanup change:
now only the slave deletes sharedData. It seems to be cleaned up
anyway when the slave exits- causing semaphore errors when the
master had tried to clean up.
see the commit message for xplroWrapProc.cc
Example scripts:
eginput/PSF_generation/testPDB2PSF
mods for disuse of seqres, accompanying psf fixes
eginput/gb1_rdc/README
added targetRMSD.py script, test
eginput/gb1_rdc/analyze.py
updated to split NOE restraints and turn off ANI VdW interactions
now report a proper VdW energy
eginput/gb1_rdc/anneal.py
updates:
note proper # structs
now generate new extended structure for each structure calculated
added missing (optional) cart_cool definition
fixed typo
eginput/marvin/cvn/cvn_n15noe.shifts
Corrected some typos in 15N shift table:
1. Several residues had two lines of, eg., HA1|HA2 instead of
HA1|HA2 and HA2|HA1. Fixed.
Residues affected: 2 5 6 15 27 28 45 65 78 96
2. Also changed selections for phe/tyr deltas & epsilons from
CD1|CD2 to CD*, since they're almost certainly averaged.
Residues affected: 4 9 29 54 80 100
3. Finally, note that previous version had a typo in
definition of Y29 epsilon carbon:
Was CE1 | CD2. Changed to CE#, which fixed the problem.
Note that this shift table should be the input for TALOS, not
the 13C one (which lacks entries for backbone carbonyls, for
some reason).
eginput/marvin/cvn/initMatch3dC.tcl
eginput/marvin/cvn/initMatch3dN.tcl
Updated to reflect name change of correctShiftReferencing proc to
correctShiftOffset
eginput/protG/README
added calcDaRh.py - determine Da, Rh in absence of structure info
eginput/protG/anneal.inp
rework parallel startup logic again - for case of num_procs>numStructs
fixes to avoid non-integer structure count
eginput/protG/calcDaRh.py
added calcDaRh.py - determine Da, Rh in absence of structure info
eginput/protG/calcTensor.py
will now (optionally) print out back-calculated RDCs
fitSel can also now be specified on the command-line
updated to support command-line options
nmrPot/Makefile
added gyration tensor volume potential term
added selNBPot/ residueAffPot--
empirical potential to capture hydrophobic forces.
Current potential based on a K. Dill contact map.
added planeDistPot
approximate molecular volume calculation from analytical surface area
nmrPot/gyrPot.cc
added square well potential
gyration tensor volume potential term
nmrPot/gyrPot.hh
added square well potential
gyration tensor volume potential term
nmrPot/neighborBin.hh
deal with case where too many bins would be created - atoms are very far
apart
changed template parameter from pointer-to-atom to atom instance.
also added an ATOMLIST template parameter.
no longer refer to an atom radius member- instead just pass a simple
spacing argument.
nmrPot/noePot.cc
added support for ASSIgn ... OR restraint syntax
initial changes to support the TO keyword in the ASSIgn statement:
in the restraint class, replaced sel1, sel2 members with selPairs()
accessor
The python layer includes a compatibility layer such that sel1 and sel2
continue to function.
now throw an error if the ASSIGN .. OR syntax is detected
added planeDistPot distance-to-plane restraint potential term
nmrPot/selNBPot.hh
added dSwitch
bug fixes in neighbor determination
added selNBPot/ residueAffPot--
empirical potential to capture hydrophobic forces.
Current potential based on a K. Dill contact map.
nmrPot/surfaceArea.cc
added null destructors
optimizations
changed many instances of rc_Neighbor to SA_Neighbor*
removing this indirection lead to a large speed-up
did same with rc_Vertex:
no big gain from that.
comment-out updateNeighbors: not used for moveTol==0
re-added neighborBin for optimization
overlap: added moveTol argument
tried to make nonzero moveTol work. No luck yet.
replaced code with transpose with left-vector multiply
now derivs from ModifiedBase
removed TouchingList::init
various optimizations, using const where possible,
using raw pointers instead of ref counted pointers
bug fix: now initialize sim member
cache neighbor list in new neighbor member
singleAtomDerivs:
add optional scale parameter
avoid divide-by-zero error by adding small value to Omega
getOverlappingAtoms:
use touchingList if cRadius allows it
added A member- previously determined surface area. Used to avoid
unnecessary (possibly dangerous) derivative calculation.
optimization (?) to outerProd
Vertex constructor: added initializers
now expose more info: Omega angle
nmrPot/volume.cc
added null destructors
cache atom.pos()
coded derivatives of tetrahedra in nonlazy fashion
changed deriv support from VecVec3 to DerivList
added sa_saveData member
added derivative info
approximate molecular volume calculation from analytical surface area
nmrPot/volume.hh
added null destructors
changed deriv support from VecVec3 to DerivList
added sa_saveData member
added derivative info
approximate molecular volume calculation from analytical surface area
Python Interface
python/atomAction.py
SetProperty:
can now specify array of values.
added getProperty function.
added function: centerOfMass
randomizeDomainPos: fixed error in CoM calc
python/cdsMatrix.i
support inter-symMatrix/matrix multiplication
added much SymMatrix support -
multiplication by matrix, vector, svd, inverse
added space before trailing template > for later swig versions
SymMatrix:
fixed constructor, so that size-only can be specified.
removed get method
changed set method to use underlying method.
moved cdsComplex stuff to cdsComplex.i
python/cdsTypeMaps.i
removed unused variable from DEFAULT_REF_TYPEMAP
DEFAULT_REF_TYPEMAP - Python-to-C++:
add attempt to directly copy any underlying C++ object to the target
C++ object without going through the fromPy machinery - this is an
optimization.
python/cdsVector.i
now references the correct documentation
added CDSVector
python/cdsVector_template.i
added space before trailing template > for later swig versions
added __str__, __mul__, __div__
python/csaPot.i
allow positive values of Da, and changed sign convention
added inline functions for computing CSA powder patterns
python/csaPotTools.py
python/densPotTools.py
fixup to correctly count the mass
added explicit destructor, call to base class destructor
create_SurfaceArea:
added radiusType argument, support for heavyatom radius parameters
support for XplorWrapProc XplorSimulations
create_DensPot: don't crash if number of attached protons is unexpected
create_DensPot:
now disable convex hull by default
explicitly set moveTol to zero (will crash with any other value)
replaced calcEnergyAndDerivs with calcEnergyAndDerivList
changed default atom selection
corrected capitalization of createDensPot
corrected default target value
fixup for atom radius setup.
make timing info optional
density potential and test
python/derivList.i
added __get/setitem__ methods
get method return val is no longer const - impt. for Python pot terms
python/fft.i
added fft module
python/findPython
python/findSwig
python/gyrPot.i
gyration tensor volume potential term
python/gyrPotTools.py
create_GyrPot:
added softScale, hardScale arguments
updated documentation
now create two terms - hard and soft.
change default lower hard range from 14.5 to 14
replaced tag atom selection with selectTools.numResidues
added square well potential
create_GyrPot:
added resScaleFactor argument, changed default value
reduced default scale factor to 1
analyze:
output format fixups
gyration tensor volume potential term
python/hybridMC.py
use getXplorSimulation instead of xplor.simulation
python/ivm.py
cleanup
run:
now checks for atoms with large displacements before dynamics.
python/mat3.i
added inverse
python/minimize.py
conmin:
added stepsize argument
python/noePot.i
initial changes to support the TO keyword in the ASSIgn statement:
in the restraint class, replaced sel1, sel2 members with selPairs()
accessor
The python layer includes a compatibility layer such that
sel1 and sel2 continue to function.
python/noePotTools.py
create_NOEPot:
added splitRestraints, deltaResidLR arguments, functionality
python/noeTest.py
python/noeTest.py.out
python/nonBondTools.py
update to work with XplorWrapProc
now allow chemical types to contain underscores
readXplorRadii:
updated to correctly use 1-4 list
now read nonbonded exclusion list from the PSF and use that too
vdwViolations:
change default value of radiusScale from 1 to defaultRadiusScale=0.8
python/planeDistPot.i
distance-to-plane restraint
python/planeDistTools.py
update to work with XplorWrapProc
helper functions for distance-to-plane restraint
python/protocol.py
fixes to xplor manual URLs
added helper function:
initCarb13
loadPDB:
added optional string argument
matchInexactAtomEntry:
added check for residue name mismatch
loadPBD: added verbose argument
added pseudoResNames:
residue names to ignore when counting unreadable pdb ATOM entries
initCoords:
maxUnreadEntries is now a tuple, and value increased.
downloadPDB:
now remove temporary .pdb file
initCoords:
overload maxUnreadEntries to allow number to be specified as
fraction of the number of residues.
readPDB renamed to downloadPDB
loadPDB: now has two arguments, to load from file or url
matchInexactAtomEntry:
now bomb if a nonnumeric resid is encountered
altloc- now treat with PDBTool.allowedAltLoc
initCoords:
added maxUnreadEntries argument - to bomb on psf/pdb mismatches
added loadPDB, readPDB helpers, to aid in reading PDB entries from the net
reverted to previous version of genExtendedStructure
genExtendedStructure:
added genWithoutProtons argument to trigger an alternate algorithm
in which a sub-XplorSimulation was created without protons and first
fixed-up. Then protons were added with hbuild. The idea was that
this would be a faster algorithm. Unfortunately, it turned out to
not be the case.
fixupCovalentGeom:
now check that the same pot combination is never used twice in a row.
added an additional verbose level.
genExtendedStructure:
added maxFixupIters argument
python/psfGen.py
pdbToSeq: new arguments:
useSeqres: defaults to false, better to read sequence from ATOM
records
useChainID: useChainID - overrides segment name by default
also: now terminate sequence determination when an ENDMDL record is found
seq2PSF: added support for n-terminal ACE residue
fixes so that a nondefault XplorSimulation can be used
residueTypes changed from tuples to lists
python/residueAffPotTools.py
included simulation argument in AtomSel constructor
create_ResidueAffPot:
added sequentialCutoff argument
analyze:
fixed attractive reporting.
added repulsive report
SelNBPot/ ResidueAffPot documentation
added selNBPot/ residueAffPot--
empirical potential to capture hydrophobic forces.
Current potential based on a K. Dill contact map.
python/restraintStats.py
summarizeTerms:
now break out terms in PotLists in a separate listing, s.t. the
total energy is approximately the sum of all terms.
added number of restraints column to the summary output.
python/selectTools.py
numResidues:
removed spurious print statement
updates to rigidNucleicSelections
added convertToAtom
python/simulationTools.py
testGradient:
added tolerance and epsilon arguments
gradient difference is now scaled by gradient magnitude
testGradient:
added optional components argument
now output is better formatted, and has a header.
StructureLoop constructor:
logic to better handle case where # procs > # structures. Avoid
error message and print informational message.
added comment concerning refactoring StructureLoop.genAveStruct
testGradient: updated the docstring
python/surfaceTools.py
create_SurfaceArea:
added radiusType argument, support for heavyatom radius parameters
support for XplorWrapProc XplorSimulations
quiet XPLOR output
python/varTensorTools.py
update to work with XplorWrapProc
calcTensor_ensemble: added svdTolerange parameter; _analyze:
fix problem with axes exactly alon xyz direction
python/xplorSimulation.i
getXplorSimulation: added default argument
Fortran source
added the DIRS XPLOR term from N. Tjandra
RAMA potential term:
in files:
databases/torsions_gaussians
databases/torsions_quarts/
databases/torsions_raw
Changed delphic torsion setup scripts. In code that selects
free and disulfide bonded cysteines, I no longer use the
existence of an HG atom as an indicator of whether or not a
residue is in a disulfide. Rather, I actually look for an SG
atom that's bonded to the current residue's SG. Thus,
situations where the HG is missing, but no actual disulfide
bond exists, will not be treated as if they were disulfides,
eliminating a small source of errors.
In cases where users have deleted the HGs and implemented the
disulfide using NOEs, the DELPHIC torsion restraint will treat
the cysteines as if they were not disulfide bonded. Since
NOE-based disulfides are not likely to have correct CB-SG-SG
bond angles, there's no point in trying to have correct
CB-SG-SG-CB torsion angles.
This change to the setup scripts also eliminated a source of
These corrections may result in minor changes to xplor output
of various scripts! Specifically, they will probably
eliminate a few lines of "no atoms selected" style errors in
the output of the DELPHIC torsion setup calls.
MANY THANKS to Chun Tang from GMC's lab for catching this!
source/darwintime.f
split out GETSYS into separate file for x86, ppc
source/energy.f
added the qatmchk argument to the XPLOR energy() subroutine.
This defaults to .TRUE. for all XPLOR use. Within the C++ interface it is
.FALSE.
This is for performance in addition to provide proper (not crash)
behavior, particularly when gradient minimizing.
source/nbonds.f
upinb: suppress normal printing of 'Ran out of space' message
source/update.f
suppress SCRATC-warning: message if WRNLEV==0
source/noe.f
Eliminated weird status message. Whenever R-6 averaging was
selected, xplor would print "R-6 averaging.", for no apparent
reason. Wouldn't do that for any other averaging type.
Updated documentation of the help message for the
NOE ASSIgn statement to reflect the existence of the
ASSIgn ... OR syntax.
Marvin/PASD updates
marvin/MarvinNOEPotential.cc
Added hasExplicitInverseException routine, and added == operator to
ExplicitInverseException
marvin/Peak.hh
Added isCrowded flag to Peak class
marvin/PeakAssignment.cc
Added isBackbone flag, isBackboneSequential function.
Moved primarySequenceDistance routine to ShiftAssignment class
to make it available in more cases.
marvin/ShiftAssignment.cc
Moved primarySequenceDistance calcualtion from PeakAssignment to here
tcl/aeneas_tools.tcl
change set A
1. Bug fix to reportUnassignedAtoms: No longer complains about
missing proline Ns
2. Added -bbn-seq flag to PSD filter
3. Added markCrowdedPeaks proc, for use by stripeCorrection
4. Updated stripeCorrection for markCrowdedPeaks
5. Updated stripeCorrection to handle cases where no target is
expected (eg., in 3dN with only intraresidue peaks used as targets)
6. added netFilterMini, the poorly-named residue-pair version of
the network filter
7. Added convenience routines for processing:
standard3dInitMatch
standard4dInitMatch
standardJointFilter
8. Added passSummaryJointFilter, which I'll probably remove
change set B
1. Made match*d tolerant of shiftAssigns that don't have
chemical shift values.
2. Gave match*d ability to not use shiftAssigns with low
previousLikelihoods.
3. Improved reporting of peaks outside of the spectrum in match*d.
4. Gave recordUnfoldedPositions the ability to work with a
subset of a pot's shiftAssignments.
5. Corrected a not-yet-tickled bug in removeDiagonalPeaks. If
you're enforcing heavyatom positions being near the diagonal
as well (only occurs in 4dCC spectra), then I forgot to
multiply by 1/sqrt(2).
6. Explicitly set previousLikelihood of newly created
ShiftAssigns to 1.0. This doesn't actually change behavior,
since the C++ default was 1.0.
7. Changed networkFilter to not count pairs of SAs that are
to-from partners by default, since they don't generally have
peaks or peakAssignments corresponding to them.
tcl/atomSel.i
AtomSel tcl wrapper code:
extend TCL wrapped class with intersects method to minimize code change.
tcl/import_nmrstar.tcl
Added two features:
1. Can handle cases where shift entries have an author_residue_id code.
2. Expanded automatic mapping of nmr-star atom names to xplor
atom names. There should be very little need for editing
nmr-star shift tables by hand any more.
tcl/marvin_lowlevel.tcl
reverted change: status messages go on stdout, not stderr
Added binCenter routine, which is used by the correctShiftOffset proc.
Also re- re- re- corrected the updateUser routine, which needs to spit
its output to stderr, rather than stdout. It does NOTHING if xplor
isn't called with the -verb flag, so changing it to stdout BREAKS
the expected output. Please leave this as is, and flag any test
or example scripts that use -verb as errors instead.
changed verbose output from stderr to stdout
tcl/noe_reporting.tcl
Greatly expanded statistics reported by the
summarizeMarvinPass routine.
tcl/noe_selecting.tcl
Added likelihoodLessThanOrEqualTo and likelihoodGreaterThanOrEqualTo procs
tcl/sa_protocols.tcl
Added cleanup of covalent geometry XplorPots, and made some minor changes
to the "new" pass3 protocol, which includes inverse forces and is used
with likelihoods direct from jointFilter.tcl, rather than from a pass
of structure calculations
tcl/sa_tools.tcl
Added flag to grabPDBfiles to allow user to specify a particular
model number within the PDB file to read
tcl/selection_tools.tcl
Fixed incorrect error message
tcl/shiftassign_tools.tcl
Added ConsolidateIdenticalStereopartners proc, which handles some bad
shift tables I found on the BioMagResBank.
Also added some minor bugfixes, one of which was caught by the
initMatchTest
Topology and Parameter files
toppar/ion.par
added ion.top/par from J. Howarth - probably cribbed from CNS
toppar/ion.top
added ion.top/par from J. Howarth - probably cribbed from CNS
toppar/nag.par
NAG topology and parameter files contributed by John Vakonakis
toppar/protein-1.0.par
added missing IMPRoper for ACE methyl
VMD interface
vmd/publicVMDInter.cc
added colorMeth argument to bond method
many documentation updates
Changes from 2.16 to 2.17
************** C++ Layer changes **************
now use the supplied lapack, blas by default
CDSlib/cdsVector.cc
added alloc member - so that instance information can be stored.
added loadRawArray method - to load contents from a C-style array.
CDSlib/rc_ptr.cc
added reset method + test
CDSlib/sthead.hh
added global typedefs: MutexType SemaphoreType. These can be
overridden by platform-specific includes
common/avePot.hh
scale no longer sets/uses subPot's value - now they're multiplicative
common/derivList.hh
changed argument names so that swig would supply default Simualtion*
arguments.
common/ensemblePot.cc
sharedPID member: added mechanism to detect intervening calls
to fork(), and fail if detected
common/ensembleSimulation.cc
barrier: re-enable exception thrown upon loss of member synchronization
moved atom data arrays out of Simulation::SharedData into its parent.
Lesson: never, never place pointers in shared memory.
mods due to changes in Semaphore, Mutex:
now explicitly place Simulation::bThreadMutex and
EnsembleMemberSimulation::sem in shared (mmapped) memory,
and explicitly clean them up
mods due to changes in Simulation
common/mmapAlloc.cc
added debug statement
alloc: added optional uniqueID argument- overrides static value
free: now correctly handles 0 pointers
common/mutex-sem.cc
semaphore:
changed sem type to SemaphoreType - this is currently
defined in arch.hh (in arch/$ARCH/include) - from a
pointer type. This avoids one memory dereference, but more
importantly, allows better control of where in memory the
full Semaphore object resides.
[ note that previously, sem was manually placed in mmaped memory for
shared usage. Now a shared Semaphore should be placed in
shared memory explicitly. ]
Mutex type is now explicitly MutexType, and not a void*. The current
implementation is in terms of an underlying semaphore. This might be a
template argument in the future. Again, memory localization is
simplified.
common/pdbTool.cc
added useChainID flag
chainID --> segname override; initial altLoc support
common/simulation.cc
resizeAtomArrays method removed, replaced with resizeAtomData.
add/clearBondedPair methods removed
changes to support XplorWrapProc:
all atom, and bond data now live in member data of type AtomData
moved atom data arrays out of Simulation::SharedData into its parent.
common/xplorPot.cc
added simulation() method
energy and derivs methods now call down to corresponding
XplorWrap methods
common/xplorSimulation.cc
renamed static method simulation() to defaultSimulation()
mods to accomodate XplorWrapProc
wrap() method is no longer const.
added override of resizeAtomData
constructur: now append child pid to simulation name for nonlocal
XplorSimulations
syncTo: pass modified member to slave process
common/xplorWrap.cc
changes as in header
added energy and derivs methods
made public, virtual methods to support XplorWrapProc
added local flag
openFile: fixed removal of ASSFIL info message
added en/disableOutput and fastCommand specializations to XplorWrapProc
const changes; added energy/derivs methods; select changed to virtual
common/xplorWrapProc.cc
XplorWrapProc: wrapper to run XPLOR as separate process, w/
shared memory communication. This allows one to set up
multiple XPLOR simulations with different structures within
one instance of Xplor-NIH.
intVar/Makefile
added -LEXEDIR
intVar/dint-test.cc
fixup for printCM --> printStepDetails change
intVar/dinternal.cc
-printCM renamed to printStepDetails and exported to PublicIVM
-large timestep warning now doesn't print unless printStepInfo is
enabled
intVar/publicIVM.cc
syncPos: added (untested) recentering code
intVar/publicIVM.hh
printCM renamed to printStepDetails and exported to PublicIVM
nmrPot/csaPot.cc nmrPot/rdcPot1.cc nmrPot/varTensor.cc
VarTensor:
added initial support for ensembleAxis()
this to support varTensorTools.calcTensor_ensemble
nmrPot/noePot.cc
added *untested* log normal potType
nmrPot/surfaceArea.cc
mods for getting at internal deriv info
mods to expose class details to SWIG - mostly meaning unnesting classes
************** Platform-specific changes **************
Darwin/Intel
updates so that LOCAL_CC, etc work ok
now use -llapack -lblas for LAPACK_LIB
createF77SharedLibrary:
remove FLD_FLAGS
now supply default values of CC, CXX
added default value for F77
arch/Darwin_8_x86/python/Makefile
removed DARWIN_LAPACK_LIB redirection
arch/Darwin_8_x86/source/Makefile
disable some optimization reductions
reduced optimization level to avoid crash in orient tests:
orientations, parser
Irix
arch/IRIX64_6.5/Makefile.defs
added explicit def. of BLAS_LIB (to libscs)
Linux/x86
arch/Linux_2.2_i686/Makefile.defs
update for intel compilers version 9.1:
add -axP flag which allows generation of much faster Fortran code on
Core machines, with a slight penalty on althons.
for pgi build, add -lpgsse2 for lapack
added default values for CC, CXX
************** User-invoked scripts **************
bin/pty-xplor (used by VMD-XPLOR)
change from an indiscriminate wait to waitpid...
bin/pyXplor.in
whitespace protection: added missing quotes
bin/seq2psf.in
added the -custom_rename option - for nucleic acid naming
bin/xplor.in
-now export XPLOR_EXE to environment: so XplorWrapProc can
spawn proper exe
-updated behavior for finish-up when running parallel jobs:
now wait for only the first child job (process 0). That job has
already waited for the other active jobs in python/xplorFinal.py
************** Documentation updates **************
online tutorial
merged changes from class of 2006/12/08
online Xplor reference manual
added references for wildcards in the NOE syntax section.
helplib/nih-py-avePot
scale no longer sets/uses subPot's value - now they're multiplicative
helplib/nih-py-ensembleSimulation
updated w/ note about straddling potential terms
helplib/nih-py-ivm
updated hinge() method docs
helplib/nih-py-noePot
updated deviation docs a bit
helplib/nih-py-varTensor
nmrPot
helplib/faq/node0950.txt
updated hyperlinks into the XPLOR manual
************** Example script updates **************
eginput/PSF_generation
added pdbTest
download and verify psf generation and coordinate reading
added testPDB2PSF script and support files
validate PSF generation.
eginput/PSF_generation/addAtoms.py
updated dynamics stespsize
eginput/cmdline
added testParallel.py
basic validation of parallel execution and communication capability
eginput/dna_refi/
added ensemble.py
- ennsemble refinement using RDCs, CSAs, solution scattering info
added plotIrange.py
- calculation solution X-ray scattering curve
eginput/dna_refi/refine_full.py
fixup to pdbToPSF by addition of customRename arg
move covalentMinimize to before tensor atom creation
eginput/gb1_rdc/
added pairRMSD.py to calc pairwise positional rmsd
eginput/gb1_rdc/refine.py
changed CDIH threshold back to the default value
eginput/gb1_rdc/sa_tmv_bice_rgyr.inp
reworked to run properly when -parallel is specified
eginput/marvin
removed il4, protg example cases
Disulfides are now treated with bonds, not NOEs.
Scripts include support for running example in quick mode.
quick mode:
-only calculates 20 structures per pass.
-only calculates structure of the first 36 residues of CVN.
-write_subset_*.tcl does the first matching of the complete
set of peaks to the first 36 residues. These scripts
write out PIPP PCK tables of the assignable peaks that are
then used by the initMatch*tcl scripts, which should speed
them up considerably.
-subset_talos_pred.tab is just an edited version of
talos_pred.tab, covering only the first 36 residues.
initMatch scripts use shift referencing correction, stripe correction,
network filtering, and primary sequence distance filtering.
Replaced pass1 with pass2, since I now have good starting likelihoods
from the network filtering.
resByRes.tcl produces a report of the contacts to and from
every residue.
eginput/marvin/cvn/check_talos_predictions.tcl
Eliminated direct readin of parameter file--now handled
automatically by readParamPsfPdb
eginput/marvin/cvn/cvn_c13noe.shifts
Corrected a wrong residue name in shift table
eginput/protG/.runAll
fixed calcTensor line
eginput/protG/anneal.inp
cosmetic change
************** Python Interface Changes **************
python/Makefile
dist rule: copy .lines files over
.so build rule: added LAPACK_LIB
python/atomAction.py
fixes for selections entered as strings
randomizeDomainPos:
various fixups
added methods:
copyAtomCoords
randomizeDomainPos
removed global import of vec3 module contents
python/cdsList.i
added instantiation of CDSList_double
python/cdsMatrix.i
added constructor from list of lists
changed int to float to get proper type deduction of sqrt
added typemaps for DComplex
added SymMatrix
added eigen(SymMatrix/CDSMatrix) functions
added trace, det functions
python/derivList.i
changed argument name
python/ensembleSimulation.i
added fromSimulation downconverter function
python/ivm.py
enabled printStepDetails
minimizeEscape:
changed default numSteps
added docstring
setBaseAtoms:
fix to support multiple Simulations
breakAllBondsIn:
optimization: not good enough- this must be placed in the C++ layer.
fixed treatment of finalTime when minimization==True: ignore it
python/nonBondTools.py
updated to use new PRINT_FILE and PREV_PRINT_FILE xplor variables
python/protocol.py
updated hyperlinks into the XPLOR manual
matchInexactAtomEntry:
added rules for strange nucleic base HN atom naming
revived/rejuvinated covalentMinimize-
it is used by two scripts in eginput/dna_refi
initCoorde: added useChainID flag
matchInexact: handle chainID, altLoc
fixupCovalentGeom:
handle increased levels of verbosity
fixupCovalentGeom:
*constraints interaction statement now placed after initNBond, so it
doesn't get clobbered.
*nicer verbose printouts
fixupCovalentGeom: added rigidRegions arg, xSim fixup
fixupCovalentGeom:
added maxViols optional argument
for minimization, now step dEPred to current energy / 10. This to
avoid large step sizes when we start very close to the minimum.
now print out violations in extraTerms
updated to support multiple XplorSimulations
multiple methods now have optional simulation argument
removed unused covalentMinimize function
fixups for fixupCovalentGeom
cartesianTopology:
fix to allow sel object to be an AtomSel instead of only a string
fixupCovalentGeom:
mods to allow this to run on nonlocal XplorSimulations:
use the IVM instead of XPLOR's dynamics and minimization engines
(note that the runtime is longer, but the number of iterations is
about 10x smaller)
updated to use new PRINT_FILE and PREV_PRINT_FILE xplor variables
initDihedrals:
added optional string argument, for specifying restraint
table as a string
fixupCovalentGeom:
added extraTerms argument - additional pot terms to be satisfied.
fixupCovalentGeom:
updated to work when using EnsembleSimulations
initNBon: added more docstring about cutnb/tolerance relationship
python/psfGen.py
pdbToSeq:
fixes so that the segment name gets read/set correctly.
added ACE as a protein residue type
seqres:
fix case of missing chainID in SEQRES field- now we really read the
SEGID from the first matching ATOM field
deal properly with chainID (override segid)
psfGen.seqToPSF:
Marius' custom nucleic atom renamings are no longer longer
the default but still available via the customRename flag.
deduceSeqType:
added URA to URI as residue name which will trigger identification
as RNA.
python/pyConvert.cc
fromPy(double):
fixed error checking to not crash when a complex is given
python/pyInterp.cc
constructor:
initialize exitStatus
python/sansPotTools.py
create_SANSPot: added weightByExpt toggle
python/selectTools.py
fixes to properly deal with multiple Simulations:
sim arguments to functions removed
python/simulationTools.py
StructureLoop:
changed default value of averageCompSel to omit axis atoms.
python/socketComm.py
removed debug messages
barrier:
added cookie info (calling frame's line number) to barrier message
Connection constructor:
handle failure of gethostbyaddr: fall back to just using ip number
to identify the remote host.
Comm: constructor: increased default timeout length to 1.6 days
python/solnScatPotTools.py
added Chi^2 to analyze output
python/surfaceArea.i
mods for getting at internal deriv info
instantiate newly unnested classes
python/varTensorTools.py
added calcTensor_ensemble; added support for ensembleAxis to
saupeMatrix and analyze
python/xplorFinal.py
xplor.exitStatus is now treated differently:
any nonzero value will cause error message to be printed, and
final time stats to be skipped.
python/xplorInit.py
parseArguments:
support the case that argument ``options'' is a single string
parseArguments:
formatting changes in error message.
python/xplorPot.i
added support for restriants() method for the CDIH term.
the method is registered during XplorPot construction
python/xplorPotTools.py
updates to support multiple XplorSimulations
updated to use new PRINT_FILE and PREV_PRINT_FILE xplor variables
added support for restriants() method for the CDIH term.
the method is registered during XplorPot construction
PotData constructor:
added support for numRestraints - for CDIH term only.
motivated by Jurgen Doreleijers
python/xplorSimulation.i
getXplorSimulation:
fixup so that this works for size=1 ensembleSimulations.
moved getXplorSimulation here from protocol.py
added converter (downcaster) from Simulation
added helpers:
enable/disableOutput
fixups for python shell and select wrapper methods
added python convenience methods: shell, select, command, fastCommand
************** XPLOR code changes **************
source/ccalls.c
getusername: fix for case of failure in getpwuid
source/energy.f source/etor.f source/pick.f source/cstran.f
fix nasty bug in etor: the check for bond colinearity would
fire off at fairly large values of the dot product.
source/funct.fcm source/selrpn.f source/string.f
copyst subroutine:
now set new copyst_err logical if target string size is too small
selrpn:
make use of copyst_err to set selerr appropriately.
This allows C++ AtomSel object to throw an exception on such errors.
source/hbuild.f
format statement syntax fixup
source/noe.f
added log-normal potential type
source/parmio.f
fix for problem first noted in 1998:
http://www.bio.net/bionet/mm/x-plor/1998-August/001729.html
vdw radii were incorrectly calculated from nbfix statements. This
impacts the repel potential, and allows atoms to get too close.
source/parser.f
source/xplorFunc.f
added DECLARed variables PRINT_FILE and PREV_PRINT_FILE
involved increasing the length of CMDPMX in symbol.fcm
getvar_asString:
now calls TRIMM on returned string
source/prot.f
Correction to the electric field part of proton shift
calculation. I wasn't summing up the effects of every heavy
atom on each proton--rather, I was just returning the last
heavyatom's effect on each proton. David Wilton from
Mike Williamson's lab caught this.
source/xplor.c
added -sharedProc cmdline flag with call to C++ xplorwrapproc_slave
changed new_argv initialization to ANSI C - for pgcc
fortlib/lapack/Makefile
no longer include routines which are already in blas
fortlib/lapack/dsecnd.f
commented out unnecessary external declaration for ETIME intrinsic
************** Changes to the Marvin/PASD facility **************
marvin/MarvinNOEPotential.cc
-Eliminated generation of inverse exceptions for peaks expected
to be near the diagonal, since that's handled by TCL.
-Also eliminated a double-counting of accounted & unaccounted
neighbors in updateNoeCompleteness. The original code
produced the same numbers as the current code, but spent twice
as long doing it.
-Added method to reset the explicit inverse exceptions list
tcl/aeneas_tools.tcl
Added initializeLikelihoodsFromFilters
Several changes:
1. match* routines now check whether a ShiftAssignment
actually has a proton/heavyatom shift before trying to
match it to a peak. To support an (unused by default)
option in stripe matching, which turns off SAs that don't
have stripe targets.
2. Eliminated recenterShiftAssignments. Replaced with
stripeCorrection.
3. Eliminated origGenerateNetworkLikelihoods,
try2GenerateNetworkLikelihoods, maxLinksInAgreement, and
generateNetworkLikelihoods. Replaced with networkFilter.
4. NetworkFilter can accept multiple pots and analyze them together.
5. Eliminated stripeFilter and gatherTargetShiftValues.
Replaced by stripeCorrection.
6. Added correctShiftReferencing. Detects any constant
offset between the from and to proton dimensions and
corrects peak positions to eliminate it.
7. Added ability to create (with createExplicitExceptions)
explicit exceptions for peaks expected to appear within solvent
lines.
Note: file also includes beginnings of secondary structure
Hbond detection (with secStructFilter), but it doesn't work
well yet, and is not used in released scripts.
addition in stripe filter--ability to update shiftAssignments'
shift values to the targets'.
Lots of changes to the netFilter code, but mostly to the
obsolete versions.
Modified enforceExpectedSymmetry proc into new symmetryFilter proc.
match*d now uses improved mechanism for handling unfolded
peak locations. UnfoldPeakPosnToMatch is now the key proc,
and it always returns two possible unfolded locations: one
with an even number of folds, and one with an odd number of
folds. match*d tries all combinations of those possibilities
in searching for peak position/unfolded SA posn matches.
multiple files:
Update to use atomSel class's == and intersects
operators. Replaced occurrences of old TCL procs atomSelsEqual
and atomSelsOverlap.
tcl/import_pipp.tcl
-Added a proc to write PIPP PCK tables. Doesn't yet handle PIPP-style
assignments. Also doesn't handle writing slice numbers. Also missing
ability to generate the DATA AXIS lines that are used to set spectral
ranges. Other than that, it's quite complete :-/
-Improved comment-skipping in PIPP tables
-Added rules in code for importing PIPP shift tables, ignoring
lines beginning CUR_TYPE and ignoring lines commented out with
a leading #, as Dan Garrett sometimes has.
tcl/noe_reporting.tcl
Changed format of one output line.
Several additions:
1. reportNOEaccuracy can now report on the accuracy of
peakAssigns above a certain likelihood, or those below a certain
likelihood. Used to eval accuracy of accepted peakAssigns
and rejected peakAssigns, respectively.
2. reportNOEprecision now also reports on NOE
discrimination, the fraction of peakAssigns that is either >
a high likelihood cutoff or < a low likelihood cutoff. High
NOE discrimination correlates with convergence.
3. markGoodPeakAssignments reports number of unassigned
peaks, for convenience.
4. initialPeakAnalysis can now be set to report statistics
based on counting all peakAssigns, or only those whose
likelihoods are within a given range.
Useful for evaluating performance of filters.
-Added calculation of fbad-long using previousLikelihoods
arising from peakAssign filters
-Expanded residue-by-residue reporting function to combine
several pots' peaks into one report.
-Modified summarizeMarvinResults proc. Added separate flags
for violation and high-likelihood values to be used while
rescuing filtered PAs, so that the structures' accuracy need
not be too great to bring in filtered PAs.
-Added logic in PA rescuing, so that I don't add PAs to peaks
that already have high-likelihood PAs.
-Expanded reporting of the filtered-PA-rescuing stuff.
tcl/noe_tools.tcl
-Corrected wording of a thrown error--old version indicated
wrong flag syntax
-A few Marvin peak reading & writing improvements:
-Extended ability to parse both current marvin-formatted .peaks
files and older marvin-formatted .restraints files.
-Improved xplor-formatted output. Added check for
peakAssignments with intersecting to & from selections, so
that they won't be written to xplor files--classic xplor can't
deal with them.
-Also improved handling of bounds corrections--I now find the
maximal upper and lower bounds corrections for all the
peakAssignments of a given peak, and use those in generating
the xplor ASSIgn's distance bounds.
-added support for Michael Nilges's extended-OR format for NOE
ASSIgns. If a given marvin peak has multiple peakAssignments
to be written, the peak is written as an
ASSIgn (sel) (sel) d dmin dplus OR (sel) (sel) OR ...
restraint, which the current classic NOE code can parse correctly.
-Two peak-reading bugfixes, plus I moved removeLowLikelihoodPAs from
aeneas to here, and added removeFilteredPAs. RemoveFilteredPAs is used
at the end of initMatch scripts to clear out the filtered PAs.
-RemoveLowLikelihoodPAs is used in convertToXplor, as a final
cleanup before creating xplor-style NOE tables.
-Added consolidateClosePeaks (from make_random_noes.tcl).
-added support for reading & writing the number of failed
filters for each peakAssignment.
-Caught a few bugs in the xplor-format NOE reading routine.
-now remove all explicit inverse exceptions before reading a
new file of them
tcl/pdb_support.tcl
Added support for reading specific models from a PDB file
tcl/sa_protocols.tcl
pass? protocols have been reworked.
tcl/sa_tools.tcl
-added code to print a Python traceback when an exception is encountered
-Eliminated minor memory leak from non-cleaned-up atomSel.
-Includes beginning of PDB cluster analysis. Not used in
released scripts.
-use appropriate env variables instead of paths relative to XPLOR_DIR
tcl/selection_tools.tcl
-Added a fairly complete test script for all the procs in
selection tools.
-Some bugfixes to selection tools, engendered by the test.
-new code: previous and nextResidue procs
-memory leak fixes in makeSelectionNonStereospecific and in
stereopartnerForSelection.
tcl/shiftassign_tools.tcl
-Added ability of initialShiftAssignmentAnalysis to make
reports based on all peakAssignments, or only on those with
likelihoods within a given range. Analagous to the changes in
initialPeakAssignmentAnalysis.
-Corrected & expanded reporting of NOE completeness, so
that it agrees with numbers generated by
MarvinNOEPotential::updateNoeCompleteness. Also reports
specifically on accuracy of explicit exceptions that do not
correspond to a peakAssignment (ie., were generated by network
filtering, or diagonal exclusion)
-added proc to group shiftAssignments by residue, which is used
in a few places (eg., netFilter's intraresidue neighborhoods)
tcl/talos_tools.tcl
-Added proc to read in a TALOS .tab file and write out an xplor
cdih table. Previous code reads TALOS and creates dihedral
restraints directly, with no chance to output an
xplor-formatted file. This isn't pretty, but it'll do
for now. Useful when going to python scripts, where TCL
readTalos isn't convenient.
-Added ability to skip commented lines
************** Parameter/Topology updates **************
toppar/nucleic-1.1.par toppar/nucleic-1.1.top
intended changes somehow got dropped from the previous version
version string in note updated
added missing impropers for NH2 base groups and H2'/''
bumped minor version number
fixes to stereochem defs to match IUPAC - contributed by J. Doreliejers
toppar/nucleic-2.0.par toppar/nucleic-2.0.top
naming corrections
added missing impropers
version number bump to 2.0
toppar/protein-2.0.par toppar/protein-2.0.top
naming corrections
added missing impropers
version number bump to 2.0
************** VMD interface changes **************
vmd/vmdInter.cc
remove some ill-advised radius-setting statements
------------------------------------------------------------
Changes from 2.15 to 2.16
General
now provide native intel/Mac binary package
documentation:
XPLOR reference manual has significant updates
various updates/corrections to Python reference manual
mailing list now searchable from
http://dcb.cit.nih.gov/mailman/listinfo/xplor-nih -- thanks to Gmane.
pty-xplor:
added the -xhost command-line option
xplor, pyXplor scripts:
now protect space, special characters in command-line arguments
XPLOR interface
added pseudo-CSA (PCSA) potential term, test case from A. Grishaev
see A. Grishaev, J. Ying, A. Bax (2006) "Pseudo-CSA restraints for
NMR refinement of nucleic acid structure" J. Am. Chem. Soc. 128,
10010-10011.
source/ccalls.c
frename: now remove trailing spaces from old as well as new
(contributed by J. Howarth)
frtn_gethostname: workaround for some broken gethostname
added new FRTN_CLOCK c function
source/cstran.f,v
changed dihe restrain info message, and now print to DUNIT
source/fantalin.f
source/fantacross.f
output fixups, inspired by J. Howarth
source/hbdb.f
fixed array bounds error noted by J. Howarth
source/orientations.f
added ugly hack/memory leak to get working on Darwin_x86
source/saxs.f
saxsinit2:
initialize glocc array to 0
rearrange argument decl's, variable definitions to normal conventions
source/linuxtime.f
source/x86_64time.f
change VCPU to call new FRTN_CLOCK c function
source/xdipolar_coup.f,v
fixed rhomicity definition in help text
source/xplor.c
changed argument treatment: now all options we know about are
removed from the arg list (except for -tcl)
Python Interface
builtin xplor module
added helper function xplor.parseArguments() for argument parsing and
validation.
varTensor:
will now throw exception if Rh (rhombicity) is specified outside the legal
range
cdsVector:
added constructor taking size and fixed value arguments
findPython:
USE_MACOSX_FRAMEWORKS is now an env var
ivm.py:
subtle change to breakBond: in 1st arg passed to convertToSelectionIndices
protocol.py:
matchInexactAtomEntry:
-added rule matching H to HN
-added matching rule, examining final character. Came from ILE
difference in XPLOR, charmm22 ff.
fixupCovalentGeom:
-change treatment of sel argument: do not re-evaluate selection
-save and reset mass values
-placed default tolerances in argument list
-split constraints interaction selection line so that longer
selections are possible before COMAX errors.
-exit: fixup exit message, and customize the exception thrown
initCoords:
added optional erase argument
psfGen.py:
dna residueType: added URI residue
deduceSeqType:
differentiate DNA/RNA by presence of URI
pdbToSeq:
fixed extraction of the resid field to get all four characters.
pdbToPSF:
changed seqToPSF to not deprotonateHIS- can be done in pdb
pyConvert.hh:
added toPy(FloatPair)
pyXplor.cc:
pythonStartup:
now employ xplorInit.py to do initial argv parsing
python_interp:
now executes xplor.scriptName (instead of first item on argv),
if it's not empty.
change:
now run xplorInit.py in the context of the module ``xplor.''
xplorInit:
much less is now enclosed in strings
added parseArguments helper
sansPotTools.py:
exchangableName:
now print warning message if residue is not supported, don't crash
moved solventVolumeSet definitions to solnScatPotTools
create_SANSPot:
added preweighted option
added radiusScale (now properly treat excluded volume)
added fractionD2O (now deal with D2O solvent)
added exchangeFraction (to deal with exchangable protons in D2O)
added normalizeIndex argument
now clip negative I values to zero
added useGlobs function and glob defs.
-support separate proton globbing
changed scattering length units by 10
also fixed units in comments.
changed used SolnScatPot version from complex to real
added specialized useGlobs frontend
simulationTools.py:
genFilename:
updated to use xplor.scriptName.
StructureLoop:
added averageSortPots argument - terms to use to sort structures
genAveStats:
now call averageContext inside stats loop
added averageTopNum as alternative to averageTopFraction
added averageAccept function argument to report on only allowed structures.
StructureLoop.genAveStats:
deal properly with the case of no acceptable structures
change location of averageContext call: now done for each structure,
so that things like globCorrect() get set properly.
added convertToPotList function
testGradient: added alwaysPrint option
documentation update
socketComm.py
startServer: write message to console on failure
python/solnScatPot.i
added pairDistribution function
added import during module initialization
python/solnScatPotTools.py
add Pr function:
weighted pairwise distance distribution function.
supports EnsembleSimulations with proper averaging.
useGlobs:
added verbose entry which turns on single-glob atom listing
python/solnXRayPotTools.py
useGlobs: support for verbose argument
moved solventVolumeSet definitions to solnScatPotTools
moved useGlobs from solnXRayPotTools.py to solnScatPotTools.py and
generalized, then placed wrapper back in solnXRayPotTools.py
python/varTensorTools.py
calcTensor:
now able to calculate the tensor from an ensemble of structures (not
necessarily an EnsembleSimulation)
python/xplorInit.py
fixed up to deal with command-line options, arguments
added xplor.parseArguments:
uses writeConsole to print command-line error message
change:
now run xplorInit.py in the context of the module ``xplor.''
much less is now enclosed in strings
eginput/gb1_rdc:
.py files updated
StructureLoop in .py files now implements averageSortPots argument
eginput/protG:
added calcTensor.py to calculate alignment tensor from expt rdcs + structure
grid_search.inp - add comments on use
tang.py - updated to deal with segids, unknown resid types
TCL interface
tcl/Makefile
deal with empty TK_INIT_DIR def
tcl/findTCL
handle case of missing tk_library
USE_MACOSX_FRAMEWORKS is now an env var
C++ Layer Changes
rdcWavePot:
updated
atomSel.cc:
reimplemented intersects() method for speed.
noePot.cc:
updated defaults to be consistent with those in noePotTools
change: now default to HARD potType
NOE tables
increased maximum distance to 10^6 (in ASSIgn statement)
added a check that atom selections don't intersect.
allow zero distances
Changes from 2.14 to 2.15
General
* Parallel job synchronization now uses tcp communication
- allows some nodes to be down at startup (will ignore those
hosts). Also allows for xplor-nih or whole machines to crash
and not hang the parallel calculation- structures scheduled on
those nodes will be ignored.
- requires communication over port 9021 (or that specified by the
-pport option)
*Changes to the command-line xplor script:
-fixed -smp so that -parallel need not be specified.
-support for new socket communication facility:
added support for socketComm functionality with -pport, -phost options
and XPLOR_PPORT, XPLOR_PHOST env vars.
added -crash_on_startup flag to cause crash if a process doesn't
report in at startup
(for parallel jobs) now redirect file descriptor 9 to stdout
before redirecting to the log file so that we're able to send
messages to the user: parallel calcs now print cpu info summary
to stdout at exit
-remove LD_ASSUME_KERNEL hack - this caused problems on newer
distributions. This change may break things on FC2.
*startup message: now include the hostname
*Parameter changes:
-protein-1.0.par:
added missing angle parameter for SP patch
-protein-1.0.top:
fixed the YP patch 1cz 1oh 2p angle definition
Python Interface
Binaries now built with Python version 2.4. Source also builds with
version 2.3
./configure: now always performs Python precompilation to avoid race
condition on parallel startup. Also precompile files in bin.$ARCH
Fix XPLOR scripts so that sure we're always using optimization.
atomSelAction: Fit:
fixed ugly bug which could cause the rotation matrix to become an
inversion matrix.
most C++ potential terms with restraints:
added numRestraints() method
added showAllRestraints boolean - if set all restraints are output
in the showViolations() method (but violated terms are flagged).
PDBTool: added support for PDB MODEL records
read() now returns list of unmatched PDB ATOM entries
PotList:
change to rms(): now use individual terms' scale() to weight
the rmsd calc, if the terms are all of the same PotType.
also weight by # restraints.
Also made a fix to violations().
Simulation::atomString:
output has been rationalized.
SimulationWorld:
added cpuTime method
XplorPot:
added delegate so that rms(), violations() methods return useful values
XplorWrap:
select() will now raise an exception if there is an error.
added fastCommand() method
PREPot:
update adding SUM restraints - PRE contributions from
distinguishable groups which contribute to the same relaxation process
SolnXRayPot: renamed to SolnScatPot.
Now supports complex scattering amplitudes
added glob defs for DNA.
cdsMatrix:
fixes to *, - operators
cdsVector:
fixes to - operator
ensembleSimulation:
added helpers: singleThread, multiThread, commBarrier
better EnsembleSimulation cleanup at exit
Modified behavior with EnsembleSimulation fixed
protocol.py:
initCoords:
added support for optional model parameter
added support for unmatched pdb ATOM entries. guessing logic-
togther with the with matchInexactCoords helper.
initDihedrals: fixed default chi2 restraint definitions.
initTopology: fix to allow pathnames relative to pwd and TOPPAR (and absolute
names too).
added initRandomSeed, initialRandomSeed helpers
Distribute seed value to other parallel processes if the seed if
not explicitly specified.
torsion/cartesianTopology:
added oTensors argument which takes a list of VarTensors to set up
according to the setFreedom() method.
psfGen:
cisPeptide: fixed so that it actually works for the non-proline case.
seq2PSF: fix in several patchings to deal properly w/ multiple segids.
pyInterp:
allow triple-single quotes in scripts redirected from stdin.
Python shell: better handling of error conditions- exceptions are now
thrown back to C++, proper exit status is returned
python startup:
errors in startup will now throw exception. Previously only a
warning message was printed.
rdcPotTools:
fixes to dipolar coupling scaling.
Allow using correct gyromagnetic ratio signs.
added DaScale helper function
restraintStats:
fixes for violation amounts
now accumulate and print crossTerms separately from main potList
simulationTools:
StructureLoop:
added averageCrossTerms argument to constructor - so that
non-refined-against terms are listed in statistics, average
printouts
allow averagePotList, crossTerms to be plain python sequences
added new optional paramter: structureNums. Can use
this instead of numStructures, startStructure
calcAverageStructure:
now treat ensembles correctly: calculate the average of the
ensemble-averaged structure.
averageCompSel changed from "not hydro" to "not name H*"
genAveStats: now print out the rmsd values for fitted selection in
addition to the comparison selection. Also write out
these two strings.
writeStructure:
added extraRemarks argument
now writes out seed from protocol.initialRandomSeed
now report pos. rmsd to ave. of calcd struts
analyze():
can now give a single Pot as an argument (doesn't have to be a sequence)
varTensorTools:
calcTensor:
no longer reset oAtom to origin- rather, keep it at its current
position.
fixed handling of non-NH normalized restraints
fixed handling of restraints w/ more than one bond vector
analyze:
fixed calculation of Euler angles
added xyzFromEuler helper
configIVM_fixAxis/RhToOther:
fixes for ensemble simulations.
vmdInter.py:
VMDObject.labels: now allow sel arg to be string
change to object naming so that using file in subdir works
xplorPotTools: now supports COLL term
added minimize.py - optimization algorithms
various small updates to the examples
gb3_ensemble: added order.py example script - refine against order
parameters
Platform Specific
*Darwin:
-threads now supported in VMD interface
-updated to be compilable by gfortran
-rationalized Python libraries linking- they no longer need to be
linked to the xplor binary
*better support for running on Scyld clusters:
-can now specify SCYLD_PROCESSES env var and command-line -parallel
-now eval $cmd so that redirection works on scyld clusters
XPLOR Interface
*enbond: moved NCSOP to heap, removed MNCSYM parameter
*hbdb: removed naamax parameter, and now allow it to grow dynamically.
fixed an array range underflow in hbdbpatt
*plane: PLNINR: reinitialize PLN_NUM to 0 so that the init statement works.
*xplor.f: change behavior for case in which a filename is specified:
now redirect it into stdin, so that the PYTHon and TCL XPLOR
commands work in this mode.
*new variables are defined: START_TIME, START_DATE variables
*tutorial/nmr_ensemble:
filled in missing contents
*multiple modifications to modernize the code - thanks to J. Howarth.
Changes from 2.13 to 2.14
XPLOR interface changes
new XPLOR SAXS module from Alex Grishaev
A. Grishaev, J. Wu, J. Trewhella, and A. Bax, JACS 127, 16621 (2005)
ncs.fcm:
removed MAXNGR static arrays - now dynamically allocated
hbdb.f:
removal of pause statements, prompted by J. Howarth
XPLOR tests:
added new sani and saxs tests
Python Interface changes
new solnXRayPot module for refinement of SAXS and large-angle xray scattering
data.
improved support for Potential terms derived from C++ terms. Eliminates
the step of reconstituting a Python wrapped object by deducing its type.
XplorPot:
threshold, rms(), and violations() methods now work for supported terms.
simulationTools.xplorThreshold has been removed.
XplorWrap:
added new methods: disableOutput, enableOutput to manipulate
XPLOR's echo and wrnlev variables
for convenience, xplorInit places references to these in the global xplor
module.
IVM:
fix for error condition in buildNode:
better identify bend atoms in bad hinge specification
null out IVM's tree_ member when throwing an exception -
so that it doesn't get destructed in this state (causes crash)
python cdsMatrix module:
added CDSMatrix_complex
cdsVector:
added dot(), __mul__(float), __pow__(), sum()
analyze functions: now work better with AvePot terms
noePotTools:
create_NOEPot: now initialize aveType to "sum"
nonBondTools.py:
made messages from XPLOR interface a bit less verbose
rdcPotTools:
specified different nucleic acid NH distance to use in calcing
Da_prefactor.
protocol module:
initNBond:
added selStr argument. onlyCA is now deprecated.
omit ANI residues in constraints interaction statements
initDynamics:
added parameters eTol_minimum, etol_factor
added addDisulfideBond helper function
torsionTopology: modified to call selectTools.breakDisulfides()
structureLoop module:
StructureLoop:
updated so that calcing ave. struct. works for EnsembleSimulations
when generating violation statistics, now only use averageTopFraction
structures (not all structures)
disable creating backups for fit structures if averaging or taking stats
StructureLoop.pdbFile():
now use old object if the name has not changed. This necessary to
retain remarks info.
better per-restraint statistics over all calculated structures.
varTensorTools:
fixes for fixAxisToOther function
added orthogonalize() helper function
Python Swig change for C++ ACCESSOR and MODACCESSOR modules resulting
in large size decreases, simplification in coding.
added posSymmPot: position symmetry- a more powerful version of the NCS term.
Python tests:
added rdcPotTest3, mat3Test, solnXRayTest
Python docs:
csaPot: fixed def. of csa tensor atom s in assignment table.
mat3: updated SymMat3 constructor, element access member docs
TCL Interface changes
PASD/Marvin:
renamed class Restraint to Peak.
tclPosnSymmPot:
Support for Atom and AtomSel based accessors
Changes to the eginput example scripts:
PSF generation: added complex circular peptide example
dna_ref: added refine_full.py script
gb1_rdc: added standalone analyze.py script
anneal.py: changed noe setup so extra terms can be added easily
updated for XplorPot threshold change
protG: anneal.py: updated to produce .viols, stats files
anneal.inp: removed spurious NOE parameter clause
(thanks to Francesca Marassi)
Parameter/Topology changes
nucleic-1.0.par
changed the 5-terminus H'-H'' improper angle values to match it's
minimized value
protein-1.0.top
phosphorylating patches: fixed patch SP, added patch YP
low-level changes:
CDSlib/complex.hh:
added operator-=
added operator*(Complex,T)
added function IEXP(floatType)
CDSlib/mnbrak.cc:
small fix
vec3.hh:
added explicit constructor from integer, so the literal ``0'' can be used.
modified.cc:
registerTo: don't register sim if it's already been registered.
avePot.cc/hh:
fixed calcEnergy/Derivs s.t. the scale factor is not applied twice.
overide scale, threshold accessor methods to use values from the
subpot. Note that the wrong value will be obtained if the object is
accessed as a Pot (the base class). Virtual methods might be a better idea.
Fortran code:
removal of arithmetic if statements, (courtesy of J. Howarth)
prePot:
optimization in inner loop
build change:
now should better handle transitive linked shared libraries
now include required lapack, blas source- but it's use is optional.
mac build now on Darwin_8, (OS X 10.4.4) no longer tested on Darwin_7
added gamma and rjbesel functions from the specfun netlib library.
Changes from 2.12 to 2.13
PASD/Marvin:
- fixed so that the eginput scripts now work.
- changed linear pot to have continuous derivatives
- improved error checking.
eginput scripts:
added gb1_rdc/violStats.py - script to gather violation statistics
over multiple structures.
updated gb1_rdc/anneal.py to collect violation statistics
updated runAll script so can now specify multiple target directories.
XplorPot:
a single instance can now specify multiple XPLOR terms. This to work
around errors when VDW and PVDW are called separately.
noePot:
added Average PotType
updated Python interface tutorial
Source/lowlevel changes
created fortlib directory and moved libfft there
added pppack to fortlib
template library: added Spline class
C++ cleanups. Contribution from Jack Howarth.
EnsemblePot now derives from ModifiedBase
Pot:
now derives from ModifiedBase
added threshold MODACCESSOR.
EnsembleSimulation:
fixed up addDependent, removeDependent, markAsModified methods
Pair class is now a template in CDSlib.
XPLOR interface:
updated sbound.f to remove NMCTAB parameter
nbonds.f: don't print close atom warning messages if messages=off.
bin/makedepend:
now omit entries which end with a slash (/) so it doesn't create
dependencies on directories.
testDist:
now remove WORKDIR before running tests
noePot, rdcPot, csaPot, jCoupPot:
now have direct access to list of Restraint objects
added violation value to printViolations() header
Python interface:
added spline module
Python Interface:
fixed violation reporting in *Tools.py:
threshold values are no longer reset to 0 before analysis.
monteCarlo.py:
bug fix for randomizeTorsions (affected Marvin/PASD)
split off nonBondTools.py from simulationTools.py
protocol.py:
contributed by Greg Zornetzer:
fix for fixupCovalentGeom():
specifying a selection with bonds to a non-selected region would
mess up the interface region.
addUnknownAtoms():
added arguments: dyn_stepsize, dyn_numStepMull, verbose
reduced default stepsize to 0.02ps
simulationTools.py:
StructureLoop:
added genViolationStats flag to constructor, for printing out
violation statistics.
if averaging structures, overwrite the calculated structures with
versions fit to the first structure.
Changes from 2.11.2 to 2.12
Frontend Scripts
- seq2psf:
added -amidate_cterm option
multiple chains are now supported
- xplor script:
more relaiable treatment of the PYTHONHOME env variable
Parameters
- added fixed nucleic.top/par topology/parameter files.
IVM
- fixed bug for torsion angle dynamics with a bond which is initially
*exactly* parallel to the xz plane.
Python Interface
- new functionality in protocol.py:
addUnknownAtoms() see example in eginput/PSF_generation/addAtoms.py
- simulationTools.py:
StructureLoop:
added writeStructure() method which creates a .viols file for each structure
- testGradient:
fixed so that it works with an non-ensemble Simulation
- changed PotName for some terms to be more consistent
- atomAction.py:
SetProperty: fix so that properties with Capitalized letters (such as
residueName) are handled properly.
- cdsVector.py:
norm: now always reduces to a float_type scalar return value
added vec_norm(): performs a norm on each element of a vector
added log()
- simulationTools.py:
analyze(): terms now register themselves for reporting using
registerTerm(), and simulationTools doesn't need to know
about them.
fixes for nonbonded analysis for repel=off
added fileSuffix global variable
used when creating temporary files to avoid races in EnsembleSimulation
calculations
- simulationWorld.py:
added pure-python world() function to access the simulationWorld()
static function.
- trace.py:
added function addModuleName() to make tracing arbitrary modules easier.
- protocol.py:
fixupCovalentGeom: allow sel argument to be a plain string
initDynamics(), initMinimize():
no longer set ivm's constrainLengths. This is part of the topology setup.
added cartesianTopology() helper for ivm setup.
added initTopology()
initParams/initTopology(): will now take sequence type specifiers which
use the new parameters, topology files configured in module local
dictionaries.
- psfGen.py:
now add remark to autogenerated PSFs - to denote their origin
* seqToPSF:
now use protocol.initParams/Topology for initialization.
added the amidate_cterm option
changed default seqType to 'auto'
added disulfide_bonds/bridges arguments.
added support for seqType 'rna'
* pdbToPSF:
now use seqType 'auto' in call to seqToPSF
- pyPot:
rewrote the PyPot constructor to remove need to supply the
second self argument.
- added tests: tkInterTest, ivm3, bigPatch
note that tkInterTest will fail if DISPLAY is not set (or X11 access is
otherwise not available) .
XPLOR interface
- optional output reduction improvements
- updates to allow extra-large residues in patching (removed SEGDIM
parameter from segmnt.f)
- fixes to problems in Fortran code discovered by Darwin's GuardMalloc
- fixes to some paraRestraints code
- fixes to machine dependent code found by gfortran developers
- fixes to deal correctly with case (>8 bonds)
- torsion angle database term: fixed bugs caught by Guillermo Bermejo
VMD-XPLOR interface
- fixed race condition which caused errors when trying to follow the
dynamics of an ensemble.
- pty-xplor: set pager to cat- real pagers cause pty-xplor to hang in
python mode
- added findXcookie to bin files distributed - for more reliable remote
Xplor-NIH/ VMD-XPLOR execution.
Low-Level Changes
- atomSel:
added intersects() operator==() methods,
- template libraries:
cdsIterator.hh: mods so that can be re-assigned.
cdsString.cc: added copy() method which returns a non-reference counted copy.
cdsVector.hh: added scale() method for symmetry with CDSMatrix class
- compilation/development
added support for intel Fortran/C++ compilers, version 9
added version 1.3.25 to list supported swig versions
findPython: now also defines PYTHON_VERSION
PASD/Marvin:
- Significant changes to the Marvin/PASD code -
*** old scripts will need to be modified ***
- note carefully the following change to the initial matching script:
now, the spectral range must be specified by giving the actual
beginning and end of the spectrum (in ppm) along each dimension.
- introduce new datatype, ShiftAssignment
* represents a single entry (or pair of covalently bonded entries)
in a chemical shift table.
* facilitates analysis of the likelihood of a particular spin's
location in the structure and/or the likelihood of its chemical
shifts being correct.
* note difference from the previous version, which only kept track
of the likelihood of a particular assignment of a particular NOE
peak being correct.
- full discussion of these changes will be available in an upcoming
paper.
Changes from 2.11.0 to 2.11.2
PASD/Marvin fixes to correctly handle symmetry peak filter.
Platform specific updates:
- Darwin version 8 (Tiger) is now supported
- amd64: added some support for use of Pathscale fortran
frontend xplor script
- consistent use of TMPDIR env variable, if it is set.
- semaphore cleanup:
grep for current user- to avoid permission violation messages.
Python Interface:
protocol.initNBond():
added onlyCA flag to enable only CA-CA repulsion.
gb1_rdc/refine.py example script:
- further improvements s.t. no explicit parameter configuration is
performed in the structure loop.
- now will compute average structure.
- increased the rdc force constant
simulationTools.analyze():
- now report the number of vdw violations
- now print violation info in a .viols file.
simulationTools:
- added waitForProcess() barrier function.
- StructreLoop:
* added capability to compute average of all structures
* added analyze method which prints violation info to a
file with the structure filename + a '.viols' suffix.
* added StaticRamp class
* added InitialParams, FinalParams class, which initialize or
finalize ramped parameters.
fix to CDSMatrix::resize to copy old contents
added CDSVector_int to cdsVector.py
CDSString: optimization of operator+=(CHAR)
PotList:
added a copy() method
EnsembleSimulation input multiplexer (using stdin) - now only use if
*both* stdin and stdout are ttys.
XPLOR source:
- removed/converted blanket SAVE statements in darwintime.f and dynio.f
- ccalls.c: frtnchdir:
reworked to use Fortran's string length argument.
- update from A. Grishaev - updates the segm statement.
- nbonds.f:
* added DECLAR statements for REPEL nbond parameters
* removed limit on iatmx (max num of bonded atoms) by overloading the
CMPLTD return code of MAKINB.
- combined xlftime.f and darwintime.f --> darwintime.f
- noe.f:
reduced the severity of error of calling PRINT for classes in which
POTEntial is set to SYMM, HIGH, or 3DPO.
parameters:
added patches, parameters for phosphoserine, phosphocysteine to the
standard protein.top/par files.
Changes from 2.10 to 2.11
- xplor run script:
added the -scyld cmd-line argument for running on scyld clusters.
added the PROTSHIFTS env var for access to proton chemical shift database.
under Linux, now cleanup unused Semaphores at startup.
low-level:
- fixed error in reference-counted classes which rendered them
non-thread safe.
- fixed Solaris-specific ensemble bugs.
- fix for strange Solaris /bin/sh behavior
- pty-xplor (used by Xplor-NIH) fixups under Solaris
Python interface
- now correctly build and test Tkinter package.
- pyXplor script: now properly protect spaces in command-line arguments.
- psfGen module:
added the dAmino() function to convert a residue to a D-amino acid.
- simulationTools:
now perform NOE analysis.
- added NOEPotTools- helper functions including create_NOEPot()
- protocol.py:
initMinimizie: added added dEPred to argument list.
added initCoords() helper function.
- varTensorTools:
added calcTensorOrientation function
- xplor (toplevel) module:
added the requireVersion() function
- added posRMSDPot potRMSDPotTools
for both RAP and bfactor refinement.
XPLOR interface:
- hbdb: fixes for problems with long filenames.
- more robust determination of username.
- Darwin:
fix so that file versioning works properly.
Examples in the eginput subdirectory:
- added gb1_rdc simple examples using NOEs and multiple
RDCs. Included are both XPLOR and Python scripts.
- protG/anneal.inp: fixed bug in vdw loop.
- PASD/Marvin: fixups in eginput/marvin/il4 example data.
- improvements to runAll script.
Low-level changes:
- RandomNum: added integerInRange() member.
- jCoupPot:
fixed variance calculation.
- AtomSel: added reevaluate, constainsAtom and isMonomericallyEqualTo
members.
- Pot: added resetPotName() method.
- IVM:
small changes to Powell minimizer.
added vel/setVel accessors.
- cdsVector module:
added sqrt function.
- VMD:
better cleanup of vmd atom selections.
- EnsembleSimulation:
added input multiplexer for the case in which stdin is a tty. This
allows proper interactive behavior for numthreads>1, and should help
with debugging.
----------------------------------------------------------------------
Changes from 2.9.9 to 2.10
general:
new parameter/topology file naming convention:
NMR protein refinement should now use protein.top / protein.par
new command: tclXplor
calls xplor -tcl. Can be used as command interpreter
Darwin/ MacOSX change: version number now only includes the first digit.
This so the arch/equivList doesn't need to be updated so often.
Darwin:
fixed Xplor-NIH-as-tcl-extension functionality
xplor master script:
- now can specify parallel machines using the MACHINES env variable
instead of the -machines option on the command line.
- updated Linux ARCH def to deal with minor dot release numbers.
- IRIX: properly treat LD_LIBRARYN32_PATH if it is set.
eginputs:
- added runAll script to run (most) scripts in eginputs.
- fixed up scripts to use protein.top/par files.
- minor updates to protG/anneal.inp
Python Interface:
EnsembleSimulation:
- can now specify nonuniform weighting.
- fixed issue in which coordinate changes made in XPLOR shell were
not propagated back to EnsembleSimulation.
PotList:
- change in behavior when an attempt is made to add a term with an
instanceName already contained in the list: now the code throws an
exception (previously, the second term was silently ignored).
OrderPot:
- new potential term to enable refinement again order parameters.
CSAPot:
- atomOrder accessor changed to support 15N CSAs.
- fixed variance calc.
AtomProb:
- now normalize output map so that the largest map value is 1.
PrePot:
- update from Junji Iwahara
ShapePot:
- fixes- deal better with apparent singularities in angle diff. calc.
- new degenerateTol member- determination of eigenvector/value
pairing is now modified close to degeneracy- chose such that
eigenvectors are those which align most closely with those in
ensemble member 0.
- added Pairwise target type- minimize pairwise differences.
Python CDSVector:
added fromList accessor.
ivm:
- added stepsizeThreshold member. If set, will try to avoid small
timesteps by performing minimization when the stepsize falls below
this value.
mat3:
- added trace function.
- added rows()/cols() accessors.
protocol:
initParams():
- added optional weak_omega argument to allow
small deformations of the peptide bond.
- added optional reset parameter to clear any previous parameters
fixupCovalentGeom():
- made a bit more robust.
genExtendedStructure():
- added pdbFilename argument
- fixed up the use of the optional sel argument.
added covalentMinimize(), initHBDA() helpers.
psfGen:
pdbToPSF(): the pdbRecord argument may now be a filename instead of
a string
seqToPSF(): added optional deprotonateHIS argument.
added cisPeptide() function to make cis-peptide bonds.
ShapePot:
added analyze tools.
SimulationTools:
better handling of analysis of existing files. No need to specify
numStructs.
added testGradient() helper.
JCoupPot:
added jCoupPotTools including create_JCoupPot() and analyze() helpers.
PotList:
analyze summary now prints sum of violations, not average.
varTensorTools:
added massSetup() helper.
analyze(): print out more Da/Rh info, if using an ensemble.
XPLOR interface:
hbdb update from Alex Grishaev:
adds ability use multiple segments
other fixes to prevent crashes
fixup time reporting under AMD64, Solaris
SET MESSages statement:
now allow NONE to be a valid keyword (same as OFF).
xplor command: allow XPLOR script to be specified as an argument. It
no longer needs to be redirected through stdin.
----------------------------------------------------------------------
Changes from 2.9.8 to 2.9.9
XPLOR interface:
fixed problem in which Xplor-NIH would clobber /dev/null if the program was
run as root.
plane.fcm: removed static arrays from planarity restraints.
general:
configure script: added -symlinks option
pdf2psf: fixup in reading arguments.
seq2psf: added disulfide bond support with
-disulfide_bond and -disulfide_bridge options
PASD/Marvin fixup for problems at startup.
Python Interface
updated eginputs/protG/anneal.py
cdsVector, mat3, vec3 updates. Need documentation.
python interpreter speedups (large) when tracing is off.
python: added version, version_info to xplor module.
XplorPot term now supports the scale() accessor.
----------------------------------------------------------------------
Changes from 2.9.7 to 2.9.8
XPLOR interface
added support for set PRINT=off end statement, to suppress (most) output.
related- now reroute much output through PUNIT instead of unit 6 (stdout).
Python interface
protocol.py:
added
genExtendedStructure() - generates a random initial structure.
fixupCovalentGeom() - corrects bonds, angle, dihe, atom overlap.
modified
initNBond() - added optional nbxmod, tolerance parameters.
torsionTopology() - added optional parameter to fix omega angle.
psfGen.py:
re-enabled and fixed the terminal atom chain break code
seqToPSF(): now takes sequence as list or string
rdcPotTools:
added support for CAHN expts. provided by Alex Maltsev
ringGeom, structureTools: structure analysis tools.
selectTools:
IVM_groupRigidSidechain(), convertToSelectionIndices():
optimizations
updated the following to correctly deal with multiple segments:
IVM_breakProlines, IVM_breakRiboses, IVM_breakDisulfides,
IVM_groupRigidBackbone, groupRigidSel
rigidProteinSelections:
ARG entry: removed CE atom from rigid group list
simulationTools:
StructureLoop constructor: added the startStructure argument, fixes
trace:
fixes to work better with non-XplorNIH python interpreter
varTensorTools:
calcTensor(): fixes, now works with CSA expts too.
replaced readline with editline (license issues).
pyXplor script now treats cmd line arguments correctly.
PDBTool: fixed a memory leak, added addRemarks() method to Python interface.
PASD/Marvin auto-assignment
added AENEAS (Automated Experimental NoE Assignments based on Shifts):
-accepts chemical shift, NOE peak position tables, matches them up,
filters them in reasonable ways, to produce an initial NOE restraint table.
-now the primary input mechanism for Marvin.
-examples of use in the interleukin-4 and cyanovirin example cases.
Support for 3dC, 3dN, 4dCC and 4dCN NOESY data
Automatic detection of solvent lines
Terminology change: Rather than refer to, for example, Hi, Ci,
and Hj in a 3dC experiment, they're now referred to as fromProton,
fromCarbon, and toProton.
Reduced output during covalent geometry cleanup.
Improved energy minimization.
Other various potential terms:
Ensemble calculations:
children now ignore the terminal suspend signal.
performance, robustness improvements.
CSAPot:
fixups, cleanups
restraint: corrected the tensor() method
NOEPot:
fixed segfault when reading a bad restraint (in code compiled with
Intel compilers).
RDCWavePot:
bugfixes
ShapePot:
performance improvements.
paraRestraints code fixes
Examples/Documentation
documentation additions, fixups
protein G example:
update anneal.py: cleanup, modernization. Now psf and initial coords are
generated on the fly from sequence info.
added tang.py script for pretty printing of torsion angles from an
ensemble of structures.
Architecture specific notes:
combined Darwin+other os distribution should now work.
Darwin build:
python libs now linked against xplor executable, rather than shared
libs so that extension module has a better chance of working.
Linux builds:
workaround for segfaults in recent Redhat 2.4 kernels which incorporate
the back-ported thread library.
The 2.2 kernel binary package has been discontinued. Please
contact us if you are affected by this decision.
Parameters
parnah1er1_mod_new.inp: contribution from Zeena Johar:
new impropers added to define chirality of ribose carbons
Running Xplor-NIH
added xplor_mpi - helper script for running Xplor-NIH under MPI.
testDist: now doesn't clean up if a failure occurs.
Low-level code
CDSMap- added iterator over key/value pairs
CDSStringStream, fdstream-
fix for memory leak (beyond my control) under Intel compilers
FixedMatrix- added setDiag(vector)
added EnsemblePot base class for ensemble potentials
allows for code reuse and simplifies the use of synchronization
barriers, with better performance characteristics.
Modified update: support for telling which aspect is modified
(simulation or potential variable)
XplorWrap: add pid to temp filenames (used to communicate with XPLOR),
to avoid resource contention. (e.g. MPI jobs on local host).
support for SWIG version 1.3.22
------------------------------------------------------------
Changes from 2.9.6 to 2.9.7
General changes
new documentation page at http://nmr.cit.nih.gov/xplor-nih/doc/current/
documentation page with update Python documentation
also available at the command-line via xplor -pydoc
XPLOR manual updates
added two scripts:
-bin/pdf2psf to generate a structure file from a pdb file.
-bin/pyXplor to facilitate using Xplor-NIH as a Python interpreter.
new architecture supported: AMD64/X86_64 (Opteron/Athlon64).
Python interface changes:
protocol.py: updated, added torsionTopology()
selectTools.py: added getResids()
surfaceTools.py: added calcSA()
rdc/csa orientational tensor setup for IVM simplified with freedom()
accessor, and varTensorTools.topologySetup()
XPLOR interface changes
define four variables: $echo $prev_echo, $messages $prev_messages
to better control echoing, messaging.
suppress many messages when messages==off
csa.f: fixed rmsd calculation
segmnt.f: added NUMBer statement to the SEGMent statement - to allow
starting resid to be specified - without renumbering.
Marvin/PASD changes:
allow import from nmrDraw, NMRSTAR, XEASY, and PIPP data formats.
initial matchup of NOE peak locations and chemical shift tables is
now handled by Marvin:
- STAPP no longer needed.
- symmetry-related peaks are detected.
- restraints/assignments fully annotated with NOE peak, chemical shift
source info.
eginputs/marvin/cvn and eginputs/marvin/il4 were re-worked
to illustrate the new data import facility.
Parameter changes
topallhdg.dna: swapped ADE H61|H62 positions and CYT H41|H42 positions
Other changes
ensemble calculations: -improved performance by not blocking instead of
spin for num_threads>1
-added singleThread(), multiThread() methods
-better treatment of irregular shutdowns
-subtle IVM bug: different ensemble members could
have different temperatures.
-fixup for JCoupPot for Ne>1
-new ability to share python objects across an
ensemble.
surfaceArea: many fixes and improvements including approximations and
data-caching to improve performance.
pdbTool: xplorAtomName now better translates * characters.
will now read/write to a string buffer.
added rms() and violations() as required entries in the Pot interface
------------------------------------------------------------
Changes from 2.9.5 to 2.9.6
General changes
removed limits on all PSF parameters- the arrays have been moved from
Fortran common blocks to the heap. Xplor-NIH startup size is now about
25MB smaller, and it will handle systems as large as your computer's
memory will allow.
Removed the CSTACK- and the associated summary line at exit.
PASD/Marvin
- improved memory cleanup
- improvements to peak picking code.
- general fixups.
Developer changes
added source/i1mach.c for machine constants
XplorVars changed to a singleton class
removal of SWIG type registration code- replaced by calls to TypeQuery.
------------------------------------------------------------
Changes from 2.9.4 to 2.9.5
General changes
merged isac code for floating RDC alignment tensor.
[from H.J. Sass, G. Musco, S.J. Stahl, P.T. Wingfield and S.Grzesiek,
J. Biomol. NMR 21: 275-280 (2001). ]
merged hbdb code from A. Grishaev.
``An empirical pseudo-potential that encodes for the relative
arrangement of two protein peptidyl units linked by a
backbone-backbone hydrogen bond.''
faster program startup by lazy initialization - only start
python/tcl when they're needed.
bin/testDist now prints and tallies CPU times of the tests
Linux_2.4_i686 build verified working on 2.6 kernels, and on AMD64 (opteron)
processors.
Python interface:
added CSA potential.
reworked RDC potential (old scripts will not work - please see
eginput/protG/anneal.py for examples of how to
fix)
[tensor moved to a separate VarTensor class ]
added Gauss-Bonet surface area (with gradient) calculator. See
python/tests/saTest.py
protocol.py:
added initParams(), initStruct().
updated initMinimize, initDynamics to be more complete.
selectTools:
added minResid()
simulationTools:
added pdbFile() method which generates a pdb file name from a template.
pdbTool:
updated so that the filename() accessor actually works.
XplorPot() - can now specify argument as lower case.
general:
atom selection arguments can now be specified as a python string
TCL interface:
PASD/marvin automatic NOE assignment package updates.
added DerivList wrapper
Parameters:
updated dna/rna parameters.
Developer Changes:
CDSlib update:
Complex type updates
cdsList: added pop() method, can now interact with generic vector
cdsVector: can now interact with generic vector
cdsSStream: added str_volatile() (old behavior), changed str() to return
a copy of the streambuf
chull: convex hull calculator class
matrixTools: added setRow/Column manipulators
source ( Fortran source ) updates:
README: includes style rules for XPLOR Fortran submissions.
freehp: now clear the heap index (set it to zero).
added ability to turn off vdw energy
------------------------------------------------------------
Changes from 2.9.3 to 2.9.4
General changes
merged the PARArestraints module from
http://www.postgenomicnmr.net/SW/PARArestraints.html
new script: bin/seq2psf to generate psf file from sequence
do seq2psf --help for info.
Fixup so compilation with NOTCL=1 actually works
proton chemical shifts: added setup file to databases/protshifts,
example in test/protoncshift2.inp
Examples and Tests
eginput:
updated: mef_dna, analysis_SRY, dock_dipolar_chemshift, sry,
marvin, DNA-SRY, PSF_generation, SRY_data_preprocessing
marvin: added cvn example, other script fixups
protG: important fixes to anneal.inp, anneal.py
Unit tests:
test: updated carboncshift.inp,
added protonchift2.inp, paraRestr.inp, pyCmd.inp, tclCmd.inp
python: added matTest.py, protocolTest.py
updated rdcPotTest.py
Python Interface changes:
important bug fix for IVM
improved analysis capabilities. See e.g. eginput/protG/anneal.py
update to RDC potential. Added calcTensor, makeTable helpers
added additional linear algebra capability
cleanup of distributed python directory
now built with Python-2.3.3
new Dihedral class for measuring dihedral angles
updated help entries
TCL Interface changes:
marvin: updates, fixes
interface fixups
Platform specific:
Darwin port: support for newer OS versions
better support for IBM xlf
ia64 port: support for version 8 of Intel compilers
fix \0 characters in username
x86 port: fixups for compilation with pgf77 and g77
Developer changes:
improved distclean rule
update to classes: CDSMatrix, auto_ptr,
new datastructures, algorithms:
circular doubly-linked list, convex hull template algorithm
symmetric heap matrices+support
support added for swig-1.3.21, but it seems to have problems.
------------------------------------------------------------
Changes from 2.9.2 to 2.9.3
Core XPLOR code
Darwin port: now compiled with the ibm xlf compiler- with a big
speed improvement. Many improvements to build more
easily with and without fink. A big thanks goes to
Jack Howarth (howarth -at- bromo.med.uc.edu) for doing
most of this work.
General changes
eginput: updates, and addition of new example scripts.
ia64 port is improved: full regression tests now report a single
error (in the XPLOR interface).
Python Interface changes
- includes paramagnetic relaxation enhancement module based on the
modified Solomon-Bloembergen equation and
multiple structure representation for paramagnetic groups. This module
contributed by Junji Iwahara. Please contact him at
iwahara-at-helix.nih.gov(replace -at- with a @) for further information.
- RDCPotTools:
-- added the following methods: saupeMatrix, normalizedScalarProduct
- PotList interface improved to allow use of a simple Python sequence
in most instances. Also, the potentials returned by indexing a
PotList object are now cast back to their original type (instead of
being generic Pots).
- SimulationTools:
added analyze() function to analyze terms of a potList and return
a concise summary appropriate for the remarks section of a PDB file.
- can now access argv.
- help files updated.
TCL Interface changes
- update to interactive interface.
- can now access argv.
Developer changes
initial entry point changed from Fortran to C (xplor.c)- so that
argv is more easily used.
upgraded to pcre-4.4
added symlink support for Darwin-7.0, Darwin-7.2
added XPLOR tests for the TCL and Python interfaces.
improved Fortran rtl initialization, when needed.
------------------------------------------------------------
Changes from 2.9.1 to 2.9.2
Core XPLOR code
constraint inter code: fixed bug encountered when a double selection contains
more than 9999 atoms
ia32/linux port: fixed bug in which \000 would sometimes be written in
the username output
sani potential: fixed bug encountered when using the ``square well'' potential
type
General changes
a FAQ is included in helplib/faq
eginput: updated protG .inp, .py scripts
many changes and additions for other examples.
ia64 port is better, but full regression tests still report two errors.
Python Interface changes
rdcPot: now supports averaging of dipolar couplings
rdcPotTools.py updated
selectTools.py updated
simulationTools.py: StructureLoop now will deal appropriately if the number
of structures is smaller than the number of processes
vmdInter.py: added loadFiles() helper for loading ensemble of structures
Developer changes
added new install rule. Define INSTALL_DIR in Makefile.loc and make install
creates an installation of Xplor-NIH separate from that in the source
directory.
iostream .h headers are now wrapped by .hh versions in CDSlib
symbols in cdsMath.hh changed namespace from CDS to CDSMath
matrixTools: svd matrix size fixed in python interface
moved tcl/python test scripts to tests subdirectories
enumNameMap.hh: added functions to help with conversions
reworked Simulation id code
VMD-XPLOR interface
py-xplor: now explicitly set intr char to ^C. This had caused problems
with vmd-xplor on SGIs
vmdInter code: made color setting more robust.