From dfed23bab08b7cae50e68ddc1389026e9dc79bb9 Mon Sep 17 00:00:00 2001 From: Sam Bessey Date: Tue, 1 Mar 2022 11:42:51 -0500 Subject: [PATCH 1/6] docs(web-app): add walkthrough --- docs/run_local.md | 2 +- docs/run_oscar.md | 1 - docs/{getting_started.md => user_guide.md} | 10 ++--- docs/walkthrough.md | 52 ++++++++++++++++++++++ mkdocs.yml | 8 ++-- 5 files changed, 62 insertions(+), 11 deletions(-) delete mode 100644 docs/run_oscar.md rename docs/{getting_started.md => user_guide.md} (91%) create mode 100644 docs/walkthrough.md diff --git a/docs/run_local.md b/docs/run_local.md index 4848cdf3..4c314d75 100644 --- a/docs/run_local.md +++ b/docs/run_local.md @@ -4,7 +4,7 @@ The model has a wrapper script called `run_titan.py` that makes running a full s ### run_titan.py -To run the model, execute the `run_titan.py` program within the `/titan/` directory. See [TITAN params](https://pph-collective.github.io/titan-params-app) for documentation on how to set and use parameters. +To run the model, execute the `run_titan.py` program within the `/titan/` directory. See [the walkthrough](walkthrough.md) for documentation on how to set and use parameters, as well as a step-by-step guide to running the model with your custom parameters. Results of the model are generated and aggregated into the `/results/` directory by default. If the model is re-run, the existing results will be overwritten. diff --git a/docs/run_oscar.md b/docs/run_oscar.md deleted file mode 100644 index dafe04f3..00000000 --- a/docs/run_oscar.md +++ /dev/null @@ -1 +0,0 @@ -See the [titan-oscar repository](https://github.com/pph-collective/titan-oscar) for instructions on installing and running TITAN on OSCAR. diff --git a/docs/getting_started.md b/docs/user_guide.md similarity index 91% rename from docs/getting_started.md rename to docs/user_guide.md index e920acb5..157b8303 100644 --- a/docs/getting_started.md +++ b/docs/user_guide.md @@ -1,15 +1,15 @@ -# Getting Started +# User Guide -To get started, install titan using a local python (version 3.6 or later) install or virtual env using `pip`. Once installed, the model can be run using the `run_titan` program and configured using param files. +## Installation + +To get started, install titan using a local python (version 3.6 or later) install or virtual env using `pip`. ``` pip install titan-model -run_titan -p my_params.yml -run_titan -h ``` !!! tip - Running a large job locally? Look into using [pypy](https://www.pypy.org/) instead of python for MOAR performance. This is what we use on OSCAR. Otherwise, all of the instructions hold, just using pypy and pypy's pip. + Running a large job locally? Look into using [pypy](https://www.pypy.org/) instead of python for MOAR performance. Otherwise, all of the instructions hold, just using pypy and pypy's pip. ## Development Setup diff --git a/docs/walkthrough.md b/docs/walkthrough.md new file mode 100644 index 00000000..27b66760 --- /dev/null +++ b/docs/walkthrough.md @@ -0,0 +1,52 @@ +# Walkthrough +For documentation on `run_titan.py`, as well as information for running the model interactively, see the [user guide](user_guide.md). + +## Parameter setup +TITAN uses the [`paraml`](https://pypi.org/project/paraml/) package for parameter management using YAML. In TITAN, parameters are sub-divided, with each parameter set referring to a main model parameter type (e.g. classes or agent demographics), a model feature (e.g. syringe services), or an exposure (e.g. hiv). Parameters may be set up in one YAML file or a folder of YAML files. + +This guide will walk through creating a params file to augment the existing Atlanta setting, creating a small population to practice running. In order to best follow the next steps of the guide, users are encouraged to set this up as a single parameter file entitled `my_params.yml` in your working directory. + +### Model parameters +To start, we want to edit the parameter file to run a smaller model over less time so that it will run quickly locally. To do this, we will update population size and number of timesteps. In addition, we can set the random seed to provide reproducibility. To achieve this, add the following to your `my_params.yml` file (without comments): +``` +model: + seed: # random seed + ppl: 1234 # set random seed for population initiation + run: 1234 # set random seed for the run + num_pop: 100 # create small population + time: + num_steps: 12 # number of steps in model run + burn_steps: 0 # number of "burn-in" steps (negative time) +``` + +### Demographic parameters +Your parameter file can also be used to update demographic information and distributions for agents in the model. Here, we will change the percentage of agents of each race (white and Black) in the model. Add the following to `my_params.yml` (or play around with the numbers yourself! Just make sure they add up to 1): +``` +demographics: + black: + ppl: 0.5 + white: + ppl: 0.5 +``` + +### Adding a random trial +Features can also be added to the model via params. To turn on the random trial feature, first we need to activate it: +``` +features: + random_trial: true +``` +We can then change the parameters for the trial. Let's make it select agents randomly: +``` +random_trial: + choice: all +``` + +### Other parameters +Full reference for all parameters in TITAN can be found in our [parameter web app](https://pph-collective.github.io/titan-params-app). + +## Running your params file +To run your new params file, you can simply use the command: +``` +run_titan -p my_params.yml -S atlanta +``` +This will save the results of your model in a newly-made `results` directory, or overwrite previous results in an existing `results` directory. diff --git a/mkdocs.yml b/mkdocs.yml index aff5e194..51d254c7 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -28,10 +28,10 @@ markdown_extensions: nav: - Overview: index.md - - Getting Started: - - Installation: getting_started.md - - Running locally: run_local.md - - Running on Oscar: run_oscar.md + - User Guide: + - Installation: user_guide.md + - Running: run_local.md + - Walkthrough: walkthrough.md - Contributing: contributing.md - API Reference: - Agent: api/agent.md From 05604950f7108315b2d88fbf85803ded3408d7dd Mon Sep 17 00:00:00 2001 From: Sam Bessey Date: Tue, 1 Mar 2022 12:20:22 -0500 Subject: [PATCH 2/6] docs(web-app): add parameter sweep walkthrough --- docs/walkthrough.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/walkthrough.md b/docs/walkthrough.md index 27b66760..6c2ac187 100644 --- a/docs/walkthrough.md +++ b/docs/walkthrough.md @@ -50,3 +50,10 @@ To run your new params file, you can simply use the command: run_titan -p my_params.yml -S atlanta ``` This will save the results of your model in a newly-made `results` directory, or overwrite previous results in an existing `results` directory. + +## Sweeping parameters +TITAN can also sweep over a set of parameters defined by a CSV file. To use this feature, create a CSV with columns named as `.`-separated parameters. For example, you might change the probability of componenets being treated in the random trial module by using the column name `random_trial.prob` in a `sweep_val.csv` file and populating rows with random numbers between 0 and 1. To run this sweep over the first 10 rows of your CSV, you would use the command: +``` +run_titan -p my_params.yml -S atlanta -W sweep_file.csv -R 1:10 +``` +Your results directory now contains a report with outputs using all 10 values, as well as a file linking each run's id with its value for the probability. \ No newline at end of file From 0ba3530e473cd3fb36b1830ba6f207706778a283 Mon Sep 17 00:00:00 2001 From: Sam Bessey Date: Tue, 1 Mar 2022 12:21:40 -0500 Subject: [PATCH 3/6] docs(web-app): change python references to poetry We use poetry for package management, so running with `python` won't necessarily work due to missing or incorrect packages --- docs/run_local.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/run_local.md b/docs/run_local.md index 4c314d75..d3d862cf 100644 --- a/docs/run_local.md +++ b/docs/run_local.md @@ -2,15 +2,15 @@ The model has a wrapper script called `run_titan.py` that makes running a full simulation easy. TITAN can also be run from an interactive repl or a custom script. -### run_titan.py +### run_titan -To run the model, execute the `run_titan.py` program within the `/titan/` directory. See [the walkthrough](walkthrough.md) for documentation on how to set and use parameters, as well as a step-by-step guide to running the model with your custom parameters. +To run the model after pip install, use the command `run_titan` from the command line. See [the walkthrough](walkthrough.md) for documentation on how to set and use parameters, as well as a step-by-step guide to running the model with your custom parameters. Results of the model are generated and aggregated into the `/results/` directory by default. If the model is re-run, the existing results will be overwritten. #### Usage -Below are the results of `python run_titan.py --help`. It highlights all of the command line arguments that can be passed to the script. +Below are the results of `run_titan --help`. It highlights all of the command line arguments that can be passed to the script. ``` usage: run_titan.py [-h] [-n [NMC]] [-S SETTING] -p PARAMS [-o OUTDIR] @@ -56,7 +56,7 @@ optional arguments: ### Running Interactively -The model can also be run interactively in the repl. Start a `python` session from the root directory of `TITAN`, and follow along! +The model can also be run interactively in the repl when the model has been cloned from the GitHub repository. Please see the developer installation instructions in [installation](user_guide.md) for information on installing dependencies with poetry Start a `python` session in poetry from the root directory of `TITAN` via `poetry run python`, and follow along! We'll use the sample params file `tests/params/basic.yml` in all of these examples, but feel free to use a different one. @@ -123,4 +123,4 @@ model3.run(outdir) To make sure everything is working, run the tests. A few of the tests (marked `integration_stochastic`) sometimes fail as they are testing for general behavior and not specific correctness, but all other tests should always pass. -`python -m pytest` +`poetry run pytest` From a0b6de623aea610fe2a0a132e8f18c979abcf5e5 Mon Sep 17 00:00:00 2001 From: Sam Bessey Date: Fri, 4 Mar 2022 10:27:04 -0500 Subject: [PATCH 4/6] link out to poetry --- docs/run_local.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/run_local.md b/docs/run_local.md index d3d862cf..500f0c5b 100644 --- a/docs/run_local.md +++ b/docs/run_local.md @@ -56,7 +56,7 @@ optional arguments: ### Running Interactively -The model can also be run interactively in the repl when the model has been cloned from the GitHub repository. Please see the developer installation instructions in [installation](user_guide.md) for information on installing dependencies with poetry Start a `python` session in poetry from the root directory of `TITAN` via `poetry run python`, and follow along! +The model can also be run interactively in the repl. Please see the developer installation instructions in [installation](user_guide.md) for information on installing dependencies with poetry Start a `python` session in [poetry](https://python-poetry.org/) from the root directory of `TITAN` via `poetry run python`, and follow along! We'll use the sample params file `tests/params/basic.yml` in all of these examples, but feel free to use a different one. From 78a155994830571ad2eb5f29d9604e40277eca9f Mon Sep 17 00:00:00 2001 From: Sam Bessey Date: Thu, 10 Mar 2022 15:12:24 -0500 Subject: [PATCH 5/6] docs(user-guide): silo contributing guide; include command-line param sweeps; link params app more --- docs/contributing.md | 46 ++++++++++++++--- docs/{run_local.md => running.md} | 13 ++++- docs/user_guide.md | 82 ------------------------------- docs/walkthrough.md | 24 ++++++--- mkdocs.yml | 3 +- 5 files changed, 69 insertions(+), 99 deletions(-) rename docs/{run_local.md => running.md} (88%) delete mode 100644 docs/user_guide.md diff --git a/docs/contributing.md b/docs/contributing.md index 26ab38a7..927d2b60 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -1,5 +1,38 @@ We welcome issues and pull requests to help improve the TITAN model. We use the following guidelines to ensure standards are met. +## Development Setup + +Planning to help work on the titan codebase? Here are the tools and processes you need to know about: + +### Git/Github + +We use [git](https://git-scm.com/) for version control and GitHub for our remote repository. To get started, clone the repository to your local machine. + +``` +git clone https://github.com/pph-collective/TITAN.git +``` + +We use angular commits to standardize our commits and encourage better messages. [Commitizen](https://pypi.org/project/commitizen/) makes this easy. Once installed (would recommend doing this globally as opposed to just for this project), run `cz commit` instead of `git commit`. + +### Poetry + +[Poetry](https://python-poetry.org/) is a python packaging and dependency management tool. We use this to install/add/remove dependencies, build our package, and publish it to pypy. Install poetry per [the install instructions](https://python-poetry.org/docs/#installation), then complete the below steps. + +``` +poetry install -E linting -E docs +``` + +The `-E` flags tell poetry that we want the optional dependencies that we use for linting (mypy, black, flake8) and for building documentation. + +We recommend using a recent python version for development (check out [pyenv](https://github.com/pyenv/pyenv) for a way to manage different python versions). You may need to tell poetry which installation of python to use - see [their instructions](https://python-poetry.org/docs/managing-environments/). + +Poetry installs all of the dependencies into a virtual environment so that they are isolated from other projects you are working on. To run any shell commands in the environment, prefix them with `poetry run` (e.g. `poetry run run_titan -p my_params.yml` or `poetry run pytest`) or start a poetry shell with `poetry shell`. + +### pypy + +pypy is a JIT compiled version of python which generally makes code faster. It is important that titan remain installable/usable with pypy and we test for this with GitHub actions. However, pypy doesn't play well with some of our linting tools, so we don't typically use it for development. + + ## GitHub Workflow When working on TITAN, make a branch from `develop` to make changes in, then make a pull request to `develop` when ready for review. @@ -26,16 +59,13 @@ Then use `cz commit` where you would have previously done `git commit`. We strive to have test coverage for all of the features of TITAN. When adding a new feature or fixing a bug, add tests for the new feature or that test the bug condition to make sure that the bug doesn't crop up agin. -`pytest` is the library used for testing. - -To run all of the tests: -``` -python -m pytest -``` +[Pytest](https://docs.pytest.org/en/stable/) is our test runner. It runs all of our unit and integration tests and reports back any errors or failures. These should almost always pass (the almost refers to our stochastic integration tests which have some element of randomness in their success). -To run only the unit tests: ``` -python -m pytest -m unit +poetry run pytest # runs all tests +poetry run pytest -m unit # only unit tests +poetry run pytest -m integration_deterministic # only deterministic integration tests +poetry run pytest -m integration_stochastic # only stochastic integration tests ``` ### Code Style diff --git a/docs/run_local.md b/docs/running.md similarity index 88% rename from docs/run_local.md rename to docs/running.md index 500f0c5b..914f621c 100644 --- a/docs/run_local.md +++ b/docs/running.md @@ -1,3 +1,14 @@ +## Installation + +To get started, install titan using a local python (version 3.6 or later) install or virtual env using `pip`. + +``` +pip install titan-model +``` + +!!! tip + Running a large job locally? Look into using [pypy](https://www.pypy.org/) instead of python for MOAR performance. Otherwise, all of the instructions hold, just using pypy and pypy's pip. + ## Running the Model The model has a wrapper script called `run_titan.py` that makes running a full simulation easy. TITAN can also be run from an interactive repl or a custom script. @@ -56,7 +67,7 @@ optional arguments: ### Running Interactively -The model can also be run interactively in the repl. Please see the developer installation instructions in [installation](user_guide.md) for information on installing dependencies with poetry Start a `python` session in [poetry](https://python-poetry.org/) from the root directory of `TITAN` via `poetry run python`, and follow along! +The model can also be run interactively in the repl. Please see the developer installation instructions in [installation](contributing.md) for information on installing dependencies with poetry. Start a `python` session in [poetry](https://python-poetry.org/) from the root directory of `TITAN` via `poetry run python`, and follow along! We'll use the sample params file `tests/params/basic.yml` in all of these examples, but feel free to use a different one. diff --git a/docs/user_guide.md b/docs/user_guide.md deleted file mode 100644 index 157b8303..00000000 --- a/docs/user_guide.md +++ /dev/null @@ -1,82 +0,0 @@ -# User Guide - -## Installation - -To get started, install titan using a local python (version 3.6 or later) install or virtual env using `pip`. - -``` -pip install titan-model -``` - -!!! tip - Running a large job locally? Look into using [pypy](https://www.pypy.org/) instead of python for MOAR performance. Otherwise, all of the instructions hold, just using pypy and pypy's pip. - -## Development Setup - -Planning to help work on the titan codebase? Here are the tools and processes you need to know about: - -### Git/Github - -We use [git](https://git-scm.com/) for version control and GitHub for our remote repository. To get started, clone the repository to your local machine. - -``` -git clone https://github.com/pph-collective/TITAN.git -``` - -We use angular commits to standardize our commits and encourage better messages. [Commitizen](https://pypi.org/project/commitizen/) makes this easy. Once installed (would recommend doing this globally as opposed to just for this project), run `cz commit` instead of `git commit`. - -### Poetry - -[Poetry](https://python-poetry.org/) is a python packaging and dependency management tool. We use this to install/add/remove dependencies, build our package, and publish it to pypy. Install poetry per [the install instructions](https://python-poetry.org/docs/#installation), then complete the below steps. - -``` -poetry install -E linting -E docs -``` - -The `-E` flags tell poetry that we want the optional dependencies that we use for linting (mypy, black, flake8) and for building documentation. - -We recommend using a recent python version for development (check out [pyenv](https://github.com/pyenv/pyenv) for a way to manage different python versions). You may need to tell poetry which installation of python to use - see [their instructions](https://python-poetry.org/docs/managing-environments/). - -Poetry installs all of the dependencies into a virtual environment so that they are isolated from other projects you are working on. To run any shell commands in the environment, prefix them with `poetry run` (e.g. `poetry run run_titan -p my_params.yml` or `poetry run pytest`) or start a poetry shell with `poetry shell`. - -### black - -[Black](https://github.com/psf/black) formats our files nicely. Our files must be formatted nicely to be merged back into the titan repo. - -``` -poetry run black . -``` - -### flake8 - -[Flake8](https://flake8.pycqa.org/en/latest/) checks for common linting mistake (e.g. unused imports or variables). We have some checks that are required to be fixed and some that are optional. - -``` -# stop the build if there are Python syntax errors or undefined names -poetry run flake8 titan --count --select=E9,F63,F7,F82 --show-source --statistics -# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide -poetry run flake8 titan --count --exit-zero --max-complexity=12 --max-line-length=88 --statistics -``` - -### mypy - -[Mypy](https://mypy.readthedocs.io/en/stable/) is a static type checker. It will check the [typing](https://docs.python.org/3/library/typing.html) annotations and our code to make sure everything makes sense (e.g. we don't pass a string to a function that requires a number). - -``` -poetry run mypy titan -``` - -### pytest - -[Pytest](https://docs.pytest.org/en/stable/) is our test runner. It runs all of our unit and integration tests and reports back any errors or failures. These should almost always pass (the almost refers to our stochastic integration tests which have some element of randomness in their success). - -``` -poetry run pytest # runs all tests -poetry run pytest -m unit # only unit tests -poetry run pytest -m integration_deterministic # only deterministic integration tests -poetry run pytest -m integration_stochastic # only stochastic integration tests -``` - -### pypy - -pypy is a JIT compiled version of python which generally makes code faster. It is important that titan remain installable/usable with pypy and we test for this with GitHub actions. However, pypy doesn't play well with some of our linting tools, so we don't typically use it for development. diff --git a/docs/walkthrough.md b/docs/walkthrough.md index 6c2ac187..32c9d303 100644 --- a/docs/walkthrough.md +++ b/docs/walkthrough.md @@ -1,13 +1,13 @@ # Walkthrough -For documentation on `run_titan.py`, as well as information for running the model interactively, see the [user guide](user_guide.md). +For documentation on `run_titan.py`, as well as information for running the model interactively, see the [Running TITAN](running.md). ## Parameter setup -TITAN uses the [`paraml`](https://pypi.org/project/paraml/) package for parameter management using YAML. In TITAN, parameters are sub-divided, with each parameter set referring to a main model parameter type (e.g. classes or agent demographics), a model feature (e.g. syringe services), or an exposure (e.g. hiv). Parameters may be set up in one YAML file or a folder of YAML files. +TITAN uses the [`paraml`](https://pypi.org/project/paraml/) package for parameter management using YAML. In TITAN, parameters are sub-divided, with each parameter set referring to a main model parameter type (e.g. [classes](https://pph-collective.github.io/titan-params-app/#/params#classes-1) or agent [demographics](https://pph-collective.github.io/titan-params-app/#/params#demographics-1)), a model feature (e.g. [syringe services](https://pph-collective.github.io/titan-params-app/#/params#syringe_services-1)), or an exposure (e.g. [hiv](https://pph-collective.github.io/titan-params-app/#/params#hiv-1)). Parameters may be set up in one YAML file or a folder of YAML files. This guide will walk through creating a params file to augment the existing Atlanta setting, creating a small population to practice running. In order to best follow the next steps of the guide, users are encouraged to set this up as a single parameter file entitled `my_params.yml` in your working directory. ### Model parameters -To start, we want to edit the parameter file to run a smaller model over less time so that it will run quickly locally. To do this, we will update population size and number of timesteps. In addition, we can set the random seed to provide reproducibility. To achieve this, add the following to your `my_params.yml` file (without comments): +To start, we want to edit the parameter file to run a smaller model over less time so that it will run quickly locally. To do this, we will update [model parameters](https://pph-collective.github.io/titan-params-app/#/params#model-1) to change population size and number of timesteps. In addition, we can set the random seed to provide reproducibility. To achieve this, add the following to your `my_params.yml` file (without comments): ``` model: seed: # random seed @@ -20,7 +20,7 @@ model: ``` ### Demographic parameters -Your parameter file can also be used to update demographic information and distributions for agents in the model. Here, we will change the percentage of agents of each race (white and Black) in the model. Add the following to `my_params.yml` (or play around with the numbers yourself! Just make sure they add up to 1): +Your parameter file can also be used to update [demographic](https://pph-collective.github.io/titan-params-app/#/params#demographics-1) information and distributions for agents in the model. Here, we will change the percentage of agents of each race (`white` and `black`) in the model. Add the following to `my_params.yml` (or play around with the numbers yourself! Just make sure they add up to 1): ``` demographics: black: @@ -52,8 +52,20 @@ run_titan -p my_params.yml -S atlanta This will save the results of your model in a newly-made `results` directory, or overwrite previous results in an existing `results` directory. ## Sweeping parameters -TITAN can also sweep over a set of parameters defined by a CSV file. To use this feature, create a CSV with columns named as `.`-separated parameters. For example, you might change the probability of componenets being treated in the random trial module by using the column name `random_trial.prob` in a `sweep_val.csv` file and populating rows with random numbers between 0 and 1. To run this sweep over the first 10 rows of your CSV, you would use the command: +TITAN can also sweep over a set of parameters, either stepwise from the command +line or from a CSV defining a set of parameters. For either method, use +`.`-separated parameters. For example, you might change the probability of +components being treated in the random trial module using [random_trial.prob](https://pph-collective.github.io/titan-params-app/#/params#random_trial-1). + +To run this from the command line, use `param:start:stop:step`. For example, to +vary the random trial probability from 0.5 to 1 with steps of size 0.1, you can +run: +``` +run_titan -p my_params.yml -S atlanta -w random_trial.prob:0.5:1.0:0.1 +``` + +To sweep from values with a file, create a CSV with columns named as the `.`-separated parameters. For example, you might change the probability of componenets being treated in the random trial module by using the column name `random_trial.prob` in a `sweep_val.csv` file and populating rows with random numbers between 0 and 1. To run this sweep over the first 10 rows of your CSV, you would use the command: ``` run_titan -p my_params.yml -S atlanta -W sweep_file.csv -R 1:10 ``` -Your results directory now contains a report with outputs using all 10 values, as well as a file linking each run's id with its value for the probability. \ No newline at end of file +In either of the above examples, your results directory now contains a report with outputs using all 10 values, as well as a file linking each run's id with its value for the probability. \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 51d254c7..b7d27309 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -29,8 +29,7 @@ markdown_extensions: nav: - Overview: index.md - User Guide: - - Installation: user_guide.md - - Running: run_local.md + - Running TITAN: running.md - Walkthrough: walkthrough.md - Contributing: contributing.md - API Reference: From cfd0cead85488f32c8af6fa62cd185f64ea41b62 Mon Sep 17 00:00:00 2001 From: Sam Bessey Date: Wed, 10 Aug 2022 10:41:39 -0400 Subject: [PATCH 6/6] add overview to docs --- docs/api/overview.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 docs/api/overview.md diff --git a/docs/api/overview.md b/docs/api/overview.md new file mode 100644 index 00000000..4c73c9d6 --- /dev/null +++ b/docs/api/overview.md @@ -0,0 +1,8 @@ +## Overview + +`titan-model` includes a number of "internal" and "external" classes and functions. +Typically, users will interact through the `run_titan.py` script, though some utility +may be found through using the more internal functions, such as creating a population +with the `Population` class or a model with the `TITAN` class. This API +information is intended as reference for users to understand how the model works +under the hood.