Python 艾伦大脑研究所-鼠标连接API和鼠标连接缓存示例
我试着按照他们的方法,让他们的两个例子发挥作用Python 艾伦大脑研究所-鼠标连接API和鼠标连接缓存示例,python,allen-sdk,Python,Allen Sdk,我试着按照他们的方法,让他们的两个例子发挥作用 pd不返回任何或所有投影信号密度实验。为什么会这样 from allensdk.api.queries.mouse_connectivity_api import MouseConnectivityApi mca = MouseConnectivityApi() # get metadata for all non-Cre experiments experiments = mca.experiment_source_search(inject
pd
不返回任何或所有投影信号密度实验。为什么会这样
from allensdk.api.queries.mouse_connectivity_api import MouseConnectivityApi
mca = MouseConnectivityApi()
# get metadata for all non-Cre experiments
experiments = mca.experiment_source_search(injection_structures='root', transgenic_lines=0)
# download the projection density volume for one of the experiments
#pd = mca.download_projection_density('example.nrrd', experiments[0]['id'], resolution=25)
for exp in range(len(experiments)):
pd = mca.download_projection_density('example.nrrd', experiments[exp]['id'], resolution=25)
print(type(pd))
结果:
C:\Anaconda\python.exe C:/Users/user/PycharmProjects/MyFirstAllenBrain/Test.py
<type 'NoneType'>
<type 'NoneType'>
<type 'NoneType'>
<type 'NoneType'>
<type 'NoneType'>
<type 'NoneType'>
... etc
这是从Allen那里逐字复制的,但这是我得到的错误信息:
C:\Anaconda\python.exe C:/Users/user/PycharmProjects/MyFirstAllenBrain/Test.py
Traceback (most recent call last):
File "C:/Users/user/PycharmProjects/MyFirstAllenBrain/Test.py", line 14, in <module>
pd = mcc.get_projection_density(experiments[0]['id'])
File "C:\Users\user\AppData\Roaming\Python\Python27\site-packages\allensdk\core\mouse_connectivity_cache.py", line 170, in get_projection_density
return nrrd.read(file_name)
File "C:\Anaconda\lib\site-packages\nrrd.py", line 384, in read
data = read_data(header, filehandle, filename)
File "C:\Anaconda\lib\site-packages\nrrd.py", line 235, in read_data
mmap.MAP_PRIVATE, mmap.PROT_READ)
AttributeError: 'module' object has no attribute 'MAP_PRIVATE'
Process finished with exit code 1
C:\Anaconda\python.exe C:/Users/user/PycharmProjects/MyFirstAllenBrain/Test.py
回溯(最近一次呼叫最后一次):
文件“C:/Users/user/PycharmProjects/MyFirstAllenBrain/Test.py”,第14行,在
pd=mcc.get_projection_density(实验[0]['id'])
文件“C:\Users\user\AppData\Roaming\Python27\site packages\allensdk\core\mouse\u connectivity\u cache.py”,第170行,在get\u projection\u density中
返回nrrd.read(文件名)
文件“C:\Anaconda\lib\site packages\nrrd.py”,第384行,已读
数据=读取数据(标题、文件句柄、文件名)
读取数据中的文件“C:\Anaconda\lib\site packages\nrrd.py”,第235行
mmap.MAP_PRIVATE,mmap.PROT_READ)
AttributeError:“module”对象没有属性“MAP\u PRIVATE”
进程已完成,退出代码为1
为什么会发生这种情况
与以前一样(我假设不需要另一张图片),
experiments
变量确实收到了每个实验的值。不幸的是,这是Pyrrd/master github存储库目前存在的Windows特定问题。我知道有一个具体的修订是有效的:
要从windows命令提示符安装此版本,您可以:
> git clone https://github.com/mhe/pynrrd.git
> cd pynrrd
> git checkout 3c0f3d5
> cd ..
> pip install --upgrade pynrrd\
末尾的反斜杠很重要。它告诉pip从本地路径安装,而不是检查PyPI
记录问题:我明白了,thanx。我一直在考虑在我们的实验室用Ubuntu双重启动电脑,这不应该是一个问题,因为我才刚刚开始。你会建议我们(我想其他研究人员也会)这样做吗?我问这个问题是因为艾伦研究所(Allen Institute)今后可能会走一条更Linux的路线,我非常乐意遵循。我们的目标肯定是支持Windows用户。Pyrd开发人员更加面向linux,但我正在与他们合作解决这个问题。感谢您的耐心。这确实解决了鼠标连接缓存的第二个问题,即它给了我投影密度体积,但我的第一个问题仍未解决。当我运行代码时,我仍然只能得到非类型。这正常吗?下载密度可能有问题?好问题。MouseConnectivityApi.download_projection_density函数没有返回值。它所做的只是将文件从API下载到给定的文件位置。如果你想打开它,你需要用pynrrd阅读它。MouseConnectivityCache.get\u projection\u density函数为您包装了这一点。
> git clone https://github.com/mhe/pynrrd.git
> cd pynrrd
> git checkout 3c0f3d5
> cd ..
> pip install --upgrade pynrrd\