Creation
Create a new PhysiCellModelManager.jl project.
Public API
PhysiCellModelManager.createProject — Function
createProject(project_dir::String="."; clone_physicell::Bool=true, template_as_default::Bool=true, terse::Bool=false)Create a new PhysiCellModelManager.jl project structure.
Creates a new project directory at project_dir with the following structure:
project_dir
├── data
├── PhysiCell # The latest release from https://github.com/drbergman/PhysiCell
└── scriptsdata is populated with the standard structure. PhysiCell is a copy of PhysiCell. scripts contains a generated GenerateData.jl file.
Arguments
project_dir::String=".": The directory in which to create the project. Relative paths are resolved from the current working directory where Julia was launched.clone_physicell::Bool=true: Whether to clone the PhysiCell repository. Iffalse, the latest release will be downloaded. Recommended to set totrueso PhysiCellModelManager.jl will be able to track changes to the PhysiCell repository.template_as_default::Bool=true: Whether to set up the project with the template files as the default. Iffalse, the project will be set up with an empty structure.terse::Bool=false: Whether to generate a terseGenerateData.jlfile. Iftrue, the file will be generated without comments and explanations.
Note
The names of the data and PhysiCell directories are fixed and cannot be changed. Their relative locations should not be changed without updating the GenerateData.jl file and other scripts accordingly. The name of the scripts folder and the GenerateData.jl are just by convention and can be changed.
Private API
PhysiCellModelManager.createDefaultGitIgnore — Method
createDefaultGitIgnore(project_dir::String)Create a default .gitignore file for the data directory. The following are ignored:
- all databases
- all variations folders (folders containing modified versions of the base files)
- compile-time-generated files
- all outputs
PhysiCellModelManager.icFilename — Method
icFilename(table_name::String)Get the filename for the given IC type for setting up the IC folder.
PhysiCellModelManager.latestReleaseTag — Method
latestReleaseTag(repo_url::String)Get the latest release tag from a GitHub repository.
PhysiCellModelManager.requestHeaders — Method
requestHeaders()Get the request headers for GitHub API requests. This allows the GitHub actions to use a token if provided in the PCMM_PUBLIC_REPO_AUTH environment variable to avoid rate limiting.
PhysiCellModelManager.setUpComponents — Method
setUpComponents(data_dir::String, physicell_dir::String)Set up the components directory in the data directory and populate it with the "Toy_Metabolic_Model.xml" file.
PhysiCellModelManager.setUpICFolder — Method
setUpICFolder(path_to_template::String, inputs_dir::String, ic_name::String, folder::String)Set up the IC folder in the inputs directory for the given IC type.
PhysiCellModelManager.setUpInputs — Method
setUpInputs(data_dir::String, physicell_dir::String, template_as_default::Bool)Set up the inputs directory in the data directory, if the data directory does not already exist.
PhysiCellModelManager.setUpPhysiCell — Method
setUpPhysiCell(project_dir::String, clone_physicell::Bool)Set up the PhysiCell directory in the project directory.
If the directory already exists, it will not be created again. If clone_physicell is true, the latest release of the PhysiCell repository will be cloned.
PhysiCellModelManager.setUpRequiredFolders — Method
setUpRequiredFolders(path_to_template::String, inputs_dir::String, folder::String)Set up the required folders in the inputs directory.
PhysiCellModelManager.setUpScripts — Method
setUpScripts(project_dir::String, physicell_dir::String, data_dir::String, template_as_default::Bool, terse::Bool)Set up the scripts directory in the project directory.
PhysiCellModelManager.setUpTemplate — Method
setUpTemplate(physicell_dir::String, inputs_dir::String)Set up the template project in the inputs directory.