Giter VIP home page Giter VIP logo

yogeshphalak / natural-pattern-adaptation-ca Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 100.06 MB

A repository for the final project in MathBio class, exploring the dynamics of natural pattern adaptation through the lens of a cellular automata model. Contains code, documentation, and resources related to the project.

License: MIT License

Python 100.00%
biological-modeling cellular-automata computational-biology pattern-formation animal-coat-patterns pattern-adaptation

natural-pattern-adaptation-ca's Introduction

Natural Pattern Adaptation with Cellular Automata

Overview

This project explores Cellular Automata (CA) approaches to biological modeling, focusing on pattern adaptation. The work is inspired by the paper titled "Cellular Automata Approaches to Biological Modeling" by G. Bard Ermentrout and Leah Edelstein-Keshet. The project includes Python scripts implementing various CA models, each offering insights into different aspects of biological phenomena.

Table of Contents

Introduction

The paper chosen for study, "Cellular Automat Approaches to Biological Modeling" by G. Bard Ermentrout and Leah Edelstein-Keshet serves as the foundation for this project. The goal is to extend the authors' work by incorporating pattern identification using convolution in image processing to understand the mechanism of pattern adaptation.

Deterministic Automata

General Model

Active media, mimicking biological behaviors, are explored through a simple excitable rule. The model includes simulations of square-rotating spiral waves and modifications based on inhibitors or activators, creating diverse spatial patterns.

GIF 1 GIF 2

Host-Parasite Model

A host-parasitoid model is discretized and placed on a grid, resembling an active CA. The system exhibits a dynamic interactions between host and parasite populations, leading to complex spatial patterns.

GIF 1 GIF 2

Predator-Prey Model

A fish-shark predator-prey model is considered, resulting in complex oscillations and spatial patterns. The simulation captures the temporal evolution and interactions within the predator-prey system.

praditor_pray.gif

Cellular Automata From More Complex Models

Translation from continuous to discrete domains is explored, including a reaction-diffusion system and an immunology model. These models showcase the versatility of CA in representing complex biological phenomena.

Developmental Biology

A simple model in developmental biology, incorporating lateral inhibition and thresholds, is presented. The model can create spatial two-dimensional patterns mimicking animal coat patterns.

GIF 1 GIF 2 GIF 3 GIF 4

Pattern Adaption for Developmental Biology

The weight tensor used in the developmental biology model is analyzed to explore its potential as a convolution kernel. The convolution method is applied to identify rules governing specific pattern formations, providing insights into the adaptability of biological patterns.

MathBioResults.png

GIF 1 GIF 2 GIF 3

Discussion

The use of Cellular Automata (CA) models offers a balance between simplicity, interpretability, and computational efficiency. While CA models should not replace rigorous mathematical models, they provide a valuable initial step in understanding complex biological phenomena.

Future Directions

Explaining Coat Patterns in an Evolutionary Perspective

Investigating the evolutionary origins of coat patterns by integrating genetic and environmental factors into the modeling process.

Exploring Dynamic Pattern Adaptation

Incorporating temporal dynamics into the convolution process to model how environmental changes and selective pressures influence adaptive responses.

Compressing Large Datasets of Biological Systems

Utilizing the weight tensor as a convolution kernel to compress large datasets while preserving salient efficiently features.

Usage

Prerequisites

Make sure you have the following prerequisites installed on your machine:

  • Python 3
  • Numpy
  • OpenCV (opencv-python)
  • Numba

You can install the required packages using the following command:

pip install numpy opencv-python numba

Running the Scripts

Each script in the project works independently. To run an example script, use the following command:

python3 scriptname.py

Replace scriptname.py with the actual name of the script you want to run. Feel free to explore different scripts and experiment with the provided examples.

Contributing

Contributions to the project are welcome. If you'd like to contribute, follow these steps:

  1. Fork the project
  2. Create a new branch
  3. Make your changes
  4. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgements

  • G. Bard Ermentrout and Leah Edelstein-Keshet for their foundational work on Cellular Automata in biological modeling.
  • Other authors and researchers whose work has contributed to the project.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.