gazzolalab / miv-os Goto Github PK
View Code? Open in Web Editor NEWAnalysis pipeline for electrophysiology MiV-system and simulator
Home Page: https://miv-os.readthedocs.io/en/latest/?badge=latest
License: MIT License
Analysis pipeline for electrophysiology MiV-system and simulator
Home Page: https://miv-os.readthedocs.io/en/latest/?badge=latest
License: MIT License
To quantify the efficiency of connection graph, we can use MST ratio (MST weigh / total weight).
While working on #32, I've noticed an error in examples/post_processing/spike_detection.py
that appears to be caused by a stale import from miv.io import load_data
. I suspect that interface in miv.io
was recently updated as it does not contain a load_data
function. Full stack trace can be viewed here
Here is the list of functions we would like to implement using our code. Some could be accomplished by having "how-to" documentation, some might need additional implementations on the modules. Feel free to make a separate issue and propose ideas if you want to take a shot.
Following redundancies associated with Poetry can be eliminated by following GazzolaLab/PyElastica#141
pyproject.toml
is redundant and not utilized currently in the presence of .coveragerc
Here is the reference : https://neuraldatascience.io/6-single_unit/intro_spike_trains.html
Documentation on how to use cross-correlation analysis using Elephant
.
Neural data has been traditionally analyzed either temporally (spectral analysis) or spatially (connectivity measures). DMD can be used to extract spatiotemporal modes, hence combining the benefits of aforementioned techniques in one analysis and measure coherence between electrodes.
It is widely used for fluid mechanics problems, but not as common in neuroscience. However, some authors have started exploring DMD's for neuroscience [1].
References:
Line 220 in 1de0747
Currently, the coverage of MiV-OS
sits at ~40%, indicating room for improvement. Below I will dynamically populate a checklist, listing the parts that are majorly untested, which will be resolved by adding tests step by step:
miv/visualization/waveform.py
miv/visualization/fft_domain.py
miv/visualization/event.py
and so on...
Sometimes neurons fire at a higher frequency for a short period of time. Such events are called bursts and are characterized by burst firing rate and length. Bursting is usually taken as an indication of culture's maturation and robustness. More details could be found here: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4725104/
Not all features will be included for v0.2, and the remaining will be pushed to the next release.
If an external package is already available, a simple wrapper (if needed) with detailed documentation on how to use that package could be sufficient.
For each category, the sublist is in the order of priority.
Here is the list of functions we would like to implement using our code. Some could be accomplished by having "how-to" documentation, some might need additional implementations on the modules. Feel free to make a separate issue and propose ideas if you want to take a shot.
@skim0119 There is an offset in the event timestamps saved with OpenEphys digital TTL input and the timestamps of neurons firing observed in cultures. The offset is non-uniform across days and samples, hence, probably is some precision issue.
A similar issue with digital TTL input has been discussed here: open-ephys/GUI#302
Matlab asdf.mat format converter.
MiV-OS/miv/visualization/fft_domain.py
Lines 37 to 46 in d598dac
The package lyon
on pypi is outdated, so I'm using github-link as a dependency, but pypi cannot handle.
The data module has a masking feature, but the channel indexing needs to be preserved for later usage. We can have an explicit index map stored separately, while re-define getter returns a masked signal.
Spiketrain statistics
Begg's group commented that subtracting the median across all electrodes at each time step might help in getting rid of the false spikes as they occur simultaneously. Then the conditioned signal can be passed to spike detection and checked if we get lesser false spikes.
The Fano factor, defined as the variance-to-mean ratio of spike counts in a time window, is often used to measure the variability of neuronal spike trains.
Channel axis for readout signal is in column.
A feature should be included in miv.io.Data
which automatically determines which channels to mask. Channels with no spike (white noise) or faulty spike (non-neural spike) should be masked.
>>> data = Data(data_path)
>>> spontaneous_data = Data(spontaneous_data_path)
>>> data.mask_channel(spontaneous_data)
Need to include the following:
Refer the following for more info:
https://arxiv.org/pdf/1004.2515.pdf
https://arxiv.org/pdf/1102.1507.pdf
https://pwollstadt.github.io/IDTxl/html/idtxl_process_analysis.html#bivariate-partial-information-decomposition-pid
miv/visualization
.Artificial spike trains generated using Brian2 can be used to check our algorithms and also extends the user base of MiV OS
Update on basic set of visualization and reference documentation.
Hello,
This is a request for the creation of a small recording data set with valid signals that could be used to drive the development of an MiV native data format and associated data structures and algorithms. Thanks!
Graph visualization given multi-channel patterns.
Loading MCS generated .h5 file can expand the utility of MiV-OS.
Their data format is available here: https://www.multichannelsystems.com/sites/multichannelsystems.com/files/documents/manuals/HDF5%20MCS%20Raw%20Data%20Definition.pdf
We are targeting below set of post-analysis tools for first release.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.