Skip to content

Commit ddbc4b4

Browse files
authored
Merge pull request MathCancer#18 from MathCancer/development
Development
2 parents a5d4cd0 + 4ee66b5 commit ddbc4b4

File tree

9 files changed

+416
-68
lines changed

9 files changed

+416
-68
lines changed

CITATION.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
If you use PhysiCell in your project, please cite PhysiCell and the version
22
number, such as below:
33

4-
We implemented and solved the model using PhysiCell (Version 1.5.0) [1].
4+
We implemented and solved the model using PhysiCell (Version 1.5.1) [1].
55

66
[1] A Ghaffarizadeh, R Heiland, SH Friedman, SM Mumenthaler, and P Macklin,
77
PhysiCell: an Open Source Physics-Based Cell Simulator for Multicellu-
@@ -11,7 +11,7 @@ We implemented and solved the model using PhysiCell (Version 1.5.0) [1].
1111
Because PhysiCell extensively uses BioFVM, we suggest you also cite BioFVM
1212
as below:
1313

14-
We implemented and solved the model using PhysiCell (Version 1.5.0) [1],
14+
We implemented and solved the model using PhysiCell (Version 1.5.1) [1],
1515
with BioFVM [2] to solve the transport equations.
1616

1717
[1] A Ghaffarizadeh, R Heiland, SH Friedman, SM Mumenthaler, and P Macklin,

Makefile-backup

Lines changed: 287 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,287 @@
1+
VERSION := $(shell grep . VERSION.txt | cut -f1 -d:)
2+
PROGRAM_NAME := project
3+
4+
CC := g++
5+
# CC := g++-mp-7 # typical macports compiler name
6+
# CC := g++-7 # typical homebrew compiler name
7+
8+
# Check for environment definitions of compiler
9+
# e.g., on CC = g++-7 on OSX
10+
ifdef PHYSICELL_CPP
11+
CC := $(PHYSICELL_CPP)
12+
endif
13+
14+
ARCH := native # best auto-tuning
15+
# ARCH := core2 # a reasonably safe default for most CPUs since 2007
16+
# ARCH := corei7
17+
# ARCH := corei7-avx # earlier i7
18+
# ARCH := core-avx-i # i7 ivy bridge or newer
19+
# ARCH := core-avx2 # i7 with Haswell or newer
20+
# ARCH := nehalem
21+
# ARCH := westmere
22+
# ARCH := sandybridge # circa 2011
23+
# ARCH := ivybridge # circa 2012
24+
# ARCH := haswell # circa 2013
25+
# ARCH := broadwell # circa 2014
26+
# ARCH := skylake # circa 2015
27+
# ARCH := bonnell
28+
# ARCH := silvermont
29+
# ARCH := skylake-avx512
30+
# ARCH := nocona #64-bit pentium 4 or later
31+
32+
# CFLAGS := -march=$(ARCH) -Ofast -s -fomit-frame-pointer -mfpmath=both -fopenmp -m64 -std=c++11
33+
CFLAGS := -march=$(ARCH) -O3 -fomit-frame-pointer -mfpmath=both -fopenmp -m64 -std=c++11
34+
35+
COMPILE_COMMAND := $(CC) $(CFLAGS)
36+
37+
BioFVM_OBJECTS := BioFVM_vector.o BioFVM_mesh.o BioFVM_microenvironment.o BioFVM_solvers.o BioFVM_matlab.o \
38+
BioFVM_utilities.o BioFVM_basic_agent.o BioFVM_MultiCellDS.o BioFVM_agent_container.o
39+
40+
PhysiCell_core_OBJECTS := PhysiCell_phenotype.o PhysiCell_cell_container.o PhysiCell_standard_models.o \
41+
PhysiCell_cell.o PhysiCell_custom.o PhysiCell_utilities.o
42+
43+
PhysiCell_module_OBJECTS := PhysiCell_SVG.o PhysiCell_pathology.o PhysiCell_MultiCellDS.o PhysiCell_various_outputs.o \
44+
PhysiCell_pugixml.o PhysiCell_settings.o
45+
46+
# put your custom objects here (they should be in the custom_modules directory)
47+
48+
PhysiCell_custom_module_OBJECTS := .o
49+
50+
pugixml_OBJECTS := pugixml.o
51+
52+
PhysiCell_OBJECTS := $(BioFVM_OBJECTS) $(pugixml_OBJECTS) $(PhysiCell_core_OBJECTS) $(PhysiCell_module_OBJECTS)
53+
ALL_OBJECTS := $(PhysiCell_OBJECTS) $(PhysiCell_custom_module_OBJECTS)
54+
55+
EXAMPLES := ./examples/PhysiCell_test_mechanics_1.cpp ./examples/PhysiCell_test_mechanics_2.cpp \
56+
./examples/PhysiCell_test_DCIS.cpp ./examples/PhysiCell_test_HDS.cpp \
57+
./examples/PhysiCell_test_cell_cycle.cpp ./examples/PhysiCell_test_volume.cpp
58+
59+
all:
60+
make heterogeneity-sample
61+
make
62+
63+
# sample projects
64+
65+
template2D:
66+
cp ./sample_projects/template2D/custom_modules/* ./custom_modules/
67+
touch main.cpp && cp main.cpp main-backup.cpp
68+
cp ./sample_projects/template2D/main-2D.cpp ./main.cpp
69+
cp Makefile Makefile-backup
70+
cp ./sample_projects/template2D/Makefile .
71+
cp ./config/PhysiCell_settings.xml ./config/PhysiCell_settings-backup.xml
72+
cp ./sample_projects/template2D/config/* ./config/
73+
74+
template3D:
75+
cp ./sample_projects/template3D/custom_modules/* ./custom_modules/
76+
touch main.cpp && cp main.cpp main-backup.cpp
77+
cp ./sample_projects/template3D/main-3D.cpp ./main.cpp
78+
cp Makefile Makefile-backup
79+
cp ./sample_projects/template3D/Makefile .
80+
cp ./config/PhysiCell_settings.xml ./config/PhysiCell_settings-backup.xml
81+
cp ./sample_projects/template3D/config/* ./config/
82+
83+
# sample projects
84+
85+
biorobots-sample:
86+
cp ./sample_projects/biorobots/custom_modules/* ./custom_modules/
87+
touch main.cpp && cp main.cpp main-backup.cpp
88+
cp ./sample_projects/biorobots/main-biorobots.cpp ./main.cpp
89+
cp Makefile Makefile-backup
90+
cp ./sample_projects/biorobots/Makefile .
91+
cp ./config/PhysiCell_settings.xml ./config/PhysiCell_settings-backup.xml
92+
cp ./sample_projects/biorobots/config/* ./config/
93+
94+
cancer-biorobots-sample:
95+
cp ./sample_projects/cancer_biorobots/custom_modules/* ./custom_modules/
96+
touch main.cpp && cp main.cpp main-backup.cpp
97+
cp ./sample_projects/cancer_biorobots/main-cancer_biorobots.cpp ./main.cpp
98+
cp Makefile Makefile-backup
99+
cp ./sample_projects/cancer_biorobots/Makefile .
100+
cp ./config/PhysiCell_settings.xml ./config/PhysiCell_settings-backup.xml
101+
cp ./sample_projects/cancer_biorobots/config/* ./config/
102+
103+
heterogeneity-sample:
104+
cp ./sample_projects/heterogeneity/custom_modules/* ./custom_modules/
105+
touch main.cpp && cp main.cpp main-backup.cpp
106+
cp ./sample_projects/heterogeneity/main-heterogeneity.cpp ./main.cpp
107+
cp Makefile Makefile-backup
108+
cp ./sample_projects/heterogeneity/Makefile .
109+
cp ./config/PhysiCell_settings.xml ./config/PhysiCell_settings-backup.xml
110+
cp ./sample_projects/heterogeneity/config/* ./config/
111+
112+
cancer-immune-sample:
113+
cp ./sample_projects/cancer_immune/custom_modules/* ./custom_modules/
114+
touch main.cpp && cp main.cpp main-backup.cpp
115+
cp ./sample_projects/cancer_immune/main-cancer_immune_3D.cpp ./main.cpp
116+
cp Makefile Makefile-backup
117+
cp ./sample_projects/cancer_immune/Makefile .
118+
cp ./config/PhysiCell_settings.xml ./config/PhysiCell_settings-backup.xml
119+
cp ./sample_projects/cancer_immune/config/* ./config/
120+
121+
virus-macrophage-sample:
122+
cp ./sample_projects/virus_macrophage/custom_modules/* ./custom_modules/
123+
touch main.cpp && cp main.cpp main-backup.cpp
124+
cp ./sample_projects/virus_macrophage/main-virus_macrophage.cpp ./main.cpp
125+
cp Makefile Makefile-backup
126+
cp ./sample_projects/virus_macrophage/Makefile .
127+
cp ./config/PhysiCell_settings.xml ./config/PhysiCell_settings-backup.xml
128+
cp ./sample_projects/virus_macrophage/config/* ./config/
129+
130+
beta-testing:
131+
cp ./sample_projects/beta_testing/custom_modules/* ./custom_modules/
132+
touch main.cpp && cp main.cpp main-backup.cpp
133+
cp ./sample_projects/beta_testing/main-beta.cpp ./main.cpp
134+
cp Makefile Makefile-backup
135+
cp ./sample_projects/beta_testing/Makefile .
136+
cp ./config/PhysiCell_settings.xml ./config/PhysiCell_settings-backup.xml
137+
cp ./sample_projects/beta_testing/config/* ./config/
138+
139+
# early examples for convergence testing
140+
141+
physicell_test_mech1: $(PhysiCell_OBJECTS) ./examples/PhysiCell_test_mechanics_1.cpp
142+
$(COMPILE_COMMAND) -o test_mech1 $(PhysiCell_OBJECTS) ./examples/PhysiCell_test_mechanics_1.cpp
143+
144+
physicell_test_mech2: $(PhysiCell_OBJECTS) ./examples/PhysiCell_test_mechanics_2.cpp
145+
$(COMPILE_COMMAND) -o test_mech2 $(PhysiCell_OBJECTS) ./examples/PhysiCell_test_mechanics_2.cpp
146+
147+
physicell_test_DCIS: $(PhysiCell_OBJECTS) ./examples/PhysiCell_test_DCIS.cpp
148+
$(COMPILE_COMMAND) -o test_DCIS $(PhysiCell_OBJECTS) ./examples/PhysiCell_test_DCIS.cpp
149+
150+
physicell_test_HDS: $(PhysiCell_OBJECTS) ./examples/PhysiCell_test_HDS.cpp
151+
$(COMPILE_COMMAND) -o test_HDS $(PhysiCell_OBJECTS) ./examples/PhysiCell_test_HDS.cpp
152+
153+
physicell_test_cell_cycle: $(PhysiCell_OBJECTS) ./examples/PhysiCell_test_cell_cycle.cpp
154+
$(COMPILE_COMMAND) -o test_cycle $(PhysiCell_OBJECTS) ./examples/PhysiCell_test_cell_cycle.cpp
155+
156+
PhysiCell_test_volume: $(PhysiCell_OBJECTS) ./examples/PhysiCell_test_volume.cpp
157+
$(COMPILE_COMMAND) -o test_volume $(PhysiCell_OBJECTS) ./examples/PhysiCell_test_volume.cpp
158+
159+
examples: $(PhysiCell_OBJECTS)
160+
$(COMPILE_COMMAND) -o ./examples/test_mech1 ./examples/PhysiCell_test_mechanics_1.cpp $(PhysiCell_OBJECTS)
161+
$(COMPILE_COMMAND) -o ./examples/test_mech2 ./examples/PhysiCell_test_mechanics_2.cpp $(PhysiCell_OBJECTS)
162+
$(COMPILE_COMMAND) -o ./examples/test_DCIS ./examples/PhysiCell_test_DCIS.cpp $(PhysiCell_OBJECTS)
163+
$(COMPILE_COMMAND) -o ./examples/test_HDS ./examples/PhysiCell_test_HDS.cpp $(PhysiCell_OBJECTS)
164+
$(COMPILE_COMMAND) -o ./examples/test_cycle ./examples/PhysiCell_test_cell_cycle.cpp $(PhysiCell_OBJECTS)
165+
$(COMPILE_COMMAND) -o ./examples/test_volume ./examples/PhysiCell_test_volume.cpp $(PhysiCell_OBJECTS)
166+
167+
# PhysiCell core components
168+
169+
PhysiCell_phenotype.o: ./core/PhysiCell_phenotype.cpp
170+
$(COMPILE_COMMAND) -c ./core/PhysiCell_phenotype.cpp
171+
172+
PhysiCell_digital_cell_line.o: ./core/PhysiCell_digital_cell_line.cpp
173+
$(COMPILE_COMMAND) -c ./core/PhysiCell_digital_cell_line.cpp
174+
175+
PhysiCell_cell.o: ./core/PhysiCell_cell.cpp
176+
$(COMPILE_COMMAND) -c ./core/PhysiCell_cell.cpp
177+
178+
PhysiCell_cell_container.o: ./core/PhysiCell_cell_container.cpp
179+
$(COMPILE_COMMAND) -c ./core/PhysiCell_cell_container.cpp
180+
181+
PhysiCell_standard_models.o: ./core/PhysiCell_standard_models.cpp
182+
$(COMPILE_COMMAND) -c ./core/PhysiCell_standard_models.cpp
183+
184+
PhysiCell_utilities.o: ./core/PhysiCell_utilities.cpp
185+
$(COMPILE_COMMAND) -c ./core/PhysiCell_utilities.cpp
186+
187+
PhysiCell_custom.o: ./core/PhysiCell_custom.cpp
188+
$(COMPILE_COMMAND) -c ./core/PhysiCell_custom.cpp
189+
190+
# BioFVM core components (needed by PhysiCell)
191+
192+
BioFVM_vector.o: ./BioFVM/BioFVM_vector.cpp
193+
$(COMPILE_COMMAND) -c ./BioFVM/BioFVM_vector.cpp
194+
195+
BioFVM_agent_container.o: ./BioFVM/BioFVM_agent_container.cpp
196+
$(COMPILE_COMMAND) -c ./BioFVM/BioFVM_agent_container.cpp
197+
198+
BioFVM_mesh.o: ./BioFVM/BioFVM_mesh.cpp
199+
$(COMPILE_COMMAND) -c ./BioFVM/BioFVM_mesh.cpp
200+
201+
BioFVM_microenvironment.o: ./BioFVM/BioFVM_microenvironment.cpp
202+
$(COMPILE_COMMAND) -c ./BioFVM/BioFVM_microenvironment.cpp
203+
204+
BioFVM_solvers.o: ./BioFVM/BioFVM_solvers.cpp
205+
$(COMPILE_COMMAND) -c ./BioFVM/BioFVM_solvers.cpp
206+
207+
BioFVM_utilities.o: ./BioFVM/BioFVM_utilities.cpp
208+
$(COMPILE_COMMAND) -c ./BioFVM/BioFVM_utilities.cpp
209+
210+
BioFVM_basic_agent.o: ./BioFVM/BioFVM_basic_agent.cpp
211+
$(COMPILE_COMMAND) -c ./BioFVM/BioFVM_basic_agent.cpp
212+
213+
BioFVM_matlab.o: ./BioFVM/BioFVM_matlab.cpp
214+
$(COMPILE_COMMAND) -c ./BioFVM/BioFVM_matlab.cpp
215+
216+
BioFVM_MultiCellDS.o: ./BioFVM/BioFVM_MultiCellDS.cpp
217+
$(COMPILE_COMMAND) -c ./BioFVM/BioFVM_MultiCellDS.cpp
218+
219+
pugixml.o: ./BioFVM/pugixml.cpp
220+
$(COMPILE_COMMAND) -c ./BioFVM/pugixml.cpp
221+
222+
# standard PhysiCell modules
223+
224+
PhysiCell_SVG.o: ./modules/PhysiCell_SVG.cpp
225+
$(COMPILE_COMMAND) -c ./modules/PhysiCell_SVG.cpp
226+
227+
PhysiCell_pathology.o: ./modules/PhysiCell_pathology.cpp
228+
$(COMPILE_COMMAND) -c ./modules/PhysiCell_pathology.cpp
229+
230+
PhysiCell_MultiCellDS.o: ./modules/PhysiCell_MultiCellDS.cpp
231+
$(COMPILE_COMMAND) -c ./modules/PhysiCell_MultiCellDS.cpp
232+
233+
PhysiCell_various_outputs.o: ./modules/PhysiCell_various_outputs.cpp
234+
$(COMPILE_COMMAND) -c ./modules/PhysiCell_various_outputs.cpp
235+
236+
PhysiCell_pugixml.o: ./modules/PhysiCell_pugixml.cpp
237+
$(COMPILE_COMMAND) -c ./modules/PhysiCell_pugixml.cpp
238+
239+
PhysiCell_settings.o: ./modules/PhysiCell_settings.cpp
240+
$(COMPILE_COMMAND) -c ./modules/PhysiCell_settings.cpp
241+
242+
# user-defined PhysiCell modules
243+
244+
# cleanup
245+
246+
reset:
247+
rm -f *.cpp
248+
cp ./sample_projects/Makefile-default Makefile
249+
rm -f ./custom_modules/*
250+
touch ./custom_modules/empty.txt
251+
touch ALL_CITATIONS.txt
252+
rm ALL_CITATIONS.txt
253+
cp ./config/PhysiCell_settings_default.xml ./config/PhysiCell_settings.xml
254+
touch ./output/empty.txt
255+
256+
clean:
257+
rm -f *.o
258+
rm -f $(PROGRAM_NAME)*
259+
260+
data-cleanup:
261+
rm -f *.mat
262+
rm -f *.xml
263+
rm -f *.svg
264+
rm -f ./output/*
265+
touch ./output/empty.txt
266+
267+
# archival
268+
269+
zip:
270+
zip -r latest.zip Makefile* *.cpp *.h BioFVM/* config/* core/* custom_modules/* matlab/* modules/* sample_projects/*
271+
cp latest.zip $$(date +%b_%d_%Y_%H%M).zip
272+
cp latest.zip VERSION_$(VERSION).zip
273+
mv *.zip archives/
274+
275+
tar:
276+
tar --ignore-failed-read -czf latest.tar Makefile* *.cpp *.h BioFVM/* config/* core/* custom_modules/* matlab/* modules/* sample_projects/*
277+
cp latest.tar $$(date +%b_%d_%Y_%H%M).tar
278+
cp latest.tar VERSION_$(VERSION).tar
279+
mv *.tar archives/
280+
281+
unzip:
282+
cp ./archives/latest.zip .
283+
unzip latest.zip
284+
285+
untar:
286+
cp ./archives/latest.tar .
287+
tar -xzf latest.tar

README.md

Lines changed: 13 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems.
22

3-
**Version:** 1.5.0
3+
**Version:** 1.5.1
44

55
**Release date:** 7 June 2019
66

@@ -60,68 +60,33 @@ See changes.md for the full change log.
6060
* * *
6161

6262
## Release summary:
63-
64-
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).
65-
66-
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.
6763

68-
This release also added clearer methods to specify the microenvironment initial conditions, and improved documentation.
64+
This minor release fixes bugs in the new virus-macrophage sample project. Users should also consult the reslease notes for 1.5.0.
6965

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

7268
### Major new features and changes:
7369

74-
+ 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:
75-
++ std::vector<double>* internalized_substrates (tracks internalized substrates)
76-
++ std::vector<double>* fraction_released_at_death (sets the fraction of each substrate that is released at cell death)
77-
++ std::vector<double>* fraction_transferred_when_ingested (sets the fraction of each substrate that is transferred to a predatory cell if the cell is eaten).
78-
79-
Users should access these via the cell's (new) molecular portion of the phenotype. See below.
80-
81-
In BioFVM::Microenvironment_Options class, we added:
82-
++ bool track_internalized_substrates_in_each_agent. Set this to true to enable the tracking.
83-
84-
+ In BioFVM::Microenvironment_Options, we added the ability to set the (uniform) microenvironment initial conditions, via:
85-
++ std::vector<double> initial_condition_vector.
86-
87-
If this has size zero, then BioFVM will use the std::vector<double> Dirichlet_condition_vector as a reasonable guess at initial conditions as in prior versions.
88-
89-
+ We added a new function to Basic_Agent (and hence Cell) to facilitate registering with the microenvironment:
90-
++ void Basic_Agent::register_microenvironment( Microenvironment* microenvironment_in )
91-
92-
This function will ensure that the secretion, uptake, and internalization tracking data structures of the individual cell agent are properly matched to the microenvironment.
93-
94-
+ Added new "Molecular" block to Phenotype, for storing internalized substrates and for eventual inclusion of molecular-scale models (via SBML). The major elements are:
95-
++ std::vector<double> internalized_substrates (tracks internalized substrates)
96-
++ std::vector<double> fraction_released_at_death (sets the fraction of each substrate that is released at cell death)
97-
++ std::vector<double> fraction_transferred_when_ingested (sets the fraction of each substrate that is transferred to a predatory cell if the cell is eaten).
98-
99-
+ 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.
100-
101-
+ 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.
70+
+ None
10271

10372
### Minor new features and changes:
10473

105-
+ 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.
106-
107-
+ 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.
74+
+ None
10875

10976
### Beta features (not fully supported):
11077

11178
+ None
11279

11380
### Bugfixes:
11481

115-
+ Updated BioFVM's operator<< on std::vector<double> so that it doesn't output x="value", y="value", z = "value" for 3-D vectors.
116-
117-
+ 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.
82+
+ In the virus-macrophage sample project, switch cell death (in epithelial_function) from apoptosis to cell_lysis to demonstrate the new function.
11883

119-
+ 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.)
84+
+ In the virus-macrophage sample project, enable internalized substrate tracking in the setup_microenvironment() function.
12085

121-
+ Removed repeated parameters (attached_worker_migration_bias, unattached_worker_migration_bias) in the cancer biorobots sample project.
86+
+ In the virus-macrophage sample project, use a slower viral replication rate. (Should take 240 minutes to reach the lysis threshold.)
12287

123-
+ trigger_death() now works.
124-
88+
+ In the virus-macrophage sample project, switched to a maximum simulation time of 24 hours (1440 minutes).
89+
12590
### Notices for intended changes that may affect backwards compatibility:
12691

12792
+ We intend to merge Custom_Variable and Custom_Vector_Variable in the very near future.
@@ -155,3 +120,7 @@ This function will ensure that the secretion, uptake, and internalization tracki
155120
+ create an angiogenesis sample project
156121

157122
+ create a small library of angiogenesis and vascularization codes as an optional standard module in ./modules (but not as a core component)
123+
124+
+ improved plotting options in SVG
125+
126+
* * *

0 commit comments

Comments
 (0)