Skip to content

Commit 26fe001

Browse files
authored
Merge pull request #133 from drbergman-lab/development
v0.0.29
2 parents 25c10cd + babd83c commit 26fe001

21 files changed

+149
-85
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "pcvct"
22
uuid = "3c374bc7-7384-4f83-8ca0-87b8c727e6ff"
33
authors = ["Daniel Bergman <[email protected]> and contributors"]
4-
version = "0.0.28"
4+
version = "0.0.29"
55

66
[deps]
77
AutoHashEquals = "15f4f7f2-30c1-5605-9d31-71845cf9641f"

docs/make.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ makedocs(;
2626
"Sensitivity analysis" => "man/sensitivity_analysis.md",
2727
"Analyzing output" => "man/analyzing_output.md",
2828
"Developer guide" => "man/developer_guide.md",
29+
"Project configuration" => "man/project_configuration.md",
2930
"Index" => "man/index.md",
3031
],
3132
"Documentation" => map(

docs/src/lib/configuration.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ The following can be passed in as the third argument to `configPath(<substrate_n
6565

6666
The following tokens work with a `cell_type` from your model:
6767
```julia
68-
- `configPath(<cell_type>, "cycle_rate", "0")` (`cyclePath`)
69-
- `configPath(<cell_type>, "cycle_duration", "0")` (`cyclePath`)
68+
- `configPath(<cell_type>, "cycle_rate", <start_index>)` (`cyclePath`)
69+
- `configPath(<cell_type>, "cycle_duration", <index>)` (`cyclePath`)
7070
- `configPath(<cell_type>, "apoptosis", <parameter>)` (`apoptosisPath`)
7171
- `configPath(<cell_type>, "necrosis", <parameter>)` (`necrosisPath`)
7272
- `configPath(<cell_type>, "adhesion", <cell_type>)` (`mechanicsPath`)

docs/src/lib/ic_cell.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ CollapsedDocStrings = true
44

55
# Cell Initial Conditions
66

7-
Functionality for the using [PhysiCellCellCreator.jl](https://github.com/drbergman/PhysiCellCellCreator.jl) to create and use PhysiCell IC cell XML files.
7+
Functionality for the using [PhysiCellCellCreator.jl](https://github.com/drbergman-lab/PhysiCellCellCreator.jl) to create and use PhysiCell IC cell XML files.
88

99
## Public API
1010
```@autodocs

docs/src/lib/ic_ecm.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ CollapsedDocStrings = true
44

55
# ECM Initial Conditions
66

7-
Functionality for the using [PhysiCellECMCreator.jl](https://github.com/drbergman/PhysiCellECMCreator.jl) to create and use PhysiCell ECM XML files.
7+
Functionality for the using [PhysiCellECMCreator.jl](https://github.com/drbergman-lab/PhysiCellECMCreator.jl) to create and use PhysiCell ECM XML files.
88

99
## Public API
1010
```@autodocs

docs/src/man/data_directory.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Add within `data/inputs/custom_codes/default/` the following, each exactly as is
3737
Add a single file within `data/inputs/rulesets_collections/default/` called `base_rulesets.csv` with the base ruleset collection for your PhysiCell project.
3838
If your project does not use rules, you can skip this step.
3939

40-
You may also place an XML file here. Use [PhysiCellXMLRules.jl](https://github.com/drbergman/PhysiCellXMLRules.jl) to create one from a standard CSV version of the rules.
40+
You may also place an XML file here. Use [PhysiCellXMLRules.jl](https://github.com/drbergman-lab/PhysiCellXMLRules.jl) to create one from a standard CSV version of the rules.
4141

4242
**Important**: In either case, the variations you define *must* be on the XML version.
4343
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.
@@ -67,12 +67,12 @@ Proceed similarly for `dcs/`, `ecms/`, and `substrates/`, renaming those files t
6767

6868
### IC cells
6969

70-
pcvct uses [PhysiCellCellCreator.jl](https://github.com/drbergman/PhysiCellCellCreator.jl) to allow for creation of `cells.csv` files based on geometries defined in a `cells.xml` file.
71-
To use this, first create such an XML document (see [PhysiCellCellCreator.jl](https://github.com/drbergman/PhysiCellCellCreator.jl) for details) and place this in place of the `cells.csv` file.
70+
pcvct uses [PhysiCellCellCreator.jl](https://github.com/drbergman-lab/PhysiCellCellCreator.jl) to allow for creation of `cells.csv` files based on geometries defined in a `cells.xml` file.
71+
To use this, first create such an XML document (see [PhysiCellCellCreator.jl](https://github.com/drbergman-lab/PhysiCellCellCreator.jl) for details) and place this in place of the `cells.csv` file.
7272
You may make variations on this in the same way as for `config` and `rulesets_collection`.
7373

7474
### IC ecm
7575

76-
pcvct uses [PhysiCellECMCreator.jl](https://github.com/drbergman/PhysiCellECMCreator.jl) to allow for creation of `ecm.csv` files based on the structure defined in a `ecm.xml` file.
77-
To use this, first create such an XML document (see [PhysiCellECMCreator.jl](https://github.com/drbergman/PhysiCellECMCreator.jl) for details) and place this in place of the `ecm.csv` file.
76+
pcvct uses [PhysiCellECMCreator.jl](https://github.com/drbergman-lab/PhysiCellECMCreator.jl) to allow for creation of `ecm.csv` files based on the structure defined in a `ecm.xml` file.
77+
To use this, first create such an XML document (see [PhysiCellECMCreator.jl](https://github.com/drbergman-lab/PhysiCellECMCreator.jl) for details) and place this in place of the `ecm.csv` file.
7878
You may make variations on this in the same way as for `config` and `rulesets_collection`.

docs/src/man/project_configuration.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Project configuration
2+
3+
The `inputs.toml` file is used to configure the inputs for the project.
4+
It is located in the `inputs` directory within the project data directory.
5+
6+
## TOML-defined structure
7+
Each section of the `inputs.toml` file defines one of the input "locations" in the project.
8+
An example of the structure is as follows:
9+
10+
```toml
11+
[config]
12+
required = true
13+
varied = true
14+
basename = "PhysiCell_settings.xml"
15+
```
16+
17+
Upon initialization of the model manager, i.e., calling `initializeModelManager()`, the `inputs.toml` file is parsed and each entry (`config` is shown above) has four features stored:
18+
- `required`: A boolean indicating if the location is required for the model to run.
19+
- `basename`: The base name of the file to be used for the location.
20+
- `varied`: A boolean indicating if the location can vary between different model runs.
21+
- `path_from_inputs`: The path to the location relative to the `inputs` directory.
22+
23+
### `required`
24+
This field is necessary and must either be `true` or `false`.
25+
If `true`, an `InputsFolder` object cannot be created without this location.
26+
27+
### `basename`
28+
This field enforces the name of the file to be used for the location.
29+
A vector can be supplied of names in the order to look for the files in cases when multiple files are acceptable.
30+
This field is necessary if `varied` is `true`, but can be omitted if `varied` is `false`.
31+
32+
### `varied`
33+
This field is necessary and must either be `true`, `false`, or a vector of Booleans matching the length of the `basename` vector.
34+
If `true`, the location can be varied and the necessary databases and folders are created to support this.
35+
36+
### `path_from_inputs`
37+
This optional field sets the path to the location relative to the `inputs` directory.
38+
If not provided, the path is assumed to be `inputs/<dict_name>s`.
39+
For example, the `config` section above would be located at `inputs/configs` (note the pluralization of the section name).
40+
To provide this path, use a vector of strings, e.g., `["ics", "cells"]` to define the path to the `[ic_cell]` location as `inputs/ics/cells`.

docs/src/man/xml_path_helpers.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ rulePath(<cell_type>, <behavior>, "decreasing_signals", "signal:name:<signal_nam
3333
```
3434

3535
## Varying initial cell parameters
36-
pcvct supports an XML-based initialization of cell locations using [PhysiCellCellCreator.jl](https://github.com/drbergman/PhysiCellCellCreator.jl).
36+
pcvct supports an XML-based initialization of cell locations using [PhysiCellCellCreator.jl](https://github.com/drbergman-lab/PhysiCellCellCreator.jl).
3737
See the documentation of that package for details on how to create the XML file.
3838
Use [`pcvct.createICCellXMLTemplate`](@ref) to create a template XML file and automatically add it to the database.
3939
From there, you can edit it directly (though as per [Best practices](@ref) do not edit after simulations are created that rely on it).
@@ -45,15 +45,15 @@ The signature is as follows:
4545
icCellsPath(<cell_type>, <patch_type>, <patch_id>, <tag>)
4646
```
4747

48-
[PhysiCellCellCreator.jl](https://github.com/drbergman/PhysiCellCellCreator.jl) supports carveouts that can be used to not place cells within the given patches.
48+
[PhysiCellCellCreator.jl](https://github.com/drbergman-lab/PhysiCellCellCreator.jl) supports carveouts that can be used to not place cells within the given patches.
4949
These are contained in a child element of the patch element and their parameters can be varied using the following signature:
5050

5151
```julia
5252
icCellsPath(<cell_type>, <patch_type>, <patch_id>, <carveout_type>, <carveout_id>, <tag>)
5353
```
5454

5555
## Varying initial ECM parameters
56-
pcvct supports an XML-based initialization of ECMs using [PhysiCellECMCreator.jl](https://github.com/drbergman/PhysiCellECMCreator.jl).
56+
pcvct supports an XML-based initialization of ECMs using [PhysiCellECMCreator.jl](https://github.com/drbergman-lab/PhysiCellECMCreator.jl).
5757
See the documentation of that package for details on how to create the XML file.
5858
Use [`pcvct.createICECMXMLTemplate`](@ref) to create a template XML file and automatically add it to the database.
5959
From there, you can edit it directly (though as per [Best practices](@ref) do not edit after simulations are created that rely on it).

docs/src/misc/database_upgrades.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ Not every release will change the database structure, but when one does in a way
44
The warning will link to this page and the function will wait for user input to proceed.
55
Changes are listed in reverse chronological order.
66

7+
## to v0.0.29
8+
The `inputs.toml` file has been moved from `data/` to `data/inputs/`.
9+
710
## to v0.0.15
811
Introduce XML-based ECM initial conditions. This introduces `ic_ecm_variations`.
912
Also, introduce Dirichlet initial conditions from file, which introduces the `ic_dc_id` in the database.

src/classes.jl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,13 @@ Hold the information for a single input folder.
5757
Users should use the `InputFolders` to create and access individual `InputFolder` objects.
5858
5959
# Fields
60-
- `location::Symbol`: The location of the input folder, e.g. `:config`, `:custom_code`, etc. Options are defined in `data/inputs.toml`.
60+
- `location::Symbol`: The location of the input folder, e.g. `:config`, `:custom_code`, etc. Options are defined in `data/inputs/inputs.toml`.
6161
- `id::Int`: The ID of the input folder in the database.
6262
- `folder::String`: The name of the input folder. It will be in `data/inputs/<path_from_inputs>`.
6363
- `basename::Union{String,Missing}`: The basename of the input file. This can be used to determine if the input file is varied.
64-
- `required::Bool`: Whether the input folder is required. This is defined in `data/inputs.toml`.
64+
- `required::Bool`: Whether the input folder is required. This is defined in `data/inputs/inputs.toml`.
6565
- `varied::Bool`: Whether the input folder is varied. This is determined by the presence of a varied basename in the input folder.
66-
- `path_from_inputs::String`: The path from the `data/inputs` directory to the input folder. This is defined in `data/inputs.toml`.
66+
- `path_from_inputs::String`: The path from the `data/inputs` directory to the input folder. This is defined in `data/inputs/inputs.toml`.
6767
"""
6868
struct InputFolder
6969
location::Symbol
@@ -124,7 +124,7 @@ end
124124
Consolidate the folder information for a simulation/monad/sampling.
125125
126126
Pass the folder names within the `inputs/<path_from_inputs>` directory to create an `InputFolders` object.
127-
The `path_from_inputs` is defined in the `data/inputs.toml` file for each.
127+
The `path_from_inputs` is defined in the `data/inputs/inputs.toml` file for each.
128128
It is possible to acces the [`InputFolder`](@ref) values using index notation, e.g. `input_folders[:config]`.
129129
130130
Several constructors exist:
@@ -133,7 +133,7 @@ Several constructors exist:
133133
InputFolders(; config="default", custom_codes="default", rulesets_collection="default")
134134
```
135135
2. Pass in the required inputs as arguments and the optional inputs as keyword arguments. The required folders must be passed in alphabetical order.
136-
Refer to the names defined in `data/inputs.toml` to see this order. Omitted optional folders are assumed to be \"\", i.e. those inputs are unused.
136+
Refer to the names defined in `data/inputs/inputs.toml` to see this order. Omitted optional folders are assumed to be \"\", i.e. those inputs are unused.
137137
```julia
138138
config_folder = "default"
139139
custom_code_folder = "default"
@@ -142,7 +142,7 @@ InputFolders(config_folder, custom_code_folder; ic_cell=ic_cell_folder)
142142
```
143143
144144
# Fields
145-
- `input_folders::NamedTuple`: The input locations defined in `data/inputs.toml` define the keys. The values are [`InputFolder`](@ref)s.
145+
- `input_folders::NamedTuple`: The input locations defined in `data/inputs/inputs.toml` define the keys. The values are [`InputFolder`](@ref)s.
146146
"""
147147
struct InputFolders
148148
input_folders::NamedTuple
@@ -169,7 +169,7 @@ function InputFolders(args...; kwargs...) end
169169
"""
170170
createSimpleInputFolders()
171171
172-
Creates a simple method for creating `InputFolders` objects at module initialization based on `data/inputs.toml`.
172+
Creates a simple method for creating `InputFolders` objects at module initialization based on `data/inputs/inputs.toml`.
173173
174174
The required inputs are sorted alphabetically and used as the positional arguments.
175175
The optional inputs are used as keyword arguments with a default value of `\"\"`, indicating they are unused.

0 commit comments

Comments
 (0)