Skip to content

Releases: MathCancer/PhysiCell

Version 1.14.0

16 Sep 03:52
5055595
Compare
Choose a tag to compare

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 of Cell_Integrity) is now a generalized term for a rate of damage caused by non-attack means
    • attack damage rate means what damage rate used to mean: how fast an attacking cell deals damage to a target cell throughout the duration of the atttack
    • phagocytose 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.
  • contact with dead cell has been supplemented with additional (refined) signals contact with apoptotic cell, contact with necrotic cell, and contact 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>
  • 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...
Read more

Version 1.13.1

06 Aug 15:51
Compare
Choose a tag to compare

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 the name user project in ./user_projects/name.zip. Send this zip file for sharing your project, and have your recipient:
    1. Place name.zip in thier ./user_projects/ folder (preferably PhysiCell version 1.13.1 or later)
    2. Have them run the new rule make unpack PROJ=name to expand the project.
    3. After this, the usual rules apply. make load PROJ=name to load the project, and a subsequent make to compile it.
  • 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 called name. Type make load PROJ=name to load this project, and make to compile it.

1.13.0

  • Preparations for a new derived Cell class for use in PhysiBoSS, including a new instantiate_cell function in Cell_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...
Read more

Version 1.13.0

30 Jul 03:45
9f1d56a
Compare
Choose a tag to compare

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 new instantiate_cell function in Cell_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 in PhysiCell_phenotype.cpp (Thanks, Elmar Bucher!)
  • Improved handling of voxel_index in remove_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 a NULL 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 now cancer_biorobots instead of project
  • 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 to PhysiCell_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, and maximum_attachment_rate from phenotype.mechanics.

  • We intend to merge Custom_Variable and Custom_Vector_Variable in the future.

  • We may change the role of operator() and operator[] in Custom_Variable to more closely mirror the functionality in Parameters<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_functions are executed within cycle models. Right now, they are evaluated immediately after the exit from the preceding phase (and prior ...

Read more

Version 1.12.0

15 May 15:08
093c4ed
Compare
Choose a tag to compare

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 or decreases
      • 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.
      • 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 the base_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 or decreases
      • 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.
      • half_max: Value of the signal at which the behavior undergoes half of its maximal change.
        • Allowed values: Non-zero positive n...
Read more

Version 1.11.0

20 Mar 07:55
1a56003
Compare
Choose a tag to compare

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 variables GFP ond oncoprotein, 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 or S 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 named project_name. For example:

      make save PROJ=new_tumor_sample

      saves your project as new_tumor_sample. In particular, it saves your Makefile, 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 named project_name. For example:

      make load PROJ=new_tumor_sample

      loads your project from new_tumor_sample. In particular, it loads your Makefile, main.cpp, everything in ./config, and everything in ./custom_modules.

  • Extended cell_interactions to include a vector immunogenicities: 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 cell i attacks cell j 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) and void 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}_...

Read more

Version 1.10.4

19 Jul 02:21
bc3b32f
Compare
Choose a tag to compare

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 in Phenotype 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) where name (a std::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's cell.state.damage by damage_rate * dt_mechanics and cell.state.total_attack_time by dt_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) where name (a std::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 in cell.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) where name (a std::string) is the human-readable name of a cell type.
  • Created Cell_Transformations in Phenotype 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) where name (a std::string) is the human-readable name of a cell type.
  • 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 in phenotype.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), where name 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 via d_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)| + sensitivity_1 * |grad(rho_1)| + ... + sensitivity_n * |grad(rho_n)|.
  • Added a new adhesion_affinities to phenotype.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 ...
Read more

Version 1.10.3

27 Jun 03:17
5bbd35d
Compare
Choose a tag to compare

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 in Phenotype 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) where name (a std::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's cell.state.damage by damage_rate * dt_mechanics and cell.state.total_attack_time by dt_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) where name (a std::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 in cell.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) where name (a std::string) is the human-readable name of a cell type.
  • Created Cell_Transformations in Phenotype 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) where name (a std::string) is the human-readable name of a cell type.
  • 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 in phenotype.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), where name 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 via d_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...
Read more

Version 1.10.2

24 May 20:27
bedcb3a
Compare
Choose a tag to compare

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 in Phenotype 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) where name (a std::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's cell.state.damage by damage_rate * dt_mechanics and cell.state.total_attack_time by dt_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) where name (a std::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 in cell.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) where name (a std::string) is the human-readable name of a cell type.
  • Created Cell_Transformations in Phenotype 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) where name (a std::string) is the human-readable name of a cell type.
  • 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 in phenotype.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), where name 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 via d_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)| + sensitivity_1 * |grad(rho_1)| + ... + sensitivity_n * |grad(rho_n)|.
  • Added a new adhesion_affinities to phenotype.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...
Read more

Version 1.10.1

15 May 08:16
3dc17c6
Compare
Choose a tag to compare

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 in Phenotype 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) where name (a std::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's cell.state.damage by damage_rate * dt_mechanics and cell.state.total_attack_time by dt_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) where name (a std::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 in cell.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) where name (a std::string) is the human-readable name of a cell type.
  • Created Cell_Transformations in Phenotype 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) where name (a std::string) is the human-readable name of a cell type.
  • 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 in phenotype.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), where name 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 via d_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)| + sensitivity_1 * |grad(rho_1)| + ... + sensitivity_n * |grad(rho_n)|.
  • Added a new adhesion_affinities to phenotype.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), where name is the human-readable name of a cell type in the simulation.
    • The stand...
Read more

Version 1.10.0

13 May 04:02
2e7e10a
Compare
Choose a tag to compare

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 in Phenotype 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) where name (a std::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's cell.state.damage by damage_rate * dt_mechanics and cell.state.total_attack_time by dt_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) where name (a std::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 in cell.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) where name (a std::string) is the human-readable name of a cell type.
  • Created Cell_Transformations in Phenotype 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) where name (a std::string) is the human-readable name of a cell type.
  • 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 in phenotype.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), where name 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 via d_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)| + sensitivity_1 * |grad(rho_1)| + ... + sensitivity_n * |grad(rho_n)|.
  • Added a new adhesion_affinities to phenotype.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), where name 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 strength a_i and an adhesive affinity p_ij to cell type `...
Read more