Code Monkey home page Code Monkey logo

spiky's People

Contributors

pmknutsen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

spiky's Issues

Events not displayed correctly

Events are sometimes not displayed correctly. For instance, an event may not be displayed with an endpoint and hence extends all the way to the next event. This is a display bug, and not a problem with the actual Events data.

Coherence plugin

Write a coherence plugin for:

  • continuous Completed 02/14
  • discrete
  • continuous vs discrete

Plugin: Extract power within bands of computed powerspectra

Add an analysis function that computes the power spectrum of selected channel (if not already done) and extracts the power in selected frequency bands.

Output is one or more continuous signals with power vs time (displayed as new channel).

Create new mono theme

Create a new black and white theme, suitable for producing graphics for presentation/print.

Allow multiple Spiky windows to be opened at once

Currently, it is not possible to open more than one Spiky GUI as figure handles are accessed via global variables (see GetStruct() function). The globals need to be removed and the GUI figure handle propagate through function callbacks by inheritance.

Custom re-calculation of channels

Add option to re-calculate values of selected channels.

For instance, user enter an equation through an input box;

abs(rad2deg(V))

, where V is short-hand for the channel's voltage values.

Other short-hand variables could be;

T - timestamp
G - channel G

Allow spikes to be used as Discrete events

Allow all analysis functions that work on Discrete events (/analysis/discrete/*) to also work on spikes (as the events).

Solutions:

  • create handles in the events structure to spikes (avoid duplication) ๐Ÿ‘
  • create events from spikes (duplicate data) ๐Ÿ‘Ž
  • accept spikes on a per-case basis inside analysis functions (larger workload) ๐Ÿ‘Ž

Initial merge does not include spikes

On the initial Merge, spikes are not included from all files (just from one file it seems).

Steps to reproduce:

  • Remove MergeFile.spb if it already exists
  • Open directory to merge
  • Initialize settings and Distribute
  • Run Merge (Ctrl+M)

Only spikes in the initial file will be completed. Spikes of files that settings were Distributed to are not included in the merge file.

Generalized file import module

Spiky currently reads only DAQ files saved by the Matlab Data Acquisition Toolbox. This issue will implement a general scheme for reading any type of input file format. A general re-consideration of fieldnames etc should be undertaken before new filters are written.

  • Import filters will be placed in /import folder with file-extension as filename, e.g. daq.m.
  • Open dialogs should display all file extensions in /import folder

Change function of positive spike thresholds

Current implementation of positive spikie thresholds broken.

Change current behavior of detection with positive spike thresholds. Positive thresholds should only function as an inclusion criteria (i.e. spikes that do not cross the positive threshold are discarded).

Copy to Figure broken

Right clicking on analog trace and selecting Copy to Figure brings up a figure with a strongly decimated trace.

Need to be corrected so that trace is displayed in its full sampling rate glory.

Merge across channels

Add option in Channels menu to merge multiple channels into a single channel. When samples exists for the same time points in two or more channels, user should be prompted for which channel takes precedence.

Option to analyze only selected/displayed data range

In Analysis menu, add selectable item "Limit to displayed range". When this option is selected, pre-process the data structure before passing FV to the analysis function, by removing data segments (or filling with NaNs) that are before/after the displayed range.

Create virtual event channels

Virtual event channels are created on the fly and are either copies of other event channels or combinations thereof using the logical operators AND, OR, XOR and NOT.

Trial start times repeated after merging

Occasionally, after merging some trial start times are repeated. Thus, trials are overlapping in time. The problem appears to occur during Distribution of settings as its noted that when start/end times are repeated, data is offending files is also duplicated/repeated. No known way to reproduce this problem, but if it does occurs deleting all .spb files in the directory and re-distributing may help.

Set custom voltage units for individual channels

Work started on SetAmplitudeUnit(S,C).

Set the voltage unit (V, mV, uV) for all or individual channels. Menu item sets for all channels. Individual channels can be scripted or by right clicking displayed traced.

Remove scripts folder

Remove the /scripts folders and instead load as scripts all files in the Matlab search path that are prefixed with 'spiky_' (double underscore). This way, Spiky scripts can be anywhere on the file system and private scripts do not need to be distributed via git etc.

Add handles to analysis functions in the global variable Spiky and restructure

The analysis functions reside in the /analysis/discrete and /analysis/continuous directories. Handles to these can be added to the global structure Spiky that is created upon startup.

One option is to restructure the entire Spiky variable, as such:

Spiky.analysis.discrete.abc
for discrete analysis functions

Spiky.analysis.continuous.abc
for continuous analysis functions

Spiky.import.abc
for import functions

Spiky.export.abc
for import functions

Spiky.main.abc
for internal functions

the latter require recoding of all external functions, so simplest solution is to probably just leave internal functions where they are, i.e. Spiky.abc

Saving to default GalvoScanner log freezes scanning during Run

When the default log file grows (very) large, every manual Run trigger freezes execution while log file is loaded and data appended to the end of it.

Solution:
When the default save location is used, don't append but create a new log file in the same directory.

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.