Giter VIP home page Giter VIP logo

datajoint-matlab's Introduction

View DataJoint on File Exchange

DataJoint for MATLAB is a high-level programming interface for relational databases designed to support data processing chains in science labs. DataJoint is built on the foundation of the relational data model and prescribes a consistent method for organizing, populating, and querying data.

DataJoint was initially developed in 2009 by Dimitri Yatsenko in Andreas Tolias' Lab for the distributed processing and management of large volumes of data streaming from regular experiments. Starting in 2011, DataJoint has been available as an open-source project adopted by other labs and improved through contributions from several developers.

Installation

(Recommended) Greater than R2016b

  1. Utilize MATLAB built-in GUI i.e. Top Ribbon -> Add-Ons -> Get Add-Ons
  2. Search and Select DataJoint
  3. Select Add from GitHub

Using GHToolbox (FileExchange Community Toolbox)

  1. Install GHToolbox using using an appropriate method in https://github.com/datajoint/GHToolbox
  2. run: ghtb.install('datajoint/datajoint-matlab')

Less than R2016b

  1. Utilize MATLAB built-in GUI i.e. Top Ribbon -> Add-Ons -> Get Add-Ons
  2. Search and Select DataJoint
  3. Select Download from GitHub
  4. Save DataJoint.mltbx locally
  5. Navigate in MATLAB tree browser to saved toolbox file
  6. Right-Click and Select Install
  7. Select Install

From Source

  1. Download DataJoint.mltbx locally
  2. Navigate in MATLAB tree browser to saved toolbox file
  3. Right-Click and Select Install
  4. Select Install

Config

For help in utilizing dj.config (added in 3.4.0), you may access the help via help('dj.config') or review it online here. Formal documentation to follow.

Running Tests Locally

  • Create an .env with desired development environment values e.g.
MATLAB_USER=rguzman
MATLAB_LICENSE=IyBCRUd... # For image usage instructions see https://github.com/guzman-raphael/matlab, https://hub.docker.com/r/raphaelguzman/matlab
MATLAB_VERSION=R2019a
MATLAB_HOSTID=XX:XX:XX:XX:XX:XX
MATLAB_UID=1000
MATLAB_GID=1000
MYSQL_TAG=5.7
MINIO_VER=RELEASE.2022-01-03T18-22-58Z
  • cp local-docker-compose.yaml docker-compose.yaml
  • docker-compose up (Note configured JUPYTER_PASSWORD)
  • Select a means of running MATLAB e.g. Jupyter Notebook, GUI, or Terminal (see bottom)
  • Add tests directory to path e.g. in MATLAB, addpath('tests')
  • Run desired tests. Some examples are as follows:
Use Case MATLAB Code
Run all tests run(Main)
Run one class of tests run(TestTls)
Run one specific test runtests('TestTls/TestTls_testInsecureConn')
Run tests based on test name import matlab.unittest.TestSuite;
import matlab.unittest.selectors.HasName;
import matlab.unittest.constraints.ContainsSubstring;
suite = TestSuite.fromClass(?Main, ...
    HasName(ContainsSubstring('Conn')));
run(suite)

Launch Jupyter Notebook

  • Navigate to localhost:8888
  • Input Jupyter password
  • Launch a notebook i.e. New > MATLAB

Launch MATLAB GUI (supports remote interactive debugger)

  • Shell into datajoint-matlab_app_1 i.e. docker exec -it datajoint-matlab_app_1 bash
  • Launch Matlab by runnning command matlab

Launch MATLAB Terminal

  • Shell into datajoint-matlab_app_1 i.e. docker exec -it datajoint-matlab_app_1 bash
  • Launch Matlab with no GUI by runnning command matlab -nodisplay

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.