-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cell division failed for cell at the border #261
Comments
sophietheis
added a commit
to sophietheis/tyssue
that referenced
this issue
Nov 9, 2022
Merged
Merged
sophietheis
added a commit
to sophietheis/tyssue
that referenced
this issue
Jan 3, 2023
glyg
added a commit
that referenced
this issue
Dec 27, 2023
* Fix for Issues #261 - cell division failed at the border * Fix Mesh creation Surface mesh create wasn't create all faces. Now it is fixed. Also : -add two methods to Mesh to list faces and vertices. -generalised coordinates -add `write_polygon_mesh` to export mesh into .ply to visualised with blinder * Add 2D collision solver Add class to solve collision in 2D or in 3D. 3D collision solver need to be fixed * Update README.md Add `How to cite` section Add `Geometry` section Add `Publications` section Update bibliography link * Generalised wich vertex penetrate face * Attempt to set out particular cases * Detect and fix self-crossing face Unable to make this algo works... https://europepmc.org/article/PMC/3660981 Use ordered vertices and their angle position. -> uncrossed face : angles are monotonically increasing -> crossed face : angles are not monotonically increasing * Use `.apply()` Need to recalculate angle_e for twisted face One fix which is only suitable for 2D lateral sheet... * ENH: write `mean_XX` method in `Epithelium` class (Issue #224) * Fix according to comments * Fix Issue #258 ax argument not considered in `plt_draw.sheet_view` * ENH: pass column name to `data_at_opposite` issue (#245) * Add publication and remove bibtex reference * Add check face convexity * Use reset_index and code simplification * yAdd to_mesh function (issue #221) and some test * Remove the use of reset_index in face_self_intersect * use ipv_draw with 2D data * Fix solution after detection point inside polygon * Remove solving collision for 2 same face... * Abord vertex displacement if it creates twisted face * New way to calculate the position of "penetrate" vertices For now, it is the best way to fix collision (compare to what I tried before). So when a vertex is inside an other face. It is pullback by 10% of the length of the ([v-f1]+[v-f2]/2). with v, f1, f2 position of vertices and center of face 1 and face 2, which are the faces to which the vertex belongs. It is not perfect and very arbitrary for now, but it avoids vertex displacement at strange place. * WIP - use force field to fix collision * Small fix * Remove function duplication due to circular import * Calculate "repulsion" gradient in the effector method. Remove loop * Fix tests Remove collisions tests Fix method call in meshes test Comment "update_repulstion" method in planar geometry * Add lateralsheet shapes + test * Update publication + add collapse texte * Add test for Repulsion effector * Add test update repulsion * Remove unused import * Add `drop_face` to allow hole (issues #220 and #141) (associate #221) * Update readme.md * Update publications in README.md * Add `lineage` attribute to `Epithelium` In order to keep track of cell lineage * Remove memory oscillation * dependency (#277) * bug fixes --------- Co-authored-by: Guillaume Gay <[email protected]>
glyg
added a commit
that referenced
this issue
Jan 10, 2024
* dependency * Update history.py > Added the self.time_stamps() method code for HistoryHdf5 class into the __init__() method so that time_stamps are only calculated once as self._time_stamps > Edited self.time_stamps() method to return self._time_stamps > Greatly improves efficiency of retrieve() method as time_stamps is not computed each time a new time-point is loaded. * Solving mesh collision (#263) * Fix for Issues #261 - cell division failed at the border * Fix Mesh creation Surface mesh create wasn't create all faces. Now it is fixed. Also : -add two methods to Mesh to list faces and vertices. -generalised coordinates -add `write_polygon_mesh` to export mesh into .ply to visualised with blinder * Add 2D collision solver Add class to solve collision in 2D or in 3D. 3D collision solver need to be fixed * Update README.md Add `How to cite` section Add `Geometry` section Add `Publications` section Update bibliography link * Generalised wich vertex penetrate face * Attempt to set out particular cases * Detect and fix self-crossing face Unable to make this algo works... https://europepmc.org/article/PMC/3660981 Use ordered vertices and their angle position. -> uncrossed face : angles are monotonically increasing -> crossed face : angles are not monotonically increasing * Use `.apply()` Need to recalculate angle_e for twisted face One fix which is only suitable for 2D lateral sheet... * ENH: write `mean_XX` method in `Epithelium` class (Issue #224) * Fix according to comments * Fix Issue #258 ax argument not considered in `plt_draw.sheet_view` * ENH: pass column name to `data_at_opposite` issue (#245) * Add publication and remove bibtex reference * Add check face convexity * Use reset_index and code simplification * yAdd to_mesh function (issue #221) and some test * Remove the use of reset_index in face_self_intersect * use ipv_draw with 2D data * Fix solution after detection point inside polygon * Remove solving collision for 2 same face... * Abord vertex displacement if it creates twisted face * New way to calculate the position of "penetrate" vertices For now, it is the best way to fix collision (compare to what I tried before). So when a vertex is inside an other face. It is pullback by 10% of the length of the ([v-f1]+[v-f2]/2). with v, f1, f2 position of vertices and center of face 1 and face 2, which are the faces to which the vertex belongs. It is not perfect and very arbitrary for now, but it avoids vertex displacement at strange place. * WIP - use force field to fix collision * Small fix * Remove function duplication due to circular import * Calculate "repulsion" gradient in the effector method. Remove loop * Fix tests Remove collisions tests Fix method call in meshes test Comment "update_repulstion" method in planar geometry * Add lateralsheet shapes + test * Update publication + add collapse texte * Add test for Repulsion effector * Add test update repulsion * Remove unused import * Add `drop_face` to allow hole (issues #220 and #141) (associate #221) * Update readme.md * Update publications in README.md * Add `lineage` attribute to `Epithelium` In order to keep track of cell lineage * Remove memory oscillation * dependency (#277) * bug fixes --------- Co-authored-by: Guillaume Gay <[email protected]> * tests pass * fixes unknown namz --------- Co-authored-by: sniffo <[email protected]> Co-authored-by: Sophie THEIS <[email protected]>
glyg
added a commit
that referenced
this issue
Feb 13, 2024
* Fix for Issues #261 - cell division failed at the border * Fix Mesh creation Surface mesh create wasn't create all faces. Now it is fixed. Also : -add two methods to Mesh to list faces and vertices. -generalised coordinates -add `write_polygon_mesh` to export mesh into .ply to visualised with blinder * Add 2D collision solver Add class to solve collision in 2D or in 3D. 3D collision solver need to be fixed * Update README.md Add `How to cite` section Add `Geometry` section Add `Publications` section Update bibliography link * Generalised wich vertex penetrate face * Attempt to set out particular cases * Detect and fix self-crossing face Unable to make this algo works... https://europepmc.org/article/PMC/3660981 Use ordered vertices and their angle position. -> uncrossed face : angles are monotonically increasing -> crossed face : angles are not monotonically increasing * Use `.apply()` Need to recalculate angle_e for twisted face One fix which is only suitable for 2D lateral sheet... * ENH: write `mean_XX` method in `Epithelium` class (Issue #224) * Fix according to comments * Fix Issue #258 ax argument not considered in `plt_draw.sheet_view` * ENH: pass column name to `data_at_opposite` issue (#245) * Add publication and remove bibtex reference * Add check face convexity * Use reset_index and code simplification * yAdd to_mesh function (issue #221) and some test * Remove the use of reset_index in face_self_intersect * use ipv_draw with 2D data * Fix solution after detection point inside polygon * Remove solving collision for 2 same face... * Abord vertex displacement if it creates twisted face * New way to calculate the position of "penetrate" vertices For now, it is the best way to fix collision (compare to what I tried before). So when a vertex is inside an other face. It is pullback by 10% of the length of the ([v-f1]+[v-f2]/2). with v, f1, f2 position of vertices and center of face 1 and face 2, which are the faces to which the vertex belongs. It is not perfect and very arbitrary for now, but it avoids vertex displacement at strange place. * WIP - use force field to fix collision * Small fix * Remove function duplication due to circular import * Calculate "repulsion" gradient in the effector method. Remove loop * Fix tests Remove collisions tests Fix method call in meshes test Comment "update_repulstion" method in planar geometry * Add lateralsheet shapes + test * Update publication + add collapse texte * Add test for Repulsion effector * Add test update repulsion * Remove unused import * Add `drop_face` to allow hole (issues #220 and #141) (associate #221) * Update readme.md * Update publications in README.md * Add `lineage` attribute to `Epithelium` In order to keep track of cell lineage * Remove memory oscillation * builds with pip adds pyproject.toml build command: pip install --no-build-isolation --config-settings=editable.rebuild=true -ve. * debugging, still no build apparently * build and tests * update nb submodule * fix pyproject * install with pip in CI * install with pip in CI * install with pip in CI * adds scikit-build dep * python version * python version specifier * remove strang flags * adds _version.py * setuptools_scm dep * simplified I guess * zdds setuptools-scm to env, MakeFilelist shenanigans * restricting to 3.10 * install dev * pyhon version coherence * install cmd * trying to move to modern sckit-build (it's painful) * WIP change build * getting closer I hope * make_spherical test pasess \o/ * tests passing, warnings still to be treated * don't install editable version in gh action * remove diff chars * tagging again to avoid metadata mismatch * Uncomment 2D repulsion + tests Fix pandas issue * Add comments in effectors.py * rmeove _version.py and ignore in git * Update history.py (#274) > Added the self.time_stamps() method code for HistoryHdf5 class into the __init__() method so that time_stamps are only calculated once as self._time_stamps > Edited self.time_stamps() method to return self._time_stamps > Greatly improves efficiency of retrieve() method as time_stamps is not computed each time a new time-point is loaded. * skip 2 tests * fix non existing hdf5 * submodules * adds notebooks submodule * should fix history bug * adds submodules again --------- Co-authored-by: Sophie T <[email protected]> Co-authored-by: sniffo <[email protected]>
glyg
added a commit
that referenced
this issue
Feb 13, 2024
* Fix for Issues #261 - cell division failed at the border * Fix Mesh creation Surface mesh create wasn't create all faces. Now it is fixed. Also : -add two methods to Mesh to list faces and vertices. -generalised coordinates -add `write_polygon_mesh` to export mesh into .ply to visualised with blinder * Add 2D collision solver Add class to solve collision in 2D or in 3D. 3D collision solver need to be fixed * Update README.md Add `How to cite` section Add `Geometry` section Add `Publications` section Update bibliography link * Generalised wich vertex penetrate face * Attempt to set out particular cases * Detect and fix self-crossing face Unable to make this algo works... https://europepmc.org/article/PMC/3660981 Use ordered vertices and their angle position. -> uncrossed face : angles are monotonically increasing -> crossed face : angles are not monotonically increasing * Use `.apply()` Need to recalculate angle_e for twisted face One fix which is only suitable for 2D lateral sheet... * ENH: write `mean_XX` method in `Epithelium` class (Issue #224) * Fix according to comments * Fix Issue #258 ax argument not considered in `plt_draw.sheet_view` * ENH: pass column name to `data_at_opposite` issue (#245) * Add publication and remove bibtex reference * Add check face convexity * Use reset_index and code simplification * yAdd to_mesh function (issue #221) and some test * Remove the use of reset_index in face_self_intersect * use ipv_draw with 2D data * Fix solution after detection point inside polygon * Remove solving collision for 2 same face... * Abord vertex displacement if it creates twisted face * New way to calculate the position of "penetrate" vertices For now, it is the best way to fix collision (compare to what I tried before). So when a vertex is inside an other face. It is pullback by 10% of the length of the ([v-f1]+[v-f2]/2). with v, f1, f2 position of vertices and center of face 1 and face 2, which are the faces to which the vertex belongs. It is not perfect and very arbitrary for now, but it avoids vertex displacement at strange place. * WIP - use force field to fix collision * Small fix * Remove function duplication due to circular import * Calculate "repulsion" gradient in the effector method. Remove loop * Fix tests Remove collisions tests Fix method call in meshes test Comment "update_repulstion" method in planar geometry * Add lateralsheet shapes + test * Update publication + add collapse texte * Add test for Repulsion effector * Add test update repulsion * Remove unused import * Add `drop_face` to allow hole (issues #220 and #141) (associate #221) * Update readme.md * Update publications in README.md * Add `lineage` attribute to `Epithelium` In order to keep track of cell lineage * Remove memory oscillation * builds with pip adds pyproject.toml build command: pip install --no-build-isolation --config-settings=editable.rebuild=true -ve. * debugging, still no build apparently * build and tests * update nb submodule * fix pyproject * install with pip in CI * install with pip in CI * install with pip in CI * adds scikit-build dep * python version * python version specifier * remove strang flags * adds _version.py * setuptools_scm dep * simplified I guess * zdds setuptools-scm to env, MakeFilelist shenanigans * restricting to 3.10 * install dev * pyhon version coherence * install cmd * trying to move to modern sckit-build (it's painful) * WIP change build * getting closer I hope * make_spherical test pasess \o/ * tests passing, warnings still to be treated * don't install editable version in gh action * remove diff chars * tagging again to avoid metadata mismatch * Uncomment 2D repulsion + tests Fix pandas issue * Add comments in effectors.py * rmeove _version.py and ignore in git * Update history.py (#274) > Added the self.time_stamps() method code for HistoryHdf5 class into the __init__() method so that time_stamps are only calculated once as self._time_stamps > Edited self.time_stamps() method to return self._time_stamps > Greatly improves efficiency of retrieve() method as time_stamps is not computed each time a new time-point is loaded. * skip 2 tests * fix non existing hdf5 * submodules * adds notebooks submodule * should fix history bug * adds submodules again * minoor fix, notebooks * updates readme and rtd --------- Co-authored-by: Sophie T <[email protected]> Co-authored-by: sniffo <[email protected]>
glyg
added a commit
that referenced
this issue
Feb 13, 2024
* Fix for Issues #261 - cell division failed at the border * Fix Mesh creation Surface mesh create wasn't create all faces. Now it is fixed. Also : -add two methods to Mesh to list faces and vertices. -generalised coordinates -add `write_polygon_mesh` to export mesh into .ply to visualised with blinder * Add 2D collision solver Add class to solve collision in 2D or in 3D. 3D collision solver need to be fixed * Update README.md Add `How to cite` section Add `Geometry` section Add `Publications` section Update bibliography link * Generalised wich vertex penetrate face * Attempt to set out particular cases * Detect and fix self-crossing face Unable to make this algo works... https://europepmc.org/article/PMC/3660981 Use ordered vertices and their angle position. -> uncrossed face : angles are monotonically increasing -> crossed face : angles are not monotonically increasing * Use `.apply()` Need to recalculate angle_e for twisted face One fix which is only suitable for 2D lateral sheet... * ENH: write `mean_XX` method in `Epithelium` class (Issue #224) * Fix according to comments * Fix Issue #258 ax argument not considered in `plt_draw.sheet_view` * ENH: pass column name to `data_at_opposite` issue (#245) * Add publication and remove bibtex reference * Add check face convexity * Use reset_index and code simplification * yAdd to_mesh function (issue #221) and some test * Remove the use of reset_index in face_self_intersect * use ipv_draw with 2D data * Fix solution after detection point inside polygon * Remove solving collision for 2 same face... * Abord vertex displacement if it creates twisted face * New way to calculate the position of "penetrate" vertices For now, it is the best way to fix collision (compare to what I tried before). So when a vertex is inside an other face. It is pullback by 10% of the length of the ([v-f1]+[v-f2]/2). with v, f1, f2 position of vertices and center of face 1 and face 2, which are the faces to which the vertex belongs. It is not perfect and very arbitrary for now, but it avoids vertex displacement at strange place. * WIP - use force field to fix collision * Small fix * Remove function duplication due to circular import * Calculate "repulsion" gradient in the effector method. Remove loop * Fix tests Remove collisions tests Fix method call in meshes test Comment "update_repulstion" method in planar geometry * Add lateralsheet shapes + test * Update publication + add collapse texte * Add test for Repulsion effector * Add test update repulsion * Remove unused import * Add `drop_face` to allow hole (issues #220 and #141) (associate #221) * Update readme.md * Update publications in README.md * Add `lineage` attribute to `Epithelium` In order to keep track of cell lineage * Remove memory oscillation * builds with pip adds pyproject.toml build command: pip install --no-build-isolation --config-settings=editable.rebuild=true -ve. * debugging, still no build apparently * build and tests * update nb submodule * fix pyproject * install with pip in CI * install with pip in CI * install with pip in CI * adds scikit-build dep * python version * python version specifier * remove strang flags * adds _version.py * setuptools_scm dep * simplified I guess * zdds setuptools-scm to env, MakeFilelist shenanigans * restricting to 3.10 * install dev * pyhon version coherence * install cmd * trying to move to modern sckit-build (it's painful) * WIP change build * getting closer I hope * make_spherical test pasess \o/ * tests passing, warnings still to be treated * don't install editable version in gh action * remove diff chars * tagging again to avoid metadata mismatch * Uncomment 2D repulsion + tests Fix pandas issue * Add comments in effectors.py * rmeove _version.py and ignore in git * Update history.py (#274) > Added the self.time_stamps() method code for HistoryHdf5 class into the __init__() method so that time_stamps are only calculated once as self._time_stamps > Edited self.time_stamps() method to return self._time_stamps > Greatly improves efficiency of retrieve() method as time_stamps is not computed each time a new time-point is loaded. * skip 2 tests * fix non existing hdf5 * submodules * adds notebooks submodule * should fix history bug * adds submodules again * minoor fix, notebooks * updates readme and rtd * fixing pyproject --------- Co-authored-by: Sophie T <[email protected]> Co-authored-by: sniffo <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi,
Cell division can fail for cell at the border. Especially when the axis of division involves junction that has no opposite.
Fix is easy. Inside base_topology file, modify line 122-126 :
by :
Need to add the modification in the next PR.
The text was updated successfully, but these errors were encountered: