.. ProMod3 Changelog file. This is actually a reStructuredText formatted file,
   which will be copied to the right place in the stage directory as
   'changelog.txt'. This way it is immediately available in the documentation.

Changelog
================================================================================

Release 3.6.0
--------------------------------------------------------------------------------

* Update OpenStructure depedency to 2.11.1 => libraries in lib instead lib64
* Updates to enable conda builds
* Several minor bug fixes and improvements

Release 3.5.0
--------------------------------------------------------------------------------

* Updates build system: Removed custom boost setup code and silenced cmake
  warnings.
* Updates OpenStructure dependency to 2.10.0.

Release 3.4.2
--------------------------------------------------------------------------------

* Bugfix release: Updates OpenStructure dependency to 2.9.1, exposes
  keep_sidechain flag in promod3.modelling.BuildSidechains.

Release 3.4.1
--------------------------------------------------------------------------------

* Bugfix release: Updates OpenStructure dependency to 2.8.0, fixes issues
  regarding Singularity container and unit tests.

Release 3.4.0
--------------------------------------------------------------------------------

* Sidechains and BackboneLists now use bond length and angle parameters that are
  extracted from a non-redundant set of high resolution X-ray structures.
  IC data from CHARMM36 was used before. The new parameters slightly improve
  sidechain modelling accuracy.
* Several minor bug fixes and improvements

Release 3.3.1
--------------------------------------------------------------------------------

* Bugfix release: Updates OpenStructure dependency to 2.5.0 and fixes issues
  with Singularity container.

Release 3.3.0
--------------------------------------------------------------------------------

* Check for and report non-planar rings in the modelling result. This check is
  also incorporated in energy minimization, potentially increasing the number
  of minimization steps.
* Algorithms using large model databases as template libraries for modelling.
  Sequence search: PentaMatch, a k-mer based sequence search with extreme speed
  but low sensitivity (similar implementation as
  https://www.rbvi.ucsf.edu/chimerax/data/kmer-aug2022/kmer_search.html).
  Structure storage: FSStructureServer, an OMF (OpenStructure Minimal Format)
  based structure storage that compresses AFDB v4 (214E6 entries) to 1.4TB.
* Several minor bug fixes, improvements, and speed-ups.

Release 3.2.1
--------------------------------------------------------------------------------

* Bugfix release: Updates OpenStructure dependency to 2.3.0

Release 3.2.0
--------------------------------------------------------------------------------

* Remove outdated configuration scripts (Fedora 19 / ancient Mac)
* Construct CB atoms if only N,CA and C atoms are present in 
  ReconstructSidechains input structure.
* Detect Python using functionality provided by CMake instead of our own code.
  You might have to adapt CMake flags when building ProMod3 to variables 
  specified here: https://cmake.org/cmake/help/latest/module/FindPython.html
* Several minor bug fixes, improvements, and speed-ups.


Release 3.1.1
--------------------------------------------------------------------------------

* Bugfix release: reintroduces backwards compatibility in BuildRawModel.
  See commit 0288eced23a9a541a88005a7ed30b8f019e06226 for details


Release 3.1.0
--------------------------------------------------------------------------------

* Introduce alignment processing steps in BuildRawModel
* Several minor bug fixes, improvements, and speed-ups.


Release 3.0.0
--------------------------------------------------------------------------------

* First release supporting Python 3. Python 2 support has been dropped.
* Updated versions of dependencies.
* Reduced amount of warnings during compilation.
* Improved and simplified use of Docker and Singularity containers.
* Several minor bug fixes, improvements, and speed-ups.


Release 2.1.0
--------------------------------------------------------------------------------

* This is expected to be the last release supporting Python 2.
* This project now requires a C++11 compatible compiler.
* Introduced VINA scoring function in the sidechain module. A scoring function 
  specific RotamerConstructor is provided that comes with extensive heuristics 
  to parametrize arbitrary compounds. 
* Motif finding algorithm to identify objects in 3D space, e.g. binding sites.
  The algorithm is based on principles of geometric hashing.
* Several minor bug fixes, improvements, and speed-ups


Release 2.0.0
--------------------------------------------------------------------------------

* Generalize particle scoring and rotamer construction in sidechain module.
  This simplifies the addition of other scoring functions in the future.
  Be aware of breaking changes introduced in the process!
  (SCWRLRotamerConstructor -> SCWRL4RotamerConstructor, changed interface of
  Particle and RotamerConstructor classes).
* Enable possibility to use structural fragments in default modelling pipeline
  and build-model action
* Enable possibility to enforce full coverage models including termini without
  template coverage in default modelling pipeline and build-model action
* Modelling pipeline can track issues in the ModellingHandle object
* External example scripts can now be found in extras/external_scripts
* Improved support for recent compilers and libraries.
* Several minor bug fixes, improvements, and speed-ups  


Release 1.3.0
--------------------------------------------------------------------------------

* Apply Apache Version 2.0 License to the project
* 2010 Dunbrack rotamer library has been replaced by an own backbone dependent 
  rotamer library. All scripts required to reproduce the data are in 
  extras/data_generation/rotamer_library
* Penultimate rotamer library has been replaced by an own backbone independent
  rotamer library. All scripts required to reproduce the data are in
  extras/data_generation/rotamer_library
* SampleMonteCarlo function moved to Python. This makes it possible to provide 
  sampler/closer/scorer/cooler objects implemented in both, Python and C++
* Action script for sidechain modelling
* Allow sequence profiles as input for build-model action script.
* Recipe for Docker / Singularity container 
* Check peptide bonds when building a RawModel. Treat as gap if bond is 
  stereochemically problematic despite being in sequence.
* Several minor bug fixes, improvements, and speed-ups  


Release 1.2.0
--------------------------------------------------------------------------------

* Graph optimizer has been separated from the sidechain module and can now be 
  used for arbitrary optimization problems. Available optimization algorithms 
  are TreePack, AStar and MonteCarlo.
* Make it possible to distinguish between the scores of a loop towards a constant
  environment (external scores) and the scores within the loop itself 
  (internal scores).
* Most scores based on pairwise interactions are now pairwise decomposable.
* Disconnected loops at several locations can be scored at once.
* Avoid the usage of the DSSP executable and use the OpenStructure internal
  secondary structure assignment instead.
* Allow to decide whether the CB atom belongs to the actual rotamer or to the
  constant frame in sidechain optimization. This can be useful in design 
  questions, where the identity of a rotamer is not given and you want to 
  allow glycine or alanine.
* The naming of the entries in the StructureDB is not strictly limited to 
  4 letter codes anymore, arbitrary strings can be used instead.
* Adding coordinates to the StructureDB does not require external tools anymore
  (msms, dssp etc.), internal implementations are used instead.
* The data that is stored in a StructureDB can be controlled at initialization,
  everything except the sequence and the actual coordinates is optional.
* Entries in the StructureDB can be removed again.
* Allow to search positions of arbitrary copies in DynamicSpatialOrganizer 
  by providing RT operators.
* Several minor bug fixes, improvements, and speed-ups


Release 1.1.0
--------------------------------------------------------------------------------

* Updated dependencies: need Eigen 3.3.0 and OST 1.7
* Changes in modelling pipeline: remove clashing loop candidates early, new
  scores using sequence / structure profiles, new scoring weights, subrotamer
  optimization to reduce ring punches, and improved handling of ligands
* Improved build-model action to generate oligomeric models, input multiple
  files, and allow for residue offsets into structure files
* Improved computational runtime of relevant operations in pipeline (CCD,
  scorers, backbone list operations), superpositions and loop candidate
  clustering
* High-level functionality moved consistently to modelling module
* New modelling algorithms: rigid blocks to compare structures and improved
  fragment sampling for de novo modelling
* New rotamer graph solvers for sidechains: AStar and Monte Carlo
* Refactored backbone scoring to simplify extensions
* Added all atom scoring with possibilities to reconstruct sidechains for
  selected loops, reconstruct hydrogens and minimize energy with MM
* Refactored backbone list to speed it up
* Added runtime profiling for developers
* Several minor bug fixes, improvements, and speed-ups


Release 1.0
--------------------------------------------------------------------------------

* Initial release of ProMod3 for use in productive instances of SMNG
