<commit_before>.. highlight:: shell

=================
Experimental Data
=================

.. contents:: Sections
   :depth: 2
   :local:

At the moment it is possible to include the following types of experimental data
with your model tests.

1. Growth data, for example, processed Biolog data, that lists whether growth
   was possible in different media.
2. Gene essentiality data that lists for a single gene identifier whether it is
   essential, i.e., a knock-out is lethal, or not.

In order for memote to make proper use of your data, you should add them to the
repository. If you use ``memote new`` to generate the repository structure, take
a look at the files under ``data``. It should look like this:

.. code-block:: console

    data
    ├── essentiality
    ├── experiments.yml
    ├── growth
    └── media

Configuration
=============

In order for anything to happen you have to edit the ``experiments.yml``
configuration file. The provided file contains a minimal setup but does not
actually define any experiments.

.. code-block:: yaml

    version: "0.1"
    medium:
      path: "media/"
    essentiality:
      path: "essentiality/"
    growth:
      path: "growth/"

The file simply states that files relating to media, essentiality, and growth
experiments can be found at directories stated under ``path:`` relative to the
location of the file.

Media
=====

You can fill the configuration with life by adding medium definitions and
experiments. So you could add:

.. code-block:: yaml<commit_msg>docs: document the min_growth option in experiments<commit_after>.. highlight:: shell

=================
Experimental Data
=================

.. contents:: Sections
   :depth: 2
   :local:

At the moment it is possible to include the following types of experimental data
with your model tests.

1. Growth data, for example, processed Biolog data, that lists whether growth
   was possible in different media.
2. Gene essentiality data that lists for a single gene identifier whether it is
   essential, i.e., a knock-out is lethal, or not.

In order for memote to make proper use of your data, you should add them to the
repository. If you use ``memote new`` to generate the repository structure, take
a look at the files under ``data``. It should look like this:

.. code-block:: console

    data
    ├── essentiality
    ├── experiments.yml
    ├── growth
    └── media

Configuration
=============

In order for anything to happen you have to edit the ``experiments.yml``
configuration file. The provided file contains a minimal setup but does not
actually define any experiments.

.. code-block:: yaml

    version: "0.1"
    medium:
      path: "media/"
    essentiality:
      path: "essentiality/"
    growth:
      path: "growth/"

The file simply states that files relating to media, essentiality, and growth
experiments can be found at directories stated under ``path:`` relative to the
location of the file.

Minimum growth threshold
------------------------
Both growth and essentiality experiments require a threshold for the biomass
function to determine if the model is growing. This value can be set via the
``min_growth`` option in the ``experiments.yml`` file.
For instance:

.. code-block:: yaml

    version: "0.1"
    medium:
      path: "media/"
    essentiality:
      path: "essentiality/"
    growth:
      path: "growth/"
    min_growth: 0.05

By default, ``min_growth`` is set to 10% of the biomass function value
under the default constraints in the model.

Media
=====

You can fill the configuration with life by adding medium definitions and
experiments. So you could add:

.. code-block:: yaml
{'fraction_non_alphanumeric': 0.10581140350877193, 'fraction_numerical': 0.004660087719298245, 'mean_word_length': 3.460880195599022, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2069840', 'n_tokens_mistral': 981, 'n_tokens_neox': 931, 'n_words': 494}