Я загружаю все изображения из исследования нейротрансмиттеров атласа мозга Аллена, используя этот сценарий:
from allensdk.api.queries.image_download_api import ImageDownloadApi
from allensdk.config.manifest import Manifest
import pandas as pd
import os
#getting transmitter study
#product id from http://api.brain-map.org/api/v2/data/query.json?criteria=model::Product
nt_datasets = image_api.get_section_data_sets_by_product([27])
#an instance of Image Api for downloading
image_api = ImageDownloadApi()
for index, row in df_nt.iterrows():
#get section dataset id
section_dataset_id= row['id']
#each section dataset id has multiple image sections
section_images = pd.DataFrame(
image_api.section_image_query(
section_data_set_id=section_dataset_id)
)
for section_image_id in section_images['id'].tolist():
file_path = os.path.join('/path/to/save/dir/',
str(section_image_id) + '.jpg' )
Manifest.safe_make_parent_dirs(file_path)
image_api.download_section_image(section_image_id,
file_path=file_path,
downsample=downsample)
Этот сценарий загружает предположительно все доступные эксперименты ISH.Тем не менее, мне интересно, что было бы лучшим способом получить больше метаданных следующим образом:
1) тип эксперимента ISH , известный как "ген" (например, является ли изображениеокрашивается MBP, Nissl или т. д.).Показано в красном круге ниже.
2) Структура и соответствие изображению атласа (аннотации, например, чтобы увидеть, к какой части мозга относится сечениепринадлежит).Я думаю, что это может быть получено с tree_search
, но не знаю как.Показанный в красных кругах ниже от двух разных веб-страниц на сайте Аллена.
3) масштаб изображения, например, насколько большой один пиксель в загруженном изображении (например, 0,001х0,001 мм).Я бы потребовал это для анализа изображений в отношении МРТ, например.Ниже показано красным кружком.
Вся вышеприведенная информация так или иначе доступна на веб-сайте, мой вопрос заключается в том, можете ли вы помочь мне сделать это программно через SDK .
РЕДАКТИРОВАТЬ:
Также было бы здорово загружать пятна "Nissl" программно, так как они не отображаются с использованием вышеупомянутой итерации цикла.Изображение показано ниже.