Coder Social home page Coder Social logo

sg-s / kontroller Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 3.0 3.73 MB

A MATLAB package for NI-DAQ to help you do experiments. Kontroller has a easy-to-use GUI, with support for automation and is fully programmable.

License: GNU General Public License v3.0

MATLAB 100.00%
matlab-daq matlab data-acquisition daq electrophysiology ephys

kontroller's Introduction

kontroller

GitHub last commit GPL License DOI

a free wrapper for MATLAB DAQ to make experiments easier

Kontroller is a free wrapper for MATLAB's DAQ toolbox that makes it easy to begin doing experiments. Spend less time writing code and more time doing real science. I don't know of a simpler solution that lets you get started with your experiments. If you know of one, please write to me.

Features

Click-and-Type Setup

Name a physical channel on your NI board to record from it or write to it. Delete the name to stop using it. It's that simple.

Configure control paradigms

Choose vectors from your workspace to construct control paradigms to write data to devices.

Analogue/digital inputs, and analogue outputs. Simultaneously.

Record continuous analogue data while writing predefined vectors to analogue or digital outputs at the same time. Control LEDs while measuring from light sensors. Turn stepper motors while measuring from a strain gauge. No matter what your task, it's the same config.

Oscilloscope

Don't want to record data but just see what your data stream looks like? A handy scope function looks at live data without recording anything. You can throw away that clunky Tektronik that's been hogging space on your ephys rack.

Automation

kontroller can be easily automated by creating Control Paradigms that specify sequences of reads and writes to your devices. Control Paradimgs can be run one after the other, with arbitrary inter-trial functions.

Programmable

kontroller is fully programmable, and can be used as a command line tool for more complex tasks.

Installation

The recommended way to install kontroller is to use my package manager:

% copy and paste this into your MATLAB prompt
websave('install.m','https://git.io/viWvp')
install sg-s/kontroller
install sg-s/srinivas.gs_mtools

if you have git installed, you can

# copy and paste this into into your shell
git clone https://github.com/sg-s/kontroller
git clone https://github.com/sg-s/srinivas.gs_mtools 

and don't forget to add these folders to your MATLAB path

Roadmap and future

kontroller will not be developed further, apart from bug fixes. kontroller2 is an exciting new object-oriented successor to kontroller, which will extend kontroller's capabilities in many ways.

Data Format

kontroller generates MATLAB .mat data. In each .mat file generated by kontroller, the following variables exist:

ControlParadigm 
% 1xN structure containing control signals that were used
% ControlParadigm contains fields called "Name" and "Outputs". 
% "Outputs" is a CxT matrix, where C is the # of output channels, 
% and T is the total length of the trial

data 	
% 1xM (M<=N) structure containing data
% fields in data are dynamically created by the names of the input channels
% e.g., data(4).voltage is a NxT matrix, for N trials from the 4th control
% paradigm

metadata 
% 1x1 structure containing metadata, if any

OutputChannelNames 
% 1xC cell array containing names of output channels

SamplingRate 
% scalar, samples/sec

timestamps 
% 3xT matrix containing the timestamps of every trial acquired
% timestamps(1,:) contains the control paradigm corresponding to every trial
% timestamps(2,:) contains the trial # of every trial
% datestr(timestamps(3,:)) shows the timestamps every trial was started

Citing

If you use kontroller, please write to me to cite this appropriately!

The following publications have used kontroller:

  1. Presynaptic GABA Receptors Mediate Temporal Contrast Enhancement in Drosophila Olfactory Sensory Neurons and Modulate Odor-Driven Behavioral Kinetics

License

GPL v3

kontroller's People

Contributors

sg-s avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

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.