Giter Club home page Giter Club logo

Comments (4)

cgnitash avatar cgnitash commented on June 11, 2024

This issue is related to the concept of experiment management. A typical workflow would be,

  1. (build mabe) compile code and get executable mabe.
  2. generate settings files via '-s'.
  3. modify settings files manually, or through the command line (so mabe modifies the settings file).
  4. run mabe.

During this workflow, mabe doesn't really have a way of knowing if a file is being overwritten intentionally, and if we loop to step 1, the semantics change, i.e we want files to be overwritten, and in fact, not even loaded, since they might no longer be valid.

I feel like the concept of "a complete experiment" should be distinct from "experimenting". What I mean is that the latter would be the workflow describe above, where you can write to files and load from files arbitrarily. Also easily, which means mabe doesn't warn about overwriting, or other potential user or end-user mistakes.
The former would be somewhat similar to what mq.py does, i.e. if mabe were passed the '-e' flag, say, then a new experiment directory (uniquely named) would be created, and all the settings files, or organism files, or tertiary data files(like spatial maps), etc, to be loaded, are placed into a subdir, and this would be a read-only dir. Then mabe would run and save all output files to another subdir, and at the end of the run, the entire exp directory would be made read-only. This means that the experiment is self-contained, and can be shared with others, without worrying about some parts of it being overwritten by another execution of mabe. If one needs the files from this experiment for another experiment, they can still be read, and copied out, but overwrite safety is no longer a concern.

The overwrite issue is broader than just settings files even, since e.g. mabe writes to LOD_data.csv every time, and I have to remember not to overwrite this file every time I run mabe. My personal fix is to move the files around, rename them, make them read-only etc. If mabe could do this with a couple of command line options, that would solve these problems to some extent.

Thoughts?

from mabe.

cliff-bohm avatar cliff-bohm commented on June 11, 2024

My workflow is to copy the executable and settings files and then modify settings files in the new location when I want to run a new experiment. It seems to me that there are 2 modes we need to support. Experiment mode - where one is running experiments that will result in publication and Development mode - where one is writing a new world/brain/etc. I'm not sure what is the correct behavior of Experiment mode, but In Development mode, I do not want to be encumbered by a plethora of directories and locked files.

from mabe.

cgnitash avatar cgnitash commented on June 11, 2024

That's an important question, deciding the correct behaviour of 'experiment' mode. At the moment, mabe supports only 'development' mode. So this issue is suggesting an additional feature, and not a change to existing features, correct?

from mabe.

cgnitash avatar cgnitash commented on June 11, 2024

Fixed by #220

from mabe.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.