Skip to content

Commit bedcb3a

Browse files
authored
Merge pull request #104 from MathCancer/development
1.10.2 release
2 parents 3dc17c6 + 30ad583 commit bedcb3a

File tree

19 files changed

+679
-141
lines changed

19 files changed

+679
-141
lines changed

BioFVM/BioFVM_vector.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,20 @@ std::ostream& operator<<(std::ostream& os, const std::vector<double>& v )
185185
return os;
186186
}
187187

188+
std::ostream& operator<<(std::ostream& os, const std::vector<int>& v )
189+
{
190+
for( unsigned int i=0; i < v.size(); i++ )
191+
{ os << v[i] << " " ; }
192+
return os;
193+
}
194+
195+
std::ostream& operator<<(std::ostream& os, const std::vector<std::string>& v )
196+
{
197+
for( unsigned int i=0; i < v.size(); i++ )
198+
{ os << v[i] << " " ; }
199+
return os;
200+
}
201+
188202
// this one returns a new vector that has been normalized
189203
std::vector<double> normalize( std::vector<double>& v )
190204
{

BioFVM/BioFVM_vector.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ void operator/=( std::vector<double>& v1, const double& a );
8080
/* other commonly needed operations on vectors */
8181

8282
std::ostream& operator<<(std::ostream& os, const std::vector<double>& v );
83+
std::ostream& operator<<(std::ostream& os, const std::vector<int>& v );
84+
std::ostream& operator<<(std::ostream& os, const std::vector<std::string>& v );
8385

8486
// this one returns a new vector that has been normalized
8587
std::vector<double> normalize( std::vector<double>& v );

CITATION.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
If you use PhysiCell in your project, please cite PhysiCell and the version
22
number, such as below:
33

4-
We implemented and solved the model using PhysiCell (Version 1.10.1) [1].
4+
We implemented and solved the model using PhysiCell (Version 1.10.2) [1].
55

66
[1] A Ghaffarizadeh, R Heiland, SH Friedman, SM Mumenthaler, and P Macklin,
77
PhysiCell: an Open Source Physics-Based Cell Simulator for Multicellu-
@@ -11,7 +11,7 @@ We implemented and solved the model using PhysiCell (Version 1.10.1) [1].
1111
Because PhysiCell extensively uses BioFVM, we suggest you also cite BioFVM
1212
as below:
1313

14-
We implemented and solved the model using PhysiCell (Version 1.10.1) [1],
14+
We implemented and solved the model using PhysiCell (Version 1.10.2) [1],
1515
with BioFVM [2] to solve the transport equations.
1616

1717
[1] A Ghaffarizadeh, R Heiland, SH Friedman, SM Mumenthaler, and P Macklin,

README.md

Lines changed: 52 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems
22

3-
**Version:** 1.10.1
3+
**Version:** 1.10.2
44

5-
**Release date:** 15 May 2022
5+
**Release date:** 24 May 2022
66

77
## Overview:
88
PhysiCell is a flexible open source framework for building agent-based multicellular models in 3-D tissue environments.
@@ -24,20 +24,20 @@ Visit http://MathCancer.org/blog for the latest tutorials and help.
2424
**make \[project-name\]**: populates the indicated sample project.
2525
Use "make" to compile it.
2626

27-
\[project-name\] choices:
28-
template
29-
biorobots-sample
30-
cancer-biorobots-sample
31-
cancer-immune-sample
32-
celltypes3-sample
33-
heterogeneity-sample
34-
pred-prey-farmer
35-
virus-macrophage-sample
36-
worm-sample
37-
ode-energy-sample
38-
physiboss-cell-lines-sample
39-
cancer-metabolism-sample
40-
interaction-sample
27+
* **\[project-name\]** choices:
28+
* template
29+
* biorobots-sample
30+
* cancer-biorobots-sample
31+
* cancer-immune-sample
32+
* celltypes3-sample
33+
* heterogeneity-sample
34+
* pred-prey-farmer
35+
* virus-macrophage-sample
36+
* worm-sample
37+
* ode-energy-sample
38+
* physiboss-cell-lines-sample
39+
* cancer-metabolism-sample
40+
* interaction-sample
4141

4242
**make list-projects** : list all available sample projects
4343

@@ -71,21 +71,21 @@ See changes.md for the full change log.
7171

7272
* * *
7373
## Release summary:
74-
75-
Version 1.10.1 introduces bugfixes to increase XML parser robustness and to fix missing PhysiBoSS makefiles.
74+
Version 1.10.2 introduces bugfixes to the behavior "dictionary" functiouns, data saves, and updating neighbor lists for nearby non-adhesive cells. It also introduces a number of ease-of-access functions to the phenotype for death rates, secretion, and internalized substrates.
7675

7776
The 1.10.0 release introduced major new phenotype functionality, including standardized support for cell-cell interactions (phagocytosis, cell attack that increases a tracked damage variable, and cell fusion), cell transformations, advanced chemotaxis, and cell adhesion affinities for preferential adhesion. This release also includes new, auto-generated "dictionaries" of signals and behaviors to facilitate writing cell behavioral models and intracellular models, as well as standardized Hill and linear response functions for use in intracellular models. Lastly, this release includes a number of bugfixes, most notably pseudorandom number generators with improved thread safety.
7877

7978
A blog post and tutorial on the new phenotype elements can be found at http://www.mathcancer.org/blog/introducing-cell-interactions-and-transformations.
8079

81-
A blog post and tutorial on the new signal and behavior dictionaries can be found at http://www.mathcancer.org/blog/introducing-cell-signal-and-behavior-dictionaries.
82-
80+
A blog post and tutorial on the new signal and behavior dictionaries can be found at http://www.mathcancer.org/blog/introducing-cell-signal-and-behavior-dictionaries.
8381

8482
**NOTE 1:** MacOS users need to define a PHYSICELL_CPP environment variable to specify their OpenMP-enabled g++. See the [Quickstart](documentation/Quickstart.md) for details.
8583

8684
**NOTE 2:** Windows users need to follow an updated (from v1.8) MinGW64 installation procedure. This will install an updated version of g++, plus libraries that are needed for some of the intracellular models. See the [Quickstart](documentation/Quickstart.md) for details.
8785

8886
### Major new features and changes in the 1.10.z versions
87+
#### 1.10.2
88+
+ None in this version. See 1.10.0
8989
#### 1.10.1
9090
+ None in this version. See 1.10.0
9191
#### 1.10.0
@@ -193,9 +193,28 @@ A blog post and tutorial on the new signal and behavior dictionaries can be foun
193193
+ With default parameters, bacteria kill off cells ot form abscesses, until death attracts macrophages to activate immune response to kill the invaders, after which the tissue can regrow.
194194

195195
### Minor new features and changes:
196+
#### 1.10.2
197+
+ Added `operator<<` for vectors of ints and vectors of strings. So that `std::cout << v << std::endl;` will work if `v` is `std::vector<int>` of `std::vector<std::string>`. It was truly annoying that these were missing, so sorry!
198+
+ Added `dead` to the signals dictionaries, which returns 0.0 or 1.0 based on `phenotype.death.dead`.
199+
+ Added `time` to the signals dictionaries, which returns the current simulation time based on `PhysiCell_Globals.current_time`.
200+
+ Added a brief protocol on how to add new signals and behaviors to the dictionaries in the `/protocols` directory.
201+
+ Added new functions `double& apoptosis_rate()` and `double& necrosis_rate()` to easily read and write these rates. Access via `cell.phenotype.death.apoptosis_rate()` and `cell.phenotype.death.necrosis_rate()`.
202+
+ Added new ease of access functions for secretion:
203+
+ `double& Secretion::secretion_rate( std::string name )` allows you to easily read/write the secretion rate of a substrate by name. For example:
204+
```pCell->phenotype.secretion.secretion_rate("oxygen") = 0.1```
205+
+ `double& Secretion::uptake_rate( std::string name )` allows you to easily read/write the uptake rate of a substrate by name. For example:
206+
```pCell->phenotype.secretion.uptake_rate("oxygen") = 0.1```
207+
+ `double& Secretion::saturation_density( std::string name )` allows you to easily read/write the secretion target of a substrate by name. For example:
208+
```pCell->phenotype.secretion.saturation_density("oxygen") = 38```
209+
+ `double& Secretion::net_export_rate( std::string name )` allows you to easily read/write the net export rate of a substrate by name. For example:
210+
```pCell->phenotype.secretion.net_export_rate("oxygen") = -100```
211+
212+
+ Added new ease of access function for internalized substrates:
213+
+ `double& Molecular::internalized_total_substrate( std::string name )` allows you to easily read/write the total amount of internalized substrate by name. For example:
214+
```pCell->phenotype.molecular.internalized_total_substrate( "oxygen" ) = 0.01``
215+
196216
#### 1.10.1
197217
+ None in this version. See 1.10.0.
198-
199218
#### 1.10.0
200219
+ All sample projects have a new rule "make name" to tell you the name of the executable.
201220

@@ -206,9 +225,10 @@ A blog post and tutorial on the new signal and behavior dictionaries can be foun
206225
+ `create_cell( Cell_Definition )` now uses "`is_movable`" from the cell definition.
207226

208227
### Beta features (not fully supported):
209-
#### 1.10.1
228+
#### 1.10.2
229+
+ None in this version. See 1.10.0.
230+
#### 1.10.1
210231
+ None in this version. See 1.10.0.
211-
212232
#### 1.10.0
213233
+ Started writing a standardized set of functions for Hill functions and promoter/inhibitor signaling.
214234

@@ -221,6 +241,15 @@ A blog post and tutorial on the new signal and behavior dictionaries can be foun
221241
+ Added simple contour plotting of a substrate (anim_substrate2D.py in /beta; copy to /output)
222242

223243
### Bugfixes:
244+
#### 1.10.2
245+
+ Fixed error in `double get_single_behavior()` where the `cell-cell adhesion elastic constant` behavior was not found.
246+
247+
+ Fixed error in `double get_single_base_behavior()` where the `cell-cell adhesion elastic constant` behavior was not found.
248+
249+
+ Fixed bug in `add_PhysiCell_cells_to_open_xml_pugi()` that mistakenly used the wrong size (number of cell species rather than number of substrate species) when writing the chemotactic sensitivities.
250+
251+
+ The cell `neighbors` list did not add non-adhesive cells within interaction distance. This is now fixed.
252+
224253
#### 1.10.1
225254
+ XML parsing has been made more robust to "survive" using an incorrect substrate in the `chemotactic_sensitivities` section.
226255

VERSION.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.10.1
1+
1.10.2

0 commit comments

Comments
 (0)