From ab17d06ff56543f05a8d62852bb63887a8e8816c Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 6 Aug 2023 12:23:43 -0400 Subject: [PATCH 1/3] adding pyqt6 and switching to qtpy --- .github/workflows/test_and_deploy.yml | 3 ++- setup.py | 8 +++---- suite2p/gui/buttons.py | 4 ++-- suite2p/gui/classgui.py | 4 ++-- suite2p/gui/drawroi.py | 4 ++-- suite2p/gui/graphics.py | 2 +- suite2p/gui/gui2p.py | 4 ++-- suite2p/gui/io.py | 4 ++-- suite2p/gui/masks.py | 4 ++-- suite2p/gui/menus.py | 4 ++-- suite2p/gui/merge.py | 4 ++-- suite2p/gui/reggui.py | 6 +++--- suite2p/gui/rungui.py | 17 +++++++++------ suite2p/gui/traces.py | 4 ++-- suite2p/gui/views.py | 6 +++--- suite2p/gui/visualize.py | 31 +++++++++++---------------- 16 files changed, 53 insertions(+), 56 deletions(-) diff --git a/.github/workflows/test_and_deploy.yml b/.github/workflows/test_and_deploy.yml index 44de9f28..e3efee39 100644 --- a/.github/workflows/test_and_deploy.yml +++ b/.github/workflows/test_and_deploy.yml @@ -41,7 +41,8 @@ jobs: sudo apt-get update sudo apt-get install -y libdbus-1-3 libxkbcommon-x11-0 libxcb-icccm4 \ libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 \ - libxcb-xinerama0 libxcb-xinput0 libxcb-xfixes0 pkg-config libhdf5-103 libhdf5-dev + libxcb-xinerama0 libxcb-xinput0 libxcb-xfixes0 pkg-config libhdf5-103 libhdf5-dev \ + libegl1 # strategy borrowed from vispy for installing opengl libs on windows - name: Install Windows OpenGL if: runner.os == 'Windows' diff --git a/setup.py b/setup.py index da60b641..fc606ac7 100644 --- a/setup.py +++ b/setup.py @@ -11,17 +11,17 @@ "scipy>=1.9.0", "scikit-learn", "cellpose", + "scanimage-tiff-reader>=1.4.1" ] gui_deps = [ - "pyqt5", - "pyqt5-tools", - "pyqt5.sip", + "qtpy", + "pyqt6", + "pyqt6.sip", "pyqtgraph", ] io_deps = [ - "scanimage-tiff-reader>=1.4.1", "paramiko", "nd2", "sbxreader", diff --git a/suite2p/gui/buttons.py b/suite2p/gui/buttons.py index 6e25ec33..de7920f2 100644 --- a/suite2p/gui/buttons.py +++ b/suite2p/gui/buttons.py @@ -2,8 +2,8 @@ Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import numpy as np -from PyQt5 import QtGui, QtCore -from PyQt5.QtWidgets import QPushButton, QButtonGroup, QLabel, QLineEdit +from qtpy import QtGui, QtCore +from qtpy.QtWidgets import QPushButton, QButtonGroup, QLabel, QLineEdit def make_selection(parent): diff --git a/suite2p/gui/classgui.py b/suite2p/gui/classgui.py index e507ca87..062d707b 100644 --- a/suite2p/gui/classgui.py +++ b/suite2p/gui/classgui.py @@ -5,8 +5,8 @@ import shutil import numpy as np -from PyQt5 import QtGui -from PyQt5.QtWidgets import QDialog, QLabel, QPushButton, QMessageBox, QFileDialog, QListWidget, QGridLayout, QWidget, QAbstractItemView +from qtpy import QtGui +from qtpy.QtWidgets import QDialog, QLabel, QPushButton, QMessageBox, QFileDialog, QListWidget, QGridLayout, QWidget, QAbstractItemView from . import masks from .. import classification diff --git a/suite2p/gui/drawroi.py b/suite2p/gui/drawroi.py index bee73fb4..c3693de3 100644 --- a/suite2p/gui/drawroi.py +++ b/suite2p/gui/drawroi.py @@ -6,8 +6,8 @@ import numpy as np import pyqtgraph as pg -from PyQt5 import QtGui, QtCore -from PyQt5.QtWidgets import QPushButton, QLabel, QLineEdit, QMainWindow, QGridLayout, QButtonGroup, QMessageBox, QWidget +from qtpy import QtGui, QtCore +from qtpy.QtWidgets import QPushButton, QLabel, QLineEdit, QMainWindow, QGridLayout, QButtonGroup, QMessageBox, QWidget from matplotlib.colors import hsv_to_rgb from scipy import stats diff --git a/suite2p/gui/graphics.py b/suite2p/gui/graphics.py index 9d22c405..33984129 100644 --- a/suite2p/gui/graphics.py +++ b/suite2p/gui/graphics.py @@ -3,7 +3,7 @@ """ import numpy as np import pyqtgraph as pg -from PyQt5 import QtCore +from qtpy import QtCore from pyqtgraph import Point from pyqtgraph import functions as fn from pyqtgraph.graphicsItems.ViewBox.ViewBoxMenu import ViewBoxMenu diff --git a/suite2p/gui/gui2p.py b/suite2p/gui/gui2p.py index 531801b6..b7b96e0f 100644 --- a/suite2p/gui/gui2p.py +++ b/suite2p/gui/gui2p.py @@ -5,8 +5,8 @@ import numpy as np import pyqtgraph as pg -from PyQt5 import QtGui, QtCore -from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QGridLayout, QCheckBox, QLineEdit, QLabel +from qtpy import QtGui, QtCore +from qtpy.QtWidgets import QMainWindow, QApplication, QWidget, QGridLayout, QCheckBox, QLineEdit, QLabel from . import menus, io, merge, views, buttons, classgui, traces, graphics, masks from .. import run_s2p, default_ops diff --git a/suite2p/gui/io.py b/suite2p/gui/io.py index 23cab4cf..4c89f5d9 100644 --- a/suite2p/gui/io.py +++ b/suite2p/gui/io.py @@ -4,8 +4,8 @@ import os, time import numpy as np import scipy.io -from PyQt5 import QtGui -from PyQt5.QtWidgets import QFileDialog, QMessageBox +from qtpy import QtGui +from qtpy.QtWidgets import QFileDialog, QMessageBox from . import utils, masks, views, graphics, traces, classgui from .. import io diff --git a/suite2p/gui/masks.py b/suite2p/gui/masks.py index b9637f51..b9610cf6 100644 --- a/suite2p/gui/masks.py +++ b/suite2p/gui/masks.py @@ -5,8 +5,8 @@ import matplotlib.cm import numpy as np import pyqtgraph as pg -from PyQt5 import QtGui, QtCore -from PyQt5.QtWidgets import QPushButton, QButtonGroup, QLabel, QComboBox, QLineEdit +from qtpy import QtGui, QtCore +from qtpy.QtWidgets import QPushButton, QButtonGroup, QLabel, QComboBox, QLineEdit from matplotlib.colors import hsv_to_rgb import suite2p.gui.merge diff --git a/suite2p/gui/menus.py b/suite2p/gui/menus.py index 318ed3b0..db625bd4 100644 --- a/suite2p/gui/menus.py +++ b/suite2p/gui/menus.py @@ -1,8 +1,8 @@ """ Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ -from PyQt5 import QtGui -from PyQt5.QtWidgets import QAction, QMenu +from qtpy import QtGui +from qtpy.QtWidgets import QAction, QMenu from pkg_resources import iter_entry_points from . import reggui, drawroi, merge, io, rungui, visualize, classgui diff --git a/suite2p/gui/merge.py b/suite2p/gui/merge.py index a5291ac4..48bcf0b2 100644 --- a/suite2p/gui/merge.py +++ b/suite2p/gui/merge.py @@ -4,8 +4,8 @@ import os import numpy as np import pyqtgraph as pg -from PyQt5 import QtGui -from PyQt5.QtWidgets import QDialog, QLineEdit, QGridLayout, QMessageBox, QLabel, QPushButton, QWidget +from qtpy import QtGui +from qtpy.QtWidgets import QDialog, QLineEdit, QGridLayout, QMessageBox, QLabel, QPushButton, QWidget from scipy import stats from . import masks, io diff --git a/suite2p/gui/reggui.py b/suite2p/gui/reggui.py index 30e213cb..b37b048a 100644 --- a/suite2p/gui/reggui.py +++ b/suite2p/gui/reggui.py @@ -7,9 +7,9 @@ import numpy as np import pyqtgraph as pg -from PyQt5 import QtGui, QtCore -from PyQt5.QtWidgets import QStyle -from PyQt5.QtWidgets import QMainWindow, QGridLayout, QCheckBox, QLabel, QLineEdit, QSlider, QFileDialog, QPushButton, QToolButton, QButtonGroup, QWidget +from qtpy import QtGui, QtCore +from qtpy.QtWidgets import QStyle +from qtpy.QtWidgets import QMainWindow, QGridLayout, QCheckBox, QLabel, QLineEdit, QSlider, QFileDialog, QPushButton, QToolButton, QButtonGroup, QWidget from scipy.ndimage import gaussian_filter1d from natsort import natsorted from tifffile import imread diff --git a/suite2p/gui/rungui.py b/suite2p/gui/rungui.py index 601aba91..09d385c3 100644 --- a/suite2p/gui/rungui.py +++ b/suite2p/gui/rungui.py @@ -1,13 +1,13 @@ """ Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ -import glob, json, os, shutil, pathlib +import glob, json, os, shutil, pathlib, sys from datetime import datetime import numpy as np -from PyQt5 import QtGui, QtCore -from PyQt5.QtWidgets import QDialog, QLineEdit, QLabel, QPushButton, QWidget, QGridLayout, QButtonGroup, QComboBox, QTextEdit, QFileDialog +from qtpy import QtGui, QtCore +from qtpy.QtWidgets import QDialog, QLineEdit, QLabel, QPushButton, QWidget, QGridLayout, QButtonGroup, QComboBox, QTextEdit, QFileDialog from cellpose.models import get_user_models, model_path, MODEL_NAMES @@ -444,11 +444,14 @@ def run_S2P(self): shutil.copy(os.path.join(self.ops_path, "ops%d.npy" % self.f), ops_file) shutil.copy(os.path.join(self.ops_path, "db%d.npy" % self.f), db_file) self.db = np.load(db_file, allow_pickle=True).item() - print("Running suite2p!") - print("starting process") print(self.db) - self.process.start('python -u -W ignore -m suite2p --ops "%s" --db "%s"' % - (ops_file, db_file)) + print("Running suite2p with command:") + cmd = f"-u -W ignore -m suite2p --ops {ops_file} --db {db_file}" + print("python " + cmd) + self.process.start(sys.executable, cmd.split(" ")) + + #self.process.start('python -u -W ignore -m suite2p --ops "%s" --db "%s"' % + # (ops_file, db_file)) def stop(self): self.finish = False diff --git a/suite2p/gui/traces.py b/suite2p/gui/traces.py index 980bd3ee..a4b2ce2d 100644 --- a/suite2p/gui/traces.py +++ b/suite2p/gui/traces.py @@ -2,8 +2,8 @@ Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import numpy as np -from PyQt5 import QtGui, QtCore -from PyQt5.QtWidgets import QLabel, QComboBox, QPushButton, QLineEdit, QCheckBox +from qtpy import QtGui, QtCore +from qtpy.QtWidgets import QLabel, QComboBox, QPushButton, QLineEdit, QCheckBox def plot_trace(parent): diff --git a/suite2p/gui/views.py b/suite2p/gui/views.py index 22edc232..ce1c8fcc 100644 --- a/suite2p/gui/views.py +++ b/suite2p/gui/views.py @@ -2,9 +2,9 @@ Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import numpy as np -from PyQt5 import QtGui, QtCore -from PyQt5.QtWidgets import QPushButton, QSlider, QButtonGroup, QLabel, QStyle, QStyleOptionSlider, QApplication -from PyQt5.QtGui import QPainter +from qtpy import QtGui, QtCore +from qtpy.QtWidgets import QPushButton, QSlider, QButtonGroup, QLabel, QStyle, QStyleOptionSlider, QApplication +from qtpy.QtGui import QPainter from .. import extraction diff --git a/suite2p/gui/visualize.py b/suite2p/gui/visualize.py index d8dc969a..3cab2848 100644 --- a/suite2p/gui/visualize.py +++ b/suite2p/gui/visualize.py @@ -6,9 +6,9 @@ import numpy as np import pyqtgraph as pg -from PyQt5 import QtGui, QtCore -from PyQt5.QtWidgets import QStyle -from PyQt5.QtWidgets import QWidget, QSlider, QMainWindow, QGridLayout, QStyleOptionSlider, QApplication, QLabel, QLineEdit, QPushButton, QComboBox, QCheckBox +from qtpy import QtGui, QtCore +from qtpy.QtWidgets import QStyle +from qtpy.QtWidgets import QWidget, QSlider, QMainWindow, QGridLayout, QStyleOptionSlider, QApplication, QLabel, QLineEdit, QPushButton, QComboBox, QCheckBox from matplotlib import cm from rastermap.rastermap import Rastermap from scipy.ndimage import gaussian_filter1d @@ -634,8 +634,8 @@ def activate(self): #model = np.load(os.path.join(parent.ops["save_path0"], "embedding.npy")) #model = np.load("embedding.npy", allow_pickle=True).item() self.isort1 = np.argsort(self.model.embedding[:, 0]) - self.u = self.model.u - self.v = self.model.v + self.Usv = self.model.Usv + self.Vsv = self.model.Vsv self.comboBox.addItem("rastermap") #self.isort1, self.isort2 = mapping.main(self.sp,None,self.u,self.sv,self.v) @@ -678,19 +678,16 @@ def compute_map(self): self.mapOn.setEnabled(False) self.tic = time.time() try: - self.model = Rastermap(n_components=ops["n_components"], n_X=ops["n_X"], - nPC=ops["nPC"], init=ops["init"], alpha=ops["alpha"], - K=ops["K"], constraints=ops["constraints"], - annealing=ops["annealing"]) + self.model = Rastermap() self.model.fit(self.sp) #proc = {"embedding": model.embedding, "uv": [model.u, model.v], # "ops": ops, "filename": args.S, "train_time": train_time} #basename, fname = os.path.split(args.S) #np.save(os.path.join(basename, "embedding.npy"), proc) - print("raster map computed in %3.2f s" % (time.time() - self.tic)) self.activate() - except: + except Exception as e: print("Rastermap issue: Interrupted by error (not finished)\n") + print(e) #self.process.start("python -u -W ignore -m rastermap --S %s --ops %s"% # (spath, opspath)) @@ -740,13 +737,9 @@ def sort_time(self): "end_time": -1 } if not hasattr(self, "isort2"): - self.model = Rastermap(n_components=ops["n_components"], - n_X=ops["n_X"], nPC=ops["nPC"], - init=ops["init"], alpha=ops["alpha"], - K=ops["K"], constraints=ops["constraints"], - annealing=ops["annealing"]) - unorm = (self.u**2).sum(axis=0)**0.5 - self.model.fit(self.sp.T, u=self.v * unorm, v=self.u / unorm) + self.model = Rastermap() + #unorm = (self.u**2).sum(axis=0)**0.5 + self.model.fit(self.sp.T, Usv=self.Vsv, Vsv=self.Usv) self.isort2 = np.argsort(self.model.embedding[:, 0]) self.tsort = self.isort2.astype(np.int32) else: @@ -755,7 +748,7 @@ def sort_time(self): def neural_sorting(self, i): if i == 0: - self.isort = np.argsort(self.u[:, int(self.PCedit.text()) - 1]) + self.isort = np.argsort(self.Usv[:, int(self.PCedit.text()) - 1]) elif i == 1: self.isort = self.isort1 if i < 2: From 779709c1b28c2f9ffa7304c291d374ceaa64a97f Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 6 Aug 2023 12:52:28 -0400 Subject: [PATCH 2/3] updating readme and fixing spelling error in copyright --- README.md | 41 ++++++---------------------- suite2p/__init__.py | 2 +- suite2p/__main__.py | 2 +- suite2p/classification/__init__.py | 2 +- suite2p/classification/classifier.py | 2 +- suite2p/classification/classify.py | 2 +- suite2p/default_ops.py | 2 +- suite2p/detection/__init__.py | 2 +- suite2p/detection/anatomical.py | 2 +- suite2p/detection/chan2detect.py | 2 +- suite2p/detection/denoise.py | 2 +- suite2p/detection/detect.py | 2 +- suite2p/detection/metrics.py | 2 +- suite2p/detection/sourcery.py | 2 +- suite2p/detection/sparsedetect.py | 2 +- suite2p/detection/stats.py | 2 +- suite2p/detection/utils.py | 2 +- suite2p/extraction/__init__.py | 2 +- suite2p/extraction/dcnv.py | 2 +- suite2p/extraction/extract.py | 2 +- suite2p/extraction/masks.py | 2 +- suite2p/gui/__init__.py | 2 +- suite2p/gui/buttons.py | 2 +- suite2p/gui/classgui.py | 2 +- suite2p/gui/drawroi.py | 2 +- suite2p/gui/graphics.py | 2 +- suite2p/gui/gui2p.py | 2 +- suite2p/gui/io.py | 2 +- suite2p/gui/masks.py | 2 +- suite2p/gui/menus.py | 2 +- suite2p/gui/merge.py | 2 +- suite2p/gui/reggui.py | 2 +- suite2p/gui/rungui.py | 2 +- suite2p/gui/traces.py | 2 +- suite2p/gui/utils.py | 2 +- suite2p/gui/views.py | 2 +- suite2p/gui/visualize.py | 2 +- suite2p/io/__init__.py | 2 +- suite2p/io/binary.py | 2 +- suite2p/io/h5.py | 2 +- suite2p/io/nd2.py | 2 +- suite2p/io/nwb.py | 2 +- suite2p/io/save.py | 2 +- suite2p/io/sbx.py | 2 +- suite2p/io/server.py | 2 +- suite2p/io/tiff.py | 2 +- suite2p/io/utils.py | 2 +- suite2p/ops/clean.py | 2 +- suite2p/registration/__init__.py | 2 +- suite2p/registration/bidiphase.py | 2 +- suite2p/registration/metrics.py | 2 +- suite2p/registration/nonrigid.py | 2 +- suite2p/registration/register.py | 2 +- suite2p/registration/rigid.py | 2 +- suite2p/registration/utils.py | 2 +- suite2p/registration/zalign.py | 2 +- suite2p/run_s2p.py | 2 +- suite2p/version.py | 2 +- 58 files changed, 66 insertions(+), 89 deletions(-) diff --git a/README.md b/README.md index e36f0d5d..62b07906 100644 --- a/README.md +++ b/README.md @@ -27,10 +27,9 @@ suite2p includes the following modules: This code was written by Carsen Stringer and Marius Pachitariu. For support, please open an [issue](https://github.com/MouseLand/suite2p/issues). -The reference paper is [here](https://www.biorxiv.org/content/early/2017/07/20/061507). -The deconvolution algorithm is based on [this paper](https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005423), with settings based on [this paper](http://www.jneurosci.org/content/early/2018/08/06/JNEUROSCI.3339-17.2018). +The reference paper is [here](https://www.biorxiv.org/content/early/2017/07/20/061507). The deconvolution algorithm is based on [this paper](https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005423), with settings based on [this paper](http://www.jneurosci.org/content/early/2018/08/06/JNEUROSCI.3339-17.2018). -You can now run suite2p in google colab, no need to locally install: [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/MouseLand/suite2p/blob/main/jupyter/run_suite2p_colab_2021.ipynb). Note you do not have access to the GUI via google colab, but you can download the processed files and view them locally in the GUI. +You can now run suite2p in google colab, no need to locally install (although we recommend doing so eventually): [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/MouseLand/suite2p/blob/main/jupyter/run_suite2p_colab_2021.ipynb). Note you do not have access to the GUI via google colab, but you can download the processed files and view them locally in the GUI. See this **twitter [thread](https://twitter.com/marius10p/status/1032804776633880583)** for GUI demonstrations. @@ -47,9 +46,8 @@ Pachitariu, M., Stringer, C., Schröder, S., Dipoppa, M., Rossi, L. F., Carandin ## Read the Documentation at https://suite2p.readthedocs.io/ -## Installation +## Local installation -### Installation for Linux, Windows, and MacOS (intel processors) machines 1. Install an [Anaconda](https://www.anaconda.com/download/) distribution of Python -- Choose **Python 3.8** and your operating system. Note you might need to use an anaconda prompt if you did not add anaconda to the path. 2. Open an anaconda prompt / command prompt with `conda` for **python 3** in the path 3. Create a new environment with `conda create --name suite2p python=3.9`. @@ -61,8 +59,6 @@ Pachitariu, M., Stringer, C., Schröder, S., Dipoppa, M., Rossi, L. F., Carandin For additional dependencies, like h5py, NWB, Scanbox, and server job support, use the command `python -m pip install suite2p[io]`. -We recommend installing ScanImage Tiff Reader with `pip install scanimage-tiff-reader`. - If you have an older `suite2p` environment you can remove it with `conda env remove -n suite2p` before creating a new one. Note you will always have to run **conda activate suite2p** before you run suite2p. Conda ensures mkl_fft and numba run correctly and quickly on your machine. If you want to run jupyter notebooks in this environment, then also `conda install jupyter`. @@ -72,11 +68,11 @@ To **upgrade** the suite2p (package [here](https://pypi.org/project/suite2p/)), pip install --upgrade suite2p ~~~~ -### Installation for Macs with Apple Silicon chips (e.g., M1) -1. Follow steps 1 & 2 in the installation section [above](#installation_section) to install anaconda. -2. Use the following command `CONDA_SUBDIR=osx-64 conda create --name suite2p python=3.9` -3. Follow steps 4-7 in the installation section [above](#installation_section) to install the `suite2p` package. +### Dependencies + +This package relies on the awesomeness of [pyqtgraph](http://pyqtgraph.org/), [PyQt6](http://pyqt.sourceforge.net/Docs/PyQt6/), [torch](http://pytorch.org), [numpy](http://www.numpy.org/), [numba](http://numba.pydata.org/numba-doc/latest/user/5minguide.html), [scanimage-tiff-reader](https://vidriotech.gitlab.io/scanimagetiffreader-python/), [scipy](https://www.scipy.org/), [scikit-learn](http://scikit-learn.org/stable/), [tifffile](https://pypi.org/project/tifffile/), [natsort](https://natsort.readthedocs.io/en/master/), and our neural visualization tool [rastermap](https://github.com/MouseLand/rastermap). You can pip install or conda install all of these packages. If having issues with PyQt6, then try to install within it conda install pyqt. On Ubuntu you may need to `sudo apt-get install libegl1` to support PyQt6. Alternatively, you can use PyQt5 by running `pip uninstall PyQt6` and `pip install PyQt5`. If you already have a PyQt version installed, suite2p will not install a new one. +The software has been heavily tested on Windows 10 and Ubuntu 18.04, and less well tested on Mac OS. Please post an [issue](https://github.com/MouseLand/suite2p/issues) if you have installation problems. ### Installing the latest github version of the code @@ -89,13 +85,8 @@ If you want to download and edit the code, and use that version, 1. Clone the repository with git and `cd suite2p` 2. Run `pip install -e .` in that folder -**Common issues** - -If you are on Yosemite Mac OS, PyQt doesn't work, and you won't be able to install suite2p. More recent versions of Mac OS are fine. -The software has been heavily tested on Windows 10 and Ubuntu 18.04, and less well tested on Mac OS. Please post an issue if you have installation problems. The registration step runs faster on Ubuntu than Windows, so if you have a choice we recommend using the Ubuntu OS. - -## Installation for developers +### Installation for developers 1. Clone the repository and `cd suite2p` in an anaconda prompt / command prompt with `conda` for **python 3** in the path 2. Run `conda env create --name suite2p` @@ -167,7 +158,7 @@ from suite2p.run_s2p import run_s2p ops1 = run_s2p(ops, db) ~~~~ -See our example jupyter notebook [here](jupyter/run_pipeline_tiffs_or_batch.ipynb). It also explains how to batch-run suite2p. +See our example jupyter notebook [here](https://github.com/MouseLand/suite2p/blob/main/jupyter/run_suite2p_colab_2023.ipynb). ## Outputs @@ -180,19 +171,5 @@ ops.npy: options and intermediate outputs iscell.npy: specifies whether an ROI is a cell, first column is 0/1, and second column is probability that the ROI is a cell based on the default classifier ~~~~ -## Dependencies -suite2p relies on the following excellent packages (which are automatically installed with conda/pip if missing): -- [rastermap](https://github.com/MouseLand/rastermap) -- [pyqtgraph](http://pyqtgraph.org/) -- [PyQt5](http://pyqt.sourceforge.net/Docs/PyQt5/) -- [torch](http://pytorch.org) -- [numpy](http://www.numpy.org/) (>=1.16.0) -- [numba](http://numba.pydata.org/numba-doc/latest/user/5minguide.html) -- [scanimage-tiff-reader](https://vidriotech.gitlab.io/scanimagetiffreader-python/) -- [scipy](https://www.scipy.org/) -- [scikit-learn](http://scikit-learn.org/stable/) -- [tifffile](https://pypi.org/project/tifffile/) -- [natsort](https://natsort.readthedocs.io/en/master/) - ### Logo Logo was designed by Shelby Stringer and [Chris Czaja](http://chrisczaja.com/). diff --git a/suite2p/__init__.py b/suite2p/__init__.py index 2fa352e5..e4b8c622 100644 --- a/suite2p/__init__.py +++ b/suite2p/__init__.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ from .version import version from .default_ops import default_ops diff --git a/suite2p/__main__.py b/suite2p/__main__.py index 59f7c5c9..045feda8 100644 --- a/suite2p/__main__.py +++ b/suite2p/__main__.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import argparse import numpy as np diff --git a/suite2p/classification/__init__.py b/suite2p/classification/__init__.py index 84b68e9a..8cdc1eb1 100644 --- a/suite2p/classification/__init__.py +++ b/suite2p/classification/__init__.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ from .classifier import Classifier from .classify import classify, builtin_classfile, user_classfile \ No newline at end of file diff --git a/suite2p/classification/classifier.py b/suite2p/classification/classifier.py index c9c24703..f8a45ca5 100644 --- a/suite2p/classification/classifier.py +++ b/suite2p/classification/classifier.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import numpy as np from scipy.ndimage import gaussian_filter diff --git a/suite2p/classification/classify.py b/suite2p/classification/classify.py index 73b6bc17..cdf62d68 100644 --- a/suite2p/classification/classify.py +++ b/suite2p/classification/classify.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import numpy as np from pathlib import Path diff --git a/suite2p/default_ops.py b/suite2p/default_ops.py index 80c907ee..380408ef 100644 --- a/suite2p/default_ops.py +++ b/suite2p/default_ops.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ from .version import version diff --git a/suite2p/detection/__init__.py b/suite2p/detection/__init__.py index 982ca0f5..bb97b8fa 100644 --- a/suite2p/detection/__init__.py +++ b/suite2p/detection/__init__.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ from .detect import detect, detection_wrapper, bin_movie from .stats import roi_stats, ROI \ No newline at end of file diff --git a/suite2p/detection/anatomical.py b/suite2p/detection/anatomical.py index 2872c1cc..93178317 100644 --- a/suite2p/detection/anatomical.py +++ b/suite2p/detection/anatomical.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import numpy as np from typing import Any, Dict diff --git a/suite2p/detection/chan2detect.py b/suite2p/detection/chan2detect.py index d9a47679..de34cf3b 100644 --- a/suite2p/detection/chan2detect.py +++ b/suite2p/detection/chan2detect.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import numpy as np from scipy.ndimage import gaussian_filter diff --git a/suite2p/detection/denoise.py b/suite2p/detection/denoise.py index 58787c7d..6eaef7a5 100644 --- a/suite2p/detection/denoise.py +++ b/suite2p/detection/denoise.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import numpy as np from typing import List diff --git a/suite2p/detection/detect.py b/suite2p/detection/detect.py index 3e7089d7..70d11304 100644 --- a/suite2p/detection/detect.py +++ b/suite2p/detection/detect.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import time import numpy as np diff --git a/suite2p/detection/metrics.py b/suite2p/detection/metrics.py index cc9319d7..3201cb2e 100644 --- a/suite2p/detection/metrics.py +++ b/suite2p/detection/metrics.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import time import numpy as np diff --git a/suite2p/detection/sourcery.py b/suite2p/detection/sourcery.py index 308658e0..75886cb6 100644 --- a/suite2p/detection/sourcery.py +++ b/suite2p/detection/sourcery.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import math import time diff --git a/suite2p/detection/sparsedetect.py b/suite2p/detection/sparsedetect.py index 2fd20be2..9b718f51 100644 --- a/suite2p/detection/sparsedetect.py +++ b/suite2p/detection/sparsedetect.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ from typing import Tuple, Dict, List, Any from copy import deepcopy diff --git a/suite2p/detection/stats.py b/suite2p/detection/stats.py index d6a9832d..a21b82ae 100644 --- a/suite2p/detection/stats.py +++ b/suite2p/detection/stats.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ from __future__ import annotations diff --git a/suite2p/detection/utils.py b/suite2p/detection/utils.py index cccb8094..b5d5cecb 100644 --- a/suite2p/detection/utils.py +++ b/suite2p/detection/utils.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import numpy as np from numba import jit diff --git a/suite2p/extraction/__init__.py b/suite2p/extraction/__init__.py index e0e88056..a3f53115 100644 --- a/suite2p/extraction/__init__.py +++ b/suite2p/extraction/__init__.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ from .dcnv import preprocess, oasis from .extract import create_masks_and_extract, enhanced_mean_image, extract_traces_from_masks, extraction_wrapper diff --git a/suite2p/extraction/dcnv.py b/suite2p/extraction/dcnv.py index 524a825e..45d8f55c 100644 --- a/suite2p/extraction/dcnv.py +++ b/suite2p/extraction/dcnv.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import numpy as np from numba import njit, prange diff --git a/suite2p/extraction/extract.py b/suite2p/extraction/extract.py index 49914397..8a509345 100644 --- a/suite2p/extraction/extract.py +++ b/suite2p/extraction/extract.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import os import time diff --git a/suite2p/extraction/masks.py b/suite2p/extraction/masks.py index f3941093..ba1cc22e 100644 --- a/suite2p/extraction/masks.py +++ b/suite2p/extraction/masks.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ from typing import List, Tuple, Dict, Any from itertools import count diff --git a/suite2p/gui/__init__.py b/suite2p/gui/__init__.py index 1b3469a5..0af7de0f 100644 --- a/suite2p/gui/__init__.py +++ b/suite2p/gui/__init__.py @@ -1,4 +1,4 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ from .gui2p import run \ No newline at end of file diff --git a/suite2p/gui/buttons.py b/suite2p/gui/buttons.py index de7920f2..c5d48e78 100644 --- a/suite2p/gui/buttons.py +++ b/suite2p/gui/buttons.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import numpy as np from qtpy import QtGui, QtCore diff --git a/suite2p/gui/classgui.py b/suite2p/gui/classgui.py index 062d707b..3838fa50 100644 --- a/suite2p/gui/classgui.py +++ b/suite2p/gui/classgui.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import os import shutil diff --git a/suite2p/gui/drawroi.py b/suite2p/gui/drawroi.py index c3693de3..90e70783 100644 --- a/suite2p/gui/drawroi.py +++ b/suite2p/gui/drawroi.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import os import time diff --git a/suite2p/gui/graphics.py b/suite2p/gui/graphics.py index 33984129..5fe0ef67 100644 --- a/suite2p/gui/graphics.py +++ b/suite2p/gui/graphics.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import numpy as np import pyqtgraph as pg diff --git a/suite2p/gui/gui2p.py b/suite2p/gui/gui2p.py index b7b96e0f..a1d4e0c6 100644 --- a/suite2p/gui/gui2p.py +++ b/suite2p/gui/gui2p.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import os, pathlib, shutil, sys, warnings diff --git a/suite2p/gui/io.py b/suite2p/gui/io.py index 4c89f5d9..5bcc74db 100644 --- a/suite2p/gui/io.py +++ b/suite2p/gui/io.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import os, time import numpy as np diff --git a/suite2p/gui/masks.py b/suite2p/gui/masks.py index b9610cf6..41bdb47f 100644 --- a/suite2p/gui/masks.py +++ b/suite2p/gui/masks.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ from pathlib import Path import matplotlib.cm diff --git a/suite2p/gui/menus.py b/suite2p/gui/menus.py index db625bd4..29c8fe60 100644 --- a/suite2p/gui/menus.py +++ b/suite2p/gui/menus.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ from qtpy import QtGui from qtpy.QtWidgets import QAction, QMenu diff --git a/suite2p/gui/merge.py b/suite2p/gui/merge.py index 48bcf0b2..cdb713db 100644 --- a/suite2p/gui/merge.py +++ b/suite2p/gui/merge.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import os import numpy as np diff --git a/suite2p/gui/reggui.py b/suite2p/gui/reggui.py index b37b048a..12e687ec 100644 --- a/suite2p/gui/reggui.py +++ b/suite2p/gui/reggui.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ # heavily modified script from a pyqt4 release import os diff --git a/suite2p/gui/rungui.py b/suite2p/gui/rungui.py index 09d385c3..3ec519e7 100644 --- a/suite2p/gui/rungui.py +++ b/suite2p/gui/rungui.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import glob, json, os, shutil, pathlib, sys from datetime import datetime diff --git a/suite2p/gui/traces.py b/suite2p/gui/traces.py index a4b2ce2d..fd6a587b 100644 --- a/suite2p/gui/traces.py +++ b/suite2p/gui/traces.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import numpy as np from qtpy import QtGui, QtCore diff --git a/suite2p/gui/utils.py b/suite2p/gui/utils.py index 44ebccbc..80293ea5 100644 --- a/suite2p/gui/utils.py +++ b/suite2p/gui/utils.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import numpy as np from scipy.ndimage.morphology import binary_dilation, binary_fill_holes diff --git a/suite2p/gui/views.py b/suite2p/gui/views.py index ce1c8fcc..391c281e 100644 --- a/suite2p/gui/views.py +++ b/suite2p/gui/views.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import numpy as np from qtpy import QtGui, QtCore diff --git a/suite2p/gui/visualize.py b/suite2p/gui/visualize.py index 3cab2848..d11ed7d3 100644 --- a/suite2p/gui/visualize.py +++ b/suite2p/gui/visualize.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import sys import time diff --git a/suite2p/io/__init__.py b/suite2p/io/__init__.py index affdfacd..1b8dbe3a 100644 --- a/suite2p/io/__init__.py +++ b/suite2p/io/__init__.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ from .h5 import h5py_to_binary from .nwb import save_nwb, read_nwb, nwb_to_binary diff --git a/suite2p/io/binary.py b/suite2p/io/binary.py index e5843c71..2254f46c 100644 --- a/suite2p/io/binary.py +++ b/suite2p/io/binary.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ from typing import Optional, Tuple, Sequence from contextlib import contextmanager diff --git a/suite2p/io/h5.py b/suite2p/io/h5.py index 95d1ab3b..fbfe53e8 100644 --- a/suite2p/io/h5.py +++ b/suite2p/io/h5.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import math diff --git a/suite2p/io/nd2.py b/suite2p/io/nd2.py index e8a8bbac..7a2c722b 100644 --- a/suite2p/io/nd2.py +++ b/suite2p/io/nd2.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import os import gc diff --git a/suite2p/io/nwb.py b/suite2p/io/nwb.py index 97b044fd..1f009764 100644 --- a/suite2p/io/nwb.py +++ b/suite2p/io/nwb.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import datetime import gc diff --git a/suite2p/io/save.py b/suite2p/io/save.py index 08eb7fcf..74e20b4e 100644 --- a/suite2p/io/save.py +++ b/suite2p/io/save.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import os from natsort import natsorted diff --git a/suite2p/io/sbx.py b/suite2p/io/sbx.py index 693e60aa..bd1e1ce5 100644 --- a/suite2p/io/sbx.py +++ b/suite2p/io/sbx.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import os diff --git a/suite2p/io/server.py b/suite2p/io/server.py index 951eb3f7..da4c9c95 100644 --- a/suite2p/io/server.py +++ b/suite2p/io/server.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import sys, os, time, glob from pathlib import Path diff --git a/suite2p/io/tiff.py b/suite2p/io/tiff.py index 178c7591..bd3a7ee3 100644 --- a/suite2p/io/tiff.py +++ b/suite2p/io/tiff.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import gc import glob diff --git a/suite2p/io/utils.py b/suite2p/io/utils.py index e812f623..32590265 100644 --- a/suite2p/io/utils.py +++ b/suite2p/io/utils.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import glob import os diff --git a/suite2p/ops/clean.py b/suite2p/ops/clean.py index 19f8312b..e91c7275 100644 --- a/suite2p/ops/clean.py +++ b/suite2p/ops/clean.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import argparse diff --git a/suite2p/registration/__init__.py b/suite2p/registration/__init__.py index 76844f97..b3ae9a00 100644 --- a/suite2p/registration/__init__.py +++ b/suite2p/registration/__init__.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ from .register import (registration_wrapper, save_registration_outputs_to_ops, compute_enhanced_mean_image) diff --git a/suite2p/registration/bidiphase.py b/suite2p/registration/bidiphase.py index be5cdba0..5a15326e 100644 --- a/suite2p/registration/bidiphase.py +++ b/suite2p/registration/bidiphase.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import numpy as np from numpy import fft diff --git a/suite2p/registration/metrics.py b/suite2p/registration/metrics.py index 73697e84..cb56dfac 100644 --- a/suite2p/registration/metrics.py +++ b/suite2p/registration/metrics.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ from multiprocessing import Pool diff --git a/suite2p/registration/nonrigid.py b/suite2p/registration/nonrigid.py index 593031cf..ae080996 100644 --- a/suite2p/registration/nonrigid.py +++ b/suite2p/registration/nonrigid.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import warnings from typing import Tuple diff --git a/suite2p/registration/register.py b/suite2p/registration/register.py index a2af254f..7b4cf347 100644 --- a/suite2p/registration/register.py +++ b/suite2p/registration/register.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import time from os import path diff --git a/suite2p/registration/rigid.py b/suite2p/registration/rigid.py index 94b4f452..12d63db3 100644 --- a/suite2p/registration/rigid.py +++ b/suite2p/registration/rigid.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ from typing import Tuple diff --git a/suite2p/registration/utils.py b/suite2p/registration/utils.py index 77804133..cc49569e 100644 --- a/suite2p/registration/utils.py +++ b/suite2p/registration/utils.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import warnings from functools import lru_cache diff --git a/suite2p/registration/zalign.py b/suite2p/registration/zalign.py index aa2db566..b9df99b6 100644 --- a/suite2p/registration/zalign.py +++ b/suite2p/registration/zalign.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import os import time diff --git a/suite2p/run_s2p.py b/suite2p/run_s2p.py index 02206802..45e51689 100644 --- a/suite2p/run_s2p.py +++ b/suite2p/run_s2p.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ import os import shutil diff --git a/suite2p/version.py b/suite2p/version.py index dcf14e20..087f1527 100644 --- a/suite2p/version.py +++ b/suite2p/version.py @@ -1,5 +1,5 @@ """ -Copright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. +Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu. """ from importlib_metadata import metadata as _metadata From 8304f596c83f894e99f3f030fef8e12a38a84f44 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 6 Aug 2023 12:53:39 -0400 Subject: [PATCH 3/3] adding license notice --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 62b07906..a879b58a 100644 --- a/README.md +++ b/README.md @@ -171,5 +171,11 @@ ops.npy: options and intermediate outputs iscell.npy: specifies whether an ROI is a cell, first column is 0/1, and second column is probability that the ROI is a cell based on the default classifier ~~~~ +# License + +Copyright (C) 2023 Howard Hughes Medical Institute Janelia Research Campus, the labs of Carsen Stringer and Marius Pachitariu. + +**This code is licensed under GPL v3 (no redistribution without credit, and no redistribution in private repos, see the [license](LICENSE) for more details).** + ### Logo Logo was designed by Shelby Stringer and [Chris Czaja](http://chrisczaja.com/).