@@ -15,6 +15,27 @@ To develop a general-purpose, modular simulation framework for patch-based metap
1515
1616---
1717
18+ ## Unique Selling Point (USP)
19+
20+ PatchSim combines metapopulation network dynamics with a lightweight, configuration-first workflow:
21+
22+ - Network-aware compartment transitions across connected patches
23+ - Arrow-map transition syntax in YAML for explicit model specification
24+ - Fast iteration loop from config edits to reproducible outputs
25+
26+ ---
27+
28+ ## Unique Value Proposition (UVP)
29+
30+ Compared to many epidemiology tools that are either code-heavy or tightly bound to a specific disease model, PatchSim offers:
31+
32+ - ** Model flexibility** : define SIR/SIRS-style variants through config transitions
33+ - ** Research-friendly reproducibility** : deterministic inputs, logged runs, and versioned config files
34+ - ** Dual interface** : SDK import for programmatic workflows and CLI for operational runs
35+ - ** Extensibility path** : built-in structure for adding custom models and project templates
36+
37+ ---
38+
1839## Core Features
1940
2041PatchSim aims to support a range of modelling features commonly used in metapopulation disease simulations:
@@ -40,7 +61,13 @@ PatchSim aims to support a range of modelling features commonly used in metapopu
4061
4162## Installation
4263
43- To install PatchSim using [ uv] ( https://github.com/astral-sh/uv ) :
64+ Install from PyPI:
65+
66+ ``` bash
67+ pip install patchsim
68+ ```
69+
70+ Install from source using [ uv] ( https://github.com/astral-sh/uv ) :
4471
4572``` bash
4673# Clone the repository
@@ -62,17 +89,36 @@ uv pip install -e .[dev]
6289
6390### Command Line Interface
6491
65- PatchSim provides a command-line interface for running simulations :
92+ PatchSim provides a subcommand-based CLI. Always run using ` uv run ` to ensure correct dependency resolution :
6693
6794``` bash
6895# Show help and available options
69- patchsim --help
96+ uv run patchsim --help
97+
98+ # Show package version
99+ uv run patchsim --version
100+
101+ # Initialize a new self-contained project
102+ uv run patchsim init my-project
103+
104+ # Validate config without running
105+ uv run patchsim validate -c my-project/config.yaml
106+
107+ # Run simulation
108+ uv run patchsim run -c my-project/config.yaml
109+
110+ # List built-in models
111+ uv run patchsim list-models
112+ ```
113+
114+ ### Python SDK
70115
71- # Run simulation with sample SIR model
72- patchsim --config configs/sample-sir-ode.yaml
116+ ``` python
117+ import patchsim
73118
74- # Run simulation with custom model
75- patchsim --config path/to/your/config.yaml
119+ config = patchsim.load_config(" config.yaml" )
120+ net, y0, patches, n = patchsim.setup_simulation(config)
121+ patchsim.run_simulation(config, " my-model" , net, y0, patches, n)
76122```
77123
78124The simulation outputs are saved in the following structure:
0 commit comments