Python CalmAn(Calcium Imaging Analysis)神经生物学工具包安装及环境配置过程

本文主要是介绍Python CalmAn(Calcium Imaging Analysis)神经生物学工具包安装及环境配置过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • CalmAn简介
  • 安装要求
    • 我的设备
  • 1>CalmAn压缩包解压(caiman文件夹要改名)
  • 2>conda创建虚拟环境
  • 3>requirements依赖包配置(包括tensorflow)
  • 4>caiman安装(mamba install)
  • 5>caimanmanager.py install
  • 6>PyCharm添加解释器
  • 7>Demo演示
  • 8>遇到的问题

本篇完成了基于 Windows 10 + Python3.9对CalmAn工具包的环境配置,由于使用了Anaconda,所以PyCharm与Jupyter Notebook都是可以借助配置好的虚拟环境运行的。

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压缩包解压(caiman文件夹要改名)

将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,一旦版本不兼容就容易出问题,实际上Anaconda就是为此而生的,避免了很多配置时的不方便。

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文件夹(出现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实施脚本学习:
在这里插入图片描述
(Jupyter Notebook里数据集下载速度很快,同样是配置好的虚拟环境,不知道为什么PyCharm里不行,懂的同学可以留言评论区,感谢分享!)
在这里插入图片描述
在这里插入图片描述
启动步骤:
1> 按顺序依次激活两个虚拟环境,进入配置好的caiman环境里:
在这里插入图片描述
2> cd命令切换至CalmAn中Demos文件夹的路径后启动Jupyter Notebook,或直接启动启动Jupyter Notebook,在Jupyter里找到Demos例程:
在这里插入图片描述
3> 选择需要运行的.ipynb例程(general文件夹中的.py例程可以用PyCharm运行)
点击小键盘中的run all cells,即可一键运行全部cell:
在这里插入图片描述在这里插入图片描述
耐心等待运行完毕即可。

Jupyter Notebook关闭方法在conda界面里多次按ctrl+c(同matlab强制中断程序一样)

8>遇到的问题

  1. 有印象requirements.txt里少了Cython模块,后面.py install时还要用到,直接在conda的虚拟环境里输入conda install cython就可以;
  2. 有些Demo里import了处理稀疏矩阵用的spams模块,但我尝试了多种方法,spams模块依旧安装不上,有人说只有linux上可以,我认为windows上也可以,但是需要更换conda的源,很麻烦,有安装成功的同学欢迎评论区留言给他人,分享互助避踩坑。

这篇关于Python CalmAn(Calcium Imaging Analysis)神经生物学工具包安装及环境配置过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/805878

相关文章

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

Maven如何手动安装依赖到本地仓库

《Maven如何手动安装依赖到本地仓库》:本文主要介绍Maven如何手动安装依赖到本地仓库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载依赖二、安装 JAR 文件到本地仓库三、验证安装四、在项目中使用该依赖1、注意事项2、额外提示总结一、下载依赖登

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

一文带你搞懂Python中__init__.py到底是什么

《一文带你搞懂Python中__init__.py到底是什么》朋友们,今天我们来聊聊Python里一个低调却至关重要的文件——__init__.py,有些人可能听说过它是“包的标志”,也有人觉得它“没... 目录先搞懂 python 模块(module)Python 包(package)是啥?那么 __in

使用Python实现图像LBP特征提取的操作方法

《使用Python实现图像LBP特征提取的操作方法》LBP特征叫做局部二值模式,常用于纹理特征提取,并在纹理分类中具有较强的区分能力,本文给大家介绍了如何使用Python实现图像LBP特征提取的操作方... 目录一、LBP特征介绍二、LBP特征描述三、一些改进版本的LBP1.圆形LBP算子2.旋转不变的LB

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据

Python中__init__方法使用的深度解析

《Python中__init__方法使用的深度解析》在Python的面向对象编程(OOP)体系中,__init__方法如同建造房屋时的奠基仪式——它定义了对象诞生时的初始状态,下面我们就来深入了解下_... 目录一、__init__的基因图谱二、初始化过程的魔法时刻继承链中的初始化顺序self参数的奥秘默认

Python实现特殊字符判断并去掉非字母和数字的特殊字符

《Python实现特殊字符判断并去掉非字母和数字的特殊字符》在Python中,可以通过多种方法来判断字符串中是否包含非字母、数字的特殊字符,并将这些特殊字符去掉,本文为大家整理了一些常用的,希望对大家... 目录1. 使用正则表达式判断字符串中是否包含特殊字符去掉字符串中的特殊字符2. 使用 str.isa