Tyssue

Latest version: v1.1.0

Safety actively analyzes 618931 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

0.8.0

Core

- Set an `"id"` column by default
- Add force inference algorithm in sheet class, based on method describe in Brodland et al. 2014.
- New `get_simple_index` to "quickly" get a non-oriented, full edge representation of the epithelium
- New `euler_characteristic` function to asses wether polyhedrons are closed


Geometry
- Add two new geometry classes.

History

- Fix drop index name in retrieve method.
- Make HistoryHdf5 record every columns by default


Behaviors

- Removes the `sheet_events.relax` deprecated function

Dynamics

- More coherent use of `is_active`

Topology

- close_cell now raises an error if the cell has more than one hole
- changed the algorythm for 3D cell division to have a more robust
way to attribute faces to the daughter cells (see `return_verts` argument in `get_division_edges`)
- do not check for condition_4 on division


Generation

- Adds a Lloyd relaxation step for spherical sheet generation (needs to be generalized)

0.7.0

Coordinate system and vertex ordering

- Added `"rx", "ry", "rz"` columns, reprensenting the source vertex positions relative to face center
- The `face_projected_pos` method has been rewritten with a much faster implementation.
- There is now a `"phi"` angle representing the angle in the
face plane.
- There is a new `order` optional parameter to `reset_index` and `sanitize` that re-indexes `edge_df` such that the vertices for each face are contiguous and ordered clockwize in the face plane.
- The `face_polygons` method benefits from this rewrite, so does the 2D `sheet_view`.


Quasi-static solver

- Added periodic boundary conditions support

Generation

- adds spherical sheet and monolayers from CGAL

Install

- CGAL-less version installable with pip

Geometry & Dynamics

- New geometry classes
- BorderElasticity, RadialTension, and BarrierElasticity effectors
- Effectors now take nested dictionnaries as specs, instead of dictionnary of sets:
py
specs = {
"face": {
"is_alive": 1,
"perimeter": 1.0,
"perimeter_elasticity": 0.1,
"prefered_perimeter": 3.81,
}
}

Instead of the previous:

py
specs = {
"face": {
"is_alive",
"perimeter",
"perimeter_elasticity",
"prefered_perimeter",
}
}


This allows to give default values to the paramters directly in the effector class definition, and to have a `specs` attribute for the model directly.

A warning is raised if the effector definition uses the old style.


- Cell division on periodic boundary conditions

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 : `increase` and `decrease`. In the near future, we will removed deprecated function that `increase` and `decrease` will replace (such as `growth`, `shrink`, `contract` and `relax`).

History and HistoryHdf5

- new `HistoryHdf5` class that records each time point in a hdf file instead of in memory.

- new `browse_history` function that creates a widget to slide through the different time points with an ipyvolume 3D view

Draw

- the `color` entries 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_next` function returns the indexes of the next half-edge for every edge (e.g the edge whose `srce` is the `trgt` of the current edge)

0.5

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 `bounds` attribute to EulerSolver. This simply clips the displacement to avoid runaway conditions.


Core and topology

- A new `update_rank` method allows to compute the rank of a vertex (as the number of _flat_ edges connected to it). This required to move the `connectivity` module to utils to avoid circular imports.

- We explicitly allow two sided faces to be created by `collapse_edge` or `remove_face`, they are directly eliminated.

0.4

Time dependant solvers

- Added two time-dependant solvers `solvers.viscous.EulerSolver` and `solvers.viscous.IVPSolver` -- see [the demo](doc/notebooks/SimpleTimeDependent.ipynb)

- Added a connectivity matrices module

- removed layer type 1 transition (maybe a bit harshly)

- rewrote effectors specification with default values

- added a `merge_border` function to put single edges at a 2D sheet border, and a `trim_borders` option to the `sheet.remove()` and `sheet.sanitize()` methods

Pipes

- collision detection should now be an optional dependency
- `doc/notebooks` is now synched with the [tyssue-demo](https://github.com/damcb.tyssue-demo) repo
- new `make nbtest` uses nbval to run the notebooks under pytest
(provinding some kind of integration tests)

0.3.1

- Collision detection also works for the outer layers of bulk tissues, i.e. collisions of the apical or basal surfaces are avoided for a monolayer.

- Added `get_neighbors` and `get_neighborhood` method to `Epithelium` to allow local patch queries in bulk epithelia (was initially only possible for 2D sheets).

Page 1 of 2

Links

Releases

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.