lenia-in-hal

Repository for Lenia framework, implemented in Hybrid Automata Library (HAL)

https://github.com/mathonco/lenia-in-hal

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, biorxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.7%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Repository for Lenia framework, implemented in Hybrid Automata Library (HAL)

Basic Info
  • Host: GitHub
  • Owner: MathOnco
  • License: mit
  • Language: Java
  • Default Branch: main
  • Size: 47.5 MB
Statistics
  • Stars: 7
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created almost 2 years ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation

README.md

Lenia-in-HAL

Repository for Lenia framework, implemented in Hybrid Automata Library (HAL), which can be downloaded here. Below we implement the "Lenia" modeling framework in HAL v1.1.0.

Lenia is a cellular automata framework developed here that offers capabilities for simulating cellular automata that have continuous space and time components, making it suitable for studying the collective behavior of interacting biological agents, such as individual cells or organisms. Cellular automata are valuable tools for studying the rules governing the behavior of complex systems, including multi-factorial diseases like cancer.

Below is an image (originally appearing here) that describes Lenia. Lenia as a cancer model:

Figure (A) Lenia artificial life virtual creatures, reproduced from Chan, 2018. (B) List of characteristics possible to produce in Lenia by varying the growth dynamics function (C) or the interaction kernel function (D). (E) An example snapshot of a simulation shows the density of cells at each lattice location where the interaction kernel (F) specifies the nature of interaction of cells depending on their distance from each other. (G) The density potential, interpreted as a weighted average of interactions at each lattice location, is calculated as the convolution of A(x) and K(x). (H) the growth field calculated by applying a growth map to the density potential. (I) adding a fraction of the growth field at each time step to the cell density, forms the Lenia update rule.

Overview

Lenia-in-HAL is developed at the EDIT lab at the H. Lee Moffitt Cancer Center and Research Institute. It provides various features essential for cancer modeling, including:

  • Cellular replication
  • Growth
  • Motility
  • Evolvability
  • Adaptation

Features

Lenia is designed to recapitulate various models commonly used in cancer research, including:

  1. Classical Analytical Models: Lenia can simulate ordinary differential equations commonly used in cancer research.
  2. Stochastic Agent-Based Models: It supports common stochastic agent-based models of cancer.
  3. Evolutionary Game Theory: Lenia can model multiple cell types competing on Darwinian fitness landscapes.
  4. Cell Migration: It includes generalized cell migration models like chemotaxis commonly used in cancer mathematical modeling literature.

Usage

Lenia is easy to implement and supports single or multiple players (cell types). Users can define growth functions and various kernel sizes/functions for spatial interaction. More details on using Lenia in cancer modeling can be found in this paper.

There are two steps to defining and implementing a model in Lenia: 1) define the Growth function, G(u) and 2) define the kernel of cell interaction, K(r).

For example, we implement logistic growth with an Allee effect by overriding the G function in ExampleDeterministic1Player.java:

// Growth function @Override public double G(double u) { return gamma * u * (u - L) * (C - u); }

where gamma, L, and C are constants. This function defines the growth rate of each lattice location as a function of u, the density potential. Density potential is determined by the weighted sum of the density of a focal cell's neighborhood, as defined by the interaction kernel. For example, we can define the neighborhood as the cells within a radius of Rstar as follows:

@Override public double K(double r) { if (r <= Rstar) { return 1.0; } else { return 0.0; } }

Thus, each cell within a radius of Rstar will be equally weighted. If neighborhood is empty then u = 0, if maximum capacity then u = 1.

For help getting started with HAL, we recommend checking out the manual halloworld.org/setup for information on how to setup HAL on your operating system.

Examples

Four examples are provided in the Examples folder. We recommend starting here, and editing the G and K functions of these examples for your own purposes.

  • ExampleDeterministic1Player.java
  • ExampleDeterministic2Player.java
  • ExampleStochastic1Player.java
  • ExampleStochastic2Player.java

License

Lenia is open-source software licensed under the MIT License.

Contributing & Contact

Contributions to Lenia are welcome! If you're interested in contributing, please fork this repository or contact us directly. For any questions, feedback, or support, please contact the EDIT lab at the H. Lee Moffitt Cancer Center and Research Institute.

Owner

  • Name: IMO
  • Login: MathOnco
  • Kind: organization
  • Location: Tampa, Florida, USA

Moffitt Cancer Center's Integrated Mathematical Oncology public facing repositories for published projects.

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: Lenia-in-HAL
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Jeffrey
    family-names: West
    email: Jeffrey.West@moffitt.org
  - given-names: Sadegh
    family-names: Marzban
    email: Sadegh.Marzban@moffitt.org
  - given-names: Rafael
    family-names: Bravo
    email: Rafael.Bravo@moffitt.org
  - given-names: Alexander
    family-names: Anderson
    email: Alexander.Anderson@moffitt.org
identifiers:
  - type: url
    value: >-
      https://github.com/mathonco/lenia-in-hal
abstract: >-
  Lenia, a cellular automata framework used in artificial
  life, provides a natural setting to design, implement, and
  analyze mathematical models of cancer progression and
  treatment. Lenia’s suitability as a cancer model is
  derived from the strong parallels between artificial life
  and cancer evolution: morphogenesis, homeostasis,
  motility, reproduction, growth, stimuli response,
  evolvability, and adaptation. Historically, agent-based
  models of cancer progression have been constructed with
  rules that govern birth, death, and migration based on the
  local availability of space, with attempts to map local
  rules to emergent global growth dynamics. In contrast,
  Lenia provides a flexible framework for considering a
  spectrum of local (cell-scale) to global (tumor-scale)
  dynamics by defining an interaction kernel governing
  density-dependent growth dynamics. Lenia can recapitulate
  a range of cancer model classifications including local or
  global, deterministic or stochastic, non-spatial or
  spatial, single or multi-population, and off or
  on-lattice. Lenia is subsequently used to develop
  data-informed models of 1) single-population growth
  dynamics, 2) multi-population cell-cell competition
  models, and 3) cell migration or chemotaxis.
date-released: '2024-03-02'

GitHub Events

Total
  • Watch event: 1
  • Push event: 1
Last Year
  • Watch event: 1
  • Push event: 1