Introduction

DrWatson


DrWatson is a scientific project assistant software. It is a Julia package created to help people "deal" with their simulations, simulation parameters, where are files saved, experimental data, scripts, existing simulations, project source code and in general their scientific projects.

See the Functionality section to get an impression of what you can do with DrWatson. To install, simply type ] add DrWatson in your Julia session.

JuliaDynamics

DrWatson is part of JuliaDynamics, check out our website for more cool stuff!

Poster for DrWatson

If you prefer having a concise and visual summary of DrWatson we have prepared a poster for it! Check out the Poster section!

Rationale

Have you thought things like:

DrWatson tries to eradicate such bad thoughts and bedtime nightmares.

Functionality

DrWarson is a scientific project assistant software. Here is what it can do:

Think of these core aspects of DrWatson as independent islands connected by bridges. If you don't like the approach of one of the islands, you don't have to use it to take advantage of DrWatson!

Applications of DrWatson are demonstrated the Real World Examples page. All of these examples are taken from code of real scientific projects that use DrWatson.

Please note that DrWatson is not a data management system. It is also not a Julia package creator like PkgTemplates.jl nor a package developement tool.

Description of DrWatson

DrWatson follows these simple principles:

  1. Non-Invasive. DrWatson does not require you to follow strict rules or change the way you work and do science in order to use it. In addition DrWatson is function-based: you only have to call a function and everything else just works; you do not have to create additional special struct or other data types. In addition, you also do not have to do anything outside of your code (e.g. command line arguments).
  2. Simple. The functionality offered is a baseline from where you handle your project as you wish. This makes it more likely to be of general use but also means that you don't have to "study" to learn DrWatson: all concepts are simple, everything is easy to understand.
  3. Consistent. The functionality is identical across all projects and DrWatson offers a universal base project structure.
  4. Allows increments. You didn't plan your project well enough? Want to add more folders, more files, more variables to your simulations? It's fine.
  5. Reproducibility. DrWatson aims to make your projects fully reproducible using Git, Julia's package manager and consistent naming schemes.
  6. Modular. DrWatson has a flexible modular design (see Functionality) which means you only have to use what fits your project.
  7. Scientific. DrWatson has been beta tested in many real-world scientific projects and has matured based on feedback from scientists.

This is why we believe DrWatson can help you focus on the science and not worry about project code management.

Poster

poster DrWatson

Inspirations

https://drivendata.github.io/cookiecutter-data-science/#cookiecutter-data-science

https://discourse.julialang.org/t/computational-experiments-organising-different-algorithms-their-parameters-and-results/10774/7

http://neuralensemble.org/sumatra/

https://github.com/mohamed82008/ComputExp.jl

https://sacred.readthedocs.io/en/latest/index.html

https://experimentator.readthedocs.io/en/latest/