Skip to content

Releases: lorenzo-rovigatti/oxDNA

v3.6.1

12 Mar 12:18
Compare
Choose a tag to compare

This is mostly a bugfixing release.

  • Fix some bugs and docs errors due to the DRH -> NA change (see #81) [79728d3 and 7cf4b94]
  • Add and document an option to control the DH cut-off (see #83) [95a9f0d]
  • Make the MPI VMMC backend runnable once again, after it had been broken for years (see #85) [8becd5f]
  • Fix how the trap, twist and string forces behave on CUDA (see #71) [e92695c]
  • Fix the oat test's suite (see #89) [ffd1dd9]
  • Add an observable that can be used to print the total external force acting on particles [7f0eff6]
  • Fix a bug whereby the DPS interaction would segfault of dying gracefully when too many patches were used [b38ae1c]

oxpy

  • Add a method to Python's InputFile and update some outdated info [bd7c9e6]

oat

  • Added RMSD calculation to superimpose [99320e0]
  • Added output file naming option to superimpose [3d316b6]
  • Clarified argparse strings for distance and subset [eae41a9]
  • Fixed missing newline bug in write_conf [0e5c28d]
  • Fixed bad error in get_confs [171f2ca]
  • Overhaul of clustering to have significantly more options and cleaner output [80920ab]

v. 3.6.0

15 Nov 16:26
Compare
Choose a tag to compare

This release includes support for a new topology file format and a new interaction that can simulate DNA/RNA hybrids.

  • Add 6 more tests to the run level; these tests use the new topology and check that the DNA, RNA and NA interactions compute the right energies for a short nicked duplex
  • Add support for a "new" topology format where nucleotides are listed in the 5' -> 3' order, which is the standard in the community
  • Add the NA interaction, which can be used to simulated hybrid DNA/RNA systems (by @eryykr, see #68 )
  • Add a old<->new topology converter to the utils folder
  • Add an option stiff_rate to the mutual_trap force
  • Remove a few warnings when compiling with CUDA
  • Fix the computation of the stress tensor on the GPU

oxpy

  • Update pybind version from 2.2 to 2.11 to make oxpy compatible with Python 3.11
  • Deprecate support for Python versions < 3.8 (see here if an older version is still needed)
  • Add (undocumented) support for -Dpython=On and -DPYTHON=On

oat

  • Add support for the new topology format
  • Fixed an error in the oxDNA_PDB CLI parser
  • Added error handling for truncated trajectories in the oat parser (see #67)

v. 3.5.2

29 May 10:49
Compare
Choose a tag to compare

This is a bugfixing release that fixes two oat bugs introduced in the previous release:

oat

  • Remove usage of | to specify type annotations for unions to make oat compatible with Python 3.9
  • Improve the portability of the setup.py script to fix installation issues on some systems

v. 3.5.1

26 May 19:03
Compare
Choose a tag to compare

This is a minor release that fixes several minor bugs and add some minor functionality (e.g. the possibility of computing the stress tensor on GPUs)

  • Add the stress tensor calculation on GPUs for DNA
  • Improve the performance and memory consumption of the DNA and RNA interactions
  • Improve the numerical stability of the CUDA RNA and DNA codes
  • Make the StressAutocorrelation observable output also the bulk and longitudinal ACFs
  • Remove some unnecessary checks on the required keys from the MC backend
  • Add a pivot move to the MC2 backend
  • Add the possibility of disabling JSON support at compile time (-DJSON_ENABLED=Off)
  • Fix a bug whereby a DNA force was sometimes incorrectly evaluated on GPU
  • Fix two minor bugs in the CUDARNA interaction [0112a3e]
  • Fix a bug whereby the code would sometimes segfault due to plugins [b6ed721]

oxpy

  • Make the metad interface set more default input options

oat

  • Completely rewrote oxDNA/ANM -> PDB converter
    • Now works with RNA as well as DNA and proteins
    • No longer depends on Biopython (removed from oat dependencies).
    • More control over output files.
  • All oat utilities that don't involve oxpy have compete and correct type annotations
  • Many doctoring updates.
  • Better error messages when something that isn't a configuration file is passed to the configuration parser.
  • Update the dot-bracket parser to accept pseudoknotted structures
  • bugfixes:
    • Decimal in particle IDs no longer break forces2pairs.
    • Extra spaces in the header of the topology parser no longer crash it.

v. 3.5.0

20 Jan 22:54
Compare
Choose a tag to compare

This is the release that will be connected to the JOSS paper.

  • Strip down the exprtk library to speed up compilation
  • Fix a bug whereby setting lastconf_file to /dev/null would segfault
  • Make the code compilable on older gcc versions (>= 5.4)
  • Update some examples (fix the oxDNA path and remove references to the old UTILS folder)
  • Remove some outdated examples
  • Update the documentation

oxpy

  • Remove a redundant library from oxpy's linking stage
  • Clean up include paths for pybind11, python_defs

oat

  • Functionalized db_to_force and forces2pairs
  • Cleanup typing in forces2pairs
  • Fixed bug where oxpy calls always said t=0
  • Fixed oxDNA1 incompatibility in output_bonds
  • Added trajectory visualization and generally cleaned up bond_analysis
  • Added desired bond output for the summary in bond_analysis
  • RyeReader now handles confs with velocities removed
  • Updated oxDNA_PDB to use RyeReader
  • Removed deprecated readers.py

v. 3.4.2

08 Sep 11:31
Compare
Choose a tag to compare

v. 3.4.2 [6794178]

This is mostly a bugfixing release

  • Change libcommon.so to liboxdna_common.so, allowing the file to be reasonably placed in a system-wide / non-specific library directory
  • Add methods to sync data from and to CUDA interactions (see 7e437f6)
  • Fix a bug whereby confs without momenta would be printed with trailing spaces
  • Fix a bug whereby the code wouldn't sometimes compile with CUDA 10.x
  • Update a CUDA error message
  • Fix some typos in the documentation

oxpy

  • Fix a bug whereby oxpy couldn't be compiled in debug mode (-DDebug=True)

oat

  • Fix external_force_utils import in exclude_force.py

v3.4.1

22 Aug 06:39
Compare
Choose a tag to compare

v. 3.4.1 [238196f]

  • Fix a compilation bug in a contrib observable

v3.4

20 Aug 13:35
Compare
Choose a tag to compare

v. 3.4 [1c89963]

  • Observables can now update their data structures while the sim runs
  • Add a new observable to compute the stress autocorrelation
  • Normalise the behaviour of log-lin trajectories
  • Improve error messages on CUDA
  • Remove a deprecated function by reworking how textures are accessed
  • Fix a bug whereby the kinetic energy was not correctly printed to configuration files (issue #22)
  • Fix a bug whereby RNA simulations with CUDA11 would crash
  • Fix a bug in the CUDA barostat that sometimes made the code crash
  • Fix a bug whereby "use_average_seq" would be always interpreted as an int rather than a boolean value (issue #27)
  • Fix a bug whereby the code would not compile on Apple systems (issue #30)

oxpy

  • Make it possible to access the last_conf observable from python
  • Add a Jupyter Notebook example
  • Make the code deallocate ConfigInfo at the end of each simulation
  • Fix a bug whereby oxpy simulations on CUDA couldn't be run consequently
  • Fix a bug whereby the ConfigInfo object wouldn't be accessible from Python through the analysis backend

oat

  • Clarify python version requirements
  • Change svd_align to not always align to (0, 0, 0)
  • Add oxview visual bindings
  • Update get_confs to handle times larger than the max value of int
  • Update pca to have CLI control over how many oxView json files get printed (see issue #24)
  • Add cli documentation to oat
  • Fix a typo in db_to_force parser
  • Several documentation improvements

v3.3

07 Jul 10:03
Compare
Choose a tag to compare

The first official release of the new oxDNA code is here!

Here is the complete changelog with respect to the last version released on sourceforge:

v. 3.3 [7cb66cf]

  • Add variables to the input file
  • Add support for mathematical expressions to the input file
  • Add tests for the new input features
  • Greatly improve the performance of the configuration parser. The speed increase is very noticeable when using DNAnalysis on large trajectories.
  • Add a Python-powered metadynamics interface (examples/METADYNAMICS)
  • Add Python bindings to the external forces
  • Add support for observable and external force files written in JSON
  • Add tests for oxpy
  • Complete rewrite of the docs files. The documentation is now much more complete and handled by sphinx
  • Remove the old (and outdated) UTILS folder
  • Add oxDNA_analysis_tools to the repo (in the analysis folder)

v. 3.2.1 [ee2553c]

  • Fix a bug by avoiding free'ing uninitialised CUDA arrays
  • Substitute a call to the deprecated cudaThreadSetCacheConfig function
  • Fix compilation with double precision on CUDA
  • Fix compilation of plugins on Mac OS X and remove warnings
  • Port the COMForce force to CUDA
  • Reduce the host memory consumption when using forces on CUDA
  • Add an overloaded operator to print LR_matrix instances
  • Make a Python3-compatible version of the standalone generator

v. 3.2.0 [399f3e4]

  • Add the list of papers to cite to the README and to the oxDNA output
  • Add a method to remove outputs from the simulation
  • Refactor IBaseInteraction to remove the need of the Curiously Recurring Template Pattern
  • Move methods from IBaseInteraction to Mesh
  • Remove warnings found by clang
  • Compile with the -march=native option by default (use -DNATIVE_COMPILATION=Off to disable it)
  • Add a new object (FlattenedConfigInfo) to access the simulation details as plain arrays, which get turned into numpy arrays on Python
  • Add a Molecule class to the python bindings
  • Port the test suite to python3
  • Create bindings for the AnalysisBackend class
  • Make it possible to install a GPU-powered oxpy with pip
  • Bugfixing
    • Fix the way the DNA and RNA sites where computed on Python

v. 3.1.2 [83e7823]

  • Add a rudimentary subscriber/notifier mechanism and use it to implement a way of handling temperature changes
  • Make the code compilable with the -DMPI=ON option
  • Remove calls to tmpfile() from the codebase
  • Use setuptools and setuptools-scm to install the python bindings
  • Make oxpy installable with pip
  • Add an example implementing replica-exchange MD simulations with oxpy
  • Make it possible to define custom observables on Python
  • Update github's issue templates
  • Add a github workflow to update the online python documentation
  • Bugfixing:
    • Fix a bug whereby a failing list update on CUDA would not throw an exception as it should
    • Fix compilation of oxpy and with CUDA

v. 3.1.1 [c83eda2]

  • Make oxDNA compile with older CMake versions
  • Add github CI scripts
  • Remove a few useless members from SimBackend
  • Make the code compatible with CUDA 11
  • Make it possible to print non-averaged density profiles
  • Add a method to print a configuration at will from Python (OxpyManager::print_configuration)
  • Add a method to get the system's total energy (OxpyManager::system_energy)
  • Bugfixing:
    • Fix a bug whereby the Hilbert sorting done on GPU would lead to wrong results due to a wrong updating of the particle data structures
    • Fix a bug a CPU simulation run with a CUDA-enabled oxDNA would take up a GPU

v. 3.1.0 [0897aa1]

  • Implement a molecular barostat (i.e. a barostat that acts on the centres of mass of molecules)
  • Add a simple in-backend implementation of another Langevin thermostat
  • Add data structures to handle "molecules"
  • LR_vector* changed in bool in IBaseInteraction's methods
  • Add an oxpy example
  • Improve oxpy's documentation
  • Make it possible to change the input file options from Python
  • Make plugins loadable also from oxpy
  • Create a utils Python module
  • Add python bindings to obtain the positions of nucleotide sites
  • Add Python bindings for BaseObservable
  • Bugfixing:
    • Make it possible to compile the contrib folders with old CMake versions
    • Fix a small bug in VolumeMove and CUDA barostat

v. 3.0.0-alpha [5634f27]

  • Python bindings are now available. It is now possible to run simulations from Python, although not every option is available and most behaviour is still controlled by the input file
  • Substitute the number and number4 templated stuff with using statements (which are equivalent to typedefs) chosen at compile time:
    • on the CPU side the default precision is double;
    • on the CUDA side number and number4 have become c_number and c_number4 and default to float and float4;
    • on CUDA the mixed precision can be used only if -DCUDA_DOUBLE=OFF, which is the default behaviour.
  • Plugins now require a single entry point, which should be called make_MyPlugin, where MyPlugin is the name of the plugin class (and file).
  • The codebase underwent a substantial cleaning up; compilation time went down and performance went up by a few percent.