Releases: MathCancer/PhysiCell
Version 1.14.0
PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems
Versions: 1.14.0 -
Release dates: 15 September 2024 -
- 1.14.0 : 15 September 2024
Overview:
PhysiCell is a flexible open source framework for building agent-based multicellular models in 3-D tissue environments.
Reference: A Ghaffarizadeh, R Heiland, SH Friedman, SM Mumenthaler, and P Macklin, PhysiCell: an Open Source Physics-Based Cell Simulator for Multicellular Systems, PLoS Comput. Biol. 14(2): e1005991, 2018. DOI: 10.1371/journal.pcbi.1005991
Visit http://MathCancer.org/blog for the latest tutorials and help.
Notable recognition:
Key makefile rules:
make
: compiles the current project. If no
project has been defined, it first
populates the cancer heterogeneity 2D
sample project and compiles it
make project-name
: populates the indicated sample project.
Use "make" to compile it.
project-name
choices:- template
- biorobots-sample
- cancer-biorobots-sample
- cancer-immune-sample
- celltypes3-sample
- heterogeneity-sample
- pred-prey-farmer
- virus-macrophage-sample
- worm-sample
- ode-energy-sample
- physiboss-cell-lines-sample
- cancer-metabolism-sample
- interaction-sample
- mechano-sample
- rules-sample
- physimess-sample
- custom-division-sample
make list-projects
: list all available sample projects
make clean
: removes all .o files and the executable, so that the next "make" recompiles the entire project
make data-cleanup
: clears out all simulation data
make reset
: de-populates the sample project and returns to the original PhysiCell state. Use this when switching to a new PhysiCell sample project.
make save PROJ=name
: save the current project (including the Makefile
, main.cpp
, and everything in ./config
and ./custom_modules/
) in ./user_projects/name
, where name
is your choice for the project. If the project already exists, overwrite it.
make load PROJ=name
: load the user project name
from ./user_projects/name
(including the Makefile
, main.cpp
, and everything in ./config
and ./custom_modules/
).
make list-user-projects
: list all user projects in ./user_projects/
. (Use these names without the trailing /
in make load PROJ=name
.)
make jpeg
: uses ImageMagick to convert the SVG files in the output directory to JPG (with appropriate sizing to make movies). Supply OUTPUT=foldername
to select a different folder.
make movie
: uses ffmpeg to convert the JPG files in the output directory an mp4 movie. Supply OUTPUT=foldername
to select a different folder, or FRAMERATE=framerate
to override the frame rate.
make upgrade
: fetch the latest release of PhysiCell and overwrite the core library and sample projects.
Key Links
Homepage: http://PhysiCell.org
Setup Guide: https://github.com/physicell-training/ws2023/blob/main/agenda.md#set-up-physicell
Downloads: https://PhysiCell.sf.net AND https://github.com/MathCancer/PhysiCell/releases
Support: https://join.slack.com/t/physicellcomm-sf93727/shared_invite/zt-qj1av6yd-yVeer8VkQaNDjDz7fF00jA
User Guide: Look at UserGuide.pdf in the documentation folder.
Setup and Training: See this year's workshop and hackathon at https://github.com/PhysiCell-Training/ws2023
Older Tutorials: http://www.mathcancer.org/blog/physicell-tutorials/
Latest info: follow @PhysiCell on Twitter (http://twitter.com/PhysiCell)
See changes.md for the full change log.
Release summary:
Version 1.14 upgrades the Cell Beheavior Hypothesis Grammar (to version 3), including refinements to cell phagocytosis, effector attack, and cell damage/integrity in response to community discussions and peer review. It also introduces numerous refinements to cell division, random seeds, and randomized parameter initialization, as well as upgrades to PhysiBoSS and PhysiMeSS and bug fixes. Other refinements are "under the hood," including new GitHub actions and improved automation of testing, as well as improvements to MultiCellDS output.
Version 1.14.0 (15 Sep 2024):
Version 1.14.0 Introduces Cell Behavior Hypothesis Grammar (CBHG) 3.0, enhancing the modeling of cellular behaviors with the addition of a new Cell_Integrity
class and refined phagocytosis behaviors (now split into separate rates for apoptotic, necrotic, and other dead cells). The built-in "attack" model has been refined to include formation of a persistent synapse (with a spring adhesion) throughout the attack (which is tunable via the attack_duration
parameter), and a clarified attack_damage_rate
to denote the rate at which an attacker damages its target cell. The attacking cell also tracks how long it has attacked (may be useful for exhaustion modeling), whether it is or is not attacking, and the identity (cell pointer) of the cell it is attacking.
The new Cell_Integrity
class (within Phenotype
) allows more control over cell damage. Attacking cells (see above) can increase damage, as well as a new generalized damage_rate
that can (for example) be used to model damage from other sources such as cytotoxic drugs or toxins. A built-in model for damage repair (with default rate damage_repair_rate
= 0) can be used for simple modeling of damage repair (e.g., DNA damage response during a cycle damage checkpoint).
This release also includes an option to set the random number generator seed value, new capabilities to draw initial parameters from a random distribution, and support for user-defined custom functions the evaluated during cell division (which allow users to individually set properties of daughter cells, such as during asymmetric division). Beyond bug fixes, the release includes a systematic testing package, utilizing scripts and GitHub Actions for automated testing.
We are grateful for contributions by Vincent Noël, Randy Heiland, Daniel Bergman, Heber Rocha, and Elmar Bucher in this release.
NOTE 1: MacOS users need to define a PHYSICELL_CPP environment variable to specify their OpenMP-enabled g++. See the Setup Guides for details.
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 Setup Guides for details.
Major new features and changes in the 1.14.z versions
1.14.0
- Introduced changes to Rules:
damage rate
(a part ofCell_Integrity
) is now a generalized term for a rate of damage caused by non-attack meansattack damage rate
means whatdamage rate
used to mean: how fast an attacking cell deals damage to a target cell throughout the duration of the atttackphagocytose dead cell
is replaced by death-model-specific rates:phagocytose apoptotic cell
phagocytose necrotic cell
phagocytose other dead cell
- New
Cell_Integrity
class in PhysiCell_phenotype.h.damage
was moved from Cell_State into Cell_Integrity- the cancer-biorobots-sample
custom.cpp
was updated to reflect this change.
- the cancer-biorobots-sample
contact with dead cell
has been supplemented with additional (refined) signalscontact with apoptotic cell
,contact with necrotic cell
, andcontact with other dead cell
- Seed for random numbers: in the top most tag of a config file (for options that apply to the overall simulation), there is now a <random_seed>. Traditionally, this has been provided in <user_parameters> and if it is still present there, it will override the one in . Users are encouraged to migrate away from its use in <user_parameters> as this will likely be removed from sample projects in a future release.
- Setting as an integer will have the same behavior as the
user_parameter
- <random_seed>0</random_seed>
- Setting as “”, “random”, or “system_clock” will use the system clock to set the random seed
- <random_seed />
- <random_seed></random_seed>
- <random_seed>random</random_seed>
- <random_seed>system_clock</random_seed>
- Setting as an integer will have the same behavior as the
- New option for a user-defined custom function for cell division. If provided, the custom function will receive pointers to the two daughter cells. A new sample project,
custom-division-sample
, is provided. - Initial parameter distributions
- Users can now start cells with heterogeneity in any behavior or also the total volume
- For ease of access, in studio navigate to Cell Types > Misc > Parameter Distributions
- Five distributions supported:
- Uniform
- Set min and max; behavior ~ U(min, max)
- Log uniform
- Set min and max; z ~ U(log(min), log(max)); behavior ~ exp(z)
- Note: min and max are on the behavior scale, not the logarithmic scale
- Normal
- Set μ and σ; behavior ~ N(μ, σ)
- Optionally set lb, ub to impose lb <= behavior <= ub
- Log normal
- Set μ and σ; z ~ N(μ, σ); behavior ~ exp(z)
- Optionally set lb, ub to impose lb <= behavior <= ub
- Note: μ and σ are on the logarithmic scale
- Note: lb and ub are on the be...
- Uniform
Version 1.13.1
PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems
Versions: 1.13.0 -
Release dates: 29 July 2023 -
- 1.13.0 : 29 July 2023
- 1.13.1 : 6 August 2023
Overview:
PhysiCell is a flexible open source framework for building agent-based multicellular models in 3-D tissue environments.
Reference: A Ghaffarizadeh, R Heiland, SH Friedman, SM Mumenthaler, and P Macklin, PhysiCell: an Open Source Physics-Based Cell Simulator for Multicellular Systems, PLoS Comput. Biol. 14(2): e1005991, 2018. DOI: 10.1371/journal.pcbi.1005991
Visit http://MathCancer.org/blog for the latest tutorials and help.
Notable recognition:
Key makefile rules:
make
: compiles the current project. If no
project has been defined, it first
populates the cancer heterogeneity 2D
sample project and compiles it
make project-name
: populates the indicated sample project.
Use "make" to compile it.
project-name
choices:- template
- biorobots-sample
- cancer-biorobots-sample
- cancer-immune-sample
- celltypes3-sample
- heterogeneity-sample
- pred-prey-farmer
- virus-macrophage-sample
- worm-sample
- ode-energy-sample
- physiboss-cell-lines-sample
- cancer-metabolism-sample
- interaction-sample
- mechano-sample
- rules-sample
- physimess-sample
make list-projects
: list all available sample projects
make clean
: removes all .o files and the executable, so that the next "make" recompiles the entire project
make data-cleanup
: clears out all simulation data
make reset
: de-populates the sample project and returns to the original PhysiCell state. Use this when switching to a new PhysiCell sample project.
make save PROJ=name
: save the current project (including the Makefile
, main.cpp
, and everything in ./config
and ./custom_modules/
) in ./user_projects/name
, where name
is your choice for the project. If the project already exists, overwrite it.
make load PROJ=name
: load the user project name
from ./user_projects/name
(including the Makefile
, main.cpp
, and everything in ./config
and ./custom_modules/
).
make list-user-projects
: list all user projects in ./user_projects/
. (Use these names without the trailing /
in make load PROJ=name
.)
make jpeg
: uses ImageMagick to convert the SVG files in the output directory to JPG (with appropriate sizing to make movies). Supply OUTPUT=foldername
to select a different folder.
make movie
: uses ffmpeg to convert the JPG files in the output directory an mp4 movie. Supply OUTPUT=foldername
to select a different folder, or FRAMERATE=framerate
to override the frame rate.
make upgrade
: fetch the latest release of PhysiCell and overwrite the core library and sample projects.
Key Links
Homepage: http://PhysiCell.MathCancer.org
Downloads: http://PhysiCell.sf.net
Support: https://join.slack.com/t/physicellcomm-sf93727/shared_invite/zt-qj1av6yd-yVeer8VkQaNDjDz7fF00jA
Quick Start: Look at QuickStart.md in the documentation folder.
User Guide: Look at UserGuide.pdf in the documentation folder.
Setup and Training: See this year's workshop and hackathon at https://github.com/PhysiCell-Training/ws2023
Older Tutorials: http://www.mathcancer.org/blog/physicell-tutorials/
Latest info: follow @PhysiCell on Twitter (http://twitter.com/PhysiCell)
See changes.md for the full change log.
Release summary:
Version 1.13.x introduces PhysiMeSS (MicroEnvironment Structures Simulation) as a PhysiCell add-on created to model rod-shaped microenvironment elements such as the matrix fibres (e.g. collagen) of the ECM. These releases also introduce numerous bug fixes, particularly to handling of Dirichlet boundary conditions, while introducing numerous minor feature enhancements such as packing and unpacking user projects (to facilitate code sharing).
Version 1.13.1 (6 August 2023):
Version 1.13.1 primarily introduces bug fixes for smoother addon support, as well as new makefile rules to pack a user project for sharing (make pack PROJ=name
) and to unpack a shared project (make unpack PROJ=name
). These will create (pack) or expand (unpack) zipped projects in the ./user_projects
folder. To share, send the zipped file and encourage the recipient to store it in their own ./user_projects
folder.
Version 1.13.0 (29 July 2023):
Version 1.13.0 introduces PhysiMeSS (MicroEnvironment Structures Simulation) as a PhysiCell add-on created by Cicely Macnamara, Vincent Noël and collaborators, which allows the user to specify rod-shaped microenvironment elements such as the matrix fibres (e.g. collagen) of the ECM. This allows the PhysiCell user the ability to investigate fine-grained processes between cellular and fibrous ECM agents. We are providing an sample project together with this addon to demonstrate, via many examples, the possibilities of PhysiMeSS. For more information, consult the PhysiMeSS README available in ./addons/PhysiMeSS/README.md. Version 1.13.0 also updates the bundled PhysiBoSS addon, introduces a variety of bug fixes (particularly in handling of Dirichlet boundary conditions), and improves SVG plots.
We are grateful for immense contributions by Cicely Macnamara, Vincent Noël, Randy Heiland, Daniel Bergman, Marco Ruscone, Furkan Kurtoglu, and Elmar Bucher in this release.
NOTE 1: MacOS users need to define a PHYSICELL_CPP environment variable to specify their OpenMP-enabled g++. See the Quickstart for details.
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 for details.
Major new features and changes in the 1.13.z versions
1.13.1
- None in this release
1.13.0
- Introduced PhysiMeSS, a major addon for modeling fibers of the extracellular matrix. Major thanks to Cicely Macnamara, Vincent Noël, and team!
Minor new features and changes:
1.13.1
- Continued modernization of sample projects for PhysiCell Studio compatibiltiy. See PR 198.
- Updated inhibitor behaviors in PhysiBoSS, and further code cleanup. See PR 194. Thanks, Marco Ruscone!
- PhysiBoSS cell line example migrated to newer MultiCellDS output. See PR 193. Thanks, Vincent Noël!
- Added a new makefile rule to simplify sharing user projects:
make pack PROJ=name
will zip all of thename
user project in./user_projects/name.zip
. Send this zip file for sharing your project, and have your recipient:- Place
name.zip
in thier./user_projects/
folder (preferably PhysiCell version 1.13.1 or later) - Have them run the new rule
make unpack PROJ=name
to expand the project. - After this, the usual rules apply.
make load PROJ=name
to load the project, and a subsequentmake
to compile it.
- Place
- Added a new makefile rule to simplify use of shared user projects:
make unpack PROJ=name
will unzip the contents of./user_projects/name.zip
into a new user project calledname
. Typemake load PROJ=name
to load this project, andmake
to compile it.
1.13.0
- Preparations for a new derived
Cell
class for use in PhysiBoSS, including a newinstantiate_cell
function inCell_Functions
to help facilitate this. See PR 153 (Thanks, Vincent Noël!) - Various safety refinements (
const
accessors) in vector operations (PR 160). Thanks, Vincent Noël! - Made changes to cell SVG plotting to support broader types of plotting in advance of PhysiMeSS PR 162. Thanks, Vincent Noēl!
- Added a safe way to query the current velocity via
Basic_Agent::get_previous_velocity()
in preparation for PhysiMeSS. PR 163. Thanks, Vincent Noël! - Refined control of object counts in SVG for upcoming PhysiMeSS release. PR 164. Thanks, Vincent!
- Refined SVG plot options to incorporate substrates. PR 181. Thanks, Marco Ruscone!
- Updated PhysiBoSS to Version 2.2.1. See PR 188. Thanks, Vincent Noël!
- Updated unit tests (including
custom_DCs_2substrates
) - Added
damage rate
(from effector attack) to supported behaviors in the modeling gramamr - minor cleanup
Beta features (not fully supported):
1.13.1
- The dFBA addon is considered "beta" and unsupported at this time. Compatability work is underway. Thank you, Miguel Ponce de Leon and team!
1.13.0
- None in this release.
Bugfixes:
1.13.1
- Bugfixes to and refinements to the libRoadrunner setup scripts. See PR 196. Thanks to Randy Heiland and Furkan Kurtoglu.
- Updated PHysiBoSS cell line example pro...
Version 1.13.0
PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems
Versions: 1.13.0 -
Release dates: 29 July 2023 -
- 1.13.0 : 29 July 2023
Overview:
PhysiCell is a flexible open source framework for building agent-based multicellular models in 3-D tissue environments.
Reference: A Ghaffarizadeh, R Heiland, SH Friedman, SM Mumenthaler, and P Macklin, PhysiCell: an Open Source Physics-Based Cell Simulator for Multicellular Systems, PLoS Comput. Biol. 14(2): e1005991, 2018. DOI: 10.1371/journal.pcbi.1005991
Visit http://MathCancer.org/blog for the latest tutorials and help.
Notable recognition:
Key makefile rules:
make
: compiles the current project. If no
project has been defined, it first
populates the cancer heterogeneity 2D
sample project and compiles it
make project-name
: populates the indicated sample project.
Use "make" to compile it.
project-name
choices:- template
- biorobots-sample
- cancer-biorobots-sample
- cancer-immune-sample
- celltypes3-sample
- heterogeneity-sample
- pred-prey-farmer
- virus-macrophage-sample
- worm-sample
- ode-energy-sample
- physiboss-cell-lines-sample
- cancer-metabolism-sample
- interaction-sample
- mechano-sample
- rules-sample
- physimess-sample
make list-projects
: list all available sample projects
make clean
: removes all .o files and the executable, so that the next "make" recompiles the entire project
make data-cleanup
: clears out all simulation data
make reset
: de-populates the sample project and returns to the original PhysiCell state. Use this when switching to a new PhysiCell sample project.
make save PROJ=name
: save the current project (including the Makefile
, main.cpp
, and everything in ./config
and ./custom_modules/
) in ./user_projects/name
, where name
is your choice for the project. If the project already exists, overwrite it.
make load PROJ=name
: load the user project name
from ./user_projects/name
(including the Makefile
, main.cpp
, and everything in ./config
and ./custom_modules/
).
make list-user-projects
: list all user projects in ./user_projects/
. (Use these names without the trailing /
in make load PROJ=name
.)
make jpeg
: uses ImageMagick to convert the SVG files in the output directory to JPG (with appropriate sizing to make movies). Supply OUTPUT=foldername
to select a different folder.
make movie
: uses ffmpeg to convert the JPG files in the output directory an mp4 movie. Supply OUTPUT=foldername
to select a different folder, or FRAMERATE=framerate
to override the frame rate.
make upgrade
: fetch the latest release of PhysiCell and overwrite the core library and sample projects.
Key Links
Homepage: http://PhysiCell.MathCancer.org
Downloads: http://PhysiCell.sf.net
Support: https://sourceforge.net/p/physicell/tickets/
Quick Start: Look at QuickStart.md in the documentation folder.
User Guide: Look at UserGuide.pdf in the documentation folder.
Setup and Training: See last year's workshop and hackathon at https://github.com/PhysiCell-Training/ws2021
Older Tutorials: http://www.mathcancer.org/blog/physicell-tutorials/
Latest info: follow @PhysiCell on Twitter (http://twitter.com/PhysiCell)
See changes.md for the full change log.
Release summary:
Version 1.13.0 introduces PhysiMeSS (MicroEnvironment Structures Simulation) as a PhysiCell add-on created by Cicely Macnamara, Vincent Noël and collaborators, which allows the user to specify rod-shaped microenvironment elements such as the matrix fibres (e.g. collagen) of the ECM. This allows the PhysiCell user the ability to investigate fine-grained processes between cellular and fibrous ECM agents. We are providing an sample project together with this addon to demonstrate, via many examples, the possibilities of PhysiMeSS. For more information, consult the PhysiMeSS README available in ./addons/PhysiMeSS/README.md. Version 1.13.0 also updates the bundled PhysiBoSS addon, introduces a variety of bug fixes (particularly in handling of Dirichlet boundary conditions), and improves SVG plots.
We are grateful for immense contributions by Cicely Macnamara, Vincent Noël, Randy Heiland, Daniel Bergman, Marco Ruscone, Furkan Kurtoglu, and Elmar Bucher in this release.
NOTE 1: MacOS users need to define a PHYSICELL_CPP environment variable to specify their OpenMP-enabled g++. See the Quickstart for details.
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 for details.
Major new features and changes in the 1.13.z versions
1.13.0
- Introduced PhysiMeSS, a major addon for modeling fibers of the extracellular matrix. Major thanks to Cicely Macnamara, Vincent Noël, and team!
Minor new features and changes:
1.13.0
- Preparations for a new derived
Cell
class for use in PhysiBoSS, including a newinstantiate_cell
function inCell_Functions
to help facilitate this. See PR 153 (Thanks, Vincent Noël!) - Various safety refinements (
const
accessors) in vector operations (PR 160). Thanks, Vincent Noël! - Made changes to cell SVG plotting to support broader types of plotting in advance of PhysiMeSS PR 162. Thanks, Vincent Noēl!
- Added a safe way to query the current velocity via
Basic_Agent::get_previous_velocity()
in preparation for PhysiMeSS. PR 163. Thanks, Vincent Noël! - Refined control of object counts in SVG for upcoming PhysiMeSS release. PR 164. Thanks, Vincent!
- Refined SVG plot options to incorporate substrates. PR 181. Thanks, Marco Ruscone!
- Updated PhysiBoSS to Version 2.2.1. See PR 188. Thanks, Vincent Noël!
- Updated unit tests (including
custom_DCs_2substrates
) - Added
damage rate
(from effector attack) to supported behaviors in the modeling gramamr - minor cleanup
Beta features (not fully supported):
1.13.0
- None in this release.
Bugfixes:
1.13.0
- Fix typographical errors in Makefiles in sample projects.
- Set correct value (100) of
cell_BM_repulsion_strength
inPhysiCell_phenotype.cpp
(Thanks, Elmar Bucher!) - Improved handling of
voxel_index
inremove_agent_from_voxel
in preparation for voxel-spanning objects such as PhysiMeSS. PR 159. Thanks, Vincent Noël! - Fixed bug to ensure cell definitions without
intracellular
defined get aNULL
intracellular model function. [PR 182](and PR 182. THanks, Marco Ruscone! - Fixed a whitespaced bug in SVG output. PR 179. Thanks, Vincent Noël!
- Fixed a PhysiBoSS bug where dead cells could execute models. PR 180 Thanks, Vincent Noël!
- Fixed bugs involving Dirichlet conditions and multiple substrates (thanks to Daniel Bergman for pointing it out!) See [Issue 124](rf. #124) and PR 149. Thank you, Daniel Bergman and Randy Heiland!
cancer_biorobots
Makefille PROGRAM_NAME is nowcancer_biorobots
instead ofproject
- Deleted a meaningless line
dt;
in PhysiCell_standard_models.cpp - Added missing commas to cell_rules.csv in rules_sample project
- Fixed typo:
PhyisiCell_rules.o
toPhysiCell_rules.o
in Makefile-default (thanks to Joseph Abrams for pointing it out!) - Fixed errors in SBML ODE models. See PR 185 and PR 186. Thanks, Furkan Kurtoglu and Vincent Noël!
- Fixed errors the PhysiBoSS readme. See PR 187. Thanks, Vincent Noël!
Notices for intended changes that may affect backwards compatibility:
-
We intend to deprecate the unused phenotype variables
relative_maximum_attachment_distance
,relative_detachment_distance
, andmaximum_attachment_rate
fromphenotype.mechanics.
-
We intend to merge
Custom_Variable
andCustom_Vector_Variable
in the future. -
We may change the role of
operator()
andoperator[]
inCustom_Variable
to more closely mirror the functionality inParameters<T>
. -
Additional search functions (e.g., to find a substrate or a custom variable) will start to return -1 if no matches are found, rather than 0.
-
We will change the timing of when
entry_function
s are executed within cycle models. Right now, they are evaluated immediately after the exit from the preceding phase (and prior ...
Version 1.12.0
PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems
Versions: 1.12.0 -
Release dates: 15 May 2023 -
- 1.12.0 : 15 May 2023
Overview:
PhysiCell is a flexible open source framework for building agent-based multicellular models in 3-D tissue environments.
Reference: A Ghaffarizadeh, R Heiland, SH Friedman, SM Mumenthaler, and P Macklin, PhysiCell: an Open Source Physics-Based Cell Simulator for Multicellular Systems, PLoS Comput. Biol. 14(2): e1005991, 2018. DOI: 10.1371/journal.pcbi.1005991
Visit http://MathCancer.org/blog for the latest tutorials and help.
Notable recognition:
Key makefile rules:
make
: compiles the current project. If no
project has been defined, it first
populates the cancer heterogeneity 2D
sample project and compiles it
make project-name
: populates the indicated sample project.
Use "make" to compile it.
project-name
choices:- template
- biorobots-sample
- cancer-biorobots-sample
- cancer-immune-sample
- celltypes3-sample
- heterogeneity-sample
- pred-prey-farmer
- virus-macrophage-sample
- worm-sample
- ode-energy-sample
- physiboss-cell-lines-sample
- cancer-metabolism-sample
- interaction-sample
- mechano-sample
- rules-sample
make list-projects
: list all available sample projects
make clean
: removes all .o files and the executable, so that the next "make" recompiles the entire project
make data-cleanup
: clears out all simulation data
make reset
: de-populates the sample project and returns to the original PhysiCell state. Use this when switching to a new PhysiCell sample project.
make save PROJ=name
: save the current project (including the Makefile
, main.cpp
, and everything in ./config
and ./custom_modules/
) in ./user_projects/name
, where name
is your choice for the project. If the project already exists, overwrite it.
make load PROJ=name
: load the user project name
from ./user_projects/name
(including the Makefile
, main.cpp
, and everything in ./config
and ./custom_modules/
).
make list-user-projects
: list all user projects in ./user_projects/
. (Use these names without the trailing /
in make load PROJ=name
.)
make jpeg
: uses ImageMagick to convert the SVG files in the output directory to JPG (with appropriate sizing to make movies). Supply OUTPUT=foldername
to select a different folder.
make movie
: uses ffmpeg to convert the JPG files in the output directory an mp4 movie. Supply OUTPUT=foldername
to select a different folder, or FRAMERATE=framerate
to override the frame rate.
make upgrade
: fetch the latest release of PhysiCell and overwrite the core library and sample projects.
Key Links
Homepage: http://PhysiCell.MathCancer.org
Downloads: http://PhysiCell.sf.net
Support: https://sourceforge.net/p/physicell/tickets/
Quick Start: Look at QuickStart.md in the documentation folder.
User Guide: Look at UserGuide.pdf in the documentation folder.
Setup and Training: See last year's workshop and hackathon at https://github.com/PhysiCell-Training/ws2021
Older Tutorials: http://www.mathcancer.org/blog/physicell-tutorials/
Latest info: follow @PhysiCell on Twitter (http://twitter.com/PhysiCell)
See changes.md for the full change log.
Release summary:
Version 1.12.0 introduces rules-based modeling: human-interpretable statements of the form
In cell type T, signal S increases/decreases behavior B
are represented with a CSV format that can directly and uniquely map onto a Hill response function to auto-generate simulation code. T
is any cell type in the simulation, S
can be any signal in the signal dictionary, and B
any supported behavior in the behavior dictionary. For example:
- In malignant epithelial cells, pressure decreases cycle entry.
- In M0 macrophages, necrotic debris increases transformation to M1 macrophage.
- In effector T cells, contact with malignant epithelial cell decreases migration speed.
- In effector T cells, IFN-gamma increases attack of malignant epithelial cells.
The CSV version of these statements can be parsed and transformed into code dynamically at runtime, without additional user-written C++ or recompiling. This will be the basis of a pre-compiled PhysiCell Studio (model design, execution, and visualization in one package) and similar PhysiCell Cloud (install-free, browser-based model design, execution, and visualization). This allows modelers to focus on choosing their hypotheses--how signals (stimuli) change cell behavior--and less on coding and debugging. It is our hope that this language is sufficiently expressive to write most models without additional user code. However, users can still write custom phenotype functions that can be integrated with rules-based modeling, allowing further fine-tuning of individual cell behavior.
NOTE 1: MacOS users need to define a PHYSICELL_CPP environment variable to specify their OpenMP-enabled g++. See the Quickstart for details.
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 for details.
Major new features and changes in the 1.12.z versions
1.12.0
-
Rules-based modeling: See introduction above.
-
Automated annotation of the model hypotheses: Upon parsing the rules, PhysiCell auto-generates HTML-formatted text annotating all model hypotheses, for use in a paper's method section. This is to encourage better model interoperability and reproducibility.
-
CSV-based specification of model rules:
-
Version 1:
cell_type , signal , direction , behavior , base_value , max_response_value , half_max , Hill_power , applies_to_dead
cell_type
: The (human-readable) name of any cell type in the simulation, matching their declarations in the XML configuration file.- Allowed values: Any named cell type in the simulation.
signal
: Any signal in the simulation's signal dictionary that can be queried to modulate a behavior.- Allowed values: Any signal that is known to the signal dictionary.
direction
: Tells whether the signal increases or decreases the behavior.- Allowed values:
increases
ordecreases
- Allowed values:
behavior
: Any behavioral parameter in the simulation's behavior dictionary that can be edited to modulate a behavior.- Allowed values: Any behavioral parameter that is known in the behavior dictionary.
base_value
: The value of the behavioral parameter in the absence of any signals- Allowed value: Must match the behavior's parameter value in the cell definition
max_response_value
: The maximally changed behavior when acting under high values of signal- Allowed values (for rules that increase the behavior): Any positive value equalling or exceeding the
base_value
. E.g., ten times the base value. - Allowed values (for rules that decrease the behavior): Any positive value equal to or less than the
base_value
. E.g., one tenth the base value.
- Allowed values (for rules that increase the behavior): Any positive value equalling or exceeding the
half_max
: Value of the signal at which the behavior undergoes half of its maximal change.- Allowed values: Non-zero positive numbers.
Hill_power
: The Hill coefficient in a Hill response function.- Allowed values: Any non-zero positive number. Integer values are MUCH more computationally efficient.
- 'applies_to_dead': Indicates if the rule should also be applied to dead cells.
- Allowed values: 0 (for false) or 1 (for true).
-
Version 2:
cell_type , signal , direction , behavior , max_response_value , half_max , Hill_power , applies_to_dead
This version always copies thebase_values
from the corresponding cell definition.cell_type
: The (human-readable) name of any cell type in the simulation, matching their declarations in the XML configuration file.- Allowed values: Any named cell type in the simulation.
signal
: Any signal in the simulation's signal dictionary that can be queried to modulate a behavior.- Allowed values: Any signal that is known to the signal dictionary.
direction
: Tells whether the signal increases or decreases the behavior.- Allowed values:
increases
ordecreases
- Allowed values:
behavior
: Any behavioral parameter in the simulation's behavior dictionary that can be edited to modulate a behavior.- Allowed values: Any behavioral parameter that is known in the behavior dictionary.
max_response_value
: The maximally changed behavior when acting under high values of signal- Allowed values (for rules that increase the behavior): Any positive value equalling or exceeding the
base_value
. E.g., ten times the base value. - Allowed values (for rules that decrease the behavior): Any positive value equal to or less than the
base_value
. E.g., one tenth the base value.
- Allowed values (for rules that increase the behavior): Any positive value equalling or exceeding the
half_max
: Value of the signal at which the behavior undergoes half of its maximal change.- Allowed values: Non-zero positive n...
-
Version 1.11.0
PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems
Version: 1.11.0
Release date: 20 March 2023
Overview:
PhysiCell is a flexible open source framework for building agent-based multicellular models in 3-D tissue environments.
Reference: A Ghaffarizadeh, R Heiland, SH Friedman, SM Mumenthaler, and P Macklin, PhysiCell: an Open Source Physics-Based Cell Simulator for Multicellular Systems, PLoS Comput. Biol. 14(2): e1005991, 2018. DOI: 10.1371/journal.pcbi.1005991
Visit http://MathCancer.org/blog for the latest tutorials and help.
Notable recognition:
Key makefile rules:
make
: compiles the current project. If no
project has been defined, it first
populates the cancer heterogeneity 2D
sample project and compiles it
make project-name
: populates the indicated sample project.
Use "make" to compile it.
project-name
choices:- template
- biorobots-sample
- cancer-biorobots-sample
- cancer-immune-sample
- celltypes3-sample
- heterogeneity-sample
- pred-prey-farmer
- virus-macrophage-sample
- worm-sample
- ode-energy-sample
- physiboss-cell-lines-sample
- cancer-metabolism-sample
- interaction-sample
- mechano-sample
make list-projects
: list all available sample projects
make clean
: removes all .o files and the executable, so that the next "make" recompiles the entire project
make data-cleanup
: clears out all simulation data
make reset
: de-populates the sample project and returns to the original PhysiCell state. Use this when switching to a new PhysiCell sample project.
make jpeg
: uses ImageMagick to convert the SVG files in the output directory to JPG (with appropriate sizing to make movies). Supply OUTPUT=foldername
to select a different folder.
make movie
: uses ffmpeg to convert the JPG files in the output directory an mp4 movie. Supply OUTPUT=foldername
to select a different folder, or FRAMERATE=framerate
to override the frame rate.
make upgrade
: fetch the latest release of PhysiCell and overwrite the core library and sample projects.
Key Links
Homepage: http://PhysiCell.MathCancer.org
Downloads: http://PhysiCell.sf.net
Support: https://sourceforge.net/p/physicell/tickets/
Quick Start: Look at QuickStart.md in the documentation folder.
User Guide: Look at UserGuide.pdf in the documentation folder.
Setup and Training: See last year's workshop and hackathon at https://github.com/PhysiCell-Training/ws2021
Older Tutorials: http://www.mathcancer.org/blog/physicell-tutorials/
Latest info: follow @PhysiCell on Twitter (http://twitter.com/PhysiCell)
See changes.md for the full change log.
Release summary:
Version 1.11.0 adds several notable features, fixes bugs, and further expands the "signals" and "behaviors" that can be read and written with a simple API to facilitate building models. In particular, we add a brand new CSV format for initial cell positions (with more robust naming of cells by their human-readable names, a "header" line, and ability to extensively add and specificy individual cell properties), a new ability to save and load user projects in the user_projects
directory, automated dynamic formation and breakage of spring-based cell-cell adhesions (based upon the cell-cell adhesion affinities, attachment rates, and detachment rates), automated inclusion of spring-based adhesions (at the mechanics time step) without need for the user to explicitly supply a spring function, a new "mechano" sample project to illustrate the new automated spring functionality, and updates to PhysiBoSS to ensure compatibility with the rapidly improving PhysiCell Studio. In addition, there is new capability of adding a background coloring (e.g., an oxygen heatmap) to SVG ouptuts--see the interaction-sample
for an illustration (use the alternate XML config file to enable). This release includes several bugfixes, the most critical of which is to update the parameters for necrotic cells (which had previously been misset in the XML files, thus disabling necrotic cell lysis and shrinking).
NOTE 1: MacOS users need to define a PHYSICELL_CPP environment variable to specify their OpenMP-enabled g++. See the Quickstart for details.
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 for details.
Major new features and changes in the 1.11.z versions
1.11.0
-
New and improved (v2) cell CSV format for cell import. This allows more intuitive statement of initial cell positions. The first line of your CSV file must be:
x,y,z,cell type
Every subsequent line is a single cell, now referencing cell types by their human-readable names (as defined in your XML configuration file) rather than requiring the integer
ID
. So, a sample second line to place a CD8 T cell at (30,-10,12) would be:30,-10,12,CD8 T cell
Moreover, the new format allows you to initialize a variety of individual cell properties, including (total)
volume
and any supported cell beheavior. For example, if your cell definitions have custom variablesGFP
ondoncoprotein
, then you can extend the first header line to:x,y,z,cell type,custom:GFP,custom:oncoprotein
And then subsequent cells look like this:
30,-10,12,CD8 T cell,0.5,3.2
You can tell our parser to skip specifying a specific variable with
s
orS
or an empty entry. Here, the first cell would skip writing the initial value of the GFP, and teh second would skip initializing the oncoprotein:30,-10,12,CD8 T cell,,3.2
50,13,-4,M0 Macrophage,0.5,s
We will continue to automatically support older CSV cell files; any cells CSV file missing the first line of headers will be processed in the old format.
-
Ability to save and load user projects
-
Use
make save PROJ=project_name
to save your project to a folder in./user_projects
namedproject_name
. For example:make save PROJ=new_tumor_sample
saves your project as
new_tumor_sample
. In particular, it saves yourMakefile
,main.cpp
, everything in./config
, and everything in./custom_modules
. -
Use
make load PROJ=project_name
to load your project from a folder in./user_projects
namedproject_name
. For example:make load PROJ=new_tumor_sample
loads your project from
new_tumor_sample
. In particular, it loads yourMakefile
,main.cpp
, everything in./config
, and everything in./custom_modules
.
-
-
Extended
cell_interactions
to include a vectorimmunogenicities
: for a cell,immunogenicity[j]
is how immunogenic this cell is to the jth cell type. By default, these will all be set to 1. (See next point.) -
Updated the built-in "attack" model:
$$\textrm{Probability cell } i \textrm{ attacks cell } j \textrm{ in } [t,t+\Delta t] = \textrm{attack}_{ij} \cdot \textrm{immunogenicity}_{ji} \Delta t $$
By setting$\textrm{immunogenicity}_{ji} = 1$ as teh default value, we maintain compatibiltiy with prior models. This is a way to further modulate immunogenic and cytotoxic interactions. -
Began migrating built-in sample projects to be compatible with the model builder GUI and the upcoming PhysiCell Studio, including:
- template
- biorobots (updates spring constant from 0.05 to 0.5)
- heterogeneity
- cancer biorobots (updates spring constant from 0.05 to 0.5)
-
Added new signals:
-
apoptotic
returns 1 if a cell is apoptotic, and 0 otherwise -
necrotic
returns 1 if a cell is necrotic, and 0 otherwise
As always, access these via
double get_single_signal(Cell* pCell,std::string sig_name)
. -
-
Added new behaviors:
-
immunogenicity to [cell type]
is the cell's immunogenicity to a specific cell type. The probability that celli
attacks cellj
in$[t,t+\Delta t]$ is$\textrm{attack}_{ij} \cdot \textrm{immunogenicity}_{ji} \Delta t.$ -
cell attachment rate
is the rate at which the cell forms spring links with other cells. -
cell detachment rate
is the rate at which spring links break. -
maximum number of cell attachments
is the maximum number of spring links. -
is_movable
can be set to 0 (false) to make an agent rigid: it will exert forces on other cells, but it itself cannot be moved. This behavior right now is somewhat fragile if used dynmaically, but can reliably be used during tissue setup.
As always, access these via
double get_single_behavior(Cell* pCell,std::string beh_name)
andvoid set_single_behavior(Cell* pCell,std::string beh_name,double new_value)
. -
-
Added new standard model
void dynamic_attachments(Cell*, Phenotype& ,double);
This function can automate dynamic attachments and detachments. When calling this function for cell$i$ :-
For each current attachment, it detaches with probability
$\textrm{detachment rate}_i \Delta t$ -
For each cell
$j$ in the neighbors list, it forms an attachment with probability$$\textrm{Prob attach } i \textrm{ to cell } j = \textrm{adhesion affinity}_...
-
Version 1.10.4
PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems
Version: 1.10.4
Release date: 18 July 2022
Overview:
PhysiCell is a flexible open source framework for building agent-based multicellular models in 3-D tissue environments.
Reference: A Ghaffarizadeh, R Heiland, SH Friedman, SM Mumenthaler, and P Macklin, PhysiCell: an Open Source Physics-Based Cell Simulator for Multicellular Systems, PLoS Comput. Biol. 14(2): e1005991, 2018. DOI: 10.1371/journal.pcbi.1005991
Visit http://MathCancer.org/blog for the latest tutorials and help.
Notable recognition:
Key makefile rules:
make
: compiles the current project. If no project has been defined, it first populates the cancer heterogeneity 2D sample project and compiles it
make project-name
: populates the indicated sample project. Use "make" to compile it.
project-name
choices:- template
- biorobots-sample
- cancer-biorobots-sample
- cancer-immune-sample
- celltypes3-sample
- heterogeneity-sample
- pred-prey-farmer
- virus-macrophage-sample
- worm-sample
- ode-energy-sample
- physiboss-cell-lines-sample
- cancer-metabolism-sample
- interaction-sample
make list-projects
: list all available sample projects
make clean
: removes all .o files and the executable, so that the next "make" recompiles the entire project
make data-cleanup
: clears out all simulation data
make reset
: de-populates the sample project and returns to the original PhysiCell state. Use this when switching to a new PhysiCell sample project.
make jpeg
: uses ImageMagick to convert the SVG files in the output directory to JPG (with appropriate sizing to make movies). Supply OUTPUT=foldername
to select a different folder.
make movie
: uses ffmpeg to convert the JPG files in the output directory an mp4 movie. Supply OUTPUT=foldername
to select a different folder, or FRAMERATE=framerate
to override the frame rate.
make upgrade
: fetch the latest release of PhysiCell and overwrite the core library and sample projects.
Key Links
Homepage: http://PhysiCell.MathCancer.org
Downloads: http://PhysiCell.sf.net
Support: https://sourceforge.net/p/physicell/tickets/
Quick Start: Look at QuickStart.md in the documentation folder.
User Guide: Look at UserGuide.pdf in the documentation folder.
Setup and Training: See last year's workshop and hackathon at https://github.com/PhysiCell-Training/ws2021
Older Tutorials: http://www.mathcancer.org/blog/physicell-tutorials/
Latest info: follow @PhysiCell on Twitter (http://twitter.com/PhysiCell)
See changes.md for the full change log.
Release summary:
Version 1.10.4 primarily fixes bugs in file output and the ode-energy sample, and refines thread safety in cell phagocytosis.
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.
A blog post and tutorial on the new phenotype elements can be found at http://www.mathcancer.org/blog/introducing-cell-interactions-and-transformations.
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.
NOTE 1: MacOS users need to define a PHYSICELL_CPP environment variable to specify their OpenMP-enabled g++. See the Quickstart for details.
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 for details.
Major new features and changes in the 1.10.z versions
1.10.4
- None in this version. See 1.10.0
1.10.3
- None in this version. See 1.10.0
1.10.2
- None in this version. See 1.10.0
1.10.1
- None in this version. See 1.10.0
1.10.0
-
Created
Cell_Interactions
inPhenotype
as a standard representation of essential cell-cell interactions, including phagocytosis, "attack", and fusion.- Users can set phagocytosis rates for dead cells via
phenotype.cell_interactions.dead_phagocytosis_rate
. Cells automatically phagocytose live and dead neighbors at each mechancis time step based upon the phagocytosis rates. - Users can set phagocytosis rates for each live cell type via
phenotype.cell_interactions.live_phagocytosis_rates
. There is one rate for each cell type in the simulation. Cells automatically phagocytose live and dead neighbors at each mechancis time step based upon the phagocytosis rates. Phagocytosis absorbs the target cell's volume and internal contents and flags the target for removal. The cell will eventually shrink back towards its target volume. - For convenience, the phagocytosis rates can be accessed (read or written) via
phenotype.cell_interactions.live_phagocytosis_rate(name)
wherename
(astd::string
) is the human-readable name of a cell type. - Users can set attack rates for live cells via
phenotype.cell_interactions.attack_rates
. There is one rate for each cell type in the simulation. Cells automaticaly attack neighbors at each mechanics time step based upon the rates. An attack event increases the target cell'scell.state.damage
bydamage_rate * dt_mechanics
andcell.state.total_attack_time
bydt_mechanics
. It is up to the scientist user to set additional hypotheses that increases cell death with accumulated damage or attack time. - For convenience, the attack rates can be accessed via
phenotype.cell_interactions.attack_rate(name)
wherename
(astd::string
) is the human-readable name of a cell type. - Users can set fusion rates for live cells via
phenotype.cell_interactions.fusion_rates
. There is one rate for each cell type in the simulation. Cells automaticaly fuse with at each mechanics time step based upon the rates. Fusion will merge the two cells' volumes and internal contents, add their nuclei (recorded incell.state.number_of_nuclei
), and move the combine cell to the prior center of volume. The combined cell's new target volume is the sum of the two original cells' target volumes. - For convenience, the fusion rates can be accessed via
phenotype.cell_interactions.fusion_rate(name)
wherename
(astd::string
) is the human-readable name of a cell type.
- Users can set phagocytosis rates for dead cells via
-
Created
Cell_Transformations
inPhenotype
as a standard representation of cell transformations such as differentation or transdifferentiation.- Users can set transformation rates for each live cell type via
phenotype.cell_transformations_transformation_rates
. There is one rate for each cell type in the simulation. Cells automatically attempt to transform to these types at each phenotype time step based upon the phagocytosis rates. - For convenience, the transformation rates can be accessed (read or written) via
phenotype.cell_transformations.transformation_rate(name)
wherename
(astd::string
) is the human-readable name of a cell type.
- Users can set transformation rates for each live cell type via
-
Updated
Cell_State
to track the number of nuclei (for fusion), total damage (e.g., for cell attack) and total attack time. -
Added a new
advanced_chemotaxis
function with data stored inphenotype.motility
to allow chemotaxis up a linear combination of gradients.cell.phenotype.motility.chemotactic_sensitivities
is a vector of chemotactic sensitivies, one for each substrate in the environment. By default, these are all zero for backwards compatibility. A positive sensitivity denotes chemotaxis up a corresponding substrate's gradient (towards higher values), whereas a negative sensitivity gives chemotaxis against a gradient (towards lower values).- For convenience, you can access (read and write) a substrate's chemotactic sensitivity via
phenotype.motility.chemotactic_sensitivity(name)
, wherename
is the human-readable name of a substrate in the simulation. - If the user sets
cell.cell_functions.update_migration_bias = advanced_chemotaxis_function
, then these sensitivities are used to set the migration bias direction viad_mot = sensitivity_0 * grad(rho_0) + sensitivity_1 * grad(rho_1) + ... + sensitivity_n * grad(rho_n)
. - If the user sets
cell.cell_functions.update_migration_bias = advanced_chemotaxis_function_normalized
, then these sensitivities are used to set the migration bias direction viad_mot = sensitivity_0 * |grad(rho_0)| + sensitivity_1 * |grad(rho_1)| + ... + sensitivity_n * |grad(rho_n)|.
-
Added a new
adhesion_affinities
tophenotype.mechanics
to allow preferential adhesion.cell.phenotype.mechanics.adhesion_affinities
is a vector of adhesive affinities, one for each cell type in the simulation. By default, these are all one ...
Version 1.10.3
PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems
Version: 1.10.3
Release date: 25 June 2022
Overview:
PhysiCell is a flexible open source framework for building agent-based multicellular models in 3-D tissue environments.
Reference: A Ghaffarizadeh, R Heiland, SH Friedman, SM Mumenthaler, and P Macklin, PhysiCell: an Open Source Physics-Based Cell Simulator for Multicellular Systems, PLoS Comput. Biol. 14(2): e1005991, 2018. DOI: 10.1371/journal.pcbi.1005991
Visit http://MathCancer.org/blog for the latest tutorials and help.
Notable recognition:
Key makefile rules:
make
: compiles the current project. If no project has been defined, it first populates the cancer heterogeneity 2D sample project and compiles it
make project-name
: populates the indicated sample project. Use "make" to compile it.
project-name
choices:- template
- biorobots-sample
- cancer-biorobots-sample
- cancer-immune-sample
- celltypes3-sample
- heterogeneity-sample
- pred-prey-farmer
- virus-macrophage-sample
- worm-sample
- ode-energy-sample
- physiboss-cell-lines-sample
- cancer-metabolism-sample
- interaction-sample
make list-projects
: list all available sample projects
make clean
: removes all .o files and the executable, so that the next "make" recompiles the entire project
make data-cleanup
: clears out all simulation data
make reset
: de-populates the sample project and returns to the original PhysiCell state. Use this when switching to a new PhysiCell sample project.
make jpeg
: uses ImageMagick to convert the SVG files in the output directory to JPG (with appropriate sizing to make movies). Supply OUTPUT=foldername
to select a different folder.
make movie
: uses ffmpeg to convert the JPG files in the output directory an mp4 movie. Supply OUTPUT=foldername
to select a different folder, or FRAMERATE=framerate
to override the frame rate.
make upgrade
: fetch the latest release of PhysiCell and overwrite the core library and sample projects.
Key Links
Homepage: http://PhysiCell.MathCancer.org
Downloads: http://PhysiCell.sf.net
Support: https://sourceforge.net/p/physicell/tickets/
Quick Start: Look at QuickStart.md in the documentation folder.
User Guide: Look at UserGuide.pdf in the documentation folder.
Setup and Training: See last year's workshop and hackathon at https://github.com/PhysiCell-Training/ws2021
Old Tutorials: http://www.mathcancer.org/blog/physicell-tutorials/
Latest info: follow @PhysiCell on Twitter (http://twitter.com/PhysiCell)
See changes.md for the full change log.
Release summary:
Version 1.10.3 primarily fixes bugs and further refines the signal and behavior dictionaries, particularly with access to custom variables. It also allows users to designate custom variables as conserved quantities that are divided evenly among daughter cells as division (e.g., melanosomes). Lastly, this release continues updates to PhysiBoSS and libRoadrunner to leverage newer core features and improve compatibiltiy, while also improving support for newer Mac (M1 and M2) architectures.
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.
A blog post and tutorial on the new phenotype elements can be found at http://www.mathcancer.org/blog/introducing-cell-interactions-and-transformations.
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.
NOTE 1: MacOS users need to define a PHYSICELL_CPP environment variable to specify their OpenMP-enabled g++. See the Quickstart for details.
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 for details.
Major new features and changes in the 1.10.z versions
1.10.3
- None in this version. See 1.10.0
1.10.2
- None in this version. See 1.10.0
1.10.1
- None in this version. See 1.10.0
1.10.0
-
Created
Cell_Interactions
inPhenotype
as a standard representation of essential cell-cell interactions, including phagocytosis, "attack", and fusion.- Users can set phagocytosis rates for dead cells via
phenotype.cell_interactions.dead_phagocytosis_rate
. Cells automatically phagocytose live and dead neighbors at each mechancis time step based upon the phagocytosis rates. - Users can set phagocytosis rates for each live cell type via
phenotype.cell_interactions.live_phagocytosis_rates
. There is one rate for each cell type in the simulation. Cells automatically phagocytose live and dead neighbors at each mechancis time step based upon the phagocytosis rates. Phagocytosis absorbs the target cell's volume and internal contents and flags the target for removal. The cell will eventually shrink back towards its target volume. - For convenience, the phagocytosis rates can be accessed (read or written) via
phenotype.cell_interactions.live_phagocytosis_rate(name)
wherename
(astd::string
) is the human-readable name of a cell type. - Users can set attack rates for live cells via
phenotype.cell_interactions.attack_rates
. There is one rate for each cell type in the simulation. Cells automaticaly attack neighbors at each mechanics time step based upon the rates. An attack event increases the target cell'scell.state.damage
bydamage_rate * dt_mechanics
andcell.state.total_attack_time
bydt_mechanics
. It is up to the scientist user to set additional hypotheses that increases cell death with accumulated damage or attack time. - For convenience, the attack rates can be accessed via
phenotype.cell_interactions.attack_rate(name)
wherename
(astd::string
) is the human-readable name of a cell type. - Users can set fusion rates for live cells via
phenotype.cell_interactions.fusion_rates
. There is one rate for each cell type in the simulation. Cells automaticaly fuse with at each mechanics time step based upon the rates. Fusion will merge the two cells' volumes and internal contents, add their nuclei (recorded incell.state.number_of_nuclei
), and move the combine cell to the prior center of volume. The combined cell's new target volume is the sum of the two original cells' target volumes. - For convenience, the fusion rates can be accessed via
phenotype.cell_interactions.fusion_rate(name)
wherename
(astd::string
) is the human-readable name of a cell type.
- Users can set phagocytosis rates for dead cells via
-
Created
Cell_Transformations
inPhenotype
as a standard representation of cell transformations such as differentation or transdifferentiation.- Users can set transformation rates for each live cell type via
phenotype.cell_transformations_transformation_rates
. There is one rate for each cell type in the simulation. Cells automatically attempt to transform to these types at each phenotype time step based upon the phagocytosis rates. - For convenience, the transformation rates can be accessed (read or written) via
phenotype.cell_transformations.transformation_rate(name)
wherename
(astd::string
) is the human-readable name of a cell type.
- Users can set transformation rates for each live cell type via
-
Updated
Cell_State
to track the number of nuclei (for fusion), total damage (e.g., for cell attack) and total attack time. -
Added a new
advanced_chemotaxis
function with data stored inphenotype.motility
to allow chemotaxis up a linear combination of gradients.cell.phenotype.motility.chemotactic_sensitivities
is a vector of chemotactic sensitivies, one for each substrate in the environment. By default, these are all zero for backwards compatibility. A positive sensitivity denotes chemotaxis up a corresponding substrate's gradient (towards higher values), whereas a negative sensitivity gives chemotaxis against a gradient (towards lower values).- For convenience, you can access (read and write) a substrate's chemotactic sensitivity via
phenotype.motility.chemotactic_sensitivity(name)
, wherename
is the human-readable name of a substrate in the simulation. - If the user sets
cell.cell_functions.update_migration_bias = advanced_chemotaxis_function
, then these sensitivities are used to set the migration bias direction viad_mot = sensitivity_0 * grad(rho_0) + sensitivity_1 * grad(rho_1) + ... + sensitivity_n * grad(rho_n)
. - If the user sets
cell.cell_functions.update_migration_bias = advanced_chemotaxis_function_normalized
, then these sensitivities are used to set the migration bias direction via `d_mot = sensitivity_0 * |grad(rho_0)| + sensitivi...
Version 1.10.2
PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems
Version: 1.10.2
Release date: 24 May 2022
Overview:
PhysiCell is a flexible open source framework for building agent-based multicellular models in 3-D tissue environments.
Reference: A Ghaffarizadeh, R Heiland, SH Friedman, SM Mumenthaler, and P Macklin, PhysiCell: an Open Source Physics-Based Cell Simulator for Multicellular Systems, PLoS Comput. Biol. 14(2): e1005991, 2018. DOI: 10.1371/journal.pcbi.1005991
Visit http://MathCancer.org/blog for the latest tutorials and help.
Notable recognition:
Key makefile rules:
make : compiles the current project. If no
project has been defined, it first
populates the cancer heterogeneity 2D
sample project and compiles it
make [project-name]: populates the indicated sample project.
Use "make" to compile it.
- [project-name] choices:
- template
- biorobots-sample
- cancer-biorobots-sample
- cancer-immune-sample
- celltypes3-sample
- heterogeneity-sample
- pred-prey-farmer
- virus-macrophage-sample
- worm-sample
- ode-energy-sample
- physiboss-cell-lines-sample
- cancer-metabolism-sample
- interaction-sample
make list-projects : list all available sample projects
make clean : removes all .o files and the executable, so that the next "make" recompiles the entire project
make data-cleanup : clears out all simulation data
make reset : de-populates the sample project and returns to the original PhysiCell state. Use this when switching to a new PhysiCell sample project.
make jpeg : uses ImageMagick to convert the SVG files in the output directory to JPG (with appropriate sizing to make movies). Supply OUTPUT=foldername
to select a different folder.
make movie : uses ffmpeg to convert the JPG files in the output directory an mp4 movie. Supply OUTPUT=foldername
to select a different folder, or FRAMERATE=framerate
to override the frame rate.
make upgrade : fetch the latest release of PhysiCell and overwrite the core library and sample projects.
Homepage: http://PhysiCell.MathCancer.org
Downloads: http://PhysiCell.sf.net
Support: https://sourceforge.net/p/physicell/tickets/
Quick Start: Look at QuickStart.md in the documentation folder.
User Guide: Look at UserGuide.pdf in the documentation folder.
Tutorials: http://www.mathcancer.org/blog/physicell-tutorials/
Latest info: follow @PhysiCell on Twitter (http://twitter.com/PhysiCell)
See changes.md for the full change log.
Release summary:
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.
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.
A blog post and tutorial on the new phenotype elements can be found at http://www.mathcancer.org/blog/introducing-cell-interactions-and-transformations.
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.
NOTE 1: MacOS users need to define a PHYSICELL_CPP environment variable to specify their OpenMP-enabled g++. See the Quickstart for details.
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 for details.
Major new features and changes in the 1.10.z versions
1.10.2
- None in this version. See 1.10.0
1.10.1
- None in this version. See 1.10.0
1.10.0
-
Created
Cell_Interactions
inPhenotype
as a standard representation of essential cell-cell interactions, including phagocytosis, "attack", and fusion.- Users can set phagocytosis rates for dead cells via
phenotype.cell_interactions.dead_phagocytosis_rate
. Cells automatically phagocytose live and dead neighbors at each mechancis time step based upon the phagocytosis rates. - Users can set phagocytosis rates for each live cell type via
phenotype.cell_interactions.live_phagocytosis_rates
. There is one rate for each cell type in the simulation. Cells automatically phagocytose live and dead neighbors at each mechancis time step based upon the phagocytosis rates. Phagocytosis absorbs the target cell's volume and internal contents and flags the target for removal. The cell will eventually shrink back towards its target volume. - For convenience, the phagocytosis rates can be accessed (read or written) via
phenotype.cell_interactions.live_phagocytosis_rate(name)
wherename
(astd::string
) is the human-readable name of a cell type. - Users can set attack rates for live cells via
phenotype.cell_interactions.attack_rates
. There is one rate for each cell type in the simulation. Cells automaticaly attack neighbors at each mechanics time step based upon the rates. An attack event increases the target cell'scell.state.damage
bydamage_rate * dt_mechanics
andcell.state.total_attack_time
bydt_mechanics
. It is up to the scientist user to set additional hypotheses that increases cell death with accumulated damage or attack time. - For convenience, the attack rates can be accessed via
phenotype.cell_interactions.attack_rate(name)
wherename
(astd::string
) is the human-readable name of a cell type. - Users can set fusion rates for live cells via
phenotype.cell_interactions.fusion_rates
. There is one rate for each cell type in the simulation. Cells automaticaly fuse with at each mechanics time step based upon the rates. Fusion will merge the two cells' volumes and internal contents, add their nuclei (recorded incell.state.number_of_nuclei
), and move the combine cell to the prior center of volume. The combined cell's new target volume is the sum of the two original cells' target volumes. - For convenience, the fusion rates can be accessed via
phenotype.cell_interactions.fusion_rate(name)
wherename
(astd::string
) is the human-readable name of a cell type.
- Users can set phagocytosis rates for dead cells via
-
Created
Cell_Transformations
inPhenotype
as a standard representation of cell transformations such as differentation or transdifferentiation.- Users can set transformation rates for each live cell type via
phenotype.cell_transformations_transformation_rates
. There is one rate for each cell type in the simulation. Cells automatically attempt to transform to these types at each phenotype time step based upon the phagocytosis rates. - For convenience, the transformation rates can be accessed (read or written) via
phenotype.cell_transformations.transformation_rate(name)
wherename
(astd::string
) is the human-readable name of a cell type.
- Users can set transformation rates for each live cell type via
-
Updated
Cell_State
to track the number of nuclei (for fusion), total damage (e.g., for cell attack) and total attack time. -
Added a new
advanced_chemotaxis
function with data stored inphenotype.motility
to allow chemotaxis up a linear combination of gradients.cell.phenotype.motility.chemotactic_sensitivities
is a vector of chemotactic sensitivies, one for each substrate in the environment. By default, these are all zero for backwards compatibility. A positive sensitivity denotes chemotaxis up a corresponding substrate's gradient (towards higher values), whereas a negative sensitivity gives chemotaxis against a gradient (towards lower values).- For convenience, you can access (read and write) a substrate's chemotactic sensitivity via
phenotype.motility.chemotactic_sensitivity(name)
, wherename
is the human-readable name of a substrate in the simulation. - If the user sets
cell.cell_functions.update_migration_bias = advanced_chemotaxis_function
, then these sensitivities are used to set the migration bias direction viad_mot = sensitivity_0 * grad(rho_0) + sensitivity_1 * grad(rho_1) + ... + sensitivity_n * grad(rho_n)
. - If the user sets
cell.cell_functions.update_migration_bias = advanced_chemotaxis_function_normalized
, then these sensitivities are used to set the migration bias direction viad_mot = sensitivity_0 * |grad(rho_0)| + sensitivity_1 * |grad(rho_1)| + ... + sensitivity_n * |grad(rho_n)|.
-
Added a new
adhesion_affinities
tophenotype.mechanics
to allow preferential adhesion.cell.phenotype.mechanics.adhesion_affinities
is a vector of adhesive affinities, one for each cell type in the simulation. By default, these are all one for ba...
Version 1.10.1
PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems
Version: 1.10.1
Release date: 15 May 2022
Overview:
PhysiCell is a flexible open source framework for building agent-based multicellular models in 3-D tissue environments.
Reference: A Ghaffarizadeh, R Heiland, SH Friedman, SM Mumenthaler, and P Macklin, PhysiCell: an Open Source Physics-Based Cell Simulator for Multicellular Systems, PLoS Comput. Biol. 14(2): e1005991, 2018. DOI: 10.1371/journal.pcbi.1005991
Visit http://MathCancer.org/blog for the latest tutorials and help.
Notable recognition:
Key makefile rules:
make : compiles the current project. If no
project has been defined, it first
populates the cancer heterogeneity 2D
sample project and compiles it
make [project-name]: populates the indicated sample project.
Use "make" to compile it.
[project-name] choices:
template
biorobots-sample
cancer-biorobots-sample
cancer-immune-sample
celltypes3-sample
heterogeneity-sample
pred-prey-farmer
virus-macrophage-sample
worm-sample
ode-energy-sample
physiboss-cell-lines-sample
cancer-metabolism-sample
interaction-sample
make list-projects : list all available sample projects
make clean : removes all .o files and the executable, so that the next "make" recompiles the entire project
make data-cleanup : clears out all simulation data
make reset : de-populates the sample project and returns to the original PhysiCell state. Use this when switching to a new PhysiCell sample project.
make jpeg : uses ImageMagick to convert the SVG files in the output directory to JPG (with appropriate sizing to make movies). Supply OUTPUT=foldername
to select a different folder.
make movie : uses ffmpeg to convert the JPG files in the output directory an mp4 movie. Supply OUTPUT=foldername
to select a different folder, or FRAMERATE=framerate
to override the frame rate.
make upgrade : fetch the latest release of PhysiCell and overwrite the core library and sample projects.
Homepage: http://PhysiCell.MathCancer.org
Downloads: http://PhysiCell.sf.net
Support: https://sourceforge.net/p/physicell/tickets/
Quick Start: Look at QuickStart.md in the documentation folder.
User Guide: Look at UserGuide.pdf in the documentation folder.
Tutorials: http://www.mathcancer.org/blog/physicell-tutorials/
Latest info: follow @PhysiCell on Twitter (http://twitter.com/PhysiCell)
See changes.md for the full change log.
Release summary:
Version 1.10.1 introduces bugfixes to increase XML parser robustness and to fix missing PhysiBoSS makefiles.
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.
A blog post and tutorial on the new phenotype elements can be found at http://www.mathcancer.org/blog/introducing-cell-interactions-and-transformations.
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.
NOTE 1: MacOS users need to define a PHYSICELL_CPP environment variable to specify their OpenMP-enabled g++. See the Quickstart for details.
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 for details.
Major new features and changes in the 1.10.z versions
1.10.1
- None in this version. See 1.10.0
1.10.0
-
Created
Cell_Interactions
inPhenotype
as a standard representation of essential cell-cell interactions, including phagocytosis, "attack", and fusion.- Users can set phagocytosis rates for dead cells via
phenotype.cell_interactions.dead_phagocytosis_rate
. Cells automatically phagocytose live and dead neighbors at each mechancis time step based upon the phagocytosis rates. - Users can set phagocytosis rates for each live cell type via
phenotype.cell_interactions.live_phagocytosis_rates
. There is one rate for each cell type in the simulation. Cells automatically phagocytose live and dead neighbors at each mechancis time step based upon the phagocytosis rates. Phagocytosis absorbs the target cell's volume and internal contents and flags the target for removal. The cell will eventually shrink back towards its target volume. - For convenience, the phagocytosis rates can be accessed (read or written) via
phenotype.cell_interactions.live_phagocytosis_rate(name)
wherename
(astd::string
) is the human-readable name of a cell type. - Users can set attack rates for live cells via
phenotype.cell_interactions.attack_rates
. There is one rate for each cell type in the simulation. Cells automaticaly attack neighbors at each mechanics time step based upon the rates. An attack event increases the target cell'scell.state.damage
bydamage_rate * dt_mechanics
andcell.state.total_attack_time
bydt_mechanics
. It is up to the scientist user to set additional hypotheses that increases cell death with accumulated damage or attack time. - For convenience, the attack rates can be accessed via
phenotype.cell_interactions.attack_rate(name)
wherename
(astd::string
) is the human-readable name of a cell type. - Users can set fusion rates for live cells via
phenotype.cell_interactions.fusion_rates
. There is one rate for each cell type in the simulation. Cells automaticaly fuse with at each mechanics time step based upon the rates. Fusion will merge the two cells' volumes and internal contents, add their nuclei (recorded incell.state.number_of_nuclei
), and move the combine cell to the prior center of volume. The combined cell's new target volume is the sum of the two original cells' target volumes. - For convenience, the fusion rates can be accessed via
phenotype.cell_interactions.fusion_rate(name)
wherename
(astd::string
) is the human-readable name of a cell type.
- Users can set phagocytosis rates for dead cells via
-
Created
Cell_Transformations
inPhenotype
as a standard representation of cell transformations such as differentation or transdifferentiation.- Users can set transformation rates for each live cell type via
phenotype.cell_transformations_transformation_rates
. There is one rate for each cell type in the simulation. Cells automatically attempt to transform to these types at each phenotype time step based upon the phagocytosis rates. - For convenience, the transformation rates can be accessed (read or written) via
phenotype.cell_transformations.transformation_rate(name)
wherename
(astd::string
) is the human-readable name of a cell type.
- Users can set transformation rates for each live cell type via
-
Updated
Cell_State
to track the number of nuclei (for fusion), total damage (e.g., for cell attack) and total attack time. -
Added a new
advanced_chemotaxis
function with data stored inphenotype.motility
to allow chemotaxis up a linear combination of gradients.cell.phenotype.motility.chemotactic_sensitivities
is a vector of chemotactic sensitivies, one for each substrate in the environment. By default, these are all zero for backwards compatibility. A positive sensitivity denotes chemotaxis up a corresponding substrate's gradient (towards higher values), whereas a negative sensitivity gives chemotaxis against a gradient (towards lower values).- For convenience, you can access (read and write) a substrate's chemotactic sensitivity via
phenotype.motility.chemotactic_sensitivity(name)
, wherename
is the human-readable name of a substrate in the simulation. - If the user sets
cell.cell_functions.update_migration_bias = advanced_chemotaxis_function
, then these sensitivities are used to set the migration bias direction viad_mot = sensitivity_0 * grad(rho_0) + sensitivity_1 * grad(rho_1) + ... + sensitivity_n * grad(rho_n)
. - If the user sets
cell.cell_functions.update_migration_bias = advanced_chemotaxis_function_normalized
, then these sensitivities are used to set the migration bias direction viad_mot = sensitivity_0 * |grad(rho_0)| + sensitivity_1 * |grad(rho_1)| + ... + sensitivity_n * |grad(rho_n)|.
-
Added a new
adhesion_affinities
tophenotype.mechanics
to allow preferential adhesion.cell.phenotype.mechanics.adhesion_affinities
is a vector of adhesive affinities, one for each cell type in the simulation. By default, these are all one for backwards compatibility.- For convenience, you can access (read and write) a cell's adhesive affinity for a specific cell type via
phenotype.mechanics.adhesive_affinity(name)
, wherename
is the human-readable name of a cell type in the simulation. - The stand...
Version 1.10.0
PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems
Version: 1.10.0
Release date: 13 May 2022
Overview:
PhysiCell is a flexible open source framework for building agent-based multicellular models in 3-D tissue environments.
Reference: A Ghaffarizadeh, R Heiland, SH Friedman, SM Mumenthaler, and P Macklin, PhysiCell: an Open Source Physics-Based Cell Simulator for Multicellular Systems, PLoS Comput. Biol. 14(2): e1005991, 2018. DOI: 10.1371/journal.pcbi.1005991
Visit http://MathCancer.org/blog for the latest tutorials and help.
Notable recognition:
Key makefile rules:
make : compiles the current project. If no
project has been defined, it first
populates the cancer heterogeneity 2D
sample project and compiles it
make [project-name]: populates the indicated sample project.
Use "make" to compile it.
[project-name] choices:
template
biorobots-sample
cancer-biorobots-sample
cancer-immune-sample
celltypes3-sample
heterogeneity-sample
pred-prey-farmer
virus-macrophage-sample
worm-sample
ode-energy-sample
physiboss-cell-lines-sample
cancer-metabolism-sample
interaction-sample
make list-projects : list all available sample projects
make clean : removes all .o files and the executable, so that the next "make" recompiles the entire project
make data-cleanup : clears out all simulation data
make reset : de-populates the sample project and returns to the original PhysiCell state. Use this when switching to a new PhysiCell sample project.
make jpeg : uses ImageMagick to convert the SVG files in the output directory to JPG (with appropriate sizing to make movies). Supply OUTPUT=foldername
to select a different folder.
make movie : uses ffmpeg to convert the JPG files in the output directory an mp4 movie. Supply OUTPUT=foldername
to select a different folder, or FRAMERATE=framerate
to override the frame rate.
make upgrade : fetch the latest release of PhysiCell and overwrite the core library and sample projects.
Homepage: http://PhysiCell.MathCancer.org
Downloads: http://PhysiCell.sf.net
Support: https://sourceforge.net/p/physicell/tickets/
Quick Start: Look at QuickStart.md in the documentation folder.
User Guide: Look at UserGuide.pdf in the documentation folder.
Tutorials: http://www.mathcancer.org/blog/physicell-tutorials/
Latest info: follow @PhysiCell on Twitter (http://twitter.com/PhysiCell)
See changes.md for the full change log.
Release summary:
This release introduces 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.
A blog post and tutorial on the new phenotype elements can be found at http://www.mathcancer.org/blog/introducing-cell-interactions-and-transformations.
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.
NOTE 1: MacOS users need to define a PHYSICELL_CPP environment variable to specify their OpenMP-enabled g++. See the Quickstart for details.
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 for details.
Major new features and changes in the 1.10.z versions
1.10.0
-
Created
Cell_Interactions
inPhenotype
as a standard representation of essential cell-cell interactions, including phagocytosis, "attack", and fusion.- Users can set phagocytosis rates for dead cells via
phenotype.cell_interactions.dead_phagocytosis_rate
. Cells automatically phagocytose live and dead neighbors at each mechancis time step based upon the phagocytosis rates. - Users can set phagocytosis rates for each live cell type via
phenotype.cell_interactions.live_phagocytosis_rates
. There is one rate for each cell type in the simulation. Cells automatically phagocytose live and dead neighbors at each mechancis time step based upon the phagocytosis rates. Phagocytosis absorbs the target cell's volume and internal contents and flags the target for removal. The cell will eventually shrink back towards its target volume. - For convenience, the phagocytosis rates can be accessed (read or written) via
phenotype.cell_interactions.live_phagocytosis_rate(name)
wherename
(astd::string
) is the human-readable name of a cell type. - Users can set attack rates for live cells via
phenotype.cell_interactions.attack_rates
. There is one rate for each cell type in the simulation. Cells automaticaly attack neighbors at each mechanics time step based upon the rates. An attack event increases the target cell'scell.state.damage
bydamage_rate * dt_mechanics
andcell.state.total_attack_time
bydt_mechanics
. It is up to the scientist user to set additional hypotheses that increases cell death with accumulated damage or attack time. - For convenience, the attack rates can be accessed via
phenotype.cell_interactions.attack_rate(name)
wherename
(astd::string
) is the human-readable name of a cell type. - Users can set fusion rates for live cells via
phenotype.cell_interactions.fusion_rates
. There is one rate for each cell type in the simulation. Cells automaticaly fuse with at each mechanics time step based upon the rates. Fusion will merge the two cells' volumes and internal contents, add their nuclei (recorded incell.state.number_of_nuclei
), and move the combine cell to the prior center of volume. The combined cell's new target volume is the sum of the two original cells' target volumes. - For convenience, the fusion rates can be accessed via
phenotype.cell_interactions.fusion_rate(name)
wherename
(astd::string
) is the human-readable name of a cell type.
- Users can set phagocytosis rates for dead cells via
-
Created
Cell_Transformations
inPhenotype
as a standard representation of cell transformations such as differentation or transdifferentiation.- Users can set transformation rates for each live cell type via
phenotype.cell_transformations_transformation_rates
. There is one rate for each cell type in the simulation. Cells automatically attempt to transform to these types at each phenotype time step based upon the phagocytosis rates. - For convenience, the transformation rates can be accessed (read or written) via
phenotype.cell_transformations.transformation_rate(name)
wherename
(astd::string
) is the human-readable name of a cell type.
- Users can set transformation rates for each live cell type via
-
Updated
Cell_State
to track the number of nuclei (for fusion), total damage (e.g., for cell attack) and total attack time. -
Added a new
advanced_chemotaxis
function with data stored inphenotype.motility
to allow chemotaxis up a linear combination of gradients.cell.phenotype.motility.chemotactic_sensitivities
is a vector of chemotactic sensitivies, one for each substrate in the environment. By default, these are all zero for backwards compatibility. A positive sensitivity denotes chemotaxis up a corresponding substrate's gradient (towards higher values), whereas a negative sensitivity gives chemotaxis against a gradient (towards lower values).- For convenience, you can access (read and write) a substrate's chemotactic sensitivity via
phenotype.motility.chemotactic_sensitivity(name)
, wherename
is the human-readable name of a substrate in the simulation. - If the user sets
cell.cell_functions.update_migration_bias = advanced_chemotaxis_function
, then these sensitivities are used to set the migration bias direction viad_mot = sensitivity_0 * grad(rho_0) + sensitivity_1 * grad(rho_1) + ... + sensitivity_n * grad(rho_n)
. - If the user sets
cell.cell_functions.update_migration_bias = advanced_chemotaxis_function_normalized
, then these sensitivities are used to set the migration bias direction viad_mot = sensitivity_0 * |grad(rho_0)| + sensitivity_1 * |grad(rho_1)| + ... + sensitivity_n * |grad(rho_n)|.
-
Added a new
adhesion_affinities
tophenotype.mechanics
to allow preferential adhesion.cell.phenotype.mechanics.adhesion_affinities
is a vector of adhesive affinities, one for each cell type in the simulation. By default, these are all one for backwards compatibility.- For convenience, you can access (read and write) a cell's adhesive affinity for a specific cell type via
phenotype.mechanics.adhesive_affinity(name)
, wherename
is the human-readable name of a cell type in the simulation. - The standard mechanics function (based on potentials) uses this as follows. If cell
i
has an cell-cell adhesion strengtha_i
and an adhesive affinityp_ij
to cell type `...