Skip to content

Commit

Permalink
Merge pull request #84 from samuelgarcia/some_improvement
Browse files Browse the repository at this point in the history
update readme
  • Loading branch information
samuelgarcia authored Oct 9, 2024
2 parents 9f1eeef + 2dc6086 commit e2af2ec
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 15 deletions.
35 changes: 24 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,33 @@ 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)

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
Expand All @@ -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

Expand Down Expand Up @@ -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


Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ classifiers = [
]

dependencies = [
"spikeinterface[full]>=0.101.0",
"spikeinterface[full]>=0.101.2",
"pyqtgraph",
]

Expand Down
7 changes: 4 additions & 3 deletions spikeinterface_gui/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()

Expand All @@ -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)
Expand All @@ -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)

0 comments on commit e2af2ec

Please sign in to comment.