https://github.com/anushapb/evodoodle

A doodling game for understanding evolution across space

https://github.com/anushapb/evodoodle

Science Score: 26.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.7%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

A doodling game for understanding evolution across space

Basic Info
  • Host: GitHub
  • Owner: AnushaPB
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 11.6 MB
Statistics
  • Stars: 3
  • Watchers: 2
  • Forks: 0
  • Open Issues: 1
  • Releases: 0
Created about 2 years ago · Last pushed about 1 year ago
Metadata Files
Readme License

README.md

Evodoodle

Draw your own custom landscapes and watch as your species evolves across them! Evodoodle is a drawing game for learning how evolution plays out across landscapes. Evodoodle allows you to control population density, connectivity, and selection across space and then simulates evolution using Geonomics, a powerful landscape genomic simulation package.

Setup

Evodoodle can either be run locally on your own computer or right in your browser using GitHub Codespaces.

Running evodoodle in GitHub Codespaces

GitHub codespaces provides a cloud-based environment for running evodoodle right in your browser. To start a GitHub codespace, click the green CODE button in the upper-right corner of this repository and select Open with Codespaces. This will open a new codespace in your browser with all the required packages installed and ready to go. The codespace will take some time to start (5+ minutes). For more information on codespaces check out the GitHub documentation.

GitHub codespaces by default uses Visual Studio Code, a popular open-source code editor. To get started, open quick_demo.py or evodoodle_notebook.py by clicking on the file in the file explorer (left-hand side of the screen). You can run chunks by clicking "run chunk" or by pressing shift + enter (or shift + return) when the chunk is selected.

BEFORE YOU START: Evodoodle requires an interactive display for drawing which takes a few simple steps to set-up on codespaces. We have a virtual desktop which you can acccess by: 1. Clicking the Ports tab at the bottom of the screen in codespaces 2. Find the desktop (6080) port in the list (it should be the first one) 3. Click Open in Browser in the Forwarded Address column for desktop (6080) (click the button that looks like a globe next to the link or Ctrl + click the link).

Open in Browser

  1. This will open a new tab with the interactive display called noVNC. To start the display click Connect. The screen will initially appear blank, but when you run the code to draw a landscape (i.e., run draw_landscape()) the landscape will appear in the noVNC display tab. Once you have drawn your landscape, click SAVE and the code will continue in your codespace tab.

Cost of codespaces: GitHub Free personal accounts come with 120 codespace core hours per month for free. When a personal account hits its limit and has no spending limit configured, use of GitHub Codespaces will be blocked (so don't worry about accidentally running up a bill). For more information on pricing check out the GitHub billing. Our codespace uses 2 cores, so you can run it for 60 hours per month for free (or more if you have a Pro account).

You can download files from your codespace by right-clicking on the file in the Explorer panel and clicking Download... and you can upload files by right-clicking in the Explorer panel and selecting Upload....

Running evodoodle on your own computer

Evodoodle relies on several geospatial libraries that must be installed first (GEOS, GDAL, and PROJ). Once they are installed, you can install evodoodle from GitHub:

python pip install git+https://github.com/AnushaPB/evodoodle.git

Evodoodle has requires several other python packages which can be installed using pip or your package manager of choice:

python pip install bitarray pip install geopandas pip install geonomics pip install matplotlib pip install msprime pip install numpy pip install nlmpy pip install pandas pip install pygame pip install rasterio pip install scikit-learn pip install scipy pip install seaborn pip install shapely pip install statsmodels

Quick start

To start evodoodle, simply run the following code. Whenever draw_landscape() is run a pop-up will appear that allows you to draw on a landscape. Once you have drawn your landscape, click SAVE and the code will continue:

drawingapp


```python import matplotlib.pyplot as plt import numpy as np import seaborn as sns import geonomics as gnx import evodoodle as evo from gnx_params import params import geonomics as gnx

Draw landscapes

carrryingcapacity = evo.drawlandscape(d = 10) connectivity = evo.drawlandscape(d = 10) environment = evo.drawlandscape(d = 10)

Plot the landscapes

evo.plotlandscapes(carrryingcapacity, connectivity, environment)

Start the model

mod = evo.initmod(params, carrryingcapacity, connectivity, environment)

Run the model for 200 steps

mod.walk(200)

Plot the results

evo.plot_popgen(mod)

From here you can continue to run the model for more steps and plot the results

```

example

For a more in-depth walkthrough check out the evodoodle_notebook.ipynb jupyter notebook or evodoodle_notebook.py python script. For a complete lab activity with conservation-themed challenges, check out the evodoodle_lab.ipynb jupyter notebook.

Owner

  • Name: Anusha Bishop
  • Login: AnushaPB
  • Kind: user
  • Company: UC Berkeley

GitHub Events

Total
  • Watch event: 1
  • Delete event: 2
  • Push event: 14
  • Pull request event: 1
  • Create event: 4
Last Year
  • Watch event: 1
  • Delete event: 2
  • Push event: 14
  • Pull request event: 1
  • Create event: 4

Dependencies

Dockerfile docker
  • python 3.12.4 build
.github/workflows/docker-image.yml actions
  • actions/checkout v4 composite
  • docker/login-action v3 composite
requirements.txt pypi
  • bitarray *
  • geonomics *
  • geopandas *
  • matplotlib *
  • msprime *
  • nlmpy *
  • numba *
  • numpy *
  • pandas *
  • pygame *
  • rasterio *
  • scikit-learn *
  • scipy *
  • seaborn *
  • shapely *
  • statsmodels *
setup.py pypi
  • geonomics *
  • matplotlib *
  • numpy *
  • pygame *
  • scikit-learn *
  • seaborn *