Skip to content

Commit

Permalink
Dev (#283)
Browse files Browse the repository at this point in the history
* 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]>
  • Loading branch information
3 people authored Feb 13, 2024
1 parent 2c8de87 commit 8eb034f
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 8 deletions.
1 change: 0 additions & 1 deletion .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ conda:
submodules:
include:
- doc/notebooks
- pybind11
recursive: true


Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ This commit to the **new default branch `main` is the official start of the 1.0

### Short term

- [ ] fix CI w/ github actions
- [X] fix CI w/ github actions
- [ ] Readthedocs with mkdoc
- [ ] Tests
- [ ] Notebook tests
- [ ] Merge PRs #263 #274
- [ ] Tests
- [x] Tests
- [x] Notebook tests
- [x] Merge PRs #263 #274
- [x] Tests
- [ ] Check Polarization notebooks


Expand Down
3 changes: 3 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,16 @@ test = [
"nox",
"pytest",
"pytest-cov",
"scikit-build-core",
"nbval"
"scikit-build-core"
]
dev = [
"pytest",
"pytest-cov",
"scikit-build-core",
"pre-commit",
"nbval"
]
docs = [
"Sphinx",
Expand Down
2 changes: 1 addition & 1 deletion src/tyssue/core/objects.py
Original file line number Diff line number Diff line change
Expand Up @@ -671,7 +671,7 @@ def validate(self):
e.g. has only closed polygons and polyhedra
"""
return np.alltrue(self.get_valid())
return np.all(self.get_valid())

def get_valid(self):
"""Set the 'is_valid' column to true if the faces are all closed polygons,
Expand Down

0 comments on commit 8eb034f

Please sign in to comment.