Skip to content

Commit 4e42719

Browse files
authored
Merge pull request #20 from elmbeech/master
pcdl release v3.3.3
2 parents 4cebeb4 + 6c807eb commit 4e42719

46 files changed

Lines changed: 2778 additions & 926 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,7 @@ Extras tutorials python3 language:
5656
Extras tutorials for other languages than python3:
5757

5858
+ [pcdl and julia](https://github.com/elmbeech/physicelldataloader/tree/master/man/TUTORIAL_julia.md)
59-
<!--
60-
+ [pcdl and matlab or octave](https://github.com/elmbeech/physicelldataloader/tree/master/man/TUTORIAL_matlab_octave.md)
61-
-->
59+
+ [pcdl and matlab](https://github.com/elmbeech/physicelldataloader/tree/master/man/TUTORIAL_matlab_octave.md)
6260
+ [pcdl and R](https://github.com/elmbeech/physicelldataloader/tree/master/man/TUTORIAL_r.md)
6361

6462
Extras tutorials for GUI software:
@@ -104,6 +102,8 @@ Within the pcdl library, we tried to stick to the documentation policy laid out
104102
Nick Oldfather (unit test model),
105103
Thierry-Pascal Fleurant (plot\_timeseries)
106104

105+
Developers, please make pull requests to the https://github.com/elmbeech/physicelldataloader/tree/development branch. Thanks!
106+
107107

108108
## Cite:
109109

@@ -121,12 +121,21 @@ Within the pcdl library, we tried to stick to the documentation policy laid out
121121

122122
## Road Map:
123123

124-
+ add make\_conc\_vtk visualization parameter.
125-
+ new next generation unit test dataset.
126-
+ rewrite make\_ome\_tiff to use less RAM.
124+
+ evt generate lineage tree graph output files.
127125
+ evt add neuroglancer ome.tiff support.
126+
+ switch from aicsimageio to bioio library, when the library is ripe (napari has switched to bioio).
127+
128128

129129
## Release Notes:
130+
+ version 3.3.3 (2025-01-10): elmbeech/physicelldataloader
131+
+ bug fix **plot_contour** plot orientation. special thanks to Marco Ruscone!
132+
+ add test data for new improved **unittest physicell model**. special thanks to Nick Oldfather!
133+
+ add pyMCDS **make_conc_vtk** on the fly visualization. special thanks to Randy Heiland and Nick Oldfather!
134+
+ pyMCDS and pyMCDSts **make_graph_gml** and pyAnnData **get_anndata** handles now spring\_attached\_cells graph too.
135+
136+
+ version 3.3.2 (2024-11-24): elmbeech/physicelldataloader
137+
+ **Warnings** will no longer be piped to standard output if verbose is set to False.
138+
+ pyMCDS **make_ome_tiff** function rewriten to be less RAM hungry and more versatile.
130139

131140
+ version 3.3.1 (2024-09-22): elmbeech/physicelldataloader
132141
+ bugfix pyMCDS custom vectors loading.
@@ -170,11 +179,11 @@ Within the pcdl library, we tried to stick to the documentation policy laid out
170179
+ new pyMCDS **set_verbosity_false** function, to complete pcdl.TimeStep(verbosity=True/False) experience.
171180
+ new pyMCDSts **get_cell_df** function, to extract one big dataframe or a list of dataframes from the whole time series.
172181
+ new pyMCDSts **get_conc_df** function, to extract one big dataframe or a list of dataframes from the whole time series.
173-
+ new pyMCDSts **make_cell_vtk** function, to save substrate data as rectilinear grid vtk files.
174-
+ new pyMCDSts **make_conc_vtk** function, to save cell data as glyph vtk files.
175-
+ new pyMCDSts **make_graph_gml** function, to save graphs in a networkx and igraph compatible files format.
182+
+ new pyMCDSts **make_cell_vtk** function, to save substrate data as rectilinear grid vtk files. special thanks to Furkan Kurtoglu!
183+
+ new pyMCDSts **make_conc_vtk** function, to save cell data as glyph vtk files. special thanks to Furkan Kurtoglu!
184+
+ new pyMCDSts **make_graph_gml** function, to save graphs in a networkx and igraph compatible files format. special thanks to Benjamin Jacobs!
176185
+ new pyMCDSts **make_ome_tiff** function, to save the output data in ome tiff file format.
177-
+ new pyMCDSts **plot_timeseries** function, to plot time series.
186+
+ new pyMCDSts **plot_timeseries** function, to plot time series. special thanks to Thierry-Pascal Fleurant!
178187
+ new pyMCDSts **set_verbosity_true** function, to complete the pcdl.TimeSeries(verbosity=True/False) experience.
179188
+ new pyMCDSts **set_verbosity_false** function to complete the pcdl.TimeSeries(verbosity=True/False) experience.
180189

@@ -247,7 +256,7 @@ Within the pcdl library, we tried to stick to the documentation policy laid out
247256
given the computer is connected to the internet, test data can easily be installed and removed with the **pcdl.install_data()** and **pcdl.uninstall_data()** functions now.
248257

249258
+ version 3.0.7 (2023-06-08): elmbeech/physicelldataloader
250-
+ pyMCDSts: replaces the svg dependent **mcdsts.make_jpeg**, **mcdsts.make_png**, and **mcdsts.make_tiff** with **mcdsts.make_imgcell** and **mcdsts.make_imgsubs** which generate images straight out of the loaded data. the **mcdsts.make_gif** and **mcdsts.make_movie** functions were adjusted accordingly.
259+
+ pyMCDSts: replaces the svg dependent **mcdsts.make_jpeg**, **mcdsts.make_png**, and **mcdsts.make_tiff** with **mcdsts.make_imgcell** and **mcdsts.make_imgsubs** which generate images straight out of the loaded data. the **mcdsts.make_gif** and **mcdsts.make_movie** functions were adjusted accordingly. special thanks to Marshal Gress!
251260
+ pyMCDSts: **mcdsts.read_mcds** loads now automatically all mcds snapshots if no xmlfile\_list is provided (default).
252261

253262
+ version 3.0.6 (2023-04-29): elmbeech/physicelldataloader

data_timeseries_2d.tar.gz

-2.33 MB
Binary file not shown.

data_timeseries_3d.tar.gz

-26.6 MB
Binary file not shown.

man/TUTORIAL_commandline.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ cd path/to/PhysiCell
2929
```
3030
```bash
3131
make data-cleanup
32-
python3 -c"import pathlib, pcdl, shutil; pcdl.install_data(); s_ipath=str(pathlib.Path(pcdl.__file__).parent.resolve()/'data_timeseries_2d'); shutil.copytree(s_ipath, 'output', dirs_exist_ok=True)"
32+
python3 -c"import pathlib, pcdl, shutil; pcdl.install_data(); s_ipath=str(pathlib.Path(pcdl.__file__).parent.resolve()/'output_2d'); shutil.copytree(s_ipath, 'output', dirs_exist_ok=True)"
3333
```
3434

3535

man/TUTORIAL_julia.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Package installation.
2626

2727
```julia
2828
using Pkg
29-
Pkg.add("CSV")
29+
Pkdg.add("CSV")
3030
Pkdg.add("DataFrames")
3131
```
3232

man/TUTORIAL_matlab_octave.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
# PhysiCell Data Loader Tutorial: pcdl and the Matlab and Octave programming language
1+
# PhysiCell Data Loader Tutorial: pcdl and the Matlab programming language <!-- and Octave-->
22

3-
[Matlab](https://www.mathworks.com/products/matlab.html) / GNU [Octave](https://octave.org/)
3+
<!-- bue 20240903: could someone test and update who actuallty knows matlab or octave? -->
4+
5+
[Matlab](https://www.mathworks.com/products/matlab.html) <!-- / GNU [Octave](https://octave.org/) -->
46
is a scientific programming language used by some engineers.
57
The earliest predecessor of pcdl was actually a Matlab implementation.
6-
Coming full circle, this is how you can load some pcdl data constructs into Matlab and GNU Octave.
7-
8-
<!-- bue 20240903: could someone test and update who actuallty knows matlab or octave? -->
8+
Coming full circle, this is how you can load some pcdl data constructs into Matlab. <!-- and GNU Octave -->
99

1010

1111
## &#x2728; Handle csv files
@@ -22,7 +22,7 @@ pcdl_get_conc_df output
2222
pcdl_get_cell_df output
2323
```
2424

25-
### Load a csv file into Matlab or Octave as a tabel
25+
### Load a csv file into Matlab as a tabel <!-- or Octave -->
2626

2727
&#x26A0; **bue 2024-09-22:** the readtable function is not yet implemented in Octave.
2828

@@ -51,7 +51,7 @@ pcdl_get_conc_attribute output 2
5151
pcdl_get_cell_attribute output 2
5252
```
5353

54-
### Load json files into Matlab or Octave
54+
### Load json files into Matlab <!-- or Octave -->
5555

5656
```matlab
5757
struct_conc = jsondecode(fileread("output/timeseries_conc_attribute_minmax.json"))
@@ -72,10 +72,10 @@ cd path/to/PhysiCell
7272
pcdl_make_graph_gml output/output00000024.xml neighbor --node_attribute cell_type dead oxygen pressure
7373
```
7474

75-
### Load gml files into a Matlab or Octave data construct
75+
### Load gml files into a Matlab data construct <!-- or Octave -->
7676

77-
We will use the [matlab-igraph](https://www.mathworks.com/matlabcentral/fileexchange/159001-matlab-igraph) toolbox to load gml files into Matlab or Octave.
78-
+ https://github.com/DavidRConnell/matlab-igraph/releases/tag/v0.2.0
77+
We will use the [matlab-igraph](https://www.mathworks.com/matlabcentral/fileexchange/159001-matlab-igraph) toolbox to load gml files into Matlab. <!-- or Octave -->
78+
+ https://github.com/DavidRConnell/matlab-igraph
7979
+ https://igraph.org/
8080

8181
Install matlab-igaph toolbox.
@@ -101,14 +101,14 @@ pcdl_make_conc_vtk output/output00000024.xml
101101
pcdl_make_cell_vtk output/output00000024.xml
102102
```
103103

104-
### Load a vtr and vtp file into Matlab or Octave data construct
104+
### Load a vtr and vtp file into Matlab data construct <!-- or Octave -->
105105

106106
+ https://www.mathworks.com/matlabcentral/fileexchange/94993-vtktoolbox
107107
+ https://github.com/KIT-IBT/vtkToolbox
108108

109-
Install matlab-igaph toolbox.
109+
Install vtk toolbox.
110110

111-
Load vtkfile into Matlab or Octave.
111+
Load vtkfile into Matlab. <!-- or Octave -->
112112

113113
```matlab
114114
output/output00000024_conc.vtr

man/TUTORIAL_paraview.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# PhysiCell Data Loader Tutorial: pcdl and Paraview
22

3+
<!--
4+
bue 2024-09-02: vtk and paraview can handle up to 32 bit ometiff images.
5+
fluorescent microscopy ome tiff standard is 16 bit.
6+
+ https://discourse.vtk.org/t/failed-to-read-tiff-64-bit-samples/12118
7+
-->
8+
39
[Paraview](https://www.paraview.org/) is a free and open source scientific visualization software,
410
that lets us load and analyze vtk rectilinear grid data and vtk polynomial data<!--, and even ome.tiff data files-->.
511

man/TUTORIAL_python3_graph.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
[Gml](https://github.com/elmbeech/physicelldataloader/blob/master/man/publication/himsolt1996gml_a_portable_graph_file_format.pdf) (graph modeling language) is a portable plain text file format for graphs,
44
that can be read by the popular graph libraries [networkx](https://networkx.org/) (python), [igraph](https://igraph.org/) (C, C++, mathematica, python, R) <!--, [JuliaGraphs](ttps://github.com/JuliaGraphs/GraphIO.jl)-->, and possible other graph analysis software too.
55

6-
Pcdl can export neighborhood <!- and lineage tree --> graphs in gml format for downstream analysis.
6+
Pcdl can export neighborhood <!-- and lineage tree --> graphs in gml format for downstream analysis.
77

88
If you are new to graph theory, then I recommend reading [A Simple Introduction to Graph Theory](https://www.brianheinold.net/graph_theory/A_Simple_Introduction_to_Graph_Theory_Heinold.pdf)
99
from Prof. Brian Heinold from Mount Saint Mary's University in Emmitsburg, Maryland, USA.
@@ -48,7 +48,7 @@ print(sorted(g.edges.keys())[0:4])
4848
g.nodes['node_0'] # {'cell_type': 'cancer_cell', 'dead': 0, 'oxygen': 25.304510426523084, 'pressure': 10.519314516003435}
4949
```
5050
```python
51-
g.edgea[('node_0', 'node_1')] # {'label': 'edge_0_1', 'distance_microns': 15}
51+
g.edges[('node_0', 'node_1')] # {'label': 'edge_0_1', 'distance_microns': 15}
5252
```
5353

5454

@@ -60,7 +60,7 @@ import igraph as ig
6060
g = ig.Graph.Read_GML('output/output00000024_neighbor.gml')
6161
print(g)
6262
```
63-
``python
63+
```python
6464
ig.summary(g)
6565
```
6666

man/TUTORIAL_python3_json.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ The [json library](https://docs.python.org/3/library/json.html) is a part of cor
99
Json is the ideal data format for unstructured data constructs that not can be stored in csv file format, like a dictionary of lists.
1010
Please note, python objecta are not per se json comaptible.
1111
For example:
12-
Complex numbers are a standard data type in python, but complex numbers can not be stored in json.
12+
Complex numbers are a standard data type in python, but complex numbers cannot be stored in json.
1313
Python dictionary keys can be of almost any data type, but json object keys have to be strings.
1414

1515

man/TUTORIAL_python3_napari.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
# PhysiCell Data Loader Tutorial: pcdl and Python and Napari
22

3-
[Napari](https://napari.org/stable/) is both, a python library and a GUI software.
3+
[Napari](https://napari.org/stable/) is both a python library and a GUI software.
44
Napari is used by wetlab scientists and bioinformatician to analyze fluorescent microscopy data.
55
Napari can read [ome.tiff](https://www.openmicroscopy.org/ome-files/) files.
66
https://github.com/AllenCellModeling/napari-aicsimageio
77

88

99
## Install napari
1010

11-
And install the [aicsimageio](https://allencellmodeling.github.io/aicsimageio/) library,
11+
And install the [aicsimageio](https://github.com/AllenCellModeling/aicsimageio) library,
1212
which installs the "ome-types" napari plugin,
1313
that napari can read ome.tiff images inclusive ome metadata.
1414

0 commit comments

Comments
 (0)