Giter Site home page Giter Site logo

ross's Introduction

image

ROSS is an offline spike sorting software implemented based on the methods described in the paper entitled An automatic spike sorting algorithm based on adaptive spike detection and a mixture of skew-t distributions. (Official Implementation)

ROSS V2 Python

Looking for the Python version? check ROSS V2

Updates:

  • 5 July 2023: ROSS v2 (pre-release) is here! Click Here!
  • 7 January 2023: Importing .pkl files is available on ROSS V2
  • 1 January 2023: ROSS v2 (beta) is Released! Click Here!
  • 28 September 2021: We are developing ROSS v2 based on Python with new features.
  • 06 July 2021: Our paper is accepted at Scientific Reports and is now publicly available (Open Access) at this link.

Introduction

Neural activity monitoring is one of the bases of understanding brain behavior. The recorded extracellular potential is a combination of multiple neuron activities corrupted by noise. The main step in analyzing the extracellular data is to differentiate among different neuron activities. Spike sorting is the process of assigning each detected spike to the corresponding neurons. ROSS is a MATLAB-based offline spike sorter software that helps researchers to do automatic and manual spike sorting tasks efficiently. Currently, it provides t-distribution and skew-t based methods for automatic spike sorting. Several functions are considered for modifying the auto-sorting results, such as merging and denoising. Also, useful visualizations are provided to get better results.

Python Version

ROSS v2 is based on Python. Check it out here.

Installation

Recommended System

  • MATLAB >= 2018b

  • 12GB RAM

Download the package to a local folder. Run Matlab and navigate to the folder. Then you could easily start Offline Spike Sorter by running “ross.mlapp” or typing “ross” in the command window.

Usage

ROSS provides useful tools for spike detection, automatic sorting, and manual sorting.

  • Detection

    You can load raw extracellular data and adjust the provided settings for filtering and thresholding. Then by pushing Start Detection button the detection results appear in a PCA plot:

Spike Detecttion

  • Automatic Sorting

    Automatic sorting is implemented based on five different methods: skew-t and t distributions, GMM, k-means and template matching. Several options are provided for configurations in the algorithm. Automatic sorting results will appear in PCA and waveform plots:

Spike Sorting

  • Manual Sorting

    Manual sorting tool is used for manual modifications on automatic results by the researcher. These tools include: Merge, Delete, Resort, Denoise, and Manual grouping or deleting samples in PCA domain:

Manual Sorting

  • Visualization

    Several 2D and 3D visualization tools are provided, including inter spike interval, neuron live time, waveforms, 3D plot, and PCA domain plots. Also, you can track detected spikes on the raw data.

Visualization

For more instructions and samples please visit ROSS documentation, demo video or ROSS webpage.

Acknowledgment

Thanks to Plot Big.

Citation

If ROSS helps your research, please cite our paper in your publications.

@article{Toosi_2021,
	doi = {10.1038/s41598-021-93088-w},
	url = {https://doi.org/10.1038%2Fs41598-021-93088-w},
	year = 2021,
	month = {jul},
	publisher = {Springer Science and Business Media {LLC}},
	volume = {11},
	number = {1},
	author = {Ramin Toosi and Mohammad Ali Akhaee and Mohammad-Reza A. Dehaqani},
	title = {An automatic spike sorting algorithm based on adaptive spike detection and a mixture of skew-t distributions},
	journal = {Scientific Reports}
}

ross's People

Contributors

alimirsharji avatar dinashi avatar ramintoosi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

ross's Issues

Startup not working

Keep getting this error: image

Same thing happens when I open ross.mlapp and click "Run":
image

Adding Dockerfile for Backend

First, I want to express my gratitude for the ROSS software. It helped me in my project, and I truly appreciate your efforts.

I would like to propose an enhancement to the ROSS v2 repository by adding a Dockerfile specifically for the backend part. With the increasing popularity and adoption of containerization technologies, having a Dockerfile can greatly simplify the setup and deployment process for users. It would allow them to quickly spin up the necessary backend environment without having to worry about compatibility issues or complex setup steps.

Given my experience with Docker and the backend requirements of ROSS, I would be more than happy to contribute by providing the Dockerfile. I believe this addition would significantly enhance the usability and accessibility of ROSS for a wider range of users.

Unknown number of toolboxes necessary

ROSS needs a number of toolboxes installed to work. Functions for butter, PCA, sftrans, and many more appear to be necessary. Can a list of the toolboxes required to run ROSS be put on the installation page? It appears at least Signal Processing (for butter) and Statistics and Machine Learning (for PCA). And possibly even FieldTrip?

Error: [Errno 98] Address already in use - Issue Report

Hello,

I am currently working with ROSS V2 and encountered an error that I would like to report. Below is the error message I received:

* Serving Flask app 'app' (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
Traceback (most recent call last):
  File "<path_to_file>/app.py", line 106, in <module>
    app.run(host='0.0.0.0', port=5000, debug=False)
  File "<path_to_file>/flask/app.py", line 920, in run
    run_simple(t.cast(str, host), port, self, **options)
  File "<path_to_file>/werkzeug/serving.py", line 1010, in run_simple
    inner()
  File "<path_to_file>/werkzeug/serving.py", line 950, in inner
    srv = make_server(
  File "<path_to_file>/werkzeug/serving.py", line 782, in make_server
    return ThreadedWSGIServer(
  File "<path_to_file>/werkzeug/serving.py", line 688, in __init__
    super().__init__(server_address, handler)  # type: ignore
  File "<path_to_file>/socketserver.py", line 452, in __init__
    self.server_bind()
  File "<path_to_file>/http/server.py", line 138, in server_bind
    socketserver.TCPServer.server_bind(self)
  File "<path_to_file>/socketserver.py", line 466, in server_bind
    self.socket.bind(self.server_address)
OSError: [Errno 98] Address already in use

Here are a few details about my environment:

  • Operating System: Ubuntu 20.04
  • Python Version: 3.10

To provide more context, I received this error while attempting to run the software using the following command:

python app.py

This conflict prevents the software from running.

To help resolve this issue, I would appreciate any guidance or suggestions you can provide. Additionally, if there are any specific steps or configurations I need to follow to avoid this error, please let me know.

"GET / HTTP/1.1" 404 -

python ./ross_backend/app.py

  • Serving Flask app 'app' (lazy loading)
  • Environment: production
    WARNING: This is a development server. Do not use it in a production deployment.
    Use a production WSGI server instead.
  • Debug mode: on
  • Running on all addresses.
    WARNING: This is a development server. Do not use it in a production deployment.
  • Running on http://10.6.45.126:5000/ (Press CTRL+C to quit)
  • Restarting with stat
  • Debugger is active!
  • Debugger PIN: 500-095-330
    10.6.45.126 - - [11/Mar/2024 05:24:17] "GET / HTTP/1.1" 404 -

Please! who can help me? thanks very much

Using issues

Thank you to the developer, I am quite interested in this project. I encountered some problems during use: 1. When installing, the installation from the yml file seems to always report an error, and finally it can run by installing one by one with pip. Both mac and win systems have been tried, and they cannot be installed normally from yml; 2. An error is always prompted when registering, the local port has been changed, but still cannot register. I hope there can be some detailed explanations for future reference. Thank you.

ResolvePackageNotFound: Error

What kind of the OS platform you used?
I am trying to install with "conda env create -f environment.yml"
and got the ResolvePackageNotFound: Error.

also Could you export the conda environment without builds?

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.