Загрузите изображения набора данных раздела ISH из Allen Institute Brainspan с метаданными о гене / зонде и возрасте донора.

Я пытаюсь получить все изображения Brainspan ISH для всех наборов данных разделов, принадлежащих пренатальным возрастам (3 донора) и только из 3 структур: зрительной коры, префронтальной коры и «мозга».

т. е. эксперименты, перечисленные в этом поиске:

http://www.brainspan.org/ish/search/show?page_num=1&page_size=100&no_paging=false&search_term=&search_type=advanced&facet_age_tags=prenatal&facet_structure_name=%22Medial%20Prefrontal%20Cortex%22,%22Visual%20Cortex%22,%22Brain%22

введите здесь описание изображения

Я следовал инструкциям здесь:

https://allensdk.readthedocs.io/en/latest/_static/examples/nb/image_download.html#Downloading-all-of-the-images-from-a-section-data-set< /а>

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 с соответствующими изображениями.

введите здесь описание изображения

Тем не менее, мне пришлось вручную фильтровать sample_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) Получить больше метаданных из исследования Neurotransmitter с использованием Allen SDK

Кросспостинг здесь:

https://community.brain-map.org/t/download-section-dataset-images-from-brainspan-ish-with-gene-probe-and-donor-age-metadata/


person gaelgarcia    schedule 18.02.2021    source источник