Skip to content

Commit

Permalink
final reorg
Browse files Browse the repository at this point in the history
  • Loading branch information
seabbs committed Jul 1, 2024
1 parent 0109c23 commit 30a26b6
Show file tree
Hide file tree
Showing 17 changed files with 76 additions and 39 deletions.
17 changes: 3 additions & 14 deletions EpiAware/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,8 @@
[![Test EpiAware](https://github.com/CDCgov/Rt-without-renewal/actions/workflows/test-EpiAware.yaml/badge.svg)](https://github.com/CDCgov/Rt-without-renewal/actions/workflows/test-EpiAware.yaml)
[![codecov](https://codecov.io/gh/CDCgov/Rt-without-renewal/graph/badge.svg?token=IX4GIA8F0H)](https://codecov.io/gh/CDCgov/Rt-without-renewal)

A `Julia` package for flexible and composable modeling and inference of the effective reproduction number (Rt) and other situational awareness signals in the presence of different latent generative processes and observation models.
*Infectious disease situational awareness modelling toolkit for Julia.*

## Installation instruction
**Websites**: [Organization Website](https://cdcgov.github.io/Rt-without-renewal/dev/) | [Documentation](https://cdcgov.github.io/Rt-without-renewal/dev/)

Eventually, `EpiAware` is likely to be added to the Julia registry. Until then, you can install it from the `/EpiAware` sub-directory of this repository by running the following command in the Julia REPL:

```julia
using Pkg; Pkg.add(url="https://github.com/CDCgov/Rt-without-renewal", subdir="EpiAware")
``
## Pluto scripts

We use [`Pluto.jl`](https://plutojl.org/) scripts as part of our documentation and testing. The scripts are located in `docs/src/examples` and can be run using the `Pluto.jl` package. We recommend using the version of `Pluto` that is pinned in the `Project.toml` file defining the documentation environment. An entry point to running or developing this documentation is the `docs/pluto-scripts.sh` bash shell script. Run this from the root directory of this repository.

## Opinionated guide to using Julia for project development

Some user and potential contributors may not be familiar with using Julia for, or part of, project development. In documentation we give our opinions on how to use Julia for project development focussing on Julia version control with the command line tool `juliaup`, typical patterns for using stacked environments and useful settings for development using the Julia extension of VS-Code as an interactive development environment (IDE) for Julia project. Please find the documentation [here](https://cdcgov.github.io/Rt-without-renewal/dev/man/getting-started-julia/).
EpiAware Organization Stats: ![EpiAware Stars](https://img.shields.io/github/stars/EpiAware?style=social)
31 changes: 22 additions & 9 deletions EpiAware/docs/pages.jl
Original file line number Diff line number Diff line change
@@ -1,26 +1,39 @@
pages = [
"EpiAware.jl: Real-time epidemic monitoring" => "index.md",
"Manual" => Any[
"Getting Started with using Julia in Projects" => "man/getting-started-julia.md",
"Examples" => [
"Getting started" => "examples/getting_started.md"
"Getting started" => Any[
"Installation" => "getting-started/installation.md",
"Quickstart" => "getting-started/quickstart.md",
"Tips and Tricks" => "getting-started/tips-and-tricks.md",
"Tutorials" => [
"Working with Julia" => "getting-started/tutorials/julia.md",
"Introduction to EpiAware" => "getting-started/tutorials/intro.md",
"Epidemic modelling" => "getting-started/tutorials/epidemic-modelling.md",
"Inference" => "getting-started/tutorials/inference.md",
"Latent models" => "getting-started/tutorials/latent-models.md",
"Observation models" => "getting-started/tutorials/observation-models.md"
]
],
"Showcase" => [
"Replication" => [
"On the derivation of the renewal equation from an age-dependent branching process: an epidemic modelling perspective" => "showcase/replication/mishra-2020/index.md"
]
],
"What is EpiAware?" => ["overview.md"],
"Modules" => [
"EpiAware" => "lib/EpiAwareBase/index.md",
"EpiAwareUtils" => "lib/EpiAwareUtils/index.md",
"EpiInference" => "lib/EpiInference/index.md",
"EpiInfModels" => "lib/EpiInfModels/index.md",
"EpiLatentModels" => "lib/EpiLatentModels/index.md",
"EpiObsModels" => "lib/EpiObsModels/index.md"
"EpiAware" => [
"Public API" => "lib/public.md",
"Internal API" => "lib/internals.md"
]
],
"Reference" => Any[
"Public API" => "lib/public.md",
"Internal API" => "lib/internals.md"],
"Developers" => [
"Contributing" => "man/contributing.md",
"Release checklist" => "checklist.md",
"Internals" => "lib/internals.md"
"Release checklist" => "checklist.md"
],
"release-notes.md"
]
7 changes: 7 additions & 0 deletions EpiAware/docs/src/man/getting-started/installation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Installation

Eventually, `EpiAware` is likely to be added to the Julia registry. Until then, you can install it from the `/EpiAware` sub-directory of this repository by running the following command in the Julia REPL:

```julia
using Pkg; Pkg.add(url="https://github.com/CDCgov/Rt-without-renewal", subdir="EpiAware")
```
3 changes: 3 additions & 0 deletions EpiAware/docs/src/man/getting-started/quickstart.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Quickstart

Get up and running with EpiAware in just a few minutes using this quickstart guide.
9 changes: 9 additions & 0 deletions EpiAware/docs/src/man/getting-started/tips-and-tricks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Tips and tricks

```@index
Pages = ["lib/getting-started/tips-and-tricks.md"]
```

## Pluto scripts

We use [`Pluto.jl`](https://plutojl.org/) scripts as part of our documentation and testing. The scripts are located in `docs/src/examples` and can be run using the `Pluto.jl` package. We recommend using the version of `Pluto` that is pinned in the `Project.toml` file defining the documentation environment. An entry point to running or developing this documentation is the `docs/pluto-scripts.sh` bash shell script. Run this from the root directory of this repository.
Empty file.
27 changes: 27 additions & 0 deletions EpiAware/docs/src/man/getting-started/tutorials/interfaces.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@

# Interfaces


We support two primary workflows for using the package:

- `EpiProblem`: A high-level interface for defining and fitting models to data. This is the recommended way to use the package.
- `Turing` interface: A lower-level interface for defining and fitting models to data. This is the more flexible way to use the package and may also be more familiar to users of `Turing.jl`.

See the getting started section for tutorials on each of these workflows.

## EpiProblem

Each module of the overall epidemiological model we are interested in is a `Turing` `Model` in its own right. In this section, we compose the individual models into the full epidemiological model using the `EpiProblem` struct.

The constructor for an `EpiProblem` requires:

- An `epi_model`.
- A `latent_model`.
- An `observation_model`.
- A `tspan`.

The `tspan` set the range of the time index for the models.

## Turing interface

The `Turing` interface is a lower-level interface for defining and fitting models to data. This is the more flexible way to use the package and may also be more familiar to users of `Turing.jl`.
Original file line number Diff line number Diff line change
@@ -1,16 +1,3 @@
# Getting Started: EpiProblem Interface

Each module of the overall epidemiological model we are interested in is a `Turing` `Model` in its own right. In this section, we compose the individual models into the full epidemiological model using the `EpiProblem` struct.

The constructor for an `EpiProblem` requires:

- An `epi_model`.
- A `latent_model`.
- An `observation_model`.
- A `tspan`.

The `tspan` set the range of the time index for the models.

The diagram below shows the relationship between the modules in the package for a typical workflow.

```mermaid
Expand Down Expand Up @@ -74,6 +61,6 @@ ObsModel-->E
E-->|sample...NUTS...| G
G-.->H
H-.->I
G-->H
H-->I
```
Empty file.
Empty file.
Empty file.
4 changes: 3 additions & 1 deletion EpiAware/docs/src/man/overview.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
[Overview of the EpiAware Software Ecosystem](@id overview)

`EpiAware` is not a standard toolkit for infectious disease modelling. Rather it seeks to be highly modular and composable for advanced users whilst still providing opinionated workflows for those who are new to the field. Developed by the authors behind other widely used infectious disease modelling packages such as `EpiNow2`, `epinowcast`, and `epidist`, alongside experts in infectious disease modelling in Julia,`EpiAware` is designed to go beyond the capabilities of these packages by providing a more flexible and extensible framework for modelling and inference of infectious disease dynamics.
_`EpiAware` is not a standard toolkit for infectious disease modelling._

It seeks to be highly modular and composable for advanced users whilst still providing opinionated workflows for those who are new to the field. Developed by the authors behind other widely used infectious disease modelling packages such as `EpiNow2`, `epinowcast`, and `epidist`, alongside experts in infectious disease modelling in Julia,`EpiAware` is designed to go beyond the capabilities of these packages by providing a more flexible and extensible framework for modelling and inference of infectious disease dynamics.

## Package Features

Expand Down

0 comments on commit 30a26b6

Please sign in to comment.