You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+19-5Lines changed: 19 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
## Abstract:
4
4
5
-
physicelldataloader (pcdl) provides a platform-independent (Windows, MacOSX, Linux), python3 based, [pip](https://en.wikipedia.org/wiki/Pip_(package_manager))-installable set of commands
5
+
physicell data loader (pcdl) provides a platform-independent (Windows, MacOSX, Linux), python3 based, [pip](https://en.wikipedia.org/wiki/Pip_(package_manager))-installable set of commands
6
6
to load output, generated with the [PhysiCell](https://github.com/MathCancer/PhysiCell) agent-based modeling and diffusion solver framework,
7
7
into [python3](https://en.wikipedia.org/wiki/Python_(programming_language)) or transform PhysiCell output into more widely used data formats.
8
8
pcdl can be loaded as a python3 module or run straight from the command line.
@@ -23,7 +23,7 @@ The pcdl python3 library maintains four branches:
+ Date of origin original PhysiCell-Tools python-loader: 2019-09-02
28
28
+ Date of origin pcdl fork: 2022-08-30
29
29
+ Doi: https://doi.org/10.5281/ZENODO.8176399
@@ -49,7 +49,8 @@ Basics Tutorials:
49
49
Extras tutorials python3 language:
50
50
+[pcdl and python3 and json](https://github.com/elmbeech/physicelldataloader/blob/master/man/TUTORIAL_python3_json.md)
51
51
+[pcdl and python3 and pandas](https://github.com/elmbeech/physicelldataloader/tree/master/man/TUTORIAL_python3_pandas.md)
52
-
+[pcdl and python3 and scipy and scanpy](https://github.com/elmbeech/physicelldataloader/tree/master/man/TUTORIAL_python3_scverse.md)
52
+
+[pcdl and python3 and scanpy and squidpy](https://github.com/elmbeech/physicelldataloader/tree/master/man/TUTORIAL_python3_scverse.md)
53
+
+[pcdl and python3 and muspan](https://github.com/elmbeech/physicelldataloader/tree/master/man/TUTORIAL_python3_muspan.md)
53
54
+[pcdl and python3 and graphs](https://github.com/elmbeech/physicelldataloader/tree/master/man/TUTORIAL_python3_graph.md)
54
55
+[pcdl and python3 and matplotlib](https://github.com/elmbeech/physicelldataloader/tree/master/man/TUTORIAL_python3_matplotlib.md)
55
56
+[pcdl and python3 and vtk](https://github.com/elmbeech/physicelldataloader/tree/master/man/TUTORIAL_python3_vtk.md)
@@ -129,6 +130,18 @@ Developers, please make pull requests to the https://github.com/elmbeech/physice
129
130
130
131
131
132
## Release Notes:
133
+
+ version 4.1.5 (2026-04-05)
134
+
+ bugfix library dependencies and library versions.
135
+
136
+
+ version 4.1.4 (2026-04-04)
137
+
+ pyMCDSts **mcdsts.make_contour** extrema parameter is replaced by vmin and vmax to be compatible with mcds.make\_contour and plt.contour.
138
+
+**make_cell_vtk** and **make_conc_vtk** now offer an ext parameter, allowing to manually specify the exact file extension. special thanks to Danyon Gedris!
139
+
+ new **make_muspan** TimeStep class and TimeSeris class function and **pcdl_get_muspan** command line command. special thanks to Joshua Moore and Joshua Bull!
140
+
141
+
+ version 4.1.3 (2026-03-21):
142
+
+ new **pcdl.pccmap** color map. this is an adaptation of the physicell pathology paint by number color map.
143
+
+ new TimeStep **get_pcdl_version** function.
144
+
132
145
+ version 4.1.2 (2026-03-06): elmbeech/physicelldataloader
133
146
+ new **custom_data_astype** TimeStep class and TimeSeries class function to set the dtype of custom\_data variables even after the timestep or timeseries is loaded.
134
147
+ TimeSeries \_\_init\_\_ function can now handle a list of TimeStep objects as input instead of a path.
@@ -137,13 +150,14 @@ Developers, please make pull requests to the https://github.com/elmbeech/physice
137
150
+ reduced memory footprint.
138
151
139
152
+ version 4.1.0 (2025-12-31): elmbeech/physicelldataloader
140
-
+ new **get_spatialdata** TimeStep class and TimeSeris class function and **pcdl_get_spatialdata** command line command.
153
+
+ new **get_spatialdata** TimeStep class and TimeSeris class function and **pcdl_get_spatialdata** command line command. special thanks to Luca Marconato!
154
+
+ with this release, pcdl officially became an [scverse ecosystem](https://scverse.org/packages/#ecosystem) package.
141
155
142
156
+ version 4.0.5 (2025-10-22): elmbeech/physicelldataloader
143
157
+**settingxml** default is now set to False, because the cell\_type id label mapping can, in recent PhysiCell output, be retrieved from output\*.xml too.
144
158
+**plot_scatter** and **plot_timeseries** now additionally have a cat\_drop and cat\_keep argument to filter categorical data.
145
159
+**plot_timeseries(frame=conc)** now plots by default all substrate concentrations over time.
146
-
+**plot_timeseries(ext=)** parameter offers to return a dataframe object, dafaframe csv file, image file, or a matplotlib fig object. special thanks to John Nardini and Edward Young.
160
+
+**plot_timeseries(ext=)** parameter offers to return a dataframe object, dafaframe csv file, image file, or a matplotlib fig object. special thanks to John Nardini and Edward Young!
147
161
148
162
+ version 4.0.4 (2025-07-23): elmbeech/physicelldataloader
149
163
+ command line commands now return **error code 0** if the command runs successfully.
Copy file name to clipboardExpand all lines: man/REFERENCE.md
+7Lines changed: 7 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -46,6 +46,7 @@ Basically, there are four types of functions:
46
46
### TimeStep medata
47
47
*version*
48
48
+[help(mcds.get_multicellds_version)](https://github.com/elmbeech/physicelldataloader/tree/master/man/docstring/mcds.get_multicellds_version.md) #! workhorse function
49
+
+[help(mcds.get_pcdl_version)](https://github.com/elmbeech/physicelldataloader/tree/master/man/docstring/mcds.get_pcdl_version.md) #! workhorse function
49
50
+[help(mcds.get_physicell_version)](https://github.com/elmbeech/physicelldataloader/tree/master/man/docstring/mcds.get_physicell_version.md) #! workhorse function
50
51
51
52
*time*
@@ -99,6 +100,8 @@ Basically, there are four types of functions:
99
100
+[help(mcds.make_graph_gml)](https://github.com/elmbeech/physicelldataloader/tree/master/man/docstring/mcds.make_graph_gml.md) #! workhose function
100
101
101
102
### TimeStep microenvironment and cells
103
+
+[help(mcds.get_muspan)](https://github.com/elmbeech/physicelldataloader/tree/master/man/docstring/mcds.get_muspan.md) #! workhose function
104
+
+[help(mcds.get_spatialdata)](https://github.com/elmbeech/physicelldataloader/tree/master/man/docstring/mcds.get_spatialdata.md) #! workhose function
102
105
+[help(mcds.make_ome_tiff)](https://github.com/elmbeech/physicelldataloader/tree/master/man/docstring/mcds.make_ome_tiff.md) #! workhose function
103
106
+[help(mcds.make_neuroglancer)](https://github.com/elmbeech/physicelldataloader/tree/master/man/docstring/mcds.make_neuroglancer.md) #! workhose function
104
107
@@ -146,6 +149,8 @@ Basically, there are four types of functions:
146
149
+[help(mcdsts.get_graph_gml)](https://github.com/elmbeech/physicelldataloader/tree/master/man/docstring/mcdsts.make_graph_gml.md) #! workhose function
147
150
148
151
### TimeSteries microenvironment and cells
152
+
+[help(mcdsts.get_muspan)](https://github.com/elmbeech/physicelldataloader/tree/master/man/docstring/mcdsts.get_muspan.md) #! workhose function
153
+
+[help(mcdsts.get_spatialdata)](https://github.com/elmbeech/physicelldataloader/tree/master/man/docstring/mcdsts.get_spatialdata.md) #! workhose function
149
154
+[help(mcdsts.make_ome_tiff)](https://github.com/elmbeech/physicelldataloader/tree/master/man/docstring/mcdsts.make_ome_tiff.md) #! workhose function
150
155
+[help(mcdsts.make_neuroglancer)](https://github.com/elmbeech/physicelldataloader/tree/master/man/docstring/mcdsts.make_neuroglancer.md) #! workhose function
151
156
@@ -196,6 +201,8 @@ The command line interface functions mimic the name and parameter arguments as c
196
201
+[pcdl_make_graph_gml --help](https://github.com/elmbeech/physicelldataloader/tree/master/man/docstring/pcdl_make_graph_gml.md) #! workhorse function
197
202
198
203
### Command line cells and microenvironment
204
+
+[pcdl_get_muspan --help](https://github.com/elmbeech/physicelldataloader/tree/master/man/docstring/pcdl_get_muspan.md) #! workhorse function
205
+
+[pcdl_get_spatialdata --help](https://github.com/elmbeech/physicelldataloader/tree/master/man/docstring/pcdl_get_spatialdata.md) #! workhorse function
199
206
+[pcdl_make_ome_tiff --help](https://github.com/elmbeech/physicelldataloader/tree/master/man/docstring/pcdl_make_ome_tiff.md) #! workhorse function
200
207
+[pcdl_make_neuroglancer --help](https://github.com/elmbeech/physicelldataloader/tree/master/man/docstring/pcdl_make_neuroglancer.md) #! workhorse function
Copy file name to clipboardExpand all lines: man/TUTORIAL_blender.md
+5-2Lines changed: 5 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,13 +10,16 @@ And there exists a bioxel nodes plugin, that lets us load ome tiff files.
10
10
11
11
The blender bvtk nodes plugin allows us to load vtk files into blender.
12
12
13
+
Note, to be able to load whole time series, the blender bvtk nodes plugin needs a simplified output00000000.vtp file name and extension (which is different from the pcdl default output00000000\_cell.vtp).
14
+
This is why the ext parameter explicitly has to be set.
Copy file name to clipboardExpand all lines: man/TUTORIAL_commandline.md
+23-2Lines changed: 23 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -249,7 +249,7 @@ Further readings:
249
249
250
250
From the whole time series or from a single time step, generate h5ad [anndata](https://anndata.readthedocs.io/en/latest/)[hd5](https://en.wikipedia.org/wiki/Hierarchical_Data_Format) files.
251
251
252
-
Anndata is the standard data format in the python single cell community.
252
+
Anndata is the standard data format in the python3 single cell community.
253
253
Data stored in this format can be analyzed the same way as usually sc RNA seq data is analyzed.
254
254
255
255
```bash
@@ -337,12 +337,33 @@ Further readings:
337
337
338
338
## Microenvironment and cell agent related commands
339
339
340
+
### ✨ pcdl\_get\_muspan
341
+
342
+
From time series and single time steps, generate [muspan](https://www.muspan.co.uk/) domain files.
343
+
One file per time step and z-layer.
344
+
345
+
Muspan is a sphisticated python3 libaray for multiscale spatial data analysis, develop by researchers at the University of Oxford.
Copy file name to clipboardExpand all lines: man/TUTORIAL_introduction.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# PhysiCell Data Loader Tutorial: pcdl Introduction
2
2
3
-
If you have not already done so, please install the latest version of physicelldataloader (pcdl),
3
+
If you have not already done so, please install the latest version of physicell data loader (pcdl),
4
4
as described in the [HowTo](https://github.com/elmbeech/physicelldataloader/blob/master/man/HOWTO.md) section.\
5
5
The current development happens in branch v4.
6
6
Branch v3 and v4 are maintained and [pip](https://pypi.org/project/pcdl/) installable.
@@ -23,10 +23,10 @@ In 2019, a similar loader script was written for python3.
23
23
The name of this script filed was pyMCDS.py and basically defined one class named pyMCDS.
24
24
25
25
In autumn 2022, an endeavor was undertaken to pack the original pyMCDS.py script into a pip installable python3 library and develop it further, but always in such a way that, if necessary, the code could still be run like in the early days.\
26
-
The result is the pcdl physicelldataloader library branch v2, v3.
26
+
The result is the pcdl physicell data loader library branch v2, v3.
27
27
In spring 2025, the code was stripped of some relics (mainly in the back end) from the early days to make the code more python3 than C++ like, which resulted in branch v4.
28
28
29
-
The result from all of this is the pcdl physicelldataloader library here.\
29
+
The result from all of this is the pcdl physicell data loader library here.\
30
30
In the big picture, the pyMCDS class evolved into the TimeStep class, which is slightly heavier but much more powerful for downstream data analysis than the original pyMCDS class.
# PhysiCell Data Loader Tutorial: pcdl and Python and MuSpAn
2
+
3
+
[MuSpAn](https://www.muspan.co.uk/) is a multiscale spatial analysis toolbox for analyzing spatial transcriptomics data, multiplex immunohistochemistry data, imaging mass cytometry data, and more.
4
+
It uses cutting-edge mathematical and statistical approaches to data analysis to provide the most comprehensive spatial analysis available and is being continually expanded, with a team of quantitative researchers constantly developing new methodology to tackle multiscale spatial analysis problems.
5
+
6
+
Pcdl offers a time step and time series get\_muspan function to translate cell and substrate data into a dictionary of muspan domain objects, one domain per time step z-layer.
7
+
8
+
Additionally, pcdl provides a pcdl\_get\_muspan command line command to translate PhysiCell output into muspan domain files.
9
+
10
+
For installation and learning how to use muspan, please follow the official documentation.
Copy file name to clipboardExpand all lines: man/TUTORIAL_python3_timeseries.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# PhysiCell Data Loader Tutorial: pcdl and Python and MCDS TimeSeries
2
2
3
-
If not already done so, please install the latest version of physicelldataloader (pcdl), as described in the [HowTo](https://github.com/elmbeech/physicelldataloader/blob/master/man/HOWTO.md) section.
3
+
If not already done so, please install the latest version of physicell data loader (pcdl), as described in the [HowTo](https://github.com/elmbeech/physicelldataloader/blob/master/man/HOWTO.md) section.
4
4
And maybe read about the pcdl [background](https://github.com/elmbeech/physicelldataloader/tree/master/man/TUTORIAL_introduction.md) information.
5
5
And perhaps, work thorough the [TUTORIAL_python3_timestep.md](https://github.com/elmbeech/physicelldataloader/blob/master/man/TUTORIAL_python3_timestep.md)
0 commit comments