我正在使用以下脚本从艾伦脑图集的神经递质研究中下载所有图像:
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染色,尼氏染色还是其他)。在下面的红色圆圈中显示。
2)与地图集图像的结构和对应性(例如,注释以查看某节属于大脑的哪个部分)。我认为可以通过tree_search
来获取,但不确定如何获取。以下是艾伦网站上两个不同网页上的红色圆圈所示。
3)图片的比例,例如下载的图片中一个像素的大小(例如0.001x0.001毫米)。例如,我将需要此来进行有关MRI的图像分析。在下面的红色圆圈中显示。
以上所有信息都可以在网站上找到,我的问题是您是否可以通过 SDK 通过编程方式来帮助我。
编辑:
以编程方式下载“ Nissl”污点也非常好,因为它们没有使用上述循环迭代显示。图片如下所示。
答案 0 :(得分:1)
要访问此信息,您需要制定一个稍微复杂的API查询。
from allensdk.api.queries.rma_api import RmaApi
api = RmaApi()
data_set_id = 146586401
data = api.model_query('SectionDataSet',
criteria='[id$eq%d]' % data_set_id,
include='section_images,treatments,probes(gene),specimen(structure)')
print("gene symbol: %s" % data[0]['probes'][0]['gene']['acronym'])
print("treatment name: %s" % data[0]['treatments'][0]['name'])
print("specimen location: %s" % data[0]['specimen']['structure']['name'])
print("section xy resolution: %f um" % data[0]['section_images'][0]['resolution'])
gene symbol: MBP
treatment name: ISH
specimen location: Cingulate Cortex
section xy resolution: 1.008000 um
在不深入研究API数据模型的情况下,SectionDataSets
具有组成SectionImages
,Treatments
,Probes
和源Specimens
。 Probes
目标Genes
和Specimens
可以与Structure
关联。该查询将单个SectionDataSet
的所有信息下载到嵌套字典中。
我不记得如何找到标本块范围。如果找到答案,我将对其进行更新。