diff --git a/pykilosort/Dockerfile b/pykilosort/Dockerfile index c8670de..24c6db7 100644 --- a/pykilosort/Dockerfile +++ b/pykilosort/Dockerfile @@ -1,4 +1,4 @@ -FROM nvidia/cuda:10.0-base-ubuntu18.04 +FROM nvidia/cuda:11.5.2-base-ubuntu20.04 LABEL maintainer="Alessio Buccino " @@ -7,6 +7,7 @@ LABEL maintainer="Alessio Buccino " RUN apt update && \ apt install -y --no-install-recommends \ libfftw3-dev \ + nano \ git \ wget && \ apt clean && \ @@ -31,11 +32,15 @@ RUN echo ". $CONDA_DIR/etc/profile.d/conda.sh" >> /root/.profile RUN conda init bash # Install IBL python port of pykilosort -RUN git clone -b 1.4.3 https://github.com/int-brain-lab/pykilosort.git /src/pykilosort +RUN git clone -b 1.4.7 https://github.com/int-brain-lab/pykilosort.git /src/pykilosort WORKDIR /src/pykilosort # modify env file so that env extends on base RUN sed -i "s/pyks2/base/" pyks2.yml +# edit the python line to keep the current python version (e.g., 3.9), otherwise it may upgrade (e.g., to 3.10.x), conflict with numba and break the installation. +RUN PYTHON_VERSION=$(python --version | cut -d ' ' -f 2) && \ + sed -i "s/- python.*/- python=$PYTHON_VERSION/" pyks2.yml +# remove the spikeinterface dependency RUN sed -i "s/- spikeinterface//" pyks2.yml # Create environment @@ -44,7 +49,7 @@ RUN conda env update --name base --file pyks2.yml --prune # Install pykilosort RUN conda install --quiet --yes ipykernel && \ python -m ipykernel install --user --display-name "pyKilosort" && \ - conda develop . + pip install -e . +RUN conda clean --all --yes -#--name pyks2 WORKDIR / diff --git a/pykilosort/README.md b/pykilosort/README.md index 83d3405..a9f8944 100644 --- a/pykilosort/README.md +++ b/pykilosort/README.md @@ -13,6 +13,9 @@ flags: -v: mounted volumes (directories) --gpus: enables GPU use within container +Check pykilosort version: +docker run --rm -it spikeinterface/pykilosort-base:latest bash -c "python -c 'import pykilosort; print(pykilosort.__version__)'" + ### Test Download Neuropixel 1.0 data to your data directory: https://catalystneuro.github.io/spike-sorting-hackathon/datasets/datasets.html#allen-institute-example (see also https://github.com/int-brain-lab/pykilosort/tree/ibl_prod/examples, although apparently not up to date) diff --git a/pykilosort/build.sh b/pykilosort/build.sh index 38881b7..4b8dc24 100755 --- a/pykilosort/build.sh +++ b/pykilosort/build.sh @@ -1,3 +1,7 @@ #!/bin/bash -docker build -t spikeinterface/pykilosort-base:latest -t spikeinterface/pykilosort-base:1.4.3 . +docker build -t spikeinterface/pykilosort-base:latest -t spikeinterface/pykilosort-base:ibl-1.4.7_cuda-11.5.2 . + +# version info +# 01/21/2024 - IBL 1.4.7 CUDA 11.3.1 Ubuntu 20.04 +# 02/01/2024 - IBL 1.4.7 CUDA 11.5.2 Ubuntu 20.04 diff --git a/pykilosort/push.sh b/pykilosort/push.sh old mode 100644 new mode 100755 index b947473..52bc325 --- a/pykilosort/push.sh +++ b/pykilosort/push.sh @@ -1,3 +1,3 @@ #!/bin/bash -docker push --all-tags spikeinterface/pykilosort-base +docker push --all-tags spikeinterface/pykilosort-base \ No newline at end of file