Recent Releases of Tyssue
Tyssue - 1.0
This will certainly be followed by a bug fix, but for now all tests pass except 2 dealing with collisions
Major updates:
- @sophietheis and @sniffo PR were merged, thanks a lot to you two :100:
- The build system had passed to
pyproject.tomlwithsckit-build, bye bye setup.py and the local pybind11 copy as a consequence, the code organization has changed, the cpp files are now in a separate directory (a tutorial on how to add that should be coming soon)
There were no API changes, except for the functionalities added by @sophietheis
In order to speed up the release, we postpone updating the documentation, pending some discussion on where the library should go.
What's Changed
- Fix reference by @sophietheis in https://github.com/DamCB/tyssue/pull/243
- Remove html tags, fix citation syntax, minor edits by @pdebuyl in https://github.com/DamCB/tyssue/pull/244
- Add research notice by @yochannah in https://github.com/DamCB/tyssue/pull/247
- adds zarr support by @glyg in https://github.com/DamCB/tyssue/pull/248
- Further corrections to my suggested code, sorry for the multiple PLs by @gcourcou in https://github.com/DamCB/tyssue/pull/234
- Neighbour exchanges in delamination by @btbest in https://github.com/DamCB/tyssue/pull/250
- add geometry calculation to prevent midline crossing by @btbest in https://github.com/DamCB/tyssue/pull/254
- merge from glyg by @glyg in https://github.com/DamCB/tyssue/pull/264
- CI-CD update by @glyg in https://github.com/DamCB/tyssue/pull/277
- Update history.py by @sniffo in https://github.com/DamCB/tyssue/pull/274
- Dev by @glyg in https://github.com/DamCB/tyssue/pull/281
- Dev by @glyg in https://github.com/DamCB/tyssue/pull/283
New Contributors
- @pdebuyl made their first contribution in https://github.com/DamCB/tyssue/pull/244
- @yochannah made their first contribution in https://github.com/DamCB/tyssue/pull/247
- @sniffo made their first contribution in https://github.com/DamCB/tyssue/pull/274
Full Changelog: https://github.com/DamCB/tyssue/compare/0.9.0...1.0.0
Scientific Software - Peer-reviewed
- Python
Published by glyg over 2 years ago
Tyssue - 1.0 prerelease
Big release, see #281
Scientific Software - Peer-reviewed
- Python
Published by glyg over 2 years ago
Tyssue - 0.6.0
What's new in 0.6.0
Topology
Some bug fixes for 3D rearangements
Collisions
Puts an exact kernel in c_collisions.cpp
We switched to CodeCoV for coverage reports (purely from hype/style motivations)
SolverIVP disapeared
In the absence of a clear way to deal with rearangement, we had to let this go for now, it may come back later...
Behaviors
- We add two basics function in actions for sheet tissue :
increaseanddecrease. In the near future, we will removed deprecated function thatincreaseanddecreasewill replace (such asgrowth,shrink,contractandrelax).
History and HistoryHdf5
new
HistoryHdf5class that records each time point in a hdf file instead of in memory.new
browse_historyfunction that creates a widget to slide through the different time points with an ipyvolume 3D view
Draw
- the
colorentries in edge and face specs can now be functions that take a sheet object as sole argument:py specs = { "edge":{ 'color':'lightslategrey', 'visible':True }, "face":{ 'color': lambda sheet : sheet.face_df["apoptosis"], 'colormap':'Reds', 'visible':True } }
This way, the color is updated at each function call, without having to define a new function.
Utils
- new
get_nextfunction returns the indexes of the next half-edge for every edge (e.g the edge whosesrceis thetrgtof the current edge)
Scientific Software - Peer-reviewed
- Python
Published by glyg over 6 years ago
Tyssue - 0.5.0
Major rewrite of the rearangements
We now allow for rosettes to form, and split type1 transition in two steps: merging of edges bellow the critical length and spliting more than rank 3 vertices (or more than rank 4 in 3D). The splitting frequency is governed by two settings p_4 and p5p.This follows Finegan et al 2019. See doc/notebooks/Rosettes.ipynb for a demo.
A look a the diffs in sheet_topology and bulk_topology should convince the reader that this should result in a major increase in stability.
Automated reconnection is now treated as an event (treated by an EventManager instance), see tyssue.behavior.base_events.reconnect.
In EulerSolver, this avoids raising TopologyChangeError at least in explicit Euler. Topology changes in IVPSolver are not supported for now.
Viscous solver
- added a
boundsattribute to EulerSolver. This simply clips the displacement to avoid runaway conditions.
Core and topology
A new
update_rankmethod allows to compute the rank of a vertex (as the number of flat edges connected to it). This required to move theconnectivitymodule to utils to avoid circular imports.We explicitly allow two sided faces to be created by
collapse_edgeorremove_face, they are directly eliminated.
Scientific Software - Peer-reviewed
- Python
Published by glyg almost 7 years ago
Tyssue - 0.3.1
New features
Neighborhood code for cells (
eptm.get_neighborsandeptm.get_neighborhood)added a ClosedSheetGeometry class
Bug fixes
fixed bug introducing nan values in cell history
debugged IH transition and HI transitions decorators
fixed default list of datasets in io.hdf5.load_datasets
pass specification as optional in Monolayer
fix bug in getoutersheet
fixed bugs in lumen volume
fiexes bug in getoppositefaces
Scientific Software - Peer-reviewed
- Python
Published by glyg over 7 years ago
Tyssue - 0.3.0
What's new in 0.3
Solvers
The solvers.quasistatic.QSSolver class provides a refactored solver that includes automatic Type 1, Type 3 and collision detection solving after each function evaluation. Use it with:
solver = QSSolver(with_t1=True, with_t3=True, with_t3=True)
solver.find_energy_min(sheet, **minimize_kwargs)
The function signature is a bit different from the previous sheet_vertex_solver.Solver as key-word arguments are directly passed to scipy minimize function. You thus need to replace:
python
solver_kw = {'minimize': {'method': 'L-BFGS-B',
'options': {'ftol': 1e-8,
'gtol': 1e-8}}}
solver.find_energy_min(sheet, **solver_kw)
by:
python
solver_kw = {'method': 'L-BFGS-B',
'options': {'ftol': 1e-8,
'gtol': 1e-8}}}
solver.find_energy_min(sheet, **solver_kw)
to use the new solver.
Note that sheet_vertex_solver.Solver is still available.
Behavior
Event management refactoring
We refactored event management with a keyword arguments only design to make passing complex parameter dictionnaries easier.
Actions and events where added for monolayer objects.
There is now an option in the manager append methods kwargs to add unique event or not.
Licence
We switched to GPL to be able to use CGAL without worrying. If this is a problem to you, we can offer accomodations.
Vizualisation
The use of the top level draw.sheet_view function is encouraged. It is now possible to specify visibility at the single face level with a "visible" column in the face DataFrame.
Core
- Added a
Historyclass to handle time series of sheet movements
Geometry
- Lumen volume calculation on a new geometry class (#110)
- Create a new segment vertex category : lateral in Monolayer
- adds
finallystatement to scale_unscale utils - Change 'sagittal' key word by 'lateral' key word
Dynamics
New quasitatic solver class.
New effectors
- Add LumenVolumeElasticity effector
- added SurfaceTension effector
Bug fixes
- reset catched ValueError to Exception waiting for pandas to publish 0.24
- Better opposite management and validation for Sheet, closes #72
- Correction of color face (#85)
- fixes reset_specs warning formatting bug
- Correction of segment category for new faces create in IH transition
Misc
The codebase now uses black to format all the code base.
Pruning
- removed old isotropic model
- removes multisheet (#105)
Scientific Software - Peer-reviewed
- Python
Published by glyg over 7 years ago
Tyssue - 0.2.2 release
intermediary release to enjoy latest functionalities in conda
Scientific Software - Peer-reviewed
- Python
Published by glyg almost 8 years ago
Tyssue - 0.2 release
This is a major release.
Notable changes from 0.1
Model factory and effectors
We changed completely the way models are defined. For the quasi-static models currently supported, the models are defined through a model_factory function that collects a list of effector objects, defining the individual interaction. This way, it is easy to change the model components "on site".
New EvenManager mechanism in tyssue.behavior
Letting go of the ugly time_table mechanism, it should be easier to define adaptable event sequences
Generation as a separate module
Note that
from tyssue.core.generation import ...should be replaced byfrom tyssue.generation import ...
get_opposite moved from core.object to sheet
It is also now a method of Sheet
Note You need to change from
tyssue.core import get_oppositetotyssue.core.sheet import get_opposite
Ellipsoid geometry, derived from cylindrical, and ellipsoid generation functions
Most of the Reveresible Network Recombination from Okuda et al has been implemented
3D models are well supported (for division and I-H / H-I transitions. Some work as yet to be done on quasistatic models
Scientific Software - Peer-reviewed
- Python
Published by glyg about 8 years ago
Tyssue - 0.2rc2
This is the second release candidate for release 0.2
I'll do proper release notes for 0.2 - the main objective being now to increase test coverage and cleaning up the tyssue-notebooks repo for demo purposes
Scientific Software - Peer-reviewed
- Python
Published by glyg over 8 years ago
Tyssue - tyssue version 0.1
This is the first official release of the tyssue library.
See README.md and the docs for a tour
Scientific Software - Peer-reviewed
- Python
Published by glyg over 9 years ago