diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index d9aeeed3..1faaaf8d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -138,6 +138,26 @@ jobs:
- run: docker build -t mmore500/signalgp-lite .
- run: docker ps -a
- run: sudo docker run --cap-add=SYS_ADMIN mmore500/signalgp-lite /bin/bash -c "cd /opt/signalgp-lite && make test"
+ paper:
+ runs-on: ubuntu-latest
+ name: Paper Draft
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ - name: Build draft PDF
+ uses: openjournals/openjournals-draft-action@master
+ with:
+ journal: joss
+ # This should be the path to the paper within your repo.
+ paper-path: joss/paper.md
+ - name: Upload
+ uses: actions/upload-artifact@v1
+ with:
+ name: paper
+ # This is the output path where Pandoc will write the compiled
+ # PDF. Note, this should be the same directory as the input
+ # paper.md
+ path: joss/paper.pdf
deploy-github-pages:
runs-on: ubuntu-18.04
name: Deploy to GitHub Pages
@@ -152,6 +172,7 @@ jobs:
- microbenchmarks
- source-clang
- source-gcc
+ - paper
env:
GH_TOKEN: ${{ github.token }}
steps:
diff --git a/.gitmodules b/.gitmodules
index b0b6d61a..45946115 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,22 +1,6 @@
-[submodule "third-party/Catch"]
- path = third-party/Catch
- url = https://github.com/philsquared/Catch.git
-[submodule "third-party/Empirical"]
- path = third-party/Empirical
- url = https://github.com/devosoft/Empirical.git
- branch = master
-[submodule "third-party/force-cover"]
- path = third-party/force-cover
- url = https://github.com/emilydolson/force-cover.git
-[submodule "third-party/emsdk"]
- path = third-party/emsdk
- url = https://github.com/emscripten-core/emsdk.git
[submodule "third-party/SignalGP"]
path = third-party/SignalGP
url = https://github.com/mmore500/SignalGP.git
-[submodule "third-party/cereal"]
- path = third-party/cereal
- url = https://github.com/mmore500/cereal.git
[submodule "third-party/conduit"]
path = third-party/conduit
url = https://github.com/mmore500/conduit.git
diff --git a/Dockerfile b/Dockerfile
index 8b81c796..749e99a6 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,45 +1,14 @@
-FROM mmore500/conduit
+FROM mmore500/conduit@sha256:b1590176a947b3d3887470c3dee6d81243c7f05c9f81388bffd67b903586037f
USER root
COPY . /opt/signalgp-lite
-RUN \
- apt-get install -qq \
- python-virtualenv \
- python3-virtualenv \
- python-pip \
- python3-pip \
- doxygen \
- && \
- echo "installed docs dependencies"
-
RUN \
pip3 install -r /opt/signalgp-lite/docs/requirements.txt \
&& \
echo "installed documentation build requirements"
-RUN \
- add-apt-repository -y ppa:ubuntu-toolchain-r/test \
- && \
- wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \
- && \
- apt-add-repository "deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main" \
- && \
- apt-get update -qq \
- && \
- apt-get install -y cmake build-essential python-virtualenv python-pip nodejs tar gzip libclang-7-dev llvm-7 clang-7 libstdc++-7-dev gdb \
- && \
- update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-7 90 \
- && \
- update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-7 90 \
- && \
- update-alternatives --install /usr/bin/llvm-profdata llvm-profdata /usr/bin/llvm-profdata-7 90 \
- && \
- update-alternatives --install /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-7 90 \
- && \
- echo "installed force cover build dependencies"
-
# make sure unprivileged user has access to new files in opt
# adapted from https://stackoverflow.com/a/27703359
# and https://superuser.com/a/235398
diff --git a/README.md b/README.md
index 1efbd7d0..b48f8f05 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,7 @@
# signalgp-lite
[![version](https://img.shields.io/endpoint?url=https%3A%2F%2Fmmore500.github.io%2Fsignalgp-lite%2Fversion-badge.json)](https://github.com/mmore500/signalgp-lite/releases)
+[![Codacy Badge](https://app.codacy.com/project/badge/Grade/d4ec421f786a4d00bd850bf0d1719d5d)](https://www.codacy.com/gh/mmore500/signalgp-lite/dashboard?utm_source=github.com&utm_medium=referral&utm_content=mmore500/signalgp-lite&utm_campaign=Badge_Grade)
[![continuous integration](https://github.com/mmore500/signalgp-lite/workflows/CI/badge.svg)](https://github.com/mmore500/signalgp-lite/actions?query=workflow%3ACI)
[![Documentation Status](https://readthedocs.org/projects/signalgp-lite/badge/?version=latest)](https://signalgp-lite.readthedocs.io/en/latest/?badge=latest)
[![documentation coverage](https://img.shields.io/endpoint?url=https%3A%2F%2Fmmore500.github.io%2Fsignalgp-lite%2Fdocumentation-coverage-badge.json)](https://signalgp-lite.readthedocs.io/en/latest/)
diff --git a/binder/results/changing-enviroment/changing-enviroment.ipynb b/binder/results/changing-enviroment/changing-enviroment.ipynb
new file mode 100644
index 00000000..91691f68
--- /dev/null
+++ b/binder/results/changing-enviroment/changing-enviroment.ipynb
@@ -0,0 +1,621 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "source": [
+ "import pandas as pd\n",
+ "import matplotlib.pyplot as plt\n",
+ "import seaborn as sns\n",
+ "from teeplot import teeplot as tp\n",
+ "import numpy as np"
+ ],
+ "outputs": [],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# get data"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "source": [
+ "df2 = pd.read_csv(\"86bf42/K2/concat=100+replicate=1-100+ext=.csv\")\n",
+ "df4 = pd.read_csv(\"86bf42/K4/concat=100+replicate=1-100+ext=.csv\")\n",
+ "df8 = pd.read_csv(\"86bf42/K8/concat=100+replicate=1-100+ext=.csv\")\n",
+ "df16 = pd.read_csv(\"86bf42/K16/concat=100+replicate=1-100+ext=.csv\")\n",
+ "\n"
+ ],
+ "outputs": [],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# preprocess data"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "source": [
+ "df2[\"k\"] = 2\n",
+ "df4[\"k\"] = 4\n",
+ "df8[\"k\"] = 8\n",
+ "df16[\"k\"] = 16\n",
+ "\n",
+ "df = pd.concat([df2, df4, df8, df16])"
+ ],
+ "outputs": [],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# define teeplot functions"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "source": [
+ "def logx_lineplot(*args, **kwargs):\n",
+ " g = sns.lineplot(\n",
+ " *args,\n",
+ " **kwargs\n",
+ " )\n",
+ " g.set_xscale(\"log\")\n",
+ " plt.axhline(256, c=\"grey\", linestyle=\"dotted\", zorder=-1)\n",
+ " y = np.array([16*i for i in range(17)])\n",
+ " plt.yticks(y)\n",
+ " # todo: change names here"
+ ],
+ "outputs": [],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# fitness over time"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## process data"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "source": [
+ "new_rows = []\n",
+ "for (replicate, k), filtered in df.groupby([\"replicate\", \"k\"]):\n",
+ " max_update = filtered[\"update\"].max()\n",
+ "\n",
+ " for update in range(max_update, 10000):\n",
+ " new_rows.append({\n",
+ " \"update\": update,\n",
+ " \"max_fitness\": 256,\n",
+ " \"replicate\": replicate,\n",
+ " \"k\": k\n",
+ " })\n",
+ "\n",
+ "df = df.append(new_rows)\n",
+ "df"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " update mean_fitness min_fitness max_fitness inferiority \\\n",
+ "0 0 46.316 0.0 256 0.180922 \n",
+ "1 0 45.954 0.0 256 0.179508 \n",
+ "2 0 47.909 0.0 256 0.187145 \n",
+ "3 0 47.056 0.0 256 0.183812 \n",
+ "4 0 47.067 0.0 256 0.183855 \n",
+ "... ... ... ... ... ... \n",
+ "3842933 9995 NaN NaN 256 NaN \n",
+ "3842934 9996 NaN NaN 256 NaN \n",
+ "3842935 9997 NaN NaN 256 NaN \n",
+ "3842936 9998 NaN NaN 256 NaN \n",
+ "3842937 9999 NaN NaN 256 NaN \n",
+ "\n",
+ " replicate k \n",
+ "0 100 2 \n",
+ "1 10 2 \n",
+ "2 11 2 \n",
+ "3 12 2 \n",
+ "4 13 2 \n",
+ "... ... .. \n",
+ "3842933 100 16 \n",
+ "3842934 100 16 \n",
+ "3842935 100 16 \n",
+ "3842936 100 16 \n",
+ "3842937 100 16 \n",
+ "\n",
+ "[4000400 rows x 7 columns]"
+ ],
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " update | \n",
+ " mean_fitness | \n",
+ " min_fitness | \n",
+ " max_fitness | \n",
+ " inferiority | \n",
+ " replicate | \n",
+ " k | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 46.316 | \n",
+ " 0.0 | \n",
+ " 256 | \n",
+ " 0.180922 | \n",
+ " 100 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 45.954 | \n",
+ " 0.0 | \n",
+ " 256 | \n",
+ " 0.179508 | \n",
+ " 10 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 47.909 | \n",
+ " 0.0 | \n",
+ " 256 | \n",
+ " 0.187145 | \n",
+ " 11 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 0 | \n",
+ " 47.056 | \n",
+ " 0.0 | \n",
+ " 256 | \n",
+ " 0.183812 | \n",
+ " 12 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 0 | \n",
+ " 47.067 | \n",
+ " 0.0 | \n",
+ " 256 | \n",
+ " 0.183855 | \n",
+ " 13 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 3842933 | \n",
+ " 9995 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 256 | \n",
+ " NaN | \n",
+ " 100 | \n",
+ " 16 | \n",
+ "
\n",
+ " \n",
+ " 3842934 | \n",
+ " 9996 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 256 | \n",
+ " NaN | \n",
+ " 100 | \n",
+ " 16 | \n",
+ "
\n",
+ " \n",
+ " 3842935 | \n",
+ " 9997 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 256 | \n",
+ " NaN | \n",
+ " 100 | \n",
+ " 16 | \n",
+ "
\n",
+ " \n",
+ " 3842936 | \n",
+ " 9998 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 256 | \n",
+ " NaN | \n",
+ " 100 | \n",
+ " 16 | \n",
+ "
\n",
+ " \n",
+ " 3842937 | \n",
+ " 9999 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 256 | \n",
+ " NaN | \n",
+ " 100 | \n",
+ " 16 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
4000400 rows × 7 columns
\n",
+ "
"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 18
+ }
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## graph results (ci: SD)"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "source": [
+ "df[\"Update\"] = df[\"update\"]\n",
+ "\n",
+ "df[\"Max Fitness\"] = df[\"max_fitness\"]\n",
+ "\n",
+ "tp.tee(\n",
+ " logx_lineplot,\n",
+ " data=df,\n",
+ " x=\"Update\",\n",
+ " y=\"Max Fitness\",\n",
+ " hue=\"k\",\n",
+ " ci=\"sd\"\n",
+ ")"
+ ],
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "teeplots/ci=sd+hue=k+viz=logx-lineplot+x=update+y=max-fitness+ext=.pdf\n",
+ "teeplots/ci=sd+hue=k+viz=logx-lineplot+x=update+y=max-fitness+ext=.png\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "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"
+ },
+ "metadata": {
+ "needs_background": "light"
+ }
+ }
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## graph results (ci: 95%)"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "source": [
+ "data = df[np.log2(df[\"update\"]+1) % 1.0 < 0.0001]\n",
+ "len(data)"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "5703"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 20
+ }
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "source": [
+ "data[\"Update\"] = data[\"update\"]\n",
+ "\n",
+ "data[\"Max Fitness\"] = data[\"max_fitness\"]\n",
+ "\n",
+ "\n",
+ "tp.tee(\n",
+ " logx_lineplot,\n",
+ " data=data,\n",
+ " x=\"Update\",\n",
+ " y=\"Max Fitness\",\n",
+ " hue=\"k\"\n",
+ ")"
+ ],
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ ":1: SettingWithCopyWarning: \n",
+ "A value is trying to be set on a copy of a slice from a DataFrame.\n",
+ "Try using .loc[row_indexer,col_indexer] = value instead\n",
+ "\n",
+ "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
+ " data[\"Update\"] = data[\"update\"]\n",
+ ":3: SettingWithCopyWarning: \n",
+ "A value is trying to be set on a copy of a slice from a DataFrame.\n",
+ "Try using .loc[row_indexer,col_indexer] = value instead\n",
+ "\n",
+ "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
+ " data[\"Max Fitness\"] = data[\"max_fitness\"]\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "teeplots/hue=k+viz=logx-lineplot+x=update+y=max-fitness+ext=.pdf\n",
+ "teeplots/hue=k+viz=logx-lineplot+x=update+y=max-fitness+ext=.png\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "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"
+ },
+ "metadata": {
+ "needs_background": "light"
+ }
+ }
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# time to solution over number of states (k)"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### process data"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "source": [
+ "box_df = df[df[\"max_fitness\"] == 256]\n",
+ "\n",
+ "res_df = []\n",
+ "for (replicate, k), filtered in box_df.groupby([\"replicate\", \"k\"]):\n",
+ " sol_time = filtered[\"update\"].min()\n",
+ "\n",
+ " res_df.append({\n",
+ " \"solution_time\": sol_time,\n",
+ " \"replicate\": replicate,\n",
+ " \"k\": k\n",
+ " })\n",
+ "\n",
+ "res_df = df.from_records(res_df)"
+ ],
+ "outputs": [],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### graph"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "source": [
+ "res_df[\"Solution Time\"] = res_df[\"solution_time\"]\n",
+ "\n",
+ "tp.tee(\n",
+ " sns.boxplot,\n",
+ " data=res_df,\n",
+ " y=\"Solution Time\",\n",
+ " x=\"k\"\n",
+ ")"
+ ],
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "teeplots/viz=boxplot+x=k+y=solution-time+ext=.pdf\n",
+ "teeplots/viz=boxplot+x=k+y=solution-time+ext=.png\n"
+ ]
+ },
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "execution_count": 24
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "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"
+ },
+ "metadata": {
+ "needs_background": "light"
+ }
+ }
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## time to solution (swarm plot)"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "source": [
+ "def tee_swarmplot(*args, **kwargs):\n",
+ " sns.swarmplot(\n",
+ " linewidth=0.5,\n",
+ " s=4,\n",
+ " edgecolor='white',\n",
+ " *args,\n",
+ " **kwargs\n",
+ " )\n",
+ " sns.boxplot(\n",
+ " *args,\n",
+ " **kwargs\n",
+ " )"
+ ],
+ "outputs": [],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "source": [
+ "tp.tee(\n",
+ " tee_swarmplot,\n",
+ " data=res_df,\n",
+ " x=\"k\",\n",
+ " y=\"Solution Time\"\n",
+ ")"
+ ],
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "/home/zasz/.local/lib/python3.9/site-packages/seaborn/categorical.py:1296: UserWarning: 85.0% of the points cannot be placed; you may want to decrease the size of the markers or use stripplot.\n",
+ " warnings.warn(msg, UserWarning)\n",
+ "/home/zasz/.local/lib/python3.9/site-packages/seaborn/categorical.py:1296: UserWarning: 59.0% of the points cannot be placed; you may want to decrease the size of the markers or use stripplot.\n",
+ " warnings.warn(msg, UserWarning)\n",
+ "/home/zasz/.local/lib/python3.9/site-packages/seaborn/categorical.py:1296: UserWarning: 11.0% of the points cannot be placed; you may want to decrease the size of the markers or use stripplot.\n",
+ " warnings.warn(msg, UserWarning)\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "teeplots/viz=tee-swarmplot+x=k+y=solution-time+ext=.pdf\n",
+ "teeplots/viz=tee-swarmplot+x=k+y=solution-time+ext=.png\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "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"
+ },
+ "metadata": {
+ "needs_background": "light"
+ }
+ }
+ ],
+ "metadata": {}
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "name": "python3",
+ "display_name": "Python 3.9.6 64-bit"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.6"
+ },
+ "interpreter": {
+ "hash": "e7370f93d1d0cde622a1f8e1c04877d8463912d04d973331ad4851f04de6915a"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
\ No newline at end of file
diff --git a/binder/results/changing-enviroment/teeplots/ci=sd+hue=k+viz=logx-lineplot+x=update+y=max-fitness+ext=.pdf b/binder/results/changing-enviroment/teeplots/ci=sd+hue=k+viz=logx-lineplot+x=update+y=max-fitness+ext=.pdf
new file mode 100644
index 00000000..78ff6678
Binary files /dev/null and b/binder/results/changing-enviroment/teeplots/ci=sd+hue=k+viz=logx-lineplot+x=update+y=max-fitness+ext=.pdf differ
diff --git a/binder/results/changing-enviroment/teeplots/ci=sd+hue=k+viz=logx-lineplot+x=update+y=max-fitness+ext=.png b/binder/results/changing-enviroment/teeplots/ci=sd+hue=k+viz=logx-lineplot+x=update+y=max-fitness+ext=.png
new file mode 100644
index 00000000..f34e9237
Binary files /dev/null and b/binder/results/changing-enviroment/teeplots/ci=sd+hue=k+viz=logx-lineplot+x=update+y=max-fitness+ext=.png differ
diff --git a/binder/results/changing-enviroment/teeplots/hue=k+viz=logx-lineplot+x=update+y=max-fitness+ext=.pdf b/binder/results/changing-enviroment/teeplots/hue=k+viz=logx-lineplot+x=update+y=max-fitness+ext=.pdf
new file mode 100644
index 00000000..12a5c6b1
Binary files /dev/null and b/binder/results/changing-enviroment/teeplots/hue=k+viz=logx-lineplot+x=update+y=max-fitness+ext=.pdf differ
diff --git a/binder/results/changing-enviroment/teeplots/hue=k+viz=logx-lineplot+x=update+y=max-fitness+ext=.png b/binder/results/changing-enviroment/teeplots/hue=k+viz=logx-lineplot+x=update+y=max-fitness+ext=.png
new file mode 100644
index 00000000..1c9a33f4
Binary files /dev/null and b/binder/results/changing-enviroment/teeplots/hue=k+viz=logx-lineplot+x=update+y=max-fitness+ext=.png differ
diff --git a/binder/results/changing-enviroment/teeplots/viz=boxplot+x=k+y=solution-time+ext=.pdf b/binder/results/changing-enviroment/teeplots/viz=boxplot+x=k+y=solution-time+ext=.pdf
new file mode 100644
index 00000000..8ea27f57
Binary files /dev/null and b/binder/results/changing-enviroment/teeplots/viz=boxplot+x=k+y=solution-time+ext=.pdf differ
diff --git a/binder/results/changing-enviroment/teeplots/viz=boxplot+x=k+y=solution-time+ext=.png b/binder/results/changing-enviroment/teeplots/viz=boxplot+x=k+y=solution-time+ext=.png
new file mode 100644
index 00000000..b5cab02c
Binary files /dev/null and b/binder/results/changing-enviroment/teeplots/viz=boxplot+x=k+y=solution-time+ext=.png differ
diff --git a/binder/results/changing-enviroment/teeplots/viz=tee-swarmplot+x=k+y=solution-time+ext=.pdf b/binder/results/changing-enviroment/teeplots/viz=tee-swarmplot+x=k+y=solution-time+ext=.pdf
new file mode 100644
index 00000000..10f51eb8
Binary files /dev/null and b/binder/results/changing-enviroment/teeplots/viz=tee-swarmplot+x=k+y=solution-time+ext=.pdf differ
diff --git a/binder/results/changing-enviroment/teeplots/viz=tee-swarmplot+x=k+y=solution-time+ext=.png b/binder/results/changing-enviroment/teeplots/viz=tee-swarmplot+x=k+y=solution-time+ext=.png
new file mode 100644
index 00000000..8ab132c4
Binary files /dev/null and b/binder/results/changing-enviroment/teeplots/viz=tee-swarmplot+x=k+y=solution-time+ext=.png differ
diff --git a/binder/results/contextual-signal/contextual-signal.ipynb b/binder/results/contextual-signal/contextual-signal.ipynb
new file mode 100644
index 00000000..6106ca1f
--- /dev/null
+++ b/binder/results/contextual-signal/contextual-signal.ipynb
@@ -0,0 +1,38410 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "source": [
+ "import pandas as pd\n",
+ "import matplotlib.pyplot as plt\n",
+ "import seaborn as sns\n",
+ "from teeplot import teeplot as tp\n",
+ "import numpy as np\n",
+ "import scipy.stats as stats"
+ ],
+ "outputs": [],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# get data"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 43,
+ "source": [
+ "reg = pd.read_csv(\"regulation.csv\")\n",
+ "no_reg = pd.read_csv(\"no-regulation.csv\")\n",
+ "\n",
+ "reg['regulation'] = \"enabled\"\n",
+ "no_reg['regulation'] = \"disabled\"\n",
+ "\n",
+ "df = pd.concat([reg, no_reg])\n",
+ "df"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " Unnamed: 0 update mean_fitness min_fitness max_fitness \\\n",
+ "0 0 0 3.127 0 6 \n",
+ "1 1 1 4.698 3 7 \n",
+ "2 2 2 4.947 3 7 \n",
+ "3 3 3 5.118 3 7 \n",
+ "4 4 4 5.112 3 9 \n",
+ "... ... ... ... ... ... \n",
+ "31468 31468 2971 13.404 2 15 \n",
+ "31469 31469 2972 13.384 2 15 \n",
+ "31470 31470 2973 13.235 1 15 \n",
+ "31471 31471 2974 13.365 2 15 \n",
+ "31472 31472 2975 13.266 2 16 \n",
+ "\n",
+ " inferiority replicate regulation \n",
+ "0 0.521167 1 enabled \n",
+ "1 0.671143 1 enabled \n",
+ "2 0.706714 1 enabled \n",
+ "3 0.731143 1 enabled \n",
+ "4 0.568000 1 enabled \n",
+ "... ... ... ... \n",
+ "31468 0.893600 20 disabled \n",
+ "31469 0.892267 20 disabled \n",
+ "31470 0.882333 20 disabled \n",
+ "31471 0.891000 20 disabled \n",
+ "31472 0.829125 20 disabled \n",
+ "\n",
+ "[37626 rows x 8 columns]"
+ ],
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Unnamed: 0 | \n",
+ " update | \n",
+ " mean_fitness | \n",
+ " min_fitness | \n",
+ " max_fitness | \n",
+ " inferiority | \n",
+ " replicate | \n",
+ " regulation | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 3.127 | \n",
+ " 0 | \n",
+ " 6 | \n",
+ " 0.521167 | \n",
+ " 1 | \n",
+ " enabled | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 4.698 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 0.671143 | \n",
+ " 1 | \n",
+ " enabled | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 4.947 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 0.706714 | \n",
+ " 1 | \n",
+ " enabled | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5.118 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 0.731143 | \n",
+ " 1 | \n",
+ " enabled | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5.112 | \n",
+ " 3 | \n",
+ " 9 | \n",
+ " 0.568000 | \n",
+ " 1 | \n",
+ " enabled | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 31468 | \n",
+ " 31468 | \n",
+ " 2971 | \n",
+ " 13.404 | \n",
+ " 2 | \n",
+ " 15 | \n",
+ " 0.893600 | \n",
+ " 20 | \n",
+ " disabled | \n",
+ "
\n",
+ " \n",
+ " 31469 | \n",
+ " 31469 | \n",
+ " 2972 | \n",
+ " 13.384 | \n",
+ " 2 | \n",
+ " 15 | \n",
+ " 0.892267 | \n",
+ " 20 | \n",
+ " disabled | \n",
+ "
\n",
+ " \n",
+ " 31470 | \n",
+ " 31470 | \n",
+ " 2973 | \n",
+ " 13.235 | \n",
+ " 1 | \n",
+ " 15 | \n",
+ " 0.882333 | \n",
+ " 20 | \n",
+ " disabled | \n",
+ "
\n",
+ " \n",
+ " 31471 | \n",
+ " 31471 | \n",
+ " 2974 | \n",
+ " 13.365 | \n",
+ " 2 | \n",
+ " 15 | \n",
+ " 0.891000 | \n",
+ " 20 | \n",
+ " disabled | \n",
+ "
\n",
+ " \n",
+ " 31472 | \n",
+ " 31472 | \n",
+ " 2975 | \n",
+ " 13.266 | \n",
+ " 2 | \n",
+ " 16 | \n",
+ " 0.829125 | \n",
+ " 20 | \n",
+ " disabled | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
37626 rows × 8 columns
\n",
+ "
"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 43
+ }
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# define teeplot functions"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "source": [
+ "def logx_lineplot(*args, **kwargs):\n",
+ " g = sns.lineplot(\n",
+ " *args,\n",
+ " **kwargs\n",
+ " )\n",
+ " g.set_xscale(\"log\")\n",
+ " plt.axhline(256, c=\"grey\", linestyle=\"dotted\", zorder=-1)\n",
+ " y = np.array([16*i for i in range(17)])\n",
+ " plt.yticks(y)\n",
+ " # todo: change names here"
+ ],
+ "outputs": [],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# fitness over time"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## process data"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 45,
+ "source": [
+ "\n",
+ "'''\n",
+ "new_rows = []\n",
+ "for (replicate, regulation), filtered in df.groupby([\"replicate\", \"regulation\"]):\n",
+ " max_update = filtered[\"update\"].max()\n",
+ "\n",
+ " for update in range(max_update, 10000):\n",
+ " new_rows.append({\n",
+ " \"update\": update,\n",
+ " \"max_fitness\": 16,\n",
+ " \"replicate\": replicate,\n",
+ " \"regulation\": regulation\n",
+ "})\n",
+ "\n",
+ "df = df.append(new_rows)\n",
+ "df\n",
+ "'''"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "'\\nnew_rows = []\\nfor (replicate, regulation), filtered in df.groupby([\"replicate\", \"regulation\"]):\\n max_update = filtered[\"update\"].max()\\n\\n for update in range(max_update, 10000):\\n new_rows.append({\\n \"update\": update,\\n \"max_fitness\": 16,\\n \"replicate\": replicate,\\n \"regulation\": regulation\\n})\\n\\ndf = df.append(new_rows)\\ndf\\n'"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 45
+ }
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## graph results (ci: SD)"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 46,
+ "source": [
+ "tp.tee(\n",
+ " logx_lineplot,\n",
+ " data=df,\n",
+ " x=\"update\",\n",
+ " y=\"max_fitness\",\n",
+ " ci=\"sd\",\n",
+ " hue=\"regulation\"\n",
+ ")"
+ ],
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "teeplots/ci=sd+hue=regulation+viz=logx-lineplot+x=update+y=max-fitness+ext=.pdf\n",
+ "teeplots/ci=sd+hue=regulation+viz=logx-lineplot+x=update+y=max-fitness+ext=.png\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ "