Release Notes
- Added
HDF5MultiFileReader
to read simulation data from several HDF5 files at once. Simulation.toDB
can now be called without auid
.- Random number generators (
RNG
class) now have default constructor arguments
- Improve behavior of stochastic paths (added in 5.0.1). Vesicles test more available sites on path, which reduces chance of vesicle becoming blocked if furthest site is unavailable.
- Fix rare vesicle surface diffusion crash for boost versions < 1.73 (issue was introduced in 5.0.2)
- Fix vesicles erroneously diffusing to different compartment (issue was introduced in 5.0.1)
- Fix compilation issues with mpi4py >= 4.0.0 and Open MPI < 5.0.0
- Fix
DistMesh.intersect
method computations failing under some conditions
- The minimum python version was bumped from 3.6 to 3.8.
- Fixed compilation issue when PETSc is not installed.
- Fixed installation issue in Conda environments.
- Use Boost instead of GSL for computing qtable for vesicle surface diffusion.
- Remove GSL as a minimum prerequisite.
- Fixed issues caused by changes in Blender 4.1 python API.
- Added a new mode of kiss-and-run release allowing for partial release of vesicle content.
- Added a variety of automatic checks to vesicle-based models.
- Added support for network-free simulation of multi-state complexes with
Wmdirect
.
- Added a new
CustomResults
result selector to save arbitrary data to STEPS HDF5 files. - Added a
.description
property toResultSelector
s. - Added a
.patchTriNeighbs
property toTriReference
s to get neighboring triangles in the same patch.
- Introduce a new solver named
TetVesicle
that simulates vesicles, lipid rafts and related phenomena such as endocytosis, exocytosis and active transport on virtual actin filaments. The solver is built on top of theTetOpSplit
routines for parallel simulation of SSA reaction and diffusion events. - Add a new
stepsblender
python module that allows visualisation of STEPS simulation data recorded withXDMFHandler
using the Blender 3D computer graphics software (https://www.blender.org/). - Checkpointing added or updated for solvers
TetVesicle
,TetOpSplit
,Tetexact
,TetODE
,Wmdirect
,Wmrk4
,Wmrssa
.
- Installation process now automatically installs missing python dependencies.
- All stochastic solvers are now reproducible.
- Numerous fixes, optimizations and modernizations.
- Fix older cmake files causing installation issues
- Fix
-DSTEPS_USE_DIST_MESH=False
cmake flag not preventingOmega_h
installation
- Project license changed to GPL3.0.
- Added automatic saving to HDF5 files (HDF5Handler) and XDMF files (XDMFHandler). Data saved with XDMFHandler can be visualized with scientific visualization software like Paraview.
- Performance improvement: Identify the tetrahedra with molecule changes via diffusion (changes caused by reaction are updated by the ssa operator) and update the associated propensities.
Introduce a new parallel stochastic reaction-diffusion solver and a deterministic membrane potential solver named DistTetOpSplit
. The solver is based on a distributed mesh named DistMesh
.
- STEPS requires a C++ compiler compatible with C++ 17.
- New CMake variables to enable profiling of the simulation:
STEPS_USE_LIWKID_PROFLING
,STEPS_USE_CALIPER_PROFILING
, andSTEPS_USE_NATIVE_PROFILING
see [doc/dev/README.md] for more details on how to use it. - Add support to Apple M1
- Add support to compilers GCC 11, LLVM 13, and Apple Clang 13
-
Added a new python API (see documentation) Scripts written for older STEPS version should still work without any modifications. The new python API can be used by adding the following line at the top of a STEPS script:
import steps.interface
-
Dropped support for python 2.7. The minimum python version is now 3.6.
- Added support for OpenMP and AppleClang compiler
- Improved CMake structure to allow for faster compilation
- Code fixes for segment-tetrahedron intersection
-
values for unknown tetrahedron and triangle identifiers changed from -1 to
steps.geom.UNKNOWN_TET
andsteps.geom.UNKNOWN_TRI
respectively. You may use these 2 constants instead of -1.A Python 3 Flake8 extension is available to help you migrate your code.
$ pip3 install flake8 flake8-oist-steps $ cat test.py import steps.utilities.meshio as meshio mesh = meshio.loadMesh('axon_cube_L1000um_D866m_1135tets')[0] idx = mesh.findTetByPoint([0, 0, 0]) if idx == -1: print('boundary') $ flake8 test.py ./test.py:5:4: E421 consider using steps.geom.UNKNOWN_TET constant instead of -1.
You may use the following snippet in your scripts header to have backward compatible code:
try: from steps.geom import UNKNOWN_TET, UNKNOWN_TRI except ImportError: UNKNOWN_TET = -1 UNKNOWN_TRI = -1
-
A new constant
steps.geom.INDEX_DTYPE
provides the proper NumPy datatype according to whether STEPS has been built with 32 bits or 64 bits identifiers.
- New
USE_64_BITS_INDICES
CMake option to use 64bits unsigned integers for identifiers instead of 32bits. - New CMake variables to use either system libraries or bundle code.
USE_BUNDLE_EASYLOGGINGP
USE_BUNDLE_RANDOM123
USE_BUNDLE_SUNDIALS
- Improve spack support
- Improve support of GCC 7 and higher
- Improve support of AppleClang compiler
- Disable OpenMP instructions in TetOpSplit solver
- Modernize code base by using most of C++11
- Increase code safety by using strong types to distinguish identifiers from tetrahedrons, triangles, and vertices
- Optimization of non-spatial deterministic solver Wmrk4. Vast improvement in performance for large models.
- Various bug fixes and unit tests.
- Implemented Rejection-based SSA (Thanh V, Zunino R, Priami C (n.d.) On the rejection-based algorithm for simulation and analysis of large-scale reaction networks. The Journal of Chemical Physics 142:244106) as a faster alternative to Wmdirect
- Assertion and Exception logging overhaul
- Remove SWIG interface
- Matlab Simbiology support utility
- Extensive rework on Cython binding and documentation with Jupyter notebook.
- Extend support for Python 3.3~.
- several bug fixes. Note: SWIG Binding will be removed in 3.3 release.
- Optimization on solver constructors,which significantly speedup the initialization time for simulations with large meshes.
- Cython binding for user interface
- Parallel EField solver using PETSc library
- Surface Diffusion Boundary for Tetexact and TetOpSplit
- Further improve CMake compilation system
- Restructure validation and test packages
- Bug fix: abort CMake if SWIG is REQUIRED but not found
- Bug fix for crash problem when providing fractional value to setCompCount() and setPatchCount() in tetexact
- Implement parallel TetOpSplit solver.
- Change compilation system to CMake.
- Bug fixes for CUBIT-STEPS geometry preparation toolkit.
- Implement directional diffusion constant.
- Add CUBIT-STEPS geometry preparation toolkit and visualization toolkit.
- Add "Region of Interest" dataset in Tetmesh Geometry and related functions in Tetexact solver
- Add direct NumPy access functions in Tetmesh geometry and Tetexact solver
- Add steps.geom.castToTmComp and steps.geom.castToTmPatch methods for casting Comp and Patch objects to their TetMesh counterpart (if possible).
- Added direct connection between TetODE and E-Field. Previously connection was possible only through the python interface.
- Other small additions such as optional percentage of starting nodes tested for mesh breadth first search in E-Field setup.
- First version to include E-Field and related objects. Allows simulation of the potential across a membrane specified as a collection of triangles comprising a surface in the tetrahedral mesh. See documentation for more information.
- Addition of solver TetODE for spatial deterministic simulations. Uses the CVODE library for solutions.
- Addition of surface diffusion in mesh-based solvers (Tetexact and TetODE), which models a diffusive flux between triangles that form part of a patch surface, analogous to volume diffusion between tetrahedral elements in a compartment.
- Several other smaller additions and fixes.
- SSA engine changes from Direct SSA to Composition & Rejection SSA for Tetexact solver.
- Important bugfix in Tetexact to fix a problem that was causing crashes during construction.
- SBML support in steps/utilities/sbml.py
- Addition of Diffusion Boundary object, which allows for optional chemical diffusion between connected compartments.
- Initial conditions improvement for Tetexact solver, resulting in a uniform initial spatial concentration across the compartment (or patch) regardless of tetrahedron volumes (or triangle areas), important where tetrahedrons vary considerably in volume. Thanks to Haroon Anwar for bringing this issue to our attention.
- Bugfix on Wmrk4 deterministic solver on the reset() function, which previously did not reset counts in Patches.
- Changed zero-order reaction constants to the conventional M/s. Previously was /s.
- Bugfix on surface-reactions. Now reaction constants for reactions that involve reactants only on a patch (nothing in a volume) are correctly scaled in 2D, as opposed to previous 3D scaling. Thanks to Gabriela Antunes for pointing out this one.
- Additions to examples folder to include scripts that link to the user documentation, found in examples/tutorial.
- Solve crash problem of Tetexact solver in some Linux system. Binary packages of version 1.1.1 are not affected, so only source package is released.
- New setup.py to fix undefined symbol error in Linux
- function name fix in utilities/visual.py
- Replace GNU distribution system with Python Distutils.
- Provide a visualization toolkit for mesh based simulation (steps.utilitis.visual)
- Provide checkpointing support for Wmdirect and Tetexact solvers. (Please check user manual for more details)
- New user manual and API reference
- Bug fix of utilities.meshio.importTetgen() method crashing.
- Changes to 'def' classes so that these classes no longer store a pointer to model level objects or access data from those objects, instead coping all data during construction and setup. Also modified rng.py to be directly created by swig for compatibility with python3.
First release.