Skip to content
nasaPublic

About

No description, website, or topics provided.

Resources

Contributing

Stars

2 stars

Watchers

2 watching

Forks

Repository files navigation

AMMPER v2

AMMPER logo

Python 3.9 | 3.10 | 3.11 Version 2.0 License: NASA Open Source Agreement 1.3 Platforms: macOS, Windows, Linux

AMMPER (Agent-based Model for Microbial Populations Exposed to Radiation) simulates how ionizing radiation affects a growing population of yeast (Saccharomyces cerevisiae). Every cell is an individual agent on a 3D lattice that moves, divides, takes direct radiation damage and damage from reactive oxygen species (ROS), and repairs DNA. It models the two strains flown on NASA's BioSentinel mission (wild type and the radiation-sensitive rad51Δ mutant) under 150 MeV proton, gamma, NSRL GCRSim, and deep-space radiation, and you can drive it from a command line or a desktop GUI.

Note

AMMPER is research software. It's meant for studying radiation biology and for teaching. Don't use it for clinical or operational radiation-risk decisions.

A simulated rad51 yeast colony growing over 15 generations after 10 Gy of 150 MeV protons
A rad51Δ colony growing over 15 generations after 10 Gy of 150 MeV protons
Blue circles: healthy cells · orange stars: dead · green: radiation energy deposits.

Table of Contents

Quick start

Important

AMMPER needs Python 3.9, 3.10, or 3.11 (python.org/downloads). Check with python3 --version (macOS/Linux) or py --version (Windows). On Windows with several versions installed, use py -3.11 in place of python3 below, e.g. py -3.11 -m venv venv.

From a clone of this repository:

python3 -m venv venv
source venv/bin/activate          # Windows: venv\Scripts\activate
pip install --upgrade pip setuptools wheel
pip install -e .
Command What it does
ammper setup Checks that dependencies and data are in place, and warns if your machine lacks the memory for the heavier Complex ROS runs
ammper quickstart Runs a short tutorial simulation (a few seconds), no questions asked
ammper run Runs a full simulation, asking you for radiation type, dose, cell type, and ROS model
ammper gui Opens the desktop GUI
ammper data status Shows which RITRACKS radiation-track folders are on this machine
ammper data verify Re-checks those folders against the dataset manifest
ammper data pull Downloads RITRACKS folders from Zenodo: everything, or just what a run needs (gcrsim, deep-space)
ammper With no arguments, opens a guided menu that picks one of the above
ammper --help Everything above, plus options

Start with ammper setup, then ammper quickstart. The tutorial saves its output to results/bulk_aB/quickstart/ and prints the exact path when it finishes.

Tip

You can launch ammper run and ammper gui from any folder. In a clone, results go to results/ inside the repository (interactive runs: results/single_runs/); in a normal install they go to ~/ammper/results/. Set AMMPER_HOME to put them (and downloaded radiation data) somewhere else.

RITRACKS radiation data

A normal git clone already contains everything the four radiation types need, so every preset in the CLI and the GUI works offline, with no flags and no downloads.

The full RITRACKS dataset has 49 proton-energy folders and is published on Zenodo (doi:10.5281/zenodo.22992521); ammper data pull downloads any missing data.

Screenshots

Desktop GUI

AMMPER GUI main menu
Main menu

AMMPER GUI simulation setup: radiation type, dose, cell type, ROS model
Simulation setup

AMMPER GUI simulation progress screen
Simulation running

AMMPER GUI results: 3D plots of the colony at generations 1, 5, 9, 12 and 15
Results: the colony at generations 1, 5, 9, 12 and 15

Command line

Terminal output of ammper quickstart
ammper quickstart: a tutorial run, no prompts

Terminal output of an interactive ammper run session
ammper run: an interactive simulation

Running scripts directly

The ammper command is all you need for single simulations. For batches of runs, or to rebuild figures, you can call the scripts directly. They find their own paths, so they work from any folder.

# One simulation: radType cellType ROSType dose outputFolder
#   radType   a = 150 MeV Proton   b = GCRSim   c = Deep Space   d = Gamma
#   cellType  a = wild type        b = rad51
#   ROSType   a = Basic   b = Complex (warns if your machine is short of memory)
#   dose      Proton: 0, 2.5, 5, 10, 20, 30 · others: any placeholder
python3 -m ammper.AMMPERBulk_aB a a a 2.5 WT_Basic_25

Output goes to results/bulk_aB/<outputFolder>/. Use the single-letter codes; spelled-out names like "150 MeV Proton" won't work.

Figures:

python3 analysis/growth_curves/stack_growth_curves.py   # main text Figure 1
python3 analysis/aB/ab_final_plots_panel.py             # main text Figure 2 (panels)
python3 analysis/aB/stack_ab_figures.py                 # main text Figure 2 (stack)

In your own scripts, resolve paths through ammper_paths instead of hardcoding them:

import ammper_paths as P
df = pd.read_csv(P.ab_experimental("AlamarblueRawdataWTKGy.csv"))
sim = P.bulk_aB("WT_Basic_0")
out = P.figures("my_panel.png")    # creates figures/ if needed

(Code inside src/ammper/ uses from ammper import paths as P; see CONTRIBUTING.md.)

Project layout

src/ammper/            the simulation (installed as the `ammper` package)
  cli.py                 the `ammper` command
  AMMPERCLI.py           interactive simulation (`ammper run`)
  AMMPERBulk_aB.py       non-interactive runner (quickstart, scripts, batches)
  cellDefinition.py      the Cell agent: movement, division, damage, repair
  genTraverse_*.py       radiation tracks (ground-test and deep-space)
  genROSOld.py           ROS model (Basic)
  GammaRadGen.py         gamma radiation events
  cellPlot*.py           per-generation 3D plots
  paths.py               path resolution
  gui/                   desktop GUI (PyQt5) with its fonts and images (`ammper gui`)
  data/                  read-only data that ships with the package: fluence tables, apoptosis data,
                         the Zenodo MANIFEST.json and the 150 MeV RITRACKS folder
data/
  radiation_input/       RITRACKS folders you download with `ammper data pull` (in a clone)
  experimental/          alamarBlue and BioSentinel measurements (manuscript analysis inputs)
analysis/              alamarBlue fitting, growth curves, ROS and gamma analysis
revisions_2026/        manuscript revision code and figures
results/               simulation output
tests/                 test suite (`pytest`)
docs/                  documentation assets

Citing AMMPER

If you use AMMPER in your work, please cite:

Singh A., Santa Maria S. R., Gentry D. M., Liddell L. C., Lera M. P., Lee J. A. Agent-based Model for Microbial Populations Exposed to Radiation (AMMPER) simulates yeast growth for deep-space experiments. Gravitational and Space Research 12(1):159–176 (2024). doi:10.2478/gsr-2024-0012

Contributing

See CONTRIBUTING.md. Run the tests with:

pip install -e ".[dev]"
pytest

License

Released under the NASA Open Source Agreement 1.3.

Credits

  • Coded and created by Amrita Singh and Daniel Palacios
  • Conceptualized by Amrita Singh
  • Graphical user interface design by Madeline Marous
  • Logo design by Madeline Marous and Sam Lino
  • Additional software support by Danny Mejia
  • Repository control, open-source distribution, and oversight by Dr. Jessica A. Lee

Created at NASA Ames Research Center.

About

No description, website, or topics provided.

Resources

Contributing

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages