datajoint / datajoint-matlab

Relational data pipelines for the science lab
MIT License
42 stars 37 forks source link

View DataJoint on File Exchange

Welcome to DataJoint for MATLAB!

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.

For more information, see our general DataJoint docs and DataJoint MATLAB docs.

For Developers: Running Tests Locally

Click to expand details + Create an `.env` with desired development environment values e.g. ``` sh 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 running 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 running command `matlab -nodisplay`