Загрузите изображения набора данных раздела ISH из Института Аллена Анализ мозга с метаданными генов / зондов и возраста доноров
Я пытаюсь получить все ISH-изображения Brainspan для всех наборов данных секций, принадлежащих пренатальному возрасту (3 донора), и только из 3 структур: зрительной коры, префронтальной коры и «мозга» .
т.е. эксперименты, перечисленные в этом поиске:
Я выполнил инструкции здесь:
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 с соответствующими изображениями.
Однако мне пришлось вручную отфильтровать specimen_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.
Я хотел бы иметь возможность добавить ген / зонд и возраст / пол донора к имени каталога, который в настоящее время имеет только идентификатор эксперимента.
Есть аналогичный вопрос по 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,probes(gene),specimen(donor(age)),section_images")
Спасибо за вашу помощь! 🙂
(1) Получите больше метаданных из исследования нейротрансмиттеров с помощью Allen SDK.
Перекрестно здесь: