From 2dc6086b4e548f6b88b5b1a8ff2dbe652cd34db8 Mon Sep 17 00:00:00 2001 From: Samuel Garcia Date: Wed, 9 Oct 2024 19:09:38 +0200 Subject: [PATCH] update readme --- README.md | 35 ++++++++++++++++++++++++----------- pyproject.toml | 2 +- spikeinterface_gui/main.py | 7 ++++--- 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index b10693b..f2a9272 100644 --- a/README.md +++ b/README.md @@ -15,14 +15,25 @@ format or folder organisation. This gui is built on top of spikeinterface object (Recording, Sorting, SortingAnalyzer) These objects are "lazy" and retrieve data on the fly (no copy!). + +This viewer internally use Qt (with PySide6, PyQT6 or PyQt5) and pyqtgraph. +And so, this viewer is a local desktop app (old school!!). +There is a web based viewer [here](https://github.com/magland/sortingview). + +![screenshot](screenshot.png) + + ## main usage The main idea is make visible one or several unit and visualy inspect if they should be merge or remove. For this visibility: * ctlr + double click on a unit in *probeview* - * double click on one unit in *unitlist* + * check the box visible in the *unitlist* + * double click on one unit in *unitlist* unit visible alone + * move one of the roi in the *probeview* -Views can be reorganized by moving docks +Views can be reorganized by moving docks by clicking in the title bar of a docks. +Any dock (view) can be closed. And can be put back with right click in any title bar of any dock. Every view has a **?** button which open the contextual help. **Theses inplace docs are the most important stuff to be read**. (but the contains typos) @@ -30,7 +41,7 @@ When some units are visible, the related spike list can be refresh. Then selecting spike per spike can also refersh some views. This enable a very quick and convinient spike per spike jump on traces. -Channel visibility can be handled with the roi in the probeview. +Channel visibility can be handled with one of the roi in the probeview. ## curation mode @@ -47,17 +58,12 @@ When this mode is activated a new view is added on top left to maintain the list The curation format can be exported to json. -This viewer internally use Qt (with PySide6, PyQT6 or PyQt5) and pyqtgraph. -And so, this viewer is a local desktop app (old school!!). -There is a web based viewer [here](https://github.com/magland/sortingview). +## Important note -![screenshot](screenshot.png) +The actual `main` branch is using the new `SortingAnalyzer` object from spikeinterface, so you need at least version **0.101.0** of +spikeinterface and be familiar with the `SortingAnalyzer` concept. -## Important note -The actual `main` branch is using the new `SortingAnalyzer` object from spikeinterface which is not released yet. -You can expect some small bugs. -If you want visualize the old `WaveformExtractor` from spikeinterface<=0.100.1 you need to go back to version spikeinterface-gui=0.8.0. ## Launch @@ -139,6 +145,13 @@ sigui /path/for/my/sorting_analyzer ``` +The command line support some otions like *--notraces* or *--curation* +```bash +sigui --no-traces --curation /path/for/my/sorting_analyzer +``` + + + ## With curation mode diff --git a/pyproject.toml b/pyproject.toml index 3642b23..526c816 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,7 +15,7 @@ classifiers = [ ] dependencies = [ - "spikeinterface[full]>=0.101.0", + "spikeinterface[full]>=0.101.2", "pyqtgraph", ] diff --git a/spikeinterface_gui/main.py b/spikeinterface_gui/main.py index c5219be..c6669d7 100644 --- a/spikeinterface_gui/main.py +++ b/spikeinterface_gui/main.py @@ -11,10 +11,10 @@ -def run_mainwindow(analyzer_folder, with_traces=True): +def run_mainwindow(analyzer_folder, with_traces=True, curation=False): app = mkQApp() analyzer = load_sorting_analyzer(analyzer_folder) - win = MainWindow(analyzer, with_traces=with_traces) + win = MainWindow(analyzer, with_traces=with_traces, curation=curation) win.show() app.exec() @@ -25,6 +25,7 @@ def run_mainwindow_cli(): parser = argparse.ArgumentParser(description='spikeinterface-gui') parser.add_argument('analyzer_folder', help='SortingAnalyzer folder path', default=None, nargs='?') parser.add_argument('--no-traces', help='Do not show traces', action='store_true', default=False) + parser.add_argument('--curation', help='Do not show traces', action='store_true', default=False) args = parser.parse_args(argv) @@ -35,5 +36,5 @@ def run_mainwindow_cli(): print('You must specify the analyzer folder like this: sigui /path/to/my/analyzer/folder') exit() - run_mainwindow(analyzer_folder, with_traces=not(args.no_traces)) + run_mainwindow(analyzer_folder, with_traces=not(args.no_traces), curation=args.curation)