Data directory structure

To set up your PhysiCellModelManager.jl-enabled repository within project-dir (the name of your project directory), create the following directory structure:

project-dir/
├── data/
│   └── inputs/
│       ├── configs/
│       ├── custom_codes/
│       ├── ics/
│       │   ├── cells/
│       │   ├── dcs/
│       │   ├── ecms/
│       │   └── substrates/
│       ├── intracellulars/
│       ├── rulesets_collections/
...

Within each of the terminal subdirectories above within data/inputs/, add a subdirectory with a user-defined name with content described below. We will use the name "default" for all as an example.

Configs

Add a single file within data/inputs/configs/default/ called PhysiCell_settings.xml with the base configuration file for your PhysiCell project.

Custom codes

Add within data/inputs/custom_codes/default/ the following, each exactly as is used in a PhysiCell project:

  • main.cpp
  • Makefile
  • custom_modules/

Rulesets collections

Add a single file within data/inputs/rulesets_collections/default/ called base_rulesets.csv with the base ruleset collection for your PhysiCell project. If your project does not use rules, you can skip this step.

You may also place an XML file here. Use PhysiCellXMLRules.jl to create one from a standard CSV version of the rules.

Important: In either case, the variations you define must be on the XML version. After calling initializeModelManager(), any folder with base_rulesets.csv will now be populated with a base_rulesets.xml file that can be reference to set the XML paths.

Intracellulars

Add a single XML file within data/inputs/intracellulars/default/ called intracellular.xml in which the root has two child elements: cell_definitions and intracellulars. This currently only supports libRoadRunner, i.e., ODEs. See the sample_projects_intracellular/combined/template-combined for an example. See Intracellular inputs for much more information.

ICs

These folders are optional as not every model includes initial conditions as separate files. If your model does, for each initial condition add a subfolder. For example, if you have two initial cell position conditions, random_cells.csv and structured_cells.csv, the data/inputs/ics/cells/ directory would look like this:

cells/
├── random_cells/
│   └── cells.csv
└── structured_cells/
    └── cells.csv

Note: Place the files in their corresponding folders and rename to cells.csv.

Proceed similarly for dcs/, ecms/, and substrates/, renaming those files to dcs.csv, ecm.csv, and substrates.csv, respectively.

IC cells

PhysiCellModelManager.jl uses PhysiCellCellCreator.jl to allow for creation of cells.csv files based on geometries defined in a cells.xml file. To use this, first create such an XML document (see PhysiCellCellCreator.jl for details) and place this in place of the cells.csv file. You may make variations on this in the same way as for config and rulesets_collection.

IC ecm

PhysiCellModelManager.jl uses PhysiCellECMCreator.jl to allow for creation of ecm.csv files based on the structure defined in a ecm.xml file. To use this, first create such an XML document (see PhysiCellECMCreator.jl for details) and place this in place of the ecm.csv file. You may make variations on this in the same way as for config and rulesets_collection.