Projects and experiments#

In any ā€œlab notebookā€, information has to be arranged according to projects, experiments, and many other metadata. This ensures searchability of the results, as well as reproducibility of each aspect of the experiments. Analogously, computational simulations require creating an organized set of jobs (e.g., simulations or calculations) that are searchable and human-readable.

The mkite package requires the organization of these jobs with the Project and Experiment metadata. In mkiteā€™s definitions, a Project is a set of Experiments. Experiments may or not be ordered, and represent different stages of the calculation branch. For example, as described in mkiteā€™s paper, different branches of a calculation graph can be grouped under a single experiment. Then, new experiments can be created by grouping the information from previous experiments into new jobs.

Creating new projects#

Projects are basically defined by one metadata, its name. New projects can be easily created in the database interface (e.g., Djangoā€™s shell_plus or PostgreSQLā€™s psql). For convenience, they can also be added to the database with the create_project command:

kitedb create_project PROJECT_NAME

Creating new experiments#

Similarly, experiments are defined by a name and a project. They can be created using the create_experiment command as:

kitedb create_experiment PROJECT_NAME EXPERIMENT_NAME

If this is your first time running kitedb you will need to initialize the database

kitedb makemigrations base jobs calcs mols structs workflow
kitedb migrate

With this, a new experiment titled EXPERIMENT_NAME will be created under the project PROJECT_NAME.