cardiac-geometriesx 0.4.6__py3-none-any.whl → 0.4.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of cardiac-geometriesx might be problematic. Click here for more details.

cardiac_geometries/cli.py CHANGED
@@ -92,6 +92,14 @@ def app():
92
92
  help="Function space for fibers of the form family_degree",
93
93
  show_default=True,
94
94
  )
95
+ @click.option(
96
+ "--clipped/--no-clipped",
97
+ default=False,
98
+ is_flag=True,
99
+ type=bool,
100
+ help="If True create clip away the outflow tracts",
101
+ show_default=True,
102
+ )
95
103
  def ukb(
96
104
  outdir: Path | str,
97
105
  mode: int = -1,
@@ -102,6 +110,7 @@ def ukb(
102
110
  fiber_angle_endo: float = 60,
103
111
  fiber_angle_epi: float = -60,
104
112
  fiber_space: str = "P_1",
113
+ clipped: bool = False,
105
114
  ):
106
115
  outdir = Path(outdir)
107
116
  outdir.mkdir(exist_ok=True)
@@ -116,6 +125,7 @@ def ukb(
116
125
  fiber_angle_endo=fiber_angle_endo,
117
126
  fiber_angle_epi=fiber_angle_epi,
118
127
  fiber_space=fiber_space,
128
+ clipped=clipped,
119
129
  )
120
130
  geo.save(outdir / "ukb.bp")
121
131
 
@@ -32,6 +32,7 @@ def ukb(
32
32
  fiber_angle_endo: float = 60,
33
33
  fiber_angle_epi: float = -60,
34
34
  fiber_space: str = "P_1",
35
+ clipped: bool = False,
35
36
  comm: MPI.Comm = MPI.COMM_WORLD,
36
37
  ) -> Geometry:
37
38
  try:
@@ -44,26 +45,29 @@ def ukb(
44
45
  raise ImportError(msg) from e
45
46
 
46
47
  if comm.rank == 0:
48
+ ukb.cli.main(["surf", str(outdir), "--mode", str(mode), "--std", str(std), "--case", case])
49
+ mesh_args = [
50
+ "mesh",
51
+ str(outdir),
52
+ "--case",
53
+ case,
54
+ "--char_length_max",
55
+ str(char_length_max),
56
+ "--char_length_min",
57
+ str(char_length_min),
58
+ ]
59
+ if clipped:
60
+ ukb.cli.main(["clip", str(outdir), "--case", case, "--smooth"])
61
+ mesh_args.append("--clipped")
47
62
  print(comm.rank)
48
- ukb.cli.main(
49
- [
50
- str(outdir),
51
- "--mode",
52
- str(mode),
53
- "--std",
54
- str(std),
55
- "--case",
56
- case,
57
- "--mesh",
58
- "--char_length_max",
59
- str(char_length_max),
60
- "--char_length_min",
61
- str(char_length_min),
62
- ]
63
- )
63
+
64
+ ukb.cli.main(mesh_args)
64
65
  comm.barrier()
65
66
  outdir = Path(outdir)
66
- mesh_name = outdir / f"{case}.msh"
67
+ if clipped:
68
+ mesh_name = outdir / f"{case}_clipped.msh"
69
+ else:
70
+ mesh_name = outdir / f"{case}.msh"
67
71
 
68
72
  geometry = utils.gmsh2dolfin(comm=comm, msh_file=mesh_name)
69
73
 
@@ -98,24 +102,25 @@ def ukb(
98
102
  )
99
103
  raise ImportError(msg)
100
104
 
101
- # base_marker = 3
102
- # indices = []
103
- # for k in ["PV", "TV", "AV", "MV"]:
104
- # indices.append(geometry.ffun.find(geometry.markers[k][0]))
105
- # indices = np.hstack(comm.allreduce(indices, op=MPI.SUM))
106
- # values = np.full(len(indices), base_marker, dtype=np.int32)
107
-
108
- markers = {
109
- "lv": [geometry.markers["LV"][0]],
110
- "rv": [geometry.markers["RV"][0]],
111
- "epi": [geometry.markers["EPI"][0]],
112
- "base": [
113
- geometry.markers["PV"][0],
114
- geometry.markers["TV"][0],
115
- geometry.markers["AV"][0],
116
- geometry.markers["MV"][0],
117
- ],
118
- }
105
+ if clipped:
106
+ markers = {
107
+ "lv": [geometry.markers["LV"][0]],
108
+ "rv": [geometry.markers["RV"][0]],
109
+ "epi": [geometry.markers["EPI"][0]],
110
+ "base": [geometry.markers["BASE"][0]],
111
+ }
112
+ else:
113
+ markers = {
114
+ "lv": [geometry.markers["LV"][0]],
115
+ "rv": [geometry.markers["RV"][0]],
116
+ "epi": [geometry.markers["EPI"][0]],
117
+ "base": [
118
+ geometry.markers["PV"][0],
119
+ geometry.markers["TV"][0],
120
+ geometry.markers["AV"][0],
121
+ geometry.markers["MV"][0],
122
+ ],
123
+ }
119
124
  system = ldrb.dolfinx_ldrb(
120
125
  mesh=geometry.mesh,
121
126
  ffun=geometry.ffun,
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: cardiac-geometriesx
3
- Version: 0.4.6
3
+ Version: 0.4.7
4
4
  Summary: A python library for cardiac geometries
5
5
  Author-email: Henrik Finsberg <henriknf@simula.no>
6
6
  License: MIT
@@ -38,7 +38,7 @@ Provides-Extra: test
38
38
  Requires-Dist: pre-commit; extra == "test"
39
39
  Requires-Dist: pytest; extra == "test"
40
40
  Requires-Dist: pytest-cov; extra == "test"
41
- Requires-Dist: ukb-atlas; extra == "test"
41
+ Requires-Dist: ukb-atlas[pyvista]; extra == "test"
42
42
  Requires-Dist: fenicsx-ldrb; extra == "test"
43
43
  Provides-Extra: gui
44
44
  Requires-Dist: streamlit; extra == "gui"
@@ -47,6 +47,7 @@ Requires-Dist: pyvista[all]>=0.43.0; extra == "gui"
47
47
  Requires-Dist: trame-vuetify; extra == "gui"
48
48
  Requires-Dist: ipywidgets; extra == "gui"
49
49
  Requires-Dist: fenicsx-ldrb; extra == "gui"
50
+ Dynamic: license-file
50
51
 
51
52
  ![_](docs/_static/logo.png)
52
53
 
@@ -1,16 +1,16 @@
1
1
  cardiac_geometries/__init__.py,sha256=2W_ywAeLjyRk5MqSPAodHa4UN2lOnW1h8tmGLQ3gaJ0,150
2
- cardiac_geometries/cli.py,sha256=DvUxq3sXcrFrqJs9gKpNRosgtalASTRS-YAM_71MaxM,21777
2
+ cardiac_geometries/cli.py,sha256=Um8iYayrjinNiPkqq7PZC_8GRqzXc_eFswIcrRHOdeU,22007
3
3
  cardiac_geometries/geometry.py,sha256=y-V4DyksNCqPwK7-NQIjcS6ldlvh1ub2p7lj9FZJHWw,6795
4
4
  cardiac_geometries/gui.py,sha256=9WYR850wLrqsUrVUC37E2SaO0OWA_oagSe-YNrsxz3k,8376
5
- cardiac_geometries/mesh.py,sha256=3Uk2U_zSWQ6Ae45w6bEMsvaRM77js37er1QSMa3pLlY,30696
5
+ cardiac_geometries/mesh.py,sha256=jLHTujz_38SQ5loN94nuN6pMG8IVPmlCdwOJhzuMxy4,30922
6
6
  cardiac_geometries/utils.py,sha256=nJE-gyV7NIAmgl5JGlG5Vl7XsIcYS8Y20bVjYcd4R6c,21964
7
7
  cardiac_geometries/fibers/__init__.py,sha256=WpRrn9Iakl-3m8IGtFkqP0LXGjw5EZHZ8Eg9JCnCdrg,137
8
8
  cardiac_geometries/fibers/lv_ellipsoid.py,sha256=LZNhxzTsn-h88xXGP5bNfnWKhdvBROUjWjt8yrQFW48,6010
9
9
  cardiac_geometries/fibers/slab.py,sha256=TYQhckJ8mwXz_08Cx3QsPQMtemkaxZ955SnSMrDfBPE,3898
10
10
  cardiac_geometries/fibers/utils.py,sha256=pCoXkaUbidLGPY0Ty8uWCU1siDkHcv2qP8rZtdxMf0k,3475
11
- cardiac_geometriesx-0.4.6.dist-info/LICENSE,sha256=lo5K2rJPZOSv6luutGHbzzi3IpXNaB9E2UWq60qvNx0,1111
12
- cardiac_geometriesx-0.4.6.dist-info/METADATA,sha256=Z3JiJw3b5EfAhIvZBWhYm0XP9lcrNgodWH0y3vWvdMs,4289
13
- cardiac_geometriesx-0.4.6.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
14
- cardiac_geometriesx-0.4.6.dist-info/entry_points.txt,sha256=xOBnlc6W-H9oCDYLNz3kpki26OmpfYSoFSrmi_4V-Ec,52
15
- cardiac_geometriesx-0.4.6.dist-info/top_level.txt,sha256=J0gQxkWR2my5Vf7Qt8buDY8ZOjYdVfIweVunCGXWKNE,19
16
- cardiac_geometriesx-0.4.6.dist-info/RECORD,,
11
+ cardiac_geometriesx-0.4.7.dist-info/licenses/LICENSE,sha256=lo5K2rJPZOSv6luutGHbzzi3IpXNaB9E2UWq60qvNx0,1111
12
+ cardiac_geometriesx-0.4.7.dist-info/METADATA,sha256=oJ34aXkOaMw3jfqhmYbsIFeyAf5SMjf_PP-SifEgUW4,4320
13
+ cardiac_geometriesx-0.4.7.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
14
+ cardiac_geometriesx-0.4.7.dist-info/entry_points.txt,sha256=xOBnlc6W-H9oCDYLNz3kpki26OmpfYSoFSrmi_4V-Ec,52
15
+ cardiac_geometriesx-0.4.7.dist-info/top_level.txt,sha256=J0gQxkWR2my5Vf7Qt8buDY8ZOjYdVfIweVunCGXWKNE,19
16
+ cardiac_geometriesx-0.4.7.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.2)
2
+ Generator: setuptools (78.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5