Coder Social home page Coder Social logo

decu's Introduction

decu

docs Badge test Badge

decu stands for "Decu is a Experimental Computation Utility". decu is a suite of command line tools to automate the menial tasks involved in the development of experimental computation projects.

Experimental Computation

We define a "experimental computation" script as a script that reads some data, performs an experiment (run an algorithm, train a model, plot a figure, etc), saves some results to disk, and then quits. Some tasks that are usually involved in this are:

  1. file I/O: choosing file names for results and plots
  2. multiprocessing: running many experiments/scripts in parallel
  3. timekeeping: how long algorithms take to run
  4. cloud service integration
  5. logging

decu was born from the realization that none of these tasks have anything to do with (and in fact get in the way of) the actual experimentation being done. Furthermore, experimental computation scripts tend to mix together code dedicated to these tasks with code intended to run the actual algorithms of interest, thus making said algorithms harder to maintain and debug.

The main goal of decu is to provide standardization and automation of these tasks, with end code that clearly separates experimental computation from bookkeeping and other auxiliary code.

Installation

Clone this repo, cd to the decu directory and do

$ pip install .

Now you have a local installation of decu. If you are going to make edits to decu, don't forget to use the -e flag.

Usage

For a simple example, please see the quick start page. For more, see the tutorial and the documentation page.

Best practices

decu is built with Best Practices for Data Science in mind. For more, see

Wilson, Greg, et al. Good Enough Practices in Scientific Computing. PLOS Computational Biology, vol. 13, no. 6, 2017, doi:10.1371/journal.pcbi.1005510.

Wilson, Greg, et al. Best Practices for Scientific Computing. PLoS Biology, vol. 12, no. 1, July 2014, doi:10.1371/journal.pbio.1001745.

decu's People

Contributors

leotrs avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

decu's Issues

leave the __init__.py file empty and separate everything in files

Reason being that now init.py and main.py use the same code to load the config parser. If in the future we need to change that code (for example we may change the interpolation kw arg), we will probably enter a bug by changing one and not the other. One of the new files this should have a read_config function that both use.

add support for local config files

The user should be able to customize the config file by having a config.ini file in the project dir, which overrides any default value. Add test cases for overriding.

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.