问题描述
我正在尝试获取属于产前年龄(3个供体)并且仅来自3种结构的所有截面数据集的所有Brainspan ISH图像:视觉皮层、前额叶皮层和“大脑” '。
即此搜索中列出的实验:
我已按照此处的说明进行操作:
brainspan_datasets = image_api.get_section_data_sets_by_product([22])
brainspan_datasets_df = pd.DataFrame(brainspan_datasets)
section_dataset_ids = [ds['id'] for ds in brainspan_datasets
# Iterate through `section_dataset_ids` to get list of `section_image_ids` and download the images.
# disable logger
logging.getLogger('allensdk.api.api.retrieve_file_over_http').disabled = True
downsample = 2
format_str = '.jpg'
for section_dataset_id in section_dataset_ids:
dir_name = str(section_dataset_id) + '_section_images'
# Get list of image ids from field `id` in each element of `section_images`.
section_images = image_api.section_image_query(section_dataset_id)
section_image_ids = [si['id'] for si in section_images]
print(len(section_image_ids))
# Download
for section_image_id in section_image_ids:
file_name = str(section_image_id) + format_str
file_path = os.path.join(dir_name,file_name)
Manifest.safe_make_parent_dirs(file_path)
image_api.download_section_image(section_image_id,file_path=file_path,downsample=downsample)
# re-enable the logger
logging.getLogger('allensdk.api.api.retrieve_file_over_http').disabled = False
并且已经成功地为每个带有相应图像的 SectionDataSet 创建了一个目录。
但是,我必须手动过滤从中下载图像的样本 ID,以限制为产前。
section_dataset_ids = [ds['id'] for ds in brainspan_datasets\
if ds['specimen_id']==708383 or ds['specimen_id']==708307 or ds['specimen_id']==708787]
我一直无法弄清楚如何为与每个实验相关的样本/捐赠者获取相应的元数据。
即,对于实验 100135095,我知道捐赠者是通过浏览器从结果表中得到的 21pcw F,但在我的 API 查询中没有返回。
我希望能够将基因/探针和供体年龄/性别添加到当前只有实验 ID 的目录名称中。
Stackoverflow (1) 上有一个类似的问题,几乎可以让我解决这个问题,除了我也不知道如何请求捐赠者的年龄和性别。
section_datasets = pd.DataFrame(api.model_query('SectionDataSet',criteria='[id$eq%d]' % brainspan_dataset_id,include='section_images,treatments,probes(gene),specimen(structure),specimen(donor)'
这是我能够找到的另一个提示,但我不知道如何将这个常规的 GET 请求转换为上面的 api.model_query。
section_datasets = requests.get("http://api.brain-map.org/api/v2/data/query?criteria=model::SectionDataSet,rma::criteria,[Failed$eqfalse],products[id$eq22],treatments[name$eq'ISH'],rma::include,specimen(donor(age)),section_images")
感谢您的帮助! ?
(1) Get more of the metadata from the Neurotransmitter study using Allen SDK
在此处交叉发布:
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)