Институт мозга Аллена - примеры API-интерфейсов подключения мыши и кэша подключения мыши

Я пытаюсь следовать sdk Mouse Connectivity и заставить их два примера работать.

pd возвращает None или все эксперименты по плотности сигнала проекции. Почему это может быть?

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

Дело в том, что experiments получает значение, поэтому похоже, что MouseConnectivityApi и nrrd (которые я установил согласно следующему посту) работают должным образом.

Посмотреть здесь:

Хорошо, а теперь второй пример

from allensdk.core.mouse_connectivity_cache import MouseConnectivityCache

# tell the cache class what resolution (in microns) of data you want to download
mcc = MouseConnectivityCache(resolution=25)

# use the ontology class to get the id of the isocortex structure
ontology = mcc.get_ontology()
isocortex = ontology['Isocortex']

# a list of dictionaries containing metadata for non-Cre experiments
experiments = mcc.get_experiments(injection_structure_ids=isocortex['id'])

# download the projection density volume for one of the experiments
pd = mcc.get_projection_density(experiments[0]['id'])

Это слово в слово скопировано из Аллена, и все же это сообщение об ошибке, которое я получаю:

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

Почему это может произойти?

И снова, как и раньше (я полагаю, нет необходимости в другой картине), experiments Переменная получает значения, которые кажутся значениями для каждого эксперимента.

1 ответ

Решение

К сожалению, это специфичная для Windows проблема с репозиторием pynrrd / master github. Я знаю, что работает одна конкретная ревизия:

https://github.com/mhe/pynrrd/commit/3c0f3d577b0b435fb4825c14820322a574311af0

Чтобы установить эту версию из командной строки Windows, вы можете:

> git clone https://github.com/mhe/pynrrd.git
> cd pynrrd
> git checkout 3c0f3d5
> cd ..
> pip install --upgrade pynrrd\

Обратная косая черта на конце важна. Он говорит pip для установки по локальному пути вместо проверки PyPI.

Проблема зарегистрирована: https://github.com/mhe/pynrrd/issues/18

Другие вопросы по тегам