/PhysiCell

PhysiCell - scientists should use latest release instead of cloning this development branch

Primary LanguageC++

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)