# Software

To assist users in building a hub, we have developed a software suite with specific functions and uses outlined below. These tools are designed to support common modeling hub tasks, like loading model output data, plotting the model output data, building ensembles using the data, and, in some cases, evaluating the predictions made by different models.

## hubverse

`hubverse` is a collection of packages that enables collaborative modeling exercises through a unified framework for aggregating, visualizing, and evaluating forecasts. **Installing `hubverse` also installs all the other packages listed below**. It is designed to make it easy to install and load multiple `hubverse` packages in a single step.

- repository: <https://github.com/hubverse-org/hubverse#readme>
- [`hubverse` package documentation](https://hubverse-org.github.io/hubverse).
- [`hubverse` package documentation (development)](https://hubverse-org.github.io/hubverse/dev/).

## hubAdmin

`hubAdmin` is an R package that provides utility functions for administering hubs, specifically for creating and validating hub configuration files.

- repository: <https://github.com/hubverse-org/hubAdmin#readme>
- [`hubAdmin` package documentation](https://hubverse-org.github.io/hubAdmin).
- [`hubAdmin` package documentation (development)](https://hubverse-org.github.io/hubAdmin/dev/).

## hubCI

`hubCI` is an R package that provides functionality for setting up hubverse continuous integration workflows.

- repository: <https://github.com/hubverse-org/hubCI#readme>
- [`hubCI` package documentation](https://hubverse-org.github.io/hubCI).
- [`hubCI` package documentation (development)](https://hubverse-org.github.io/hubCI/dev/).

## hubData

`hubData` is an R package that provides tools for connecting to, interacting with, and manipulating hub data.

- repository: <https://github.com/hubverse-org/hubData#readme>
- [`hubData` package documentation](https://hubverse-org.github.io/hubData).
- [`hubData` package documentation (development)](https://hubverse-org.github.io/hubData/dev/).

## hubEnsembles

`hubEnsembles` is an R package that provides functionality for creating ensembles from model output data. Supported ensemble methods include weighted averages, quantile averages, and linear pools.

- repository: <https://github.com/hubverse-org/hubEnsembles#readme>
- [`hubEnsembles` package documentation](https://hubverse-org.github.io/hubEnsembles).
- [`hubEnsembles` package documentation (development)](https://hubverse-org.github.io/hubEnsembles/dev/).

## hubEvals

`hubEvals` is an R package that provides tools for evaluating infectious disease model outputs.

- repository: <https://github.com/hubverse-org/hubEvals#readme>
- [`hubEvals` package documentation](https://hubverse-org.github.io/hubEvals).
- [`hubEvals` package documentation (development)](https://hubverse-org.github.io/hubEvals/dev/).

## hubExamples

`hubExamples` is an R package that provides example data for forecasting and scenario modeling hubs in the hubverse format.

- repository: <https://github.com/hubverse-org/hubExamples#readme>
- [`hubExamples` package documentation](https://hubverse-org.github.io/hubExamples).
- [`hubExamples` package documentation (development)](https://hubverse-org.github.io/hubExamples/dev/).

## hubUtils

`hubUtils` is a lightweight R package containing general utilities imported by other hubverse packages. Previously, `hubUtils` was a larger package with more functions, but most were moved and split across `hubData` and `hubAdmin`.

- repository: <https://github.com/hubverse-org/hubUtils#readme>
- [`hubUtils` package documentation](https://hubverse-org.github.io/hubUtils).
- [`hubUtils` package documentation (development)](https://hubverse-org.github.io/hubUtils/dev/).

## hubValidations

`hubValidations` is an R package that facilitates the implementation of general validation rules enforced on submissions in the form of pull requests to hub repositories.

- repository: <https://github.com/hubverse-org/hubValidations#readme>
- [`hubValidations` package documentation](https://hubverse-org.github.io/hubValidations).
- [`hubValidations` package documentation (development)](https://hubverse-org.github.io/hubValidations/dev/).

## hubVis

`hubVis` is an R package that provides plotting methods for hub model outputs to synthesize and visualize model submissions.

- repository: <https://github.com/hubverse-org/hubVis#readme>
- [`hubVis` package documentation](https://hubverse-org.github.io/hubVis).
- [`hubVis` package documentation (development)](https://hubverse-org.github.io/hubVis/dev/).

