suite2p icon indicating copy to clipboard operation
suite2p copied to clipboard

Cellpose error and out of memory error in suite2p 0.10.3

Open ziyizhu1996 opened this issue 2 years ago • 4 comments

Describe the issue:

When running suite2p 0.10.3 with green functional channel (chan1) and red structural channel (chan2), ROI detection based on green gcamp and anatomical_only set to 0, suite2p still tries to segment red ROIs using cellpose, but it gives an error:

CELLPOSE estimating masks in anatomical channel 1102 masks detected, median diameter = 10.22 ERROR importing or running cellpose, continuing without anatomical estimates

Further more, after that, suite2p tries to save some incredibly large data (asking for 40GB of memory allocation, while my imaging data is only 4GB with 2000 frames).

Reproduce the code example:

python -m suite2p

Error message:

ERROR importing or running cellpose, continuing without anatomical estimates
>>>ERROR<<<
Traceback (most recent call last):
  File "C:\Users\zzhu34\AppData\Local\Continuum\anaconda3\envs\suite2p\lib\runpy.py", line 194, in _run_module_as_main
>>>ERROR<<<
    return _run_code(code, main_globals, None,
  File "C:\Users\zzhu34\AppData\Local\Continuum\anaconda3\envs\suite2p\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Users\zzhu34\AppData\Local\Continuum\anaconda3\envs\suite2p\lib\site-packages\suite2p\__main__.py", line 78, in <module>
    main()
  File "C:\Users\zzhu34\AppData\Local\Continuum\anaconda3\envs\suite2p\lib\site-packages\suite2p\__main__.py", line 71, in main
    run_s2p(ops, db)
  File "C:\Users\zzhu34\AppData\Local\Continuum\anaconda3\envs\suite2p\lib\site-packages\suite2p\run_s2p.py", line 448, in run_s2p
    op = run_plane(op, ops_path=ops_path)
  File "C:\Users\zzhu34\AppData\Local\Continuum\anaconda3\envs\suite2p\lib\site-packages\suite2p\run_s2p.py", line 245, in run_plane
    ops, stat = detection.detect(ops=ops, classfile=classfile)
  File "C:\Users\zzhu34\AppData\Local\Continuum\anaconda3\envs\suite2p\lib\site-packages\suite2p\detection\detect.py", line 84, in detect
    ops, redcell = chan2detect.detect(ops, stat)
  File "C:\Users\zzhu34\AppData\Local\Continuum\anaconda3\envs\suite2p\lib\site-packages\suite2p\detection\chan2detect.py", line 105, in detect
    redstats = intensity_ratio(ops, stats)
  File "C:\Users\zzhu34\AppData\Local\Continuum\anaconda3\envs\suite2p\lib\site-packages\suite2p\detection\chan2detect.py", line 65, in intensity_ratio
    inpix = cell_masks @ mimg2.flatten()
numpy.core._exceptions.MemoryError: Unable to allocate 40.6 GiB for an array with shape (3202, 1700864) and data type float64
Interrupted by error (not finished)

Version information:

suite2p 0.10.3 cellpose 2.2

Context for the issue:

No response

ziyizhu1996 avatar Jan 18 '23 22:01 ziyizhu1996

it seems like your images are fairly big (1300 x 1300)? so this operation needs to be done in a loop

carsen-stringer avatar May 14 '23 02:05 carsen-stringer

Yep this is from a mesoscope recording with multiple ROIs. Seems to have this issue with all my large recordings so makes sense.

ziyizhu1996 avatar May 14 '23 20:05 ziyizhu1996

In the meantime before this is fixed, you should run each ROI separately, I would recommend this regardless as this will make registration better as well. You can use this script: https://github.com/MouseLand/suite2p/blob/main/helpers/mesoscope_json_from_scanimage.m

carsen-stringer avatar May 14 '23 20:05 carsen-stringer

that's cool. that's what I figured I should be doing. Thank you!

ziyizhu1996 avatar May 15 '23 15:05 ziyizhu1996