Skip to content

@MathCancer MathCancer released this Jun 11, 2019

PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems.

Version: 1.5.2

Release date: 11 June 2019

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 : populates the indicated sample project.
Use "make" to compile it.

<project_name> choices:
template2D
template3D
biorobots-sample
cancer-biorobots-sample
heterogeneity-sample
cancer-immune-sample
virus-macrophage-sample

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.

Homepage: http://PhysiCell.MathCancer.org

Downloads: http://PhysiCell.sf.net

Support: https://sourceforge.net/p/physicell/tickets/

Quick Start: Look at QuickStart.pdf 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 @MathCancer on Twitter (http://twitter.com/MathCancer)

See changes.md for the full change log.


Release summary:

This minor release fixes bugs that affected the release of internalized substrates at cell death on Linux and OSX operating systems, relating to system differences in order of evaluating destructor functions. The release of internalized substrates has been moved to a new function, and placed in cell death functions. There is no change in APIs or high-level usage / syntax for end users.

Users should also consult the release notes for 1.5.0.

NOTE: OSX users must now define PHYSICELL_CPP system variable. See the documentation.

Major new features and changes:

  • None

Minor new features and changes:

  • Introduced new function Basic_Agent::release_internalized_substrates() to explicitly release a cell's internalized substrates, rather assuming it can be properly done in the Basic_Agent destructor function.

  • Removed the Basic_Agent destructor function to allow the compiler to automatically generate this.

  • Very minor revisions to the release protocol.

  • Minor updates to the user guide to reflect the release_internalized_substrates() function.

Beta features (not fully supported):

  • anim_svg.py - now plots correctly sized cells; manually step via arrow keys

  • anim_svg_cycle.py - same as above, but automatically cycles through .svg files

Bugfixes:

  • Move code for internalized substrate release from the Basic_Agent destructor to the new Basic_Agent::release_internalized_substrates() function.

  • Basic_Agent::release_internalized_substrates() is now called from delete_cell(int) in PhysiCell_cell.cpp.

  • Basic_Agent::release_internalized_substrates() explicitly sets internalized_substrates to a zero vector, just in case users want to call this function on non-dead cells.

  • Cell::Cell() now initializes updated_current_mechanics_voxel_index = 0 (avoids a possible segfault in GDB)

Notices for intended changes that may affect backwards compatibility:

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

  • We may change the role of operator() and operator[] in Custom_Variable to more closely mirror the functionality in Parameters.

  • We will introduce improvements to placement of daughter cells after division.

  • Some 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.

Planned future improvements:

  • Further XML-based simulation setup.

  • read saved simulation states (as MultiCellDS digital snapshots)

  • "mainline" prototype cell attach/detach mechanics as standard models (currently in the biorobots and immune examples)

  • integrate SBML-encoded systems of ODEs as custom data and functions for molecular-scale modeling

  • integrate Boolean network support from PhysiBoSS into the mainline code (See http://dx.doi.org/10.1093/bioinformatics/bty766. )

  • Develop contact-based cell-cell interactions.

  • Add cell differentiation functionality to Phenotype, to be executed during cell division events.

  • Add a new standard phenotype function that uses mechanobiology, where high pressure can arrest cycle progression. (See https://twitter.com/MathCancer/status/1022555441518338048.)

  • Add module for standardized pharmacodynamics, as prototyped in the nanobio project. (See https://nanohub.org/resources/pc4nanobio.)

  • create an angiogenesis sample project

  • create a small library of angiogenesis and vascularization codes as an optional standard module in ./modules (but not as a core component)

  • improved plotting options in SVG


Assets 3

@MathCancer MathCancer released this Jun 7, 2019 · 10 commits to master since this release

PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems.

Version: 1.5.1

Release date: 7 June 2019

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 : populates the indicated sample project.
Use "make" to compile it.

<project_name> choices:
template2D
template3D
biorobots-sample
cancer-biorobots-sample
heterogeneity-sample
cancer-immune-sample
virus-macrophage-sample

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.

Homepage: http://PhysiCell.MathCancer.org

Downloads: http://PhysiCell.sf.net

Support: https://sourceforge.net/p/physicell/tickets/

Quick Start: Look at QuickStart.pdf 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 @MathCancer on Twitter (http://twitter.com/MathCancer)

See changes.md for the full change log.


Release summary:

This minor release fixes bugs in the new virus-macrophage sample project. Users should also consult the reslease notes for 1.5.0.

NOTE: OSX users must now define PHYSICELL_CPP system variable. See the documentation.

Major new features and changes:

  • None

Minor new features and changes:

  • None

Beta features (not fully supported):

  • None

Bugfixes:

  • In the virus-macrophage sample project, switch cell death (in epithelial_function) from apoptosis to cell_lysis to demonstrate the new function.

  • In the virus-macrophage sample project, enable internalized substrate tracking in the setup_microenvironment() function.

  • In the virus-macrophage sample project, use a slower viral replication rate. (Should take 240 minutes to reach the lysis threshold.)

  • In the virus-macrophage sample project, switched to a maximum simulation time of 24 hours (1440 minutes).

Notices for intended changes that may affect backwards compatibility:

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

  • We may change the role of operator() and operator[] in Custom_Variable to more closely mirror the functionality in Parameters.

  • We will introduce improvements to placement of daughter cells after division.

  • Some 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.

Planned future improvements:

  • Further XML-based simulation setup.

  • read saved simulation states (as MultiCellDS digital snapshots)

  • "mainline" prototype cell attach/detach mechanics as standard models (currently in the biorobots and immune examples)

  • integrate SBML-encoded systems of ODEs as custom data and functions for molecular-scale modeling

  • integrate Boolean network support from PhysiBoSS into the mainline code (See http://dx.doi.org/10.1093/bioinformatics/bty766. )

  • Develop contact-based cell-cell interactions.

  • Add cell differentiation functionality to Phenotype, to be executed during cell division events.

  • Add a new standard phenotype function that uses mechanobiology, where high pressure can arrest cycle progression. (See https://twitter.com/MathCancer/status/1022555441518338048.)

  • Add module for standardized pharmacodynamics, as prototyped in the nanobio project. (See https://nanohub.org/resources/pc4nanobio.)

  • create an angiogenesis sample project

  • create a small library of angiogenesis and vascularization codes as an optional standard module in ./modules (but not as a core component)

  • improved plotting options in SVG


Assets 3

@MathCancer MathCancer released this Jun 7, 2019 · 15 commits to master since this release

PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems.

Version: 1.5.0

Release date: 7 June 2019

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 : populates the indicated sample project.
Use "make" to compile it.

<project_name> choices:
template2D
template3D
biorobots-sample
cancer-biorobots-sample
heterogeneity-sample
cancer-immune-sample
virus-macrophage-sample

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.

Homepage: http://PhysiCell.MathCancer.org

Downloads: http://PhysiCell.sf.net

Support: https://sourceforge.net/p/physicell/tickets/

Quick Start: Look at QuickStart.pdf 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 @MathCancer on Twitter (http://twitter.com/MathCancer)

See changes.md for the full change log.


Release summary:

This release introduces the ability to track the net internalization of diffusible substrates from the microenvironment, conserving mass with the diffusion-reaction partial differentiatial equations in BioFVM. This is part of longer-term plans to support molecular-scale models (e.g., as encoded by SBML). It also introduces the ability for cells to ingest other cells (and acquire their internalized substrates and volume), the ability for cells to release their internalized substrates back to the microenvironment after death, and a new cell death model (lysis).

To illustrate these new capabilities, this release introduces a new sample project called virus-macrophage-sample. In this project, virus particles diffuse through the microenvironment, are uptaken by cells, replicate within cells, and trigger lytic death after reaching a threshold. Lysed cells release their virus particles to further diffuse through the environment. Macrophages move by random migration, test for contact with cells, and ingest / phagocytose cells based upon their viral load. Macrophages degrade their internalized viral particles.

This release also added clearer methods to specify the microenvironment initial conditions, and improved documentation.

NOTE: OSX users must now define PHYSICELL_CPP system variable. See the documentation.

Major new features and changes:

  • Added functionality in BioFVM to (optionally) track the total amount of substrates in each cell, based upon tracking uptake and secretion. Note that without additional, user-defined functions to internally create or consume substrate (e.g., synthesizing proteins, or using oxygen in metabolism), this can result in negative internal values (if cells only secrete but no internal creation functions have been set) or unbounded positive values (if cells uptake a substrate but do not consume it). In particular, Basic_Agents (and hence Cells) now have:
    ++ std::vector* internalized_substrates (tracks internalized substrates)
    ++ std::vector* fraction_released_at_death (sets the fraction of each substrate that is released at cell death)
    ++ std::vector* fraction_transferred_when_ingested (sets the fraction of each substrate that is transferred to a predatory cell if the cell is eaten).

Users should access these via the cell's (new) molecular portion of the phenotype. See below.

In BioFVM::Microenvironment_Options class, we added:
++ bool track_internalized_substrates_in_each_agent. Set this to true to enable the tracking.

  • In BioFVM::Microenvironment_Options, we added the ability to set the (uniform) microenvironment initial conditions, via:
    ++ std::vector initial_condition_vector.

If this has size zero, then BioFVM will use the std::vector Dirichlet_condition_vector as a reasonable guess at initial conditions as in prior versions.

  • We added a new function to Basic_Agent (and hence Cell) to facilitate registering with the microenvironment:
    ++ void Basic_Agent::register_microenvironment( Microenvironment* microenvironment_in )

This function will ensure that the secretion, uptake, and internalization tracking data structures of the individual cell agent are properly matched to the microenvironment.

  • Added new "Molecular" block to Phenotype, for storing internalized substrates and for eventual inclusion of molecular-scale models (via SBML). The major elements are:
    ++ std::vector internalized_substrates (tracks internalized substrates)
    ++ std::vector fraction_released_at_death (sets the fraction of each substrate that is released at cell death)
    ++ std::vector fraction_transferred_when_ingested (sets the fraction of each substrate that is transferred to a predatory cell if the cell is eaten).

  • Added lyse_cell() to Cell, to allow a cell to immediately be lysed and potentially release its internalized substrates. Lysed cells are removed from the simulation.

  • Added ingest_cell(Cell*) to Cell, to allow a cell to ingest (e.g., phagocytose) another cell, acquire its volume, and also (optionally) acquire its internalized substrates. This should be useful for immunology.

Minor new features and changes:

  • Added void Microenvironment::update_dirichlet_node( int voxel_index , int substrate_index , double new_value ) based on pc4nanobio changes, which allows you to update a single substrate's dirichlet condition at specific voxel, rather than all of them.

  • Added void sync_to_microenvironment( Microenvironment* pMicroenvironment ) to Phenotype to facilitate syncing the cell's phenotype to the microenvironment (and subsequently calls the functions in phenotype.secretion and phenotype.molecular). This isn't used yet, but perhaps it should be.

Beta features (not fully supported):

  • None

Bugfixes:

  • Updated BioFVM's operator<< on std::vector so that it doesn't output x="value", y="value", z = "value" for 3-D vectors.

  • Fixed the search for cycle phase indices in the 2D and 3D template projects, to make sure it searches teh flow_cytometry_separated_cycle_model model and not the Ki67_advanced model, as part of the create_cell_types() function in the custom.cpp files.

  • In PhysiCell_standard_models, standard_volume_update_function is now fixed to update phenotype.volume.fluid. (This was not used in any mechanics or other calculations, so it does not affect prior modeling results.)

  • Removed repeated parameters (attached_worker_migration_bias, unattached_worker_migration_bias) in the cancer biorobots sample project.

  • trigger_death() now works.

Notices for intended changes that may affect backwards compatibility:

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

  • We may change the role of operator() and operator[] in Custom_Variable to more closely mirror the functionality in Parameters.

  • We will introduce improvements to placement of daughter cells after division.

  • Some 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.

Planned future improvements:

  • Further XML-based simulation setup.

  • read saved simulation states (as MultiCellDS digital snapshots)

  • "mainline" prototype cell attach/detach mechanics as standard models (currently in the biorobots and immune examples)

  • integrate SBML-encoded systems of ODEs as custom data and functions for molecular-scale modeling

  • integrate Boolean network support from PhysiBoSS into the mainline code (See http://dx.doi.org/10.1093/bioinformatics/bty766. )

  • Develop contact-based cell-cell interactions.

  • Add cell differentiation functionality to Phenotype, to be executed during cell division events.

  • Add a new standard phenotype function that uses mechanobiology, where high pressure can arrest cycle progression. (See https://twitter.com/MathCancer/status/1022555441518338048.)

  • Add module for standardized pharmacodynamics, as prototyped in the nanobio project. (See https://nanohub.org/resources/pc4nanobio.)

  • create an angiogenesis sample project

  • create a small library of angiogenesis and vascularization codes as an optional standard module in ./modules (but not as a core component)

Assets 3

@MathCancer MathCancer released this Oct 2, 2018 · 76 commits to master since this release

PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems.

Version: 1.4.1
Release date: 2 October 2018

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.

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 : populates the indicated sample project.
Use "make" to compile it.

<project_name> choices:
template2D
template3D
biorobots-sample
cancer-biorobots-sample
heterogeneity-sample
cancer-immune-sample

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.

Homepage: http://PhysiCell.MathCancer.org

Downloads: http://PhysiCell.sf.net

Support: https://sourceforge.net/p/physicell/tickets/

Quick Start: Look at QuickStart.pdf 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 @MathCancer on Twitter (http://twitter.com/MathCancer)

See changes.md for the full change log.


Release summary:

This release improves includes minor bug fixes for compiling in older versions of MinGW, and simplified XML MultiCellDS outputs that no longer record the relative pathing to .mat files. (This allows users to read data from their actual locations, rather than from a parent directory.) This release includes minor code cleanups in BioFVM for cleaner compiling in Ubuntu. Lastly, we have make small refinements to the sample projects and makefiles to default data saving to the ./output directory, and to prevent future releases from excluding the output directory from the zip releases.

NOTE: OSX users must now define PHYSICELL_CPP system variable. See the documentation.

Major new features and changes:

  • None

Minor new features and changes:

  • Changed the MultiCellDS outputs to only store the filename, and not the full relative path, in the tags. This makes it simpler to load MultiCellDS outputs from matlab and other platforms. (No longer need to read from a directory higher up to make the relative pathing correct.)

  • Did major cleanup on BioFVM so that it compiles cleanly on Ubuntu.

  • All sample projects output to the ./output directory

Beta features (not fully supported):

  • None

Bugfixes:

  • Updated the Parameter constructor functions to create a specialized version for std::string, to fix odd compiling bugs on older versions of MinGW. (Worked in 7.1.0, but not in 5.3.0.) Now, Parameter for T = bool, int, or double get initialized to value = (T) 0. And Parameter for T = std::string gets initialized to "none". I had hoped to do a unified version, but value = (T) 0 for std::string acts like a NULL pointer.

  • All Makefiles ensure that the reset and data-cleanup rules leave at least empty.txt in ./output, so that future releases are never missing the output directory.

Notices for intended changes that may affect backwards compatibility:

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

  • We may change the role of operator() and operator[] in Custom_Variable to more closely mirror the functionality in Parameters.

Planned future improvements:

  • Further XML-based simulation setup.

  • read saved simulation states (as MultiCellDS digital snapshots)

  • "mainline" prototype cell attach/detach mechanics as standard models (currently in the biorobots and immune examples)

  • integrate SBML-encoded systems of ODEs as custom data and functions for molecular-scale modeling

  • integrate Boolean network support from PhysiBoSS into the mainline code (See http://dx.doi.org/10.1093/bioinformatics/bty766. )

  • Develop contact-based cell-cell interactions. (Likely in next release.)

  • Add cell differentiation functionality to Phenotype, to be executed during cell division events.

  • Add a new standard phenotype function that uses mechanobiology, where high pressure can arrest cycle progression. (See https://twitter.com/MathCancer/status/1022555441518338048.)

  • Add module for standardized pharmacodynamics, as prototyped in the nanobio project. (See https://nanohub.org/resources/pc4nanobio.)

  • create an angiogenesis sample project

  • create a small library of angiogenesis and vascularization codes as an optional standard module in ./modules (but not as a core component)

  • (optionally) track internalized substrate, coupled with BioFVM

Assets 3

@MathCancer MathCancer released this Sep 26, 2018 · 95 commits to master since this release

PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems.

Version: 1.4.0
Release date: 26 September 2018

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.

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 : populates the indicated sample project.
Use "make" to compile it.

<project_name> choices:
template2D
template3D
biorobots-sample
cancer-biorobots-sample
heterogeneity-sample
cancer-immune-sample

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.

Homepage: http://PhysiCell.MathCancer.org

Downloads: http://PhysiCell.sf.net

Support: https://sourceforge.net/p/physicell/tickets/

Quick Start: Look at QuickStart.pdf 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 @MathCancer on Twitter (http://twitter.com/MathCancer)

See changes.txt for the full change log.


Release summary:

This release improves the use of XML parsing in configuring simulations, notably (1) reading the domain parameters instead of hard-coded values, and (2) parsing a <user_parameters> block in the XML config files to populate a global parameters data structure of Boolean, integer, double, and std::string variables. Users can efficiently query these from within any function anywhere in a PhysiCell project.

NOTE: OSX users must now define PHYSICELL_CPP system variable. See the documentation.

Major new features and changes:

  • User Parameters!

  • Parsing XML to set domain size for all sample projects.

Minor new features and changes:

  • Updated all the sample projects to use the improved XML parsing;

  • New functions in PhysiCell_pugixml:

    1. std::string xml_get_my_name( pugi::xml_node node );

      This helps to easily extract the name of an XML node. (e.g., returns bob.)

    2. bool xml_get_my_bool_value( pugi::xml_node node );

      This gets the Boolean value of an XML node. (e.g., true returns true.)

    3. int xml_get_my_int_value( pugi::xml_node node );

      This gets the integer value of an XML node. (e.g., 42 returns 42.)

    4. double xml_get_my_double_value( pugi::xml_node node );

      This gets the double value of an XML node. (e.g., 42.03 returns 42.03.)

    5. std::string xml_get_my_string_value( pugi::xml_node node );

  • Updated all Makefiles to copy main.cpp, the Makefile, and ./config/PhysiCell_settings.xml to backup copies prior to populating any sample project.

  • Updated the heterogeneity sample project:

    1. Use the domain settings from the XML config file

    2. Use the XML config file options to set the initial tumor size and oncoprotein distribution.

    3. Get the random seed from the XML config file.

    4. Rewrote the custom coloring function to scale from min oncoprotein value (blue) to max oncoprotein value (yellow).

  • Updated template2D sample project:

    1. Use the domain settings from the XML config file

    2. Use the XML config file to set the motile cell parameters

    3. Get the random seed from the XML config file.

    4. Updated to use the my_coloring_function coloring function. Made sure the my_coloring_function used false_cell_coloring_cytometry as its starting point.

  • Updated template3D sample project:

    1. Use the domain settings from the XML config file

    2. Use the XML config file to set the motile cell parameters

    3. Get the random seed from the XML config file.

    4. Updated to use the my_coloring_function coloring function. Made sure the my_coloring_function used false_cell_coloring_cytometry as its starting point.

  • Updated biorobots sample project:

    1. Use the domain settings from the XML config file

    2. Use the XML config file to set parameters and colors throughout the biorobots.cpp file

    3. Get the random seed from the XML config file

  • Updated cancer immune sample project:

    1. Use the domain settings from the XML config file

    2. Use the XML config file to set parameters throughout the cancer_immune_3D.cpp file

    3. Get the random seed from the XML config file

  • New function in ./core/PhysiCell_utilities:

    int choose_event( std::vector );

    If probabilities is a vector of n probabilities (for n events), and the sum of the probabilities is 1, then this chooses one of those n events according to these probabilities and returns the index of the selected event.

  • Moved from README.txt to README.md to support markdown and improve releases on both SourceForge and GitHub.

  • Moved from changes.txt to changes.md to support markdown and improve releases on both SourceForge and GitHub.

Beta features (not fully supported):

  • None

Bugfixes:

  • Updated the "reset" rules so that the default config file is restored (in all the sample makefiles).

  • Removed a cout from Mechanics::set_relative_equilibrium_distance() from ./core/PhysiCell_phenotype.*

Notices for intended changes that may affect backwards compatibility:

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

Planned future improvements:

  • Further XML-based simulation setup.

  • read saved simulation states (as MultiCellDS digital snapshots)

  • "mainline" prototype cell attach/detach mechanics as standard models (currently in the biorobots and immune examples)

  • integrate SBML-encoded systems of ODEs as custom data and functions for molecular-scale modeling

  • integrate Boolean network support from PhysiBoSS into the mainline code (See http://dx.doi.org/10.1093/bioinformatics/bty766. )

  • Develop contact-based cell-cell interactions. (Likely in next release.)

  • Add cell differentiation functionality to Phenotype, to be executed during cell division events.

  • Add a new standard phenotype function that uses mechanobiology, where high pressure can arrest cycle progression. (See https://twitter.com/MathCancer/status/1022555441518338048.)

  • Add module for standardized pharmacodynamics, as prototyped in the nanobio project. (See https://nanohub.org/resources/pc4nanobio.)

  • create an angiogenesis sample project

  • create a small library of angiogenesis and vascularization codes as an optional standard module in ./modules (but not as a core component)

Assets 3

@MathCancer MathCancer released this Sep 17, 2018 · 135 commits to master since this release

PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D
Multicellular Systems.

Version: 1.3.3
Release date: 16 September 2018

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.

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 : populates the indicated sample project.
Use "make" to compile it.

<project_name> choices:
template2D
template3D
biorobots-sample
cancer-biorobots-sample
heterogeneity-sample
cancer-immune-sample

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.

Homepage: http://PhysiCell.MathCancer.org
Downloads: http://PhysiCell.sf.net
Support: https://sourceforge.net/p/physicell/tickets/

Quick Start: Look at QuickStart.pdf 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 @MathCancer on Twitter (http://twitter.com/MathCancer)

See changes.txt for the full change log.

-=-=-=-=-

Release summary:

This release introduces simplifications in versioning to facilitate
faster release cycles. It also introduces functions to register and
list citations for third-part add-ons. The goal is to encourage end-
users to properly cite PhysiCell and add-on products used in their
projects.

NOTE: OSX users must now define PHYSICELL_CPP system variable.
See the documentation.

Major new features and changes:

  • none

Minor new features and changes:

  • Moved all version information to VERSION.txt to facilitate
    faster release cycles.

  • Updated all the Makefiles to set VERSION via

    VERSION := $(shell grep . VERSION.txt | cut -f1 -d:)

  • Moved detailed citation information to CITATION.txt to
    facilitate faster release cycles.

  • Changed std::string PhysiCell_version to
    std::string PhysiCell_Version for more consistency with
    prior BioFVM work.

  • Added new static string to PhysiCell.h:
    static std::string PhysiCell_DOI

  • Added new functions to PhysiCell_utilities to query
    PhysiCell versioning:

    std::string get_PhysiCell_version( void );

    void get_PhysiCell_version( std::string& pString );

  • Added the following function to PhysiCell_utilities to
    display a list of all software versions and citations
    used in the code:

    void display_citations( std::ostream& os );
    void display_citations( void );

    For example, use display_citations( std::cout ), or use
    an output file stream. Note that display_citations(void)
    calls display_citation(std::cout);

  • Updated all the sample projects to use display_citations();

Beta features (not fully supported):

  • Added ./protocols/ directory to include release and other
    instructions, to help train new developer contributors.
    Perhaps this should be called "checklists" ?

  • Added the following functions to PhysiCell_utilities to
    register third-party software citations in a global list,
    ready for query and display:

    void add_software_citation( std::string name ,
    std::string version, std::string DOI, std::string URL );

Bugfixes:

  • None

Notices for intended changes that may affect backwards compatibility:

  • We will probably move from README.txt to README.md to support
    markdown and improve releases on both SourceForge and GitHub.

  • We will probably move from changes.txt to changes.md to support
    markdown in the long-term change logs.

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

Planned future improvements:

  • Further XML-based simulation setup.

  • read saved simulation states (as MultiCellDS digital snapshots)

  • "mainline" prototype cell attach/detach mechanics as standard models
    (currently in the biorobots and immune examples)

  • integrate SBML-encoded systems of ODEs as custom data and functions
    for molecular-scale modeling

  • integrate Boolean network support from PhysiBoSS into the mainline code
    (See http://dx.doi.org/10.1093/bioinformatics/bty766. )

  • Develop contact-based cell-cell interactions. (Likely in next release.)

  • Add a new standard phenotype function that uses mechanobiology,
    where high pressure can arrest cycle progression.
    (See https://twitter.com/MathCancer/status/1022555441518338048.)
    (Likely in next release.)

  • Add module for standardized pharmacodynamics, as prototyped in the
    nanobio project. (See https://nanohub.org/resources/pc4nanobio.)

  • create an angiogenesis sample project

  • create a small library of angiogenesis and vascularization codes as
    an optional standard module in ./modules (but not as a core component)

Assets 3

@MathCancer MathCancer released this Aug 24, 2018 · 142 commits to master since this release

PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems.

Version: 1.3.2
Release date: 24 August 2018

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
URL: http://dx.doi.org/10.1371/journal.pcbi.1005991

Visit http://MathCancer.org/blog for the latest tutorials and help.

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 : populates the indicated sample project.
Use "make" to compile it.

<project_name> choices:
template2D
template3D
biorobots-sample
cancer-biorobots-sample
heterogeneity-sample
cancer-immune-sample

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.

Homepage: http://PhysiCell.MathCancer.org
Downloads: http://PhysiCell.sf.net
Support: https://sourceforge.net/p/physicell/tickets/

Quick Start: Look at QuickStart.pdf 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 @MathCancer on Twitter (http://twitter.com/MathCancer)

See changes.txt for the full change log.

-=-=-=-=-

Release summary:

This release fixes a small gradient bug that I swear I had fixed before.

NOTE: OSX users must now define PHYSICELL_CPP system variable.
See the documentation.

Major new features and changes:

  • none

Minor new features and changes:

  • none

Beta features (not fully supported):

  • none

Bugfixes:

  • In BioFVM, Microenvironment::compute_gradient_vector(int), removed "static"
    from "static std::vector indices(3,0)" to prevent rare segfaults.

  • In BioFVM, Microenvironment::compute_gradient_vector(int), replaced "static"
    for "bool gradient_constants_defined = false". Yep, I removed static from
    the wrong line in 1.3.1

  • Correct some errors in both the README.txt and changes.txt files.

Notices for intended changes that may affect backwards compatibility:

  • None.

Planned future improvements:

  • Further XML-based simulation setup.

  • read saved simulation states (as MultiCellDS digital snapshots)

  • "mainline" prototype cell attach/detach mechanics as standard models
    (currently in the biorobots and immune examples)

  • integrate SBML-encoded systems of ODEs as custom data and functions
    for molecular-scale modeling

  • integrate Boolean network support from PhysiBoSS into the mainline code
    (See https://doi.org/10.1101/267070.)

  • Develop contact-based cell-cell interactions. (Likely in next release.)

  • Add a new standard phenotype function that uses mechanobiology,
    where high pressure can arrest cycle progression.
    (See https://twitter.com/MathCancer/status/1022555441518338048.)
    (Likely in next release.)

  • Add module for standardized pharmacodynamics, as prototyped in the
    nanobio project. (See https://nanohub.org/resources/pc4nanobio.)

  • create an angiogenesis sample project

  • create a small library of angiogenesis and vascularization codes as
    an optional standard module in ./modules (but not as a core component)

Assets 3

@MathCancer MathCancer released this Aug 1, 2018 · 148 commits to master since this release

PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems.

Version: 1.3.1
Release date: 31 July 2018

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
URL: http://dx.doi.org/10.1371/journal.pcbi.1005991

Visit http://MathCancer.org/blog for the latest tutorials and help.

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 : populates the indicated sample project.
Use "make" to compile it.

<project_name> choices:
template2D
template3D
biorobots-sample
cancer-biorobots-sample
heterogeneity-sample
cancer-immune-sample

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.

Homepage: http://PhysiCell.MathCancer.org
Downloads: http://PhysiCell.sf.net
Support: https://sourceforge.net/p/physicell/tickets/

Quick Start: Look at QuickStart.pdf 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 @MathCancer on Twitter (http://twitter.com/MathCancer)

See changes.txt for the full change log.

-=-=-=-=-

Release summary:

This release introduces a new cycle model with an active cycling state and a quiescent state. It also adds new functions to the Mechanics class to make it easier to modify the cell-cell interaction distance (while maintaining equilibrium cell-cell spacing), or to modify the equilibrium cell-cell spacing. The release also includes major reliability and performance improvements to how gradients are calculated.

As usual, the release also contains minor bugfixes and improvements.

NOTE: OSX users must now define PHYSICELL_CPP system variable.
See the documentation.

Major new features and changes:

  • Implemented a new cell cycle model (cycling_quiescent),
    where quiescent cells can enter a cycling state. This
    model uses identical parameters to the Ki67-basic cycle
    model, but decouples the conceptual model from Ki67
    immunohistochemistry.

    Updated the documentation and coloring functions accordingly.

    Updated update_cell_and_death_parameters_O2_based() to
    support the new cycling_quiescent cycle model.

  • update_all_cells(t,dt,dt,dt) now checks to see if gradient
    calculations are enabled, and if so, computes it once per dt_mechanics.

    This improves code performance by 2x to 3x in gradient-enabled codes,
    because we no longer need to calculate gradients once per dt_diffusion
    time step. (Gradients are only needed for cell velocity calculations,
    and occasionally for phenotype decisions.)

    All sample projects have been updated to make use of this.

    Also, removed the explicit gradient calculations from the template
    and sample projects.

  • Added a new function to Mechanics class to simplify changes to cell
    interaction distances:

    void set_relative_maximum_adhesion_distance( double new_value );

    Here, new_value is a multiple of the cell's (mean equivalent) radius.
    Our default is 1.25. This function preserves the cell's "repulsion"
    strength and adjusts the strength of cell-cell adhesion to maintain
    its prior equilibrium cell-cell spacing.

  • Added a new function to Mechanics class to simplify changes to cell
    equilibrium distances.

    void set_relative_equilibrium_distance( double new_value );

    Here, new_value is a multiple of the cell's (mean equivalent) radius.
    The default is around 1.9. This function preserves the cell's "repulsion"
    and the maximum interaction distance, and it adjusts the strength of
    cell-cell adhesion to match the new equilibrium cell-cell spacing.

    Note that this function performs a "sanity check" to ensure that you have
    not given a value greater than 2.0.

  • Added a new function to Mechanics class to simplify changes to cell
    equilibrium distances.

    void Mechanics::set_absolute_equilibrium_distance( Phenotype& phenotype,
    double new_value )

    Here, new_value is the new equilibrium spacing (in units of microns).
    The function internally requires the cell's mean equivalent radius,
    and so you pass the cell's phenotype (by reference) as an additional
    argument.

    Note that this function performs a "sanity check" to ensure that you have
    not given a value greater than 2.0 * mean_cell_radius.

    Also note that PhysiCell internally uses a relative spacing, so the
    absolute spacing will change from the value you set, over time.

  • Updated User_Guide to reflect new cell cycle model,
    including reference parameters chosen for consistency with
    the other cycle models.

Minor new features and changes:

  • Added the following constants to support the new cycle model

    static const int cycling = 17;
    static const int quiescent = 18;
    static const int cycling_quiescent_model = 7;

  • Removed the (never-used) Mechanics.maximum_adhesion_distance.

  • Removed the legacy template_projects folder.

Beta features (not fully supported):

  • Added a function pointer to the Cell_Functions class for intended
    contact-based cell-cell interaction, like delta-Notch signaling.

    void (contact_function)(Cell pMyself, Phenotype& my_phenotype,
    Cell* pOther, Phenotype& other_phenotype, double dt );

    It would be up to the user to define these functions and decide
    if the functions modify pMyself, pOther, or both. For now,
    the code will initialize the pointer to NULL and won't use it.

  • Open to comments on handling cell-cell contact functions. Here's what
    I have in mind:

    notation: cell i interacts with cell j with function f(i,j).

    Each cell agent can hold one contact-based interaction function f,
    to be stored as a pointer in the cell's instance of the Cell_Functions
    class.

    We use the containers (and their interaction testing structures) to
    identify all interactions (i,j,f), and add it to a vector of interactions.
    The interaction (i,j,f) is added to the list so long as (j,i,f) is not
    already in the list, to avoid double-counting the interaction.

    The code will seek through the "container" interaction testing
    data structure, probably at the cell mechanics time scale, and update /
    recreate the vector of contact-based interactions (i,j,f).

    The code would likely go through the vector of interactions and
    execute the codes once per dt_diffusion time step, since I would
    imagine molecular biology (with faster time scales) is intended here.

    Since f(i,j) can potentially modify both cell i and cell j, it's probably
    not thread-safe. So we'll probably need that in a non-parallel loop.

    We will probably add a new time scale for interactions, dt_interactions,
    and update the interaction list on that time scale.

    For faster checking if (i,j,f) or (j,i,f) is already in the vector,
    we'll probably want some sort of hash map in addition to the vector
    of interactions.

    We'll probably implement this all in something like
    PhysiCell_contact_interctions.*, and add a global enable/disable option.
    I'd imagine we'd add code to the "update_all_cells" to keep this
    as simple to the users as possible.

    We should probably update each cell's "neighbors" data structure at
    when we're doing all this testing.

    In a longer-term update, we could leverage that for simpler interaction
    testing during velocity updates.

Bugfixes:

  • Added missing "omp_set_num_threads(PhysiCell_settings.omp_num_threads)"
    in the main-heterogeneity.cpp file for the heterogeneity sample project.

  • In BioFVM, Microenvironment::compute_gradient_vector(int), removed "static"
    from "static std::vector indices(3,0)" to prevent rare segfaults.

  • Changed root above the comment lines in output files for
    better Python parsing compatibility. Thanks, rheiland!

Notices for intended changes that may affect backwards compatibility:

  • None.

Planned future improvements:

  • Further XML-based simulation setup.

  • read saved simulation states (as MultiCellDS digital snapshots)

  • "mainline" prototype cell attach/detach mechanics as standard models
    (currently in the biorobots and immune examples)

  • integrate SBML-encoded systems of ODEs as custom data and functions
    for molecular-scale modeling

  • integrate Boolean network support from PhysiBoSS into the mainline code
    (See https://doi.org/10.1101/267070.)

  • Develop contact-based cell-cell interactions. (Likely in next release.)

  • Add a new standard phenotype function that uses mechanobiology,
    where high pressure can arrest cycle progression.
    (See https://twitter.com/MathCancer/status/1022555441518338048.)
    (Likely in next release.)

  • Add module for standardized pharmacodynamics, as prototyped in the
    nanobio project. (See https://nanohub.org/resources/pc4nanobio.)

  • create an angiogenesis sample project

  • create a small library of angiogenesis and vascularization codes as
    an optional standard module in ./modules (but not as a core component)

Assets 3

@MathCancer MathCancer released this Feb 23, 2018 · 191 commits to master since this release

PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D
Multicellular Systems.

Version: 1.3.0
Release date: 23 February 2018

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.

Summary:
This release introduces two new cell cycle models (G0/G1 ->
S -> G2/M) and (G0/G1 -> S -> G2 -> M), introduces XML-based
configuration files, and allows new user control on how
often and where data are stored.

As usual, the release also contains minor bugfixes and
improvements.

NOTE: OSX users must now define PHYSICELL_CPP system variable.
See the documentation.

Major new features and changes:

  • implemented new cell cycle models:

    flow_cytometry_cycle_model: G0/G1 -> S -> G2/M
    flow_cytometry_separated_cycle_model: G0/G1 -> S -> G2 -> M

    along with documentation and updated coloring functions

  • The oxygen-based phenotype models now support the new cycle
    model.

  • Added XML file parsing for use in settings files.

  • XML configuration file (in ./config/PhysiCell_settings.xml)
    sets data destination (as a subfolder) and save
    frequency. Legacy saves are now off by default.

  • Users can select a different XML file at command line

    ./project_name settings_file.xml

    (Assuming you preserved the structure of the template
    projects.)

  • Updated User_Guide to reflect new XML parsing capabilities.

  • Updated User_Guide to reflect new cell cycle models,
    including reference parameters chosen for consistency with
    the other cycle models.

Minor new features and changes:

  • Added PhysiCell_pugixml.* for easier extraction of parameter
    arguments from XML files

  • Added PhysiCell_settings.* to include parsing of XML parameter
    files, and parameter values stored in a unified data structure.

  • Added parsing of settings file to separately set frequency of
    saving full output (MultiCellDS), SVG outputs, and "legacy"
    outputs from USC era.

  • Added options to specify the folder of saved data.

  • Added option to read the number of OMP threads from a setting file.

  • Added "beta" directory where we will put new features that are still
    undergoing testing

  • Minor updates to the Quickstart guide.

  • Added new function: to display the simulation status:

    void display_simulation_status( std::ostream& os );

    e.g., display_simulation_status( std::cout );

  • writePov() uses a user-specified output folder.

  • log_output() uses a user-specified output folder.

  • added "beta-testing" sample project. Populate it by the rule:
    make beta-testing

  • added flow_cytometry_separated_cycle_model to the PhysiCell constants.

  • added G1pm_phase and G1ps_phase to the PhysiCell constants.

  • Added new coloring function: false_cell_coloring_cytometry

  • added support for the new cytometry cycle models to the oxygen-based
    phenotype model (update_cell_and_death_parameters_O2_based)

  • updated user manual to reflect new cytometry models

  • updated template2D and template3D projects to use to use the
    new cytometry models and coloring schemes. Also reduced to
    1 mm x 1 mm (2D) and 1 mm^3 (3D) for faster demos.

  • removed archives directory

Beta features (not fully supported):

  • XML functions moved from beta to production.

Bugfixes:

  • Changed instances of uniform_random() (from BioFVM) to
    UniformRandom() (from PhysiCell) so that all calls to the PRNG
    used the same random seed and same PRNG. Thanks, olliemcdonald!

  • Fixed typo in "Dirichlet" in user documentation. Thanks, luissv7!

  • Removed .git directory that was accidentally included in releases

  • Updated PhysiCell_MultiCellDS.cpp
    (add_PhysiCell_cells_to_open_xml_pugi) so that we exit(-1) with a
    meaningful error message if we cannot open a matlab subfile
    for writing.

  • Updated PhysiCell_pathology.cpp (SVG_plot) so that we exit(-1)
    with a meaningful error message if we cannot open an SVG file
    for writing.

Notices for intended changes that may affect backwards compatibility:

  • template_projects folder will be removed

Planned future improvements:

  • Further XML-based simulation setup.

  • read saved simulation states (as MultiCellDS digital snapshots)

  • "mainline" prototype cell attach/detach mechanics as standard models
    (currently in the biorobots and immune examples)

  • integrate SBML-encoded systems of ODEs as custom data and functions
    for molecular-scale modeling

  • create an angiogenesis sample project

  • create a small library of angiogenesis and vascularization codes as
    an optional standard module in ./modules (but not as a core component)

Assets 3

@MathCancer MathCancer released this Nov 5, 2017 · 241 commits to master since this release

PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems.

Version: 1.2.2
Release date: 4 November 2017

Overview:
PhysiCell is a flexible open source framework for building agent-based multicellular models in 3-D tissue environments.

Reference: Ghaffarizadeh et al., PLoS Comput Biol (2017)
preprint URL: https://doi.org/10.1101/088773

Visit http://MathCancer.org/blog for the latest tutorials and help.

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:
template2D
template3D
biorobots-sample
cancer-biorobots-sample
heterogeneity-sample
cancer-immune-sample

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.

Homepage: http://PhysiCell.MathCancer.org
Downloads: http://PhysiCell.sf.net
Support: https://sourceforge.net/p/physicell/tickets/

Quick Start: Look at QuickStart.pdf 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 @MathCancer on Twitter (http://twitter.com/MathCancer)

See changes.txt for the full change log.

Summary:
This release reduces the complexity of Makefiles (especially for OSX users), restructures the 2D and 3D project templates as sample projects, fixes a minor bug in SVG pathology outputs, improves copying of Cell_Definitions, and fixes minor bugs in BioFVM (primarily related to Dirichlet conditions).

NOTE: OSX users must now define PHYSICELL_CPP system variable. See the documentation.

PhysiCell is currently under scientific peer review.

Major new features and changes:

  • none

Minor new features and changes:

  • Restructured the 2D template project to have the same structure as a
    typical project, with setup functions related functions in
    ./custom_modules/*, etc. Moved it to ./sample_projects/template2D/
    ./template_projects/ will be deprecated.

    To populate this project, use:

    make template2D

    To compile:

    make

    To de-populate the sample project and return to the "clean"PhysiCell state:

    make reset
    make clean (to remove object files)

  • Restructured the 3D template project to have the same structure as a
    typical project, with setup functions related functions in
    ./custom_modules/*, etc. Moved it to ./sample_projects/template3D/
    ./template_projects/ will be deprecated.

    To populate this project, use:

    make template3D

    To compile:

    make

    To de-populate the sample project and return to the "clean"PhysiCell state:

    make reset
    make clean (to remove object files)

  • Simplified Makefiles: populating a sample project and compiling it

    make <sample_project>

    To compile:

    make

    To reset to original state:

    make reset

    Current <sample_project> values:
    template2D
    template3D
    biorobots-sample
    cancer-biorobots-sample
    heterogeneity-sample
    cancer-immune-sample

  • Simplified Makefiles: Makefiles check for system variable
    PHYSICELL_CPP to set the compiler (CC). OSX users must set
    this environment variables. See the online tutorials and the
    user guide.

  • Simplified Makefiles: "make data-cleanup" removes .svg, .mat, .xml, and
    data inside ./data

  • Updated documentation on how to add new substrates.

  • Updated documentation on applying Dirichlet conditions to only
    specific substrates.

  • Added new function to copy the properties of a Cell Definition to
    the cell.

    void Cell::convert_to_cell_definition( Cell_Definition& cd )

Bugfixes:

  • Fixed a small error in SVG plots, where tissues were flipped with
    y was vertically flipped.

  • Used register_microenvironment(Microenvironment*) to improve
    compatibiltiy with other operating systems and compilers.

  • Added copy constructor and copy assignnment functions to the
    Cell_Definition is.

  • Removed the unnecessary "wha???" from BioFVM_microenvironment.cpp.

  • Updated Dirichlet_condition_vector = ones (instead of zeros) in
    Microenvironment_Options::Microenvironment_Options() default
    constructor.

  • Microenvironment::resize_densities( int new_size ) no longer
    overwrites previous dirichlet values when extending the size.

  • No longer overwrites existing Dirichlet_condition_vector elements
    or set default_microenvironment_options.use_oxygen_as_first_field
    to false.

  • Microenvironment::set_density(int,std::string,std::string) and
    Microenvironment::set_density(int,std::string,std::string,double,double)
    were modified to be compatibility.

  • Only set default_microenvironment_options.use_oxygen_as_first_field = false
    if index = 0, when samplign the oxygen.

  • Updated save_PhysiCell_to_MultiCellDS_xml_pugi() to save much more
    phenotype information and all custom variables for each cell.

  • Updated read_MultiCellDS_XML.m (in ./matlab) to read these
    newly expanded data files.

  • Includes a sneak preview of BioFVM 1.1.7, which includes bugfixes
    mentioned above.

Notices for intended changes that may affect backwards compatibility:

  • None at this time

Planned future improvements:

  • parse XML configuration files

  • read saved simulation states (as MultiCellDS digital snapshots)

  • "mainline" prototype cell attach/detach mechanics as standard models
    (currently in the biorobots and immune examples)

  • integrate SBML-encoded systems of ODEs as custom data and functions
    for molecular-scale modeling

  • create an angiogenesis sample project

  • create a small library of angiogenesis and vascularization codes as
    an optional standard module in ./modules (but not as a core component)

Assets 5
You can’t perform that action at this time.