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

Assets 5

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)