Releases: lorenzo-rovigatti/oxDNA
v3.6.1
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 instead 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
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 themutual_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
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
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
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
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
v3.4
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
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
andnumber4
templated stuff withusing
statements (which are equivalent totypedef
s) chosen at compile time:- on the CPU side the default precision is
double
; - on the CUDA side
number
andnumber4
have becomec_number
andc_number4
and default tofloat
andfloat4
; - on CUDA the mixed precision can be used only if
-DCUDA_DOUBLE=OFF
, which is the default behaviour.
- on the CPU side the default precision is
- Plugins now require a single entry point, which should be called
make_MyPlugin
, whereMyPlugin
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.