Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.0%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: int-brain-lab
  • License: gpl-2.0
  • Language: Python
  • Default Branch: main
  • Size: 913 KB
Statistics
  • Stars: 7
  • Watchers: 22
  • Forks: 2
  • Open Issues: 8
  • Releases: 0
Created about 2 years ago · Last pushed 12 months ago
Metadata Files
Readme Changelog Contributing License Citation

README.md

IBL Spike Sorting

This is the implementation of the IBL spike sorting pipeline described on this white paper: (https://doi.org/10.6084/m9.figshare.19705522.v4). The clustering part is based on the original MATLAB version of Kilosort 2.5, written by Marius Pachitariu.

Usage

We provide a few datasets to explore parametrization and test on several brain regions. The smallest dataset is a 100 seconds excerpt to test the installation. Here is the minimal working example:

```python import shutil from pathlib import Path

from iblsorter.ibl import runspikesortingibl, iblpykilosortparams, downloadtest_data

if name == "main": datapath = Path("/mnt/s0/spikesorting/integrationtests") # path on which the raw data will be downloaded scratchdir = Path.home().joinpath("scratch", 'iblsorter') # temporary path on which intermediate raw data will be written, we highly recommend a SSD drive ksoutputdir = Path("/mnt/s0/spikesorting/outputs") # path containing the kilosort output unprocessed alfpath = ksoutputdir.joinpath( 'alf') # this is the output standardized as per IBL standards (SI units, ALF convention)

# download the integration test data from amazon s3 bucket
bin_file, meta_file = download_test_data(data_path)

# prepare and mop up folder architecture for consecutive runs
DELETE = True  # delete the intermediate run products, if False they'll be copied over to the output directory for debugging
shutil.rmtree(scratch_dir, ignore_errors=True)
scratch_dir.mkdir(exist_ok=True)
ks_output_dir.mkdir(parents=True, exist_ok=True)

# loads parameters and run
params = ibl_pykilosort_params(bin_file)
params['Th'] = [6, 3]

run_spike_sorting_ibl(bin_file, delete=DELETE, scratch_dir=scratch_dir,
                        ks_output_dir=ks_output_dir, alf_path=alf_path, log_level='INFO', params=params)

```

Installation

System Requirements

The code makes extensive use of the GPU via the CUDA framework. A high-end NVIDIA GPU with at least 8GB of memory is required. The solution has been deployed and tested on Cuda 12+ and Python 3.10, 3.11 and 3.12

Python environment

Only on Linux, first install fftw by running the following

sudo apt-get install -y libfftw3-dev

Navigate to the desired location for the repository and clone it

git clone https://github.com/int-brain-lab/ibl-sorter.git
cd ibl-sorter

Installation for cuda 11.x

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install cupy-cuda11x
pip install -e .

Installation for cuda 12.x (as of October 2024, check installation instructions from pytorch for the latest)

pip3 install torch torchvision torchaudio
pip install cupy-cuda12x
pip install -e .

Making sure the installation is successful and CUDA is available

Here we make sure that both cupy and torch are installed and that the CUDA framework is available.

python from iblsorter.utils import cuda_installation_test cuda_installation_test()

Then we can run the integration test.

Owner

  • Name: International Brain Laboratory
  • Login: int-brain-lab
  • Kind: organization

Citation (CITATION.cff)

cff-version: 0.0.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: International Brain Laboratory
    given-names: The
    orcid:
  - family-names: Banga
    given-names: Kush
    orcid:
  - family-names: Faulkner
    given-names: Mayo
    orcid:
  - family-names: Langfield
    given-names: Christopher
    orcid:
  - family-names: Rossant
    given-names: Cyrille
    orcid:
  - family-names: Winter
    given-names: Olivier
    orcid:
title: "ibl-sorter"
version: 1.8.0
doi:
date-released: 2024-05-15
url: "https://github.com/int-brain-lab/ibl-sorter"

GitHub Events

Total
  • Issues event: 17
  • Watch event: 5
  • Delete event: 1
  • Issue comment event: 7
  • Push event: 36
  • Pull request event: 1
  • Fork event: 2
Last Year
  • Issues event: 17
  • Watch event: 5
  • Delete event: 1
  • Issue comment event: 7
  • Push event: 36
  • Pull request event: 1
  • Fork event: 2

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 28
  • Total pull requests: 7
  • Average time to close issues: 2 months
  • Average time to close pull requests: 15 days
  • Total issue authors: 7
  • Total pull request authors: 3
  • Average comments per issue: 0.79
  • Average comments per pull request: 0.57
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 13
  • Pull requests: 0
  • Average time to close issues: 23 days
  • Average time to close pull requests: N/A
  • Issue authors: 4
  • Pull request authors: 0
  • Average comments per issue: 0.54
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • oliche (11)
  • yunchang-z (5)
  • chris-langfield (3)
  • florgf88 (1)
  • hengweizhu (1)
  • mayofaulkner (1)
  • grg2rsr (1)
Pull Request Authors
  • chris-langfield (7)
  • oliche (3)
  • grg2rsr (2)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

requirements.txt pypi
  • click *
  • cupy *
  • ibl-neuropixel >=0.8.0
  • matplotlib *
  • mock *
  • numba *
  • numpy *
  • phylib *
  • pydantic *
  • pytest *
  • scipy *
  • spikeinterface *
  • tqdm *
setup.py pypi
viz/requirements.txt pypi
  • ibllib *
  • seaborn *
  • viewephys *