文章目录
- CalmAn简介
- 安装要求
- 我的设备
- 1>CalmAn压缩包解压
- 2>conda创建虚拟环境
- 3>requirements依赖包配置(包括tensorflow)
- 4>caiman安装(mamba install)
- 5>caimanmanager.py install
- 6>PyCharm添加解释器
- 7>Demo演示
- 8>遇到的问题
CalmAn简介
CalmAn是一个用于大规模钙成像数据分析和行为分析的Python工具箱。
CaImAn实施了大规模钙成像数据分析管道中所需的一套基本方法。针对多天的运动校正、源提取、尖峰反褶积和分量配准,实现了快速且可扩展的算法。它适用于双光子和单光子荧光显微镜数据,可以在批处理和在线模式下运行;CaImAn还包含一些分析摄像机行为的例程。
GitHub仓:flatironinstitute/CaImAn
安装要求
目前,CaImAn在以下平台上运行并受支持:
64位x86 CPU上的Linux
64位x86 CPU上的MacOS
64位x86 CPU上的Windows
良好的体验需要32G RAM或更大的RAM。
CaImAn目前以Python 3.9为目标。CaImAn的一部分是用C++编写的,但除了可能在安装期间之外,这对用户来说是不可见的。
在Matlab中还有一个较旧的CaImAn实现(不支持,该版本可用于MCMC尖峰推断)
我的设备
硬件配置:
1. Windows 10 专业版
2. RAM:224GB(这是台服务器,PC应该也问题不大)
3. 64位x86 CPU
软件配置:
安装CalmAn前我的设备已预装过以下软件:
1. python3.9.12(conda虚拟环境下输入conda info查看,或在pycharm解释器配置里预览)
2. PyCharm 2022 社区版
3. Anaconda Navigator(anaconda3, conda version4.12.0)
配置过程中主要参考的文档:
Github仓-Install部分
一些贡献者事先告诉你的坑,尤其是windows上运行
新版CaImAn自动安装脚本 解决conda solving environment卡死
所以未安装以上软件的读者,请先自行安装完毕方可进行下列操作,包括pip等基本常用包。
由于本人是配置完成后才写的这篇博客,且考虑到CalmAn的安装及配置教程很少,旨在分享和记录,不打算卸了重来一遍(万一再来一遍删错东西配坏了,很痛苦),所以步骤主要靠回忆,具体的指令可能会有偏差,但主体思路很清晰,遇到问题或报错,建议读者耐心追踪报错原因、查阅文档和资料思考解决问题。开发包配置都是这么踩坑过来的,长痛不如短痛…“一杯茶,一台机,一个环境配一天”
1>CalmAn压缩包解压
将GitHub仓中下载的.zip文件解压至适当的目录下(我的由于是服务器,C盘足够大且稳定就存在了默认位置)。
解压后得到以下文件:
注意,解压后请将caiman文件夹重命名,加一个s即可(改其他名应该也可行,配置时安装程序都能自动找到),否则使用conda配置时会遇到此类报错:
ImportError: cannot import name 'oasis' from partially initialized module 'caiman.source_extraction.cnmf' (most likely due to a circular import) (C:\Users\admin\CaImAn-master\caiman\source_extraction\cnmf\__init__.py)
解决方案就是刚才提到的,改文件名:
这应该是CalmAn开发贡献者那边没有注意过的一个bug,有兴趣的同学可以去GitHub仓提交issue反馈。因为更多人可能如GitHub里所介绍的一样,用linux平台或直接通过jupyter notebook使用CalmAn,想通过windows+PyCharm环境用起来就免不了出现很多问题。
各种配置报错,大概率是起源于版本冲突,有些模块安装要求严格,不能低于或高于python3.x.x-python3.x.x,需要自行查阅了解。
2>conda创建虚拟环境
用conda创建虚拟环境不难,第一次配环境的同学可能会看的有些迷瞪,用多了就好,
可以参考这篇:在anaconda中配置虚拟环境教程
或自己找些其他的教程均可。
(注意一定要将conda切换至国内镜像源,否则下载速度龟速而且总是掉链子,不懂怎么切换搜教程学就可以了,不难。)
主要步骤就是先在
1> conda里挑选一个合适的路径:
cd指令切换路径用法同cmd中一致,请自行查阅,不再赘述
然后
2> 创建虚拟环境(由于是虚拟环境,所以本地路径里是看不到的,不会有一个文件夹之类的东西)
conda create 环境名 python版本
3> 创建完毕后激活环境
activate 环境名
有了虚拟环境,之后需要用到的所有第三方库等任何东西都在环境里配就可以了。
3>requirements依赖包配置(包括tensorflow)
解压包中可以找到一个requirements.txt(gpu版的本篇没有用到,配的是cpu版),里面包含CalmAn需要用到的第三方库(其实不全,具体的Demo例程还要缺啥模块补啥模块)
我们将requirements.txt复制到虚拟环境所在的路径下(或用cd命令切换到requirements.txt所在的路径下,能找到requirements.txt即可),输入
pip install -r requirements.txt
耐心等待所有工具包安装完毕后即可。如遇到报错请自行查阅相关教程,如此类文档:
conda修改源、创建虚拟环境、配置requirements.txt设置环境
这里提一下pip install 和 conda install的区别:
conda和pip一般被认为是几乎相同的,毕竟目的和用法也没啥区别。但在实际使用中,往往将conda和pip一起使用。将 pip 与 conda 组合在一起的一个主要原因是,很多时候所需要安装的包只能通过pip 安装。
4>caiman安装(mamba install)
接下来到了重头戏,前面所做的一切工作只是为CalmAn这个工具包提供正常的工作环境,CalmAn本身也可以当成个包使用,它还需要caiman模块(没错,不是calman打错字了,就是叫caiman),通过Github中指定的mamba包安装(名字真的就是指黑曼巴,conda+mamba效率高,速度快):
安装mamba,用mamba在已创建的虚拟环境里再创建一个虚拟环境caiman:
mamba create -n caiman -c conda-forge caiman
激活新的虚拟环境caiman:
conda activate caiman
5>caimanmanager.py install
安装完所有的模块后,就可以正式install CalmAn了,需要进行.py install
执行python caimanmanager.py install
之前,先执行python setup.py install
一遍比较放心,
因为通常是要通过python setup.py install
来安装的。
具体步骤:1>同样是将整个解压包目录复制到虚拟环境所在的路径,我的是C:\Users\admin
所以再输入cd C:\Users\admin\CaImAn-master
就可进入到setup.py和caimanmanager.py所在的路径
2>在虚拟环境caiman中先输入python setup.py install
3>待执行完毕后,再输入python caimanmanager.py install
,注意此时的CaImAn-master解压包内的caiman文件夹一定要像之前说的改名,否则没法正常install。
执行完毕后,CaImAn-master所在的路径下会生成一个caiman_data文件夹,这与GitHub上的简介一致:
6>PyCharm添加解释器
具体怎么添加解释器就不多说了,网上能搜到很多教程。
在PyCharm设置中的小扳手里找到解释器,选择conda配置好的虚拟环境caiman中的python3.9,
可以预览到之前requirements.txt需要的包都已经安装上了。
7>Demo演示
在caiman_data文件夹或CaImAn-master解压包内的demos文件夹中可以找到general文件夹
和notebooks文件夹
,general里存放的是一些可以直接在PyCharm里演示的.py格式Demo,如demo_caiman_basic.py:
而notebook中的都是.ipynb格式,需要在conda里输入jupyter notebook
打开,在jupyter notebook中运行,也可通过jupyter notebook将其转换为.py格式放在PyCharm中运行(转化步骤自行搜索,如Jupyter Notebook介绍、安装及使用教程&&.ipynb文件转化为.py文件)
由于一些Demo里的数据集可能要在线下载,PyCharm里没有设置镜像源的话外网速度很慢,所以可以直接在jupyter notebook里阅读.ipynb实施脚本学习。
8>遇到的问题
- 有印象requirements.txt里少了Cython模块,后面.py install时还要用到,直接在conda的虚拟环境里输入
conda install cython
就可以; - 有些Demo里import了处理稀疏矩阵用的spams模块,但我尝试了多种方法,spams模块依旧安装不上,有人说只有linux上可以,我认为windows上也可以,但是需要更换conda的源,很麻烦,有安装成功的同学欢迎评论区留言给他人,分享互助避踩坑。