ImmPort Data - CDE Data Discovery and Interoperability¶

This tutorial demonstrates data discovery and extract, transform, and load (ETL) of ImmPort data using Common Data Elements (CDEs). We also show their interoperability with CDEs in the external NIH CDE repository. To learn more about the mapping of ImmPort data elements to CDEs, see here.

Import required packages¶

In [1]:
import sys
import os
import requests
import json
import pandas as pd

import warnings
warnings.filterwarnings('ignore')

Helper function to handle ImmPort API endpoint requests, with and without authentication¶

In [2]:
# Setup base URLs common to all API endpoints

API_ENDPOINT_BASE_URL = "https://www.immport.org"
DATA_QUERY_URL = API_ENDPOINT_BASE_URL + "/data/query"

# Authentication: Use a scoped API key.
# Create an API key at: https://www.immport.org/auth/api/keys

# best practice is to set the API key as an environment variable outside the notebook and then use the environment variable directly
# export IMMPORT_API_KEY="<your_api_key>"
# IMMPORT_API_KEY = os.getenv('IMMPORT_API_KEY')

# for simplicity, we will enter it here in the notebook
IMMPORT_API_KEY = "INSERT_API_KEY_HERE"


def api_data_query(endpoint, authorization=True, format="json"):
    '''Use the Data Query API by first checking for authorization if needed, then call the API endpoint to retrieve the results.

       param endpoint: Data Query endpoint
       param authorization: Indicates if endpoint requires authorization
       param format: String (json, tsv)

       return: results or None
    '''
    headers = {}
    results = None

    if authorization:
        # Use API key
        api_key = IMMPORT_API_KEY
        if not api_key:
            print("ERROR: IMMPORT_API_KEY not set", file=sys.stderr)
            return None
        bearer = "Bearer " + api_key
        if format == "json":
            headers = {
                'Authorization': bearer,
                'Content-Type': "application/json"
            }
        else:
            headers = {
                'Authorization': bearer,
                'Content-Type': "text/plain"
            }

    else:
        if format == "json":
            headers = {
                'Content-Type': "application/json"
            }
        else:
            headers = {
                'Content-Type': "text/plain"
            }

    results = requests.get(endpoint, headers=headers)
    if results.status_code == 200:
        if results is None:
             print("ERROR: API Endpoint failed to return results", file = sys.stderr)
             return None
        if format == "json":
            return results.json()
        else:
            return results.text
    else:
        print("ERROR: API Status Code: " + str(results.status_code), file = sys.stderr)
        return None

Study Search¶

Endpoints to support text and faceted search of study and subject metadata¶

Let's say we are interested in research on vaccine response to the pneumonia vaccine. In particular, we are interested in whether the weight of a subject affects vaccine response.

We know that subject weight has a corresponding CDE named "Vital Signs Type" (CDE ID: GOr1OFJAKC), where one of the permissible values is "Weight" (Concept Identifier: C81328). In the ImmPort database, these values are represented as "cdeId" = "GOr1OFJAKC" and "cdePvId" = "C81328", respectively. Since we are specifically interested in studies that contain data about subject weight, rather than data about other subject vital signs, we will use the permissible value concept identifier, or cdePvId, to search.

We want to search for studies using "researchFocus" = "Vaccine Response", "conditionOrDisease" = "Streptococcus pneumonia" and "cdePvId" = "C81328". (Note that, if we wanted to expand our search to include data about other vital signs, we could use "cdeId" = "GOr1OFJAKC" instead of "cdePvId" = "C81328".)

/api/search/study

Notes:

  • search endpoints do not require authorization
  • Default pageSize = 10 (Maximum number of records to return per page), so we may need to enter a larger number to see full results
In [4]:
endpoint = DATA_QUERY_URL + "/api/search/study?pageSize=100&researchFocus=Vaccine%20Response&conditionOrDisease=Streptococcus%20pneumonia&cdePvId=C81328"
results = api_data_query(endpoint, authorization = False)
results
Out[4]:
{'took': 20,
 'timed_out': False,
 '_shards': {'total': 5, 'successful': 5, 'skipped': 0, 'failed': 0},
 'hits': {'total': {'value': 2, 'relation': 'eq'},
  'max_score': 0.0,
  'hits': [{'_index': 'study_mapping_common_dr68',
    '_id': 'SDY87',
    '_score': 0.0,
    '_source': {'clinical_trial': 'N',
     'gender': ['Male'],
     'ethnicity': ['Hispanic or Latino', 'Not Hispanic or Latino'],
     'brief_title': 'In-Depth Characterization of Immune Responses to Pneumovax Vaccination in Healthy Subjects',
     'initial_data_release_version_number': 18.0,
     'program_name': ['Human Immunology Project Consortium (HIPC) RFA-AI-14-007, RFA-AI-09-040'],
     'latest_data_release_version': 'DR68',
     'arm_name': ['Pneumovax'],
     'lab_test_panel_count': ['Blood Cell Count with Differential (90)',
      'Chemistry Test (180)'],
     'assay_method_count': ['Flow Cytometry (198)'],
     'clinicaltrials_link': [],
     'pubmed_id': [],
     'age_range': '22.0-49.0',
     'planned_visit_total_count': [8],
     'arm_accession': ['ARM564'],
     'minimum_age': '  22.00',
     'has_lab_test': 'Y',
     'latest_data_release_date': '2026-09-24',
     'study_size_number': 78973470,
     'gender_included': 'Male',
     'analyte_preferred_count': [],
     'maximum_age': '  49.00',
     'research_focus': ['Vaccine Response'],
     'contract_grant_external_id': ['AI089987'],
     'study_accession_number': 87,
     'latest_data_release_version_number': 68.0,
     'race': ['Other', 'White'],
     'actual_enrollment': 5,
     'initial_data_release_date': '2016-03-18',
     'brief_description': 'This study will measure the immune response to the Pneumovax vaccine The long-term goal is to develop improved vaccines to infectious diseases such as influenza. Blood will be collected from patients at several visits before and after vaccination. The blood will be used in a series of immunological tests to measure the strength and breadth of immune response. These assays may include T cell and B cell activation assays, microarray testing, Epimax, Epigen, and flow cytometry.',
     'biosample_type': ['Other', 'Whole blood'],
     'shared_subject_count': [],
     'max_age': 49.0,
     'study_accession': 'SDY87',
     'contract_grant_name': ['Systems Analysis Vaccine Responses in Healthy and Hyporesponsive Humans'],
     'study_size': '75.31 MB',
     'study_pi': ['A. Karolina Palucka: Baylor Research Institute'],
     'species': ['Homo sapiens'],
     'initial_data_release_version': 'DR18',
     'condition_or_disease': ['Streptococcus pneumonia'],
     'has_assessment': 'Y',
     'assessment_panel_count': ['Vitals (65)',
      'Medical History (209)',
      'Followup Questionnaire (51)',
      'Vaccination History (13)',
      'Eligibility (95)',
      'End of Study (30)'],
     'age_unit': 'Years',
     'assay_method': ['Flow Cytometry'],
     'min_age': 22.0,
     'doi': '10.21430/M3AA0XR32D'}},
   {'_index': 'study_mapping_common_dr68',
    '_id': 'SDY180',
    '_score': 0.0,
    '_source': {'clinical_trial': 'N',
     'gender': ['Female', 'Male'],
     'ethnicity': ['Hispanic or Latino', 'Not Hispanic or Latino'],
     'brief_title': 'Systems scale interactive exploration reveals quantitative and qualitative differences in response to 2009-2010 Fluzone influenza vaccine and pneumococcal vaccine',
     'initial_data_release_version_number': 6.0,
     'program_name': ['Human Immunology Project Consortium (HIPC) RFA-AI-14-007, RFA-AI-09-040'],
     'latest_data_release_version': 'DR58',
     'arm_name': ['Study group 1 2009-2010 Fluzone',
      'Study group 2 2009-2010 Fluzone',
      'Study group 3 2009-2010 Fluzone',
      'Study group 1 Saline',
      'Study group 1 Pneunomax23',
      'Study group 3 Pneunomax23',
      'Study group 2 Pneunomax23',
      'Study group 2 Saline'],
     'lab_test_panel_count': ['Blood Cell Count (1836)'],
     'assay_method_count': ['Flow Cytometry (2208)',
      'Hemagglutination Inhibition (66)',
      'Luminex xMAP (229)',
      'Nanostring (18)',
      'Neutralizing Antibody Titer Assay (27)',
      'Transcription profiling by array (703)',
      'Virus Neutralization (89)'],
     'clinicaltrials_link': [],
     'pubmed_id': ['23601689'],
     'age_range': '22.0-49.0',
     'planned_visit_total_count': [17],
     'arm_accession': ['ARM777',
      'ARM775',
      'ARM776',
      'ARM780',
      'ARM778',
      'ARM774',
      'ARM773',
      'ARM779'],
     'minimum_age': '  22.00',
     'has_lab_test': 'Y',
     'latest_data_release_date': '2025-10-30',
     'study_size_number': 34131077431,
     'gender_included': 'Female, Male',
     'analyte_preferred_count': ['CCL22 (182)',
      'CSF3 (182)',
      'Eotaxin (182)',
      'GMCSF (182)',
      'GRO (182)',
      'IFNA2 (182)',
      'IFNG (182)',
      'IL10 (182)',
      'IL12p40 (182)',
      'IL12p70 (182)',
      'IL13 (182)',
      'IL15 (182)',
      'IL17A (182)',
      'IL1A (182)',
      'IL1B (182)',
      'IL1R1 (182)',
      'IL2 (182)',
      'IL2RA (182)',
      'IL3 (182)',
      'IL4 (182)',
      'IL5 (182)',
      'IL6 (182)',
      'IL7 (182)',
      'IL8 (182)',
      'IL9 (182)',
      'IP-10 (182)',
      'MCP1 (182)',
      'MCP3 (182)',
      'MIP1A (182)',
      'MIP1B (182)',
      'PDGFA (182)',
      'RANTES (182)',
      'TGFA (182)',
      'TNFA (182)',
      'TNFB (182)',
      'VEGFA (182)'],
     'maximum_age': '  49.00',
     'research_focus': ['Vaccine Response'],
     'contract_grant_external_id': ['AI089987'],
     'study_accession_number': 180,
     'latest_data_release_version_number': 58.0,
     'race': ['Black or African American', 'White', 'Asian'],
     'actual_enrollment': 46,
     'initial_data_release_date': '2013-12-18',
     'brief_description': 'Systems approach to study immune response to seasonal influenza and 23-valent pneumoccocal vaccination in healthy adults.',
     'biosample_type': ['Serum', 'Whole blood', 'Protein'],
     'shared_subject_count': [],
     'max_age': 49.0,
     'study_accession': 'SDY180',
     'contract_grant_name': ['Systems Analysis Vaccine Responses in Healthy and Hyporesponsive Humans'],
     'study_size': '31.79 GB',
     'study_pi': ['A. Karolina Palucka: Baylor Reasearch Institute'],
     'species': ['Homo sapiens'],
     'initial_data_release_version': 'DR6',
     'condition_or_disease': ['healthy',
      'Streptococcus pneumonia',
      'influenza'],
     'has_assessment': 'N',
     'assessment_panel_count': [],
     'age_unit': 'Years',
     'assay_method': ['Nanostring',
      'Virus Neutralization',
      'Hemagglutination Inhibition',
      'Luminex xMAP',
      'Flow Cytometry',
      'Transcription profiling by array',
      'Neutralizing Antibody Titer Assay'],
     'min_age': 22.0,
     'doi': '10.21430/M3I44H8R17'}}]},
 'aggregations': {'research_focus': {'doc_count_error_upper_bound': 0,
   'sum_other_doc_count': 0,
   'buckets': [{'key': 'Vaccine Response', 'doc_count': 2},
    {'key': 'Atopy/Allergy', 'doc_count': 0},
    {'key': 'Autoimmune', 'doc_count': 0},
    {'key': 'Cardiovascular system disease', 'doc_count': 0},
    {'key': 'Cell Biology', 'doc_count': 0},
    {'key': 'Computational Modelling', 'doc_count': 0},
    {'key': 'Development', 'doc_count': 0},
    {'key': 'Epidemiology', 'doc_count': 0},
    {'key': 'Exposome', 'doc_count': 0},
    {'key': 'Immune Response', 'doc_count': 0},
    {'key': 'Infection Response', 'doc_count': 0},
    {'key': 'Method Development', 'doc_count': 0},
    {'key': 'Molecular Biology', 'doc_count': 0},
    {'key': 'No Research Focus Specified', 'doc_count': 0},
    {'key': 'Oncology', 'doc_count': 0},
    {'key': 'Other', 'doc_count': 0},
    {'key': 'Pregnancy', 'doc_count': 0},
    {'key': 'Preterm Birth', 'doc_count': 0},
    {'key': 'Psychopathology', 'doc_count': 0},
    {'key': 'Radiation Biology', 'doc_count': 0},
    {'key': 'Transplantation', 'doc_count': 0},
    {'key': 'Vaccine Development', 'doc_count': 0}]},
  'clinical_trial': {'doc_count_error_upper_bound': 0,
   'sum_other_doc_count': 0,
   'buckets': [{'key': 'N', 'doc_count': 2}, {'key': 'Y', 'doc_count': 0}]},
  'gender': {'doc_count_error_upper_bound': 0,
   'sum_other_doc_count': 0,
   'buckets': [{'key': 'Male', 'doc_count': 2},
    {'key': 'Female', 'doc_count': 1},
    {'key': 'Not Specified', 'doc_count': 0},
    {'key': 'Other', 'doc_count': 0},
    {'key': 'Unknown', 'doc_count': 0}]},
  'race': {'doc_count_error_upper_bound': 0,
   'sum_other_doc_count': 0,
   'buckets': [{'key': 'White', 'doc_count': 2},
    {'key': 'Asian', 'doc_count': 1},
    {'key': 'Black or African American', 'doc_count': 1},
    {'key': 'Other', 'doc_count': 1},
    {'key': 'American Indian or Alaska Native', 'doc_count': 0},
    {'key': 'Multiracial', 'doc_count': 0},
    {'key': 'Native Hawaiian or Other Pacific Islander', 'doc_count': 0},
    {'key': 'Not Specified', 'doc_count': 0},
    {'key': 'Unknown', 'doc_count': 0}]},
  'ethnicity': {'doc_count_error_upper_bound': 0,
   'sum_other_doc_count': 0,
   'buckets': [{'key': 'Hispanic or Latino', 'doc_count': 2},
    {'key': 'Not Hispanic or Latino', 'doc_count': 2},
    {'key': 'Not Specified', 'doc_count': 0},
    {'key': 'Other', 'doc_count': 0}]},
  'program_name': {'doc_count_error_upper_bound': 0,
   'sum_other_doc_count': 0,
   'buckets': [{'key': 'Human Immunology Project Consortium (HIPC) RFA-AI-14-007, RFA-AI-09-040',
     'doc_count': 2},
    {'key': 'Accelerating Medicines Partnership RA/SLE (AMP RA/SLE) RFA-AR-14-016',
     'doc_count': 0},
    {'key': 'Asthma and Allergic Diseases Cooperative Research Centers',
     'doc_count': 0},
    {'key': 'Asthma and Allergic Diseases Cooperative Research Centers (AADCRC) RFA-AI-12-006',
     'doc_count': 0},
    {'key': 'Asthma and Allergic Diseases Cooperative Research Centers (AADCRC) RFA-AI-15-032',
     'doc_count': 0},
    {'key': 'Asthma and Allergic Diseases Cooperative Research Centers (AADCRC) RFA-AI-16-065',
     'doc_count': 0},
    {'key': 'Atopic Dermatitis & Vaccinia Network (ADVN)', 'doc_count': 0},
    {'key': 'Atopic Dermatitis Research Network (ADRN) RFA-AI-14-033',
     'doc_count': 0},
    {'key': 'Autoimmunity Centers of Excellence (ACE) AI-12-060, AI-12-059',
     'doc_count': 0},
    {'key': 'Autoimmunity Centers of Excellence (ACE), Basic Research Program RFA-AI-18-002',
     'doc_count': 0},
    {'key': 'Bill and Melinda Gates Foundation (BMGF)', 'doc_count': 0},
    {'key': 'CEIRR Centers of Excellence for Influenza Research and Response',
     'doc_count': 0},
    {'key': 'CIVICs Collaborative Influenza Vaccine Innovation Centers',
     'doc_count': 0},
    {'key': 'Centers for Medical Countermeasures Against Radiation Consortium (CMCRC) RFA-AI-19-012',
     'doc_count': 0},
    {'key': "Children's Environmental Health and Disease Prevention Research Centers",
     'doc_count': 0},
    {'key': 'Clinical Islet Transplantation Consortium RFA-DK-09-501',
     'doc_count': 0},
    {'key': 'Clinical Trials in Organ Transplantation (CTOT)', 'doc_count': 0},
    {'key': 'Clinical Trials in Organ Transplantation in Children (CTOT-C) RFA-AI-12-005',
     'doc_count': 0},
    {'key': 'Clinical and Translational Science Award', 'doc_count': 0},
    {'key': 'Consortium for Food Allergy Research (CoFAR) RFA-AI-14-003,RFA-AI-09-039,RFA-AI-04-034',
     'doc_count': 0},
    {'key': 'Cooperative Centers on Human Immunology RFA-AI-17-040',
     'doc_count': 0},
    {'key': 'Cooperative Clinical Trials in Pediatric Transplantation (CCTPT)',
     'doc_count': 0},
    {'key': 'DMID Sanaria Grant Program', 'doc_count': 0},
    {'key': 'Defining Genomic Influence on Gene Network Regulation',
     'doc_count': 0},
    {'key': 'Development of Sample Sparing Assays for Monitoring Immune Responses (U24 Clinical Trial Not Allowed) RFA-AI-19-017',
     'doc_count': 0},
    {'key': 'Development of Sample Sparing Assays for Monitoring Immune Responses RFA-AI-14-027',
     'doc_count': 0},
    {'key': 'Enhance Applicability of Mouse Models for Translational Research (Oncology Model, OMF)',
     'doc_count': 0},
    {'key': 'European Union’s Horizon 2020 Program', 'doc_count': 0},
    {'key': 'Genomics of Transplantation Cooperative Research Program (GEN) RFA-AI-10-019',
     'doc_count': 0},
    {'key': 'HLA Region Genetics in Immune-mediated Diseases I',
     'doc_count': 0},
    {'key': 'HLA Region Genetics in Immune-mediated Diseases II',
     'doc_count': 0},
    {'key': 'HLA and KIR Region Genomics in Immune-Mediated Diseases RFA-AI-14-012, RFA-AI-14-013',
     'doc_count': 0},
    {'key': 'Human Immunology Project Consortium (HIPC) RFA-AI-15-041',
     'doc_count': 0},
    {'key': 'Human Immunology Project Consortium (HIPC) RFA-AI-20-079',
     'doc_count': 0},
    {'key': 'ITN: Collaborative Network for Clinical Research on Immune Tolerance Network',
     'doc_count': 0},
    {'key': 'Immune Function and Biodefense in Children, Elderly, and Immunocompromised Populations',
     'doc_count': 0},
    {'key': 'Immune Mechanisms of Protection Against Mycobacterium tuberculosis Center (IMPAc-TB)',
     'doc_count': 0},
    {'key': 'Immunity in Neonates and Infants (U01) RFA-AI-16-001',
     'doc_count': 0},
    {'key': 'Immunophenotyping Assessment in a COVID-19 Cohort (IMPACC)',
     'doc_count': 0},
    {'key': 'Inner City Asthma Consortium (ICAC) RFA-AI-13-036',
     'doc_count': 0},
    {'key': 'La Jolla Institute for Immunology CMI Flu', 'doc_count': 0},
    {'key': 'Lung Diseases Research', 'doc_count': 0},
    {'key': 'March of Dimes', 'doc_count': 0},
    {'key': 'Mechanisms of Immune Protection from TB among HIV-infected Individuals (R01) RFA-AI-14-072',
     'doc_count': 0},
    {'key': 'Mentored Patient-Oriented Research Career Development Award (Parent K23)',
     'doc_count': 0},
    {'key': 'Modeling Immunity for Biodefense I', 'doc_count': 0},
    {'key': 'Modeling Immunity for Biodefense II', 'doc_count': 0},
    {'key': 'Modeling Immunity for Biodefense RFA-AI-14-028', 'doc_count': 0},
    {'key': 'Molecular Transducers of Physical Activity Consortium (MoTrPAC)',
     'doc_count': 0},
    {'key': 'NIAID Centers of Excellence for Influenza Research and Surveillance (CEIRS)',
     'doc_count': 0},
    {'key': 'NIAID Investigator Initiated Program PAR-20-072', 'doc_count': 0},
    {'key': 'NIAID Investigator Initiated Program Project Applications (P01) PAR-16-413, PAR-13-254',
     'doc_count': 0},
    {'key': 'NIAID Laboratory of Immunogenetics', 'doc_count': 0},
    {'key': 'NIAID Program Research Project Grant (Parent R01)',
     'doc_count': 0},
    {'key': 'NIAID SBIR Phase II Clinical Trial Implementation Cooperative Agreement (U44)',
     'doc_count': 0},
    {'key': 'NIAID Vaccine Research Center (VRC)', 'doc_count': 0},
    {'key': 'NIAMS Rheumatic Diseases Research Resource-based Centers (P30) RFA-AR-16-002',
     'doc_count': 0},
    {'key': 'NIH American Recovery & Reinvestment Act', 'doc_count': 0},
    {'key': 'NIH Center for Human Immunology, Autoimmunity and Inflammation (CHI)',
     'doc_count': 0},
    {'key': "NIH Director's New Innovator Award Program (DP2) 2013",
     'doc_count': 0},
    {'key': 'NIH Program', 'doc_count': 0},
    {'key': 'NIH Research Project Grant - Special Emphasis Panel ZRG1 TIR-W (01)',
     'doc_count': 0},
    {'key': 'NIH Revision Awards for Creating Virtual Consortium for Translational/Transdisciplinary Environmental Research (ViCTER)',
     'doc_count': 0},
    {'key': 'NIHR Biomedical Research Centres (BRCs)', 'doc_count': 0},
    {'key': 'NSF Engineering Research Center for Cell Manufacturing Technologies (CMaT)',
     'doc_count': 0},
    {'key': 'National Institute of Allergy and Infectious Diseases (NIAID) Clinical Data and Safety Management Center (CDSMC) RFA-AI-22-058',
     'doc_count': 0},
    {'key': 'Non-NIH funding programs', 'doc_count': 0},
    {'key': 'Other Programs', 'doc_count': 0},
    {'key': 'Oxford-BMS Fellowship', 'doc_count': 0},
    {'key': 'PROSET-HD Profiling of Cell Subsets in Human Disease',
     'doc_count': 0},
    {'key': 'Placeholder Program (**Replace**)', 'doc_count': 0},
    {'key': 'Population Genetics Analysis Program (1)', 'doc_count': 0},
    {'key': 'Population Genetics Analysis Program (2)', 'doc_count': 0},
    {'key': 'Protective Immunity Following Dengue Virus Natural Infections and Vaccination',
     'doc_count': 0},
    {'key': 'Protective Immunity in Special Populations', 'doc_count': 0},
    {'key': 'Puerto Rico Idea Network for Biomedical Research Excellence (PR-INBRE)',
     'doc_count': 0},
    {'key': 'RELIVE', 'doc_count': 0},
    {'key': 'Radiation/Nuclear Medical Countermeasure (MCM) Product Development Support Services',
     'doc_count': 0},
    {'key': 'Ragon Institute', 'doc_count': 0},
    {'key': 'Rapid Investigation of Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2) and Coronavirus Disease 2019 (COVID-19)',
     'doc_count': 0},
    {'key': 'Research Projects to Enhance Applicability of Mammalian Models for Translational Research',
     'doc_count': 0},
    {'key': 'Respiratory Pathogens Research Center (RPRC)', 'doc_count': 0},
    {'key': 'SeroNet', 'doc_count': 0},
    {'key': 'Software and Hardware Inference Engines For Automated Determination Of Primary Cell Function',
     'doc_count': 0},
    {'key': 'Systems Approach to Immunity and Inflammation RFA-AI-11-017',
     'doc_count': 0},
    {'key': 'Systems Approach to Immunity and Inflammation RFA-AI-16-050',
     'doc_count': 0},
    {'key': 'Systems Biology for Infectious Diseases Research',
     'doc_count': 0},
    {'key': 'Tuberculosis Research Units (U19) RFA-AI-12-045', 'doc_count': 0},
    {'key': 'Unassigned', 'doc_count': 0}]},
  'biosample_type': {'doc_count_error_upper_bound': 0,
   'sum_other_doc_count': 0,
   'buckets': [{'key': 'Whole blood', 'doc_count': 2},
    {'key': 'Other', 'doc_count': 1},
    {'key': 'Protein', 'doc_count': 1},
    {'key': 'Serum', 'doc_count': 1},
    {'key': 'Amniotic Fluid', 'doc_count': 0},
    {'key': 'Appendix', 'doc_count': 0},
    {'key': 'B cell', 'doc_count': 0},
    {'key': 'Basophils', 'doc_count': 0},
    {'key': 'Bone', 'doc_count': 0},
    {'key': 'Bone Marrow', 'doc_count': 0},
    {'key': 'Breast Milk', 'doc_count': 0},
    {'key': 'Bronchoalveolar Lavage Fluid', 'doc_count': 0},
    {'key': 'Cell culture supernatant', 'doc_count': 0},
    {'key': 'Cervical lymph nodes', 'doc_count': 0},
    {'key': 'Colon', 'doc_count': 0},
    {'key': 'Cord blood', 'doc_count': 0},
    {'key': 'DNA', 'doc_count': 0},
    {'key': 'Decidua', 'doc_count': 0},
    {'key': 'Dendritic cell', 'doc_count': 0},
    {'key': 'Dermis', 'doc_count': 0},
    {'key': 'Epithelium', 'doc_count': 0},
    {'key': 'Feces', 'doc_count': 0},
    {'key': 'Fibroblast', 'doc_count': 0},
    {'key': 'Ileum', 'doc_count': 0},
    {'key': 'Inguinal lymph node', 'doc_count': 0},
    {'key': 'Jejunum', 'doc_count': 0},
    {'key': 'Kidney', 'doc_count': 0},
    {'key': 'Leukocytes', 'doc_count': 0},
    {'key': 'Lipid', 'doc_count': 0},
    {'key': 'Liver', 'doc_count': 0},
    {'key': 'Lung', 'doc_count': 0},
    {'key': 'Lung lymph node', 'doc_count': 0},
    {'key': 'Lymph node', 'doc_count': 0},
    {'key': 'Lymphocyte', 'doc_count': 0},
    {'key': 'Macrophage', 'doc_count': 0},
    {'key': 'Mesenteric lymph node', 'doc_count': 0},
    {'key': 'Monocyte', 'doc_count': 0},
    {'key': 'Mouse Ear', 'doc_count': 0},
    {'key': 'NK cell', 'doc_count': 0},
    {'key': 'Nasal Swab or Nose Specimen', 'doc_count': 0},
    {'key': 'Nasal lavage fluid', 'doc_count': 0},
    {'key': 'Nasopharyngeal Swab Specimen', 'doc_count': 0},
    {'key': 'Negative Control', 'doc_count': 0},
    {'key': 'Neutrophil', 'doc_count': 0},
    {'key': 'Not Specified', 'doc_count': 0},
    {'key': 'Optic Nerve', 'doc_count': 0},
    {'key': 'Organoids', 'doc_count': 0},
    {'key': 'Oropharyngeal Swab Specimen', 'doc_count': 0},
    {'key': 'Osteoblasts', 'doc_count': 0},
    {'key': 'PBL', 'doc_count': 0},
    {'key': 'PBMC', 'doc_count': 0},
    {'key': 'Placenta', 'doc_count': 0},
    {'key': 'Plasma', 'doc_count': 0},
    {'key': 'Pooled Sample', 'doc_count': 0},
    {'key': 'Popliteal lymph node', 'doc_count': 0},
    {'key': 'Red Blood Cell', 'doc_count': 0},
    {'key': 'Saliva', 'doc_count': 0},
    {'key': 'Salivary Glands', 'doc_count': 0},
    {'key': 'Skin of body', 'doc_count': 0},
    {'key': 'Small intestine', 'doc_count': 0},
    {'key': 'Spleen', 'doc_count': 0},
    {'key': 'Stomach', 'doc_count': 0},
    {'key': 'Synovial tissue', 'doc_count': 0},
    {'key': 'T cell', 'doc_count': 0},
    {'key': 'Thymus', 'doc_count': 0},
    {'key': 'Tonsil', 'doc_count': 0},
    {'key': 'Trachea', 'doc_count': 0},
    {'key': 'Tumor Tissue', 'doc_count': 0},
    {'key': 'Umbilical cord blood', 'doc_count': 0},
    {'key': 'Urine', 'doc_count': 0},
    {'key': 'Vagina', 'doc_count': 0},
    {'key': 'brain', 'doc_count': 0},
    {'key': 'cell line', 'doc_count': 0}]},
  'study_accession': {'doc_count_error_upper_bound': 0,
   'sum_other_doc_count': 0,
   'buckets': [{'key': 'SDY180', 'doc_count': 1},
    {'key': 'SDY87', 'doc_count': 1},
    {'key': 'SDY1', 'doc_count': 0},
    {'key': 'SDY10', 'doc_count': 0},
    {'key': 'SDY100', 'doc_count': 0},
    {'key': 'SDY1015', 'doc_count': 0},
    {'key': 'SDY1025', 'doc_count': 0},
    {'key': 'SDY1026', 'doc_count': 0},
    {'key': 'SDY1027', 'doc_count': 0},
    {'key': 'SDY1028', 'doc_count': 0},
    {'key': 'SDY1029', 'doc_count': 0},
    {'key': 'SDY1039', 'doc_count': 0},
    {'key': 'SDY1041', 'doc_count': 0},
    {'key': 'SDY1043', 'doc_count': 0},
    {'key': 'SDY1045', 'doc_count': 0},
    {'key': 'SDY1058', 'doc_count': 0},
    {'key': 'SDY1064', 'doc_count': 0},
    {'key': 'SDY1079', 'doc_count': 0},
    {'key': 'SDY1085', 'doc_count': 0},
    {'key': 'SDY1086', 'doc_count': 0},
    {'key': 'SDY1092', 'doc_count': 0},
    {'key': 'SDY1093', 'doc_count': 0},
    {'key': 'SDY1094', 'doc_count': 0},
    {'key': 'SDY1095', 'doc_count': 0},
    {'key': 'SDY1097', 'doc_count': 0},
    {'key': 'SDY1099', 'doc_count': 0},
    {'key': 'SDY110', 'doc_count': 0},
    {'key': 'SDY1100', 'doc_count': 0},
    {'key': 'SDY1108', 'doc_count': 0},
    {'key': 'SDY1109', 'doc_count': 0},
    {'key': 'SDY111', 'doc_count': 0},
    {'key': 'SDY1115', 'doc_count': 0},
    {'key': 'SDY1119', 'doc_count': 0},
    {'key': 'SDY112', 'doc_count': 0},
    {'key': 'SDY113', 'doc_count': 0},
    {'key': 'SDY1148', 'doc_count': 0},
    {'key': 'SDY1149', 'doc_count': 0},
    {'key': 'SDY1152', 'doc_count': 0},
    {'key': 'SDY1153', 'doc_count': 0},
    {'key': 'SDY1154', 'doc_count': 0},
    {'key': 'SDY1155', 'doc_count': 0},
    {'key': 'SDY1157', 'doc_count': 0},
    {'key': 'SDY1162', 'doc_count': 0},
    {'key': 'SDY1164', 'doc_count': 0},
    {'key': 'SDY1171', 'doc_count': 0},
    {'key': 'SDY1172', 'doc_count': 0},
    {'key': 'SDY1173', 'doc_count': 0},
    {'key': 'SDY1175', 'doc_count': 0},
    {'key': 'SDY1176', 'doc_count': 0},
    {'key': 'SDY1177', 'doc_count': 0},
    {'key': 'SDY1178', 'doc_count': 0},
    {'key': 'SDY1182', 'doc_count': 0},
    {'key': 'SDY1185', 'doc_count': 0},
    {'key': 'SDY1190', 'doc_count': 0},
    {'key': 'SDY1205', 'doc_count': 0},
    {'key': 'SDY1206', 'doc_count': 0},
    {'key': 'SDY1215', 'doc_count': 0},
    {'key': 'SDY1217', 'doc_count': 0},
    {'key': 'SDY1230', 'doc_count': 0},
    {'key': 'SDY1231', 'doc_count': 0},
    {'key': 'SDY1249', 'doc_count': 0},
    {'key': 'SDY1252', 'doc_count': 0},
    {'key': 'SDY1256', 'doc_count': 0},
    {'key': 'SDY1260', 'doc_count': 0},
    {'key': 'SDY1264', 'doc_count': 0},
    {'key': 'SDY1267', 'doc_count': 0},
    {'key': 'SDY1276', 'doc_count': 0},
    {'key': 'SDY1288', 'doc_count': 0},
    {'key': 'SDY1289', 'doc_count': 0},
    {'key': 'SDY1290', 'doc_count': 0},
    {'key': 'SDY1291', 'doc_count': 0},
    {'key': 'SDY1293', 'doc_count': 0},
    {'key': 'SDY1294', 'doc_count': 0},
    {'key': 'SDY1295', 'doc_count': 0},
    {'key': 'SDY1298', 'doc_count': 0},
    {'key': 'SDY1299', 'doc_count': 0},
    {'key': 'SDY13', 'doc_count': 0},
    {'key': 'SDY1300', 'doc_count': 0},
    {'key': 'SDY1302', 'doc_count': 0},
    {'key': 'SDY131', 'doc_count': 0},
    {'key': 'SDY132', 'doc_count': 0},
    {'key': 'SDY1324', 'doc_count': 0},
    {'key': 'SDY1325', 'doc_count': 0},
    {'key': 'SDY1326', 'doc_count': 0},
    {'key': 'SDY1327', 'doc_count': 0},
    {'key': 'SDY1328', 'doc_count': 0},
    {'key': 'SDY133', 'doc_count': 0},
    {'key': 'SDY1331', 'doc_count': 0},
    {'key': 'SDY1335', 'doc_count': 0},
    {'key': 'SDY1337', 'doc_count': 0},
    {'key': 'SDY134', 'doc_count': 0},
    {'key': 'SDY1341', 'doc_count': 0},
    {'key': 'SDY1343', 'doc_count': 0},
    {'key': 'SDY1352', 'doc_count': 0},
    {'key': 'SDY1361', 'doc_count': 0},
    {'key': 'SDY1363', 'doc_count': 0},
    {'key': 'SDY1364', 'doc_count': 0},
    {'key': 'SDY1365', 'doc_count': 0},
    {'key': 'SDY1368', 'doc_count': 0},
    {'key': 'SDY1369', 'doc_count': 0},
    {'key': 'SDY1370', 'doc_count': 0},
    {'key': 'SDY1371', 'doc_count': 0},
    {'key': 'SDY1373', 'doc_count': 0},
    {'key': 'SDY1381', 'doc_count': 0},
    {'key': 'SDY1385', 'doc_count': 0},
    {'key': 'SDY1387', 'doc_count': 0},
    {'key': 'SDY1389', 'doc_count': 0},
    {'key': 'SDY139', 'doc_count': 0},
    {'key': 'SDY1390', 'doc_count': 0},
    {'key': 'SDY1393', 'doc_count': 0},
    {'key': 'SDY1394', 'doc_count': 0},
    {'key': 'SDY1395', 'doc_count': 0},
    {'key': 'SDY1396', 'doc_count': 0},
    {'key': 'SDY1397', 'doc_count': 0},
    {'key': 'SDY14', 'doc_count': 0},
    {'key': 'SDY1401', 'doc_count': 0},
    {'key': 'SDY1402', 'doc_count': 0},
    {'key': 'SDY1403', 'doc_count': 0},
    {'key': 'SDY1409', 'doc_count': 0},
    {'key': 'SDY1411', 'doc_count': 0},
    {'key': 'SDY1412', 'doc_count': 0},
    {'key': 'SDY1414', 'doc_count': 0},
    {'key': 'SDY1417', 'doc_count': 0},
    {'key': 'SDY1418', 'doc_count': 0},
    {'key': 'SDY1424', 'doc_count': 0},
    {'key': 'SDY1425', 'doc_count': 0},
    {'key': 'SDY1426', 'doc_count': 0},
    {'key': 'SDY1432', 'doc_count': 0},
    {'key': 'SDY1433', 'doc_count': 0},
    {'key': 'SDY1434', 'doc_count': 0},
    {'key': 'SDY1436', 'doc_count': 0},
    {'key': 'SDY1437', 'doc_count': 0},
    {'key': 'SDY1439', 'doc_count': 0},
    {'key': 'SDY144', 'doc_count': 0},
    {'key': 'SDY1446', 'doc_count': 0},
    {'key': 'SDY146', 'doc_count': 0},
    {'key': 'SDY1464', 'doc_count': 0},
    {'key': 'SDY1465', 'doc_count': 0},
    {'key': 'SDY1466', 'doc_count': 0},
    {'key': 'SDY1467', 'doc_count': 0},
    {'key': 'SDY1468', 'doc_count': 0},
    {'key': 'SDY1469', 'doc_count': 0},
    {'key': 'SDY147', 'doc_count': 0},
    {'key': 'SDY1471', 'doc_count': 0},
    {'key': 'SDY1472', 'doc_count': 0},
    {'key': 'SDY1473', 'doc_count': 0},
    {'key': 'SDY1474', 'doc_count': 0},
    {'key': 'SDY1475', 'doc_count': 0},
    {'key': 'SDY1476', 'doc_count': 0},
    {'key': 'SDY1479', 'doc_count': 0},
    {'key': 'SDY148', 'doc_count': 0},
    {'key': 'SDY1480', 'doc_count': 0},
    {'key': 'SDY1481', 'doc_count': 0},
    {'key': 'SDY1482', 'doc_count': 0},
    {'key': 'SDY1483', 'doc_count': 0},
    {'key': 'SDY1484', 'doc_count': 0},
    {'key': 'SDY1485', 'doc_count': 0},
    {'key': 'SDY1486', 'doc_count': 0},
    {'key': 'SDY1487', 'doc_count': 0},
    {'key': 'SDY1490', 'doc_count': 0},
    {'key': 'SDY15', 'doc_count': 0},
    {'key': 'SDY1502', 'doc_count': 0},
    {'key': 'SDY1503', 'doc_count': 0},
    {'key': 'SDY1513', 'doc_count': 0},
    {'key': 'SDY1514', 'doc_count': 0},
    {'key': 'SDY1515', 'doc_count': 0},
    {'key': 'SDY1519', 'doc_count': 0},
    {'key': 'SDY1520', 'doc_count': 0},
    {'key': 'SDY1521', 'doc_count': 0},
    {'key': 'SDY1522', 'doc_count': 0},
    {'key': 'SDY1528', 'doc_count': 0},
    {'key': 'SDY1529', 'doc_count': 0},
    {'key': 'SDY1530', 'doc_count': 0},
    {'key': 'SDY1533', 'doc_count': 0},
    {'key': 'SDY1535', 'doc_count': 0},
    {'key': 'SDY1536', 'doc_count': 0},
    {'key': 'SDY1538', 'doc_count': 0},
    {'key': 'SDY1544', 'doc_count': 0},
    {'key': 'SDY1550', 'doc_count': 0},
    {'key': 'SDY1553', 'doc_count': 0},
    {'key': 'SDY1554', 'doc_count': 0},
    {'key': 'SDY1555', 'doc_count': 0},
    {'key': 'SDY1591', 'doc_count': 0},
    {'key': 'SDY1594', 'doc_count': 0},
    {'key': 'SDY1595', 'doc_count': 0},
    {'key': 'SDY1596', 'doc_count': 0},
    {'key': 'SDY1597', 'doc_count': 0},
    {'key': 'SDY1598', 'doc_count': 0},
    {'key': 'SDY1599', 'doc_count': 0},
    {'key': 'SDY16', 'doc_count': 0},
    {'key': 'SDY1600', 'doc_count': 0},
    {'key': 'SDY1603', 'doc_count': 0},
    {'key': 'SDY1613', 'doc_count': 0},
    {'key': 'SDY1618', 'doc_count': 0},
    {'key': 'SDY1619', 'doc_count': 0},
    {'key': 'SDY162', 'doc_count': 0},
    {'key': 'SDY1620', 'doc_count': 0},
    {'key': 'SDY1625', 'doc_count': 0},
    {'key': 'SDY1626', 'doc_count': 0},
    {'key': 'SDY1627', 'doc_count': 0},
    {'key': 'SDY1628', 'doc_count': 0},
    {'key': 'SDY1630', 'doc_count': 0},
    {'key': 'SDY1631', 'doc_count': 0},
    {'key': 'SDY1632', 'doc_count': 0},
    {'key': 'SDY1633', 'doc_count': 0},
    {'key': 'SDY1634', 'doc_count': 0},
    {'key': 'SDY1636', 'doc_count': 0},
    {'key': 'SDY1637', 'doc_count': 0},
    {'key': 'SDY1640', 'doc_count': 0},
    {'key': 'SDY1641', 'doc_count': 0},
    {'key': 'SDY1642', 'doc_count': 0},
    {'key': 'SDY1644', 'doc_count': 0},
    {'key': 'SDY1646', 'doc_count': 0},
    {'key': 'SDY1647', 'doc_count': 0},
    {'key': 'SDY1648', 'doc_count': 0},
    {'key': 'SDY1649', 'doc_count': 0},
    {'key': 'SDY165', 'doc_count': 0},
    {'key': 'SDY1654', 'doc_count': 0},
    {'key': 'SDY1655', 'doc_count': 0},
    {'key': 'SDY1656', 'doc_count': 0},
    {'key': 'SDY1657', 'doc_count': 0},
    {'key': 'SDY1658', 'doc_count': 0},
    {'key': 'SDY1660', 'doc_count': 0},
    {'key': 'SDY1662', 'doc_count': 0},
    {'key': 'SDY1666', 'doc_count': 0},
    {'key': 'SDY1667', 'doc_count': 0},
    {'key': 'SDY1669', 'doc_count': 0},
    {'key': 'SDY167', 'doc_count': 0},
    {'key': 'SDY1671', 'doc_count': 0},
    {'key': 'SDY1672', 'doc_count': 0},
    {'key': 'SDY1679', 'doc_count': 0},
    {'key': 'SDY1680', 'doc_count': 0},
    {'key': 'SDY1681', 'doc_count': 0},
    {'key': 'SDY1683', 'doc_count': 0},
    {'key': 'SDY1684', 'doc_count': 0},
    {'key': 'SDY1686', 'doc_count': 0},
    {'key': 'SDY1688', 'doc_count': 0},
    {'key': 'SDY1689', 'doc_count': 0},
    {'key': 'SDY1690', 'doc_count': 0},
    {'key': 'SDY1691', 'doc_count': 0},
    {'key': 'SDY1692', 'doc_count': 0},
    {'key': 'SDY1693', 'doc_count': 0},
    {'key': 'SDY1696', 'doc_count': 0},
    {'key': 'SDY1697', 'doc_count': 0},
    {'key': 'SDY1699', 'doc_count': 0},
    {'key': 'SDY17', 'doc_count': 0},
    {'key': 'SDY1700', 'doc_count': 0},
    {'key': 'SDY1701', 'doc_count': 0},
    {'key': 'SDY1702', 'doc_count': 0},
    {'key': 'SDY1708', 'doc_count': 0},
    {'key': 'SDY1710', 'doc_count': 0},
    {'key': 'SDY1711', 'doc_count': 0},
    {'key': 'SDY1712', 'doc_count': 0},
    {'key': 'SDY1715', 'doc_count': 0},
    {'key': 'SDY1720', 'doc_count': 0},
    {'key': 'SDY1722', 'doc_count': 0},
    {'key': 'SDY1723', 'doc_count': 0},
    {'key': 'SDY1725', 'doc_count': 0},
    {'key': 'SDY1726', 'doc_count': 0},
    {'key': 'SDY1732', 'doc_count': 0},
    {'key': 'SDY1733', 'doc_count': 0},
    {'key': 'SDY1734', 'doc_count': 0},
    {'key': 'SDY1737', 'doc_count': 0},
    {'key': 'SDY1738', 'doc_count': 0},
    {'key': 'SDY1742', 'doc_count': 0},
    {'key': 'SDY1743', 'doc_count': 0},
    {'key': 'SDY1752', 'doc_count': 0},
    {'key': 'SDY1760', 'doc_count': 0},
    {'key': 'SDY1764', 'doc_count': 0},
    {'key': 'SDY1765', 'doc_count': 0},
    {'key': 'SDY1767', 'doc_count': 0},
    {'key': 'SDY1768', 'doc_count': 0},
    {'key': 'SDY1769', 'doc_count': 0},
    {'key': 'SDY1772', 'doc_count': 0},
    {'key': 'SDY1773', 'doc_count': 0},
    {'key': 'SDY1774', 'doc_count': 0},
    {'key': 'SDY1777', 'doc_count': 0},
    {'key': 'SDY1780', 'doc_count': 0},
    {'key': 'SDY1781', 'doc_count': 0},
    {'key': 'SDY1789', 'doc_count': 0},
    {'key': 'SDY1798', 'doc_count': 0},
    {'key': 'SDY1799', 'doc_count': 0},
    {'key': 'SDY18', 'doc_count': 0},
    {'key': 'SDY1800', 'doc_count': 0},
    {'key': 'SDY1803', 'doc_count': 0},
    {'key': 'SDY1809', 'doc_count': 0},
    {'key': 'SDY1810', 'doc_count': 0},
    {'key': 'SDY1812', 'doc_count': 0},
    {'key': 'SDY1813', 'doc_count': 0},
    {'key': 'SDY1815', 'doc_count': 0},
    {'key': 'SDY1816', 'doc_count': 0},
    {'key': 'SDY1818', 'doc_count': 0},
    {'key': 'SDY1819', 'doc_count': 0},
    {'key': 'SDY1821', 'doc_count': 0},
    {'key': 'SDY1828', 'doc_count': 0},
    {'key': 'SDY1829', 'doc_count': 0},
    {'key': 'SDY183', 'doc_count': 0},
    {'key': 'SDY1831', 'doc_count': 0},
    {'key': 'SDY1832', 'doc_count': 0},
    {'key': 'SDY1835', 'doc_count': 0},
    {'key': 'SDY1840', 'doc_count': 0},
    {'key': 'SDY1844', 'doc_count': 0},
    {'key': 'SDY1845', 'doc_count': 0},
    {'key': 'SDY1848', 'doc_count': 0},
    {'key': 'SDY1849', 'doc_count': 0},
    {'key': 'SDY1850', 'doc_count': 0},
    {'key': 'SDY1851', 'doc_count': 0},
    {'key': 'SDY1852', 'doc_count': 0},
    {'key': 'SDY1854', 'doc_count': 0},
    {'key': 'SDY1862', 'doc_count': 0},
    {'key': 'SDY1863', 'doc_count': 0},
    {'key': 'SDY1868', 'doc_count': 0},
    {'key': 'SDY1869', 'doc_count': 0},
    {'key': 'SDY1870', 'doc_count': 0},
    {'key': 'SDY1871', 'doc_count': 0},
    {'key': 'SDY1872', 'doc_count': 0},
    {'key': 'SDY1873', 'doc_count': 0},
    {'key': 'SDY1876', 'doc_count': 0},
    {'key': 'SDY1877', 'doc_count': 0},
    {'key': 'SDY1879', 'doc_count': 0},
    {'key': 'SDY1880', 'doc_count': 0},
    {'key': 'SDY1881', 'doc_count': 0},
    {'key': 'SDY1882', 'doc_count': 0},
    {'key': 'SDY1883', 'doc_count': 0},
    {'key': 'SDY1884', 'doc_count': 0},
    {'key': 'SDY1885', 'doc_count': 0},
    {'key': 'SDY1886', 'doc_count': 0},
    {'key': 'SDY1887', 'doc_count': 0},
    {'key': 'SDY1889', 'doc_count': 0},
    {'key': 'SDY1890', 'doc_count': 0},
    {'key': 'SDY1898', 'doc_count': 0},
    {'key': 'SDY1899', 'doc_count': 0},
    {'key': 'SDY19', 'doc_count': 0},
    {'key': 'SDY1900', 'doc_count': 0},
    {'key': 'SDY1902', 'doc_count': 0},
    {'key': 'SDY1903', 'doc_count': 0},
    {'key': 'SDY1904', 'doc_count': 0},
    {'key': 'SDY1909', 'doc_count': 0},
    {'key': 'SDY1912', 'doc_count': 0},
    {'key': 'SDY1916', 'doc_count': 0},
    {'key': 'SDY1917', 'doc_count': 0},
    {'key': 'SDY1924', 'doc_count': 0},
    {'key': 'SDY1927', 'doc_count': 0},
    {'key': 'SDY1928', 'doc_count': 0},
    {'key': 'SDY1930', 'doc_count': 0},
    {'key': 'SDY1931', 'doc_count': 0},
    {'key': 'SDY1932', 'doc_count': 0},
    {'key': 'SDY1936', 'doc_count': 0},
    {'key': 'SDY1937', 'doc_count': 0},
    {'key': 'SDY1938', 'doc_count': 0},
    {'key': 'SDY194', 'doc_count': 0},
    {'key': 'SDY1944', 'doc_count': 0},
    {'key': 'SDY1945', 'doc_count': 0},
    {'key': 'SDY1947', 'doc_count': 0},
    {'key': 'SDY196', 'doc_count': 0},
    {'key': 'SDY1960', 'doc_count': 0},
    {'key': 'SDY1961', 'doc_count': 0},
    {'key': 'SDY1962', 'doc_count': 0},
    {'key': 'SDY1963', 'doc_count': 0},
    {'key': 'SDY1964', 'doc_count': 0},
    {'key': 'SDY1965', 'doc_count': 0},
    {'key': 'SDY1966', 'doc_count': 0},
    {'key': 'SDY1967', 'doc_count': 0},
    {'key': 'SDY1968', 'doc_count': 0},
    {'key': 'SDY1969', 'doc_count': 0},
    {'key': 'SDY197', 'doc_count': 0},
    {'key': 'SDY1971', 'doc_count': 0},
    {'key': 'SDY1972', 'doc_count': 0},
    {'key': 'SDY1973', 'doc_count': 0},
    {'key': 'SDY1974', 'doc_count': 0},
    {'key': 'SDY1975', 'doc_count': 0},
    {'key': 'SDY1976', 'doc_count': 0},
    {'key': 'SDY1977', 'doc_count': 0},
    {'key': 'SDY1978', 'doc_count': 0},
    {'key': 'SDY198', 'doc_count': 0},
    {'key': 'SDY1980', 'doc_count': 0},
    {'key': 'SDY199', 'doc_count': 0},
    {'key': 'SDY1990', 'doc_count': 0},
    {'key': 'SDY1991', 'doc_count': 0},
    {'key': 'SDY1995', 'doc_count': 0},
    {'key': 'SDY1997', 'doc_count': 0},
    {'key': 'SDY1998', 'doc_count': 0},
    {'key': 'SDY2', 'doc_count': 0},
    {'key': 'SDY20', 'doc_count': 0},
    {'key': 'SDY200', 'doc_count': 0},
    {'key': 'SDY2002', 'doc_count': 0},
    {'key': 'SDY2007', 'doc_count': 0},
    {'key': 'SDY201', 'doc_count': 0},
    {'key': 'SDY2011', 'doc_count': 0},
    {'key': 'SDY2012', 'doc_count': 0},
    {'key': 'SDY2015', 'doc_count': 0},
    {'key': 'SDY2016', 'doc_count': 0},
    {'key': 'SDY202', 'doc_count': 0},
    {'key': 'SDY2024', 'doc_count': 0},
    {'key': 'SDY2026', 'doc_count': 0},
    {'key': 'SDY2033', 'doc_count': 0},
    {'key': 'SDY2034', 'doc_count': 0},
    {'key': 'SDY2035', 'doc_count': 0},
    {'key': 'SDY2036', 'doc_count': 0},
    {'key': 'SDY2037', 'doc_count': 0},
    {'key': 'SDY2038', 'doc_count': 0},
    {'key': 'SDY2039', 'doc_count': 0},
    {'key': 'SDY2040', 'doc_count': 0},
    {'key': 'SDY2041', 'doc_count': 0},
    {'key': 'SDY2042', 'doc_count': 0},
    {'key': 'SDY2043', 'doc_count': 0},
    {'key': 'SDY2044', 'doc_count': 0},
    {'key': 'SDY2045', 'doc_count': 0},
    {'key': 'SDY2047', 'doc_count': 0},
    {'key': 'SDY2052', 'doc_count': 0},
    {'key': 'SDY2053', 'doc_count': 0},
    {'key': 'SDY2058', 'doc_count': 0},
    {'key': 'SDY2060', 'doc_count': 0},
    {'key': 'SDY207', 'doc_count': 0},
    {'key': 'SDY2075', 'doc_count': 0},
    {'key': 'SDY2079', 'doc_count': 0},
    {'key': 'SDY208', 'doc_count': 0},
    {'key': 'SDY21', 'doc_count': 0},
    {'key': 'SDY210', 'doc_count': 0},
    {'key': 'SDY2107', 'doc_count': 0},
    {'key': 'SDY2108', 'doc_count': 0},
    {'key': 'SDY211', 'doc_count': 0},
    {'key': 'SDY2111', 'doc_count': 0},
    {'key': 'SDY2112', 'doc_count': 0},
    {'key': 'SDY2113', 'doc_count': 0},
    {'key': 'SDY2114', 'doc_count': 0},
    {'key': 'SDY2115', 'doc_count': 0},
    {'key': 'SDY2116', 'doc_count': 0},
    {'key': 'SDY2117', 'doc_count': 0},
    {'key': 'SDY2118', 'doc_count': 0},
    {'key': 'SDY2119', 'doc_count': 0},
    {'key': 'SDY212', 'doc_count': 0},
    {'key': 'SDY2120', 'doc_count': 0},
    {'key': 'SDY2121', 'doc_count': 0},
    {'key': 'SDY2122', 'doc_count': 0},
    {'key': 'SDY2124', 'doc_count': 0},
    {'key': 'SDY2125', 'doc_count': 0},
    {'key': 'SDY2126', 'doc_count': 0},
    {'key': 'SDY2127', 'doc_count': 0},
    {'key': 'SDY2129', 'doc_count': 0},
    {'key': 'SDY2130', 'doc_count': 0},
    {'key': 'SDY2131', 'doc_count': 0},
    {'key': 'SDY2132', 'doc_count': 0},
    {'key': 'SDY2133', 'doc_count': 0},
    {'key': 'SDY2134', 'doc_count': 0},
    {'key': 'SDY2135', 'doc_count': 0},
    {'key': 'SDY214', 'doc_count': 0},
    {'key': 'SDY2141', 'doc_count': 0},
    {'key': 'SDY215', 'doc_count': 0},
    {'key': 'SDY2157', 'doc_count': 0},
    {'key': 'SDY2158', 'doc_count': 0},
    {'key': 'SDY2159', 'doc_count': 0},
    {'key': 'SDY216', 'doc_count': 0},
    {'key': 'SDY2165', 'doc_count': 0},
    {'key': 'SDY2166', 'doc_count': 0},
    {'key': 'SDY2167', 'doc_count': 0},
    {'key': 'SDY2168', 'doc_count': 0},
    {'key': 'SDY2169', 'doc_count': 0},
    {'key': 'SDY217', 'doc_count': 0},
    {'key': 'SDY2170', 'doc_count': 0},
    {'key': 'SDY2171', 'doc_count': 0},
    {'key': 'SDY2172', 'doc_count': 0},
    {'key': 'SDY2173', 'doc_count': 0},
    {'key': 'SDY2174', 'doc_count': 0},
    {'key': 'SDY2176', 'doc_count': 0},
    {'key': 'SDY2177', 'doc_count': 0},
    {'key': 'SDY218', 'doc_count': 0},
    {'key': 'SDY2187', 'doc_count': 0},
    {'key': 'SDY2188', 'doc_count': 0},
    {'key': 'SDY2189', 'doc_count': 0},
    {'key': 'SDY2193', 'doc_count': 0},
    {'key': 'SDY2195', 'doc_count': 0},
    {'key': 'SDY2196', 'doc_count': 0},
    {'key': 'SDY22', 'doc_count': 0},
    {'key': 'SDY2209', 'doc_count': 0},
    {'key': 'SDY2210', 'doc_count': 0},
    {'key': 'SDY2213', 'doc_count': 0},
    {'key': 'SDY2216', 'doc_count': 0},
    {'key': 'SDY2220', 'doc_count': 0},
    {'key': 'SDY2221', 'doc_count': 0},
    {'key': 'SDY2222', 'doc_count': 0},
    {'key': 'SDY2224', 'doc_count': 0},
    {'key': 'SDY2225', 'doc_count': 0},
    {'key': 'SDY2226', 'doc_count': 0},
    {'key': 'SDY2227', 'doc_count': 0},
    {'key': 'SDY2228', 'doc_count': 0},
    {'key': 'SDY2229', 'doc_count': 0},
    {'key': 'SDY223', 'doc_count': 0},
    {'key': 'SDY2230', 'doc_count': 0},
    {'key': 'SDY2231', 'doc_count': 0},
    {'key': 'SDY2232', 'doc_count': 0},
    {'key': 'SDY2233', 'doc_count': 0},
    {'key': 'SDY2234', 'doc_count': 0},
    {'key': 'SDY2236', 'doc_count': 0},
    {'key': 'SDY2238', 'doc_count': 0},
    {'key': 'SDY2239', 'doc_count': 0},
    {'key': 'SDY224', 'doc_count': 0},
    {'key': 'SDY2240', 'doc_count': 0},
    {'key': 'SDY2241', 'doc_count': 0},
    {'key': 'SDY2242', 'doc_count': 0},
    {'key': 'SDY2243', 'doc_count': 0},
    {'key': 'SDY2244', 'doc_count': 0},
    {'key': 'SDY2245', 'doc_count': 0},
    {'key': 'SDY2246', 'doc_count': 0},
    {'key': 'SDY2247', 'doc_count': 0},
    {'key': 'SDY2248', 'doc_count': 0},
    {'key': 'SDY2249', 'doc_count': 0},
    {'key': 'SDY225', 'doc_count': 0},
    {'key': 'SDY2250', 'doc_count': 0},
    {'key': 'SDY2251', 'doc_count': 0},
    {'key': 'SDY2252', 'doc_count': 0},
    {'key': 'SDY2253', 'doc_count': 0},
    {'key': 'SDY2254', 'doc_count': 0},
    {'key': 'SDY2255', 'doc_count': 0},
    {'key': 'SDY2256', 'doc_count': 0},
    {'key': 'SDY2257', 'doc_count': 0},
    {'key': 'SDY2258', 'doc_count': 0},
    {'key': 'SDY2259', 'doc_count': 0},
    {'key': 'SDY226', 'doc_count': 0},
    {'key': 'SDY2260', 'doc_count': 0},
    {'key': 'SDY2261', 'doc_count': 0},
    {'key': 'SDY2262', 'doc_count': 0},
    {'key': 'SDY2263', 'doc_count': 0},
    {'key': 'SDY2266', 'doc_count': 0},
    {'key': 'SDY2267', 'doc_count': 0},
    {'key': 'SDY2268', 'doc_count': 0},
    {'key': 'SDY2270', 'doc_count': 0},
    {'key': 'SDY2274', 'doc_count': 0},
    {'key': 'SDY2275', 'doc_count': 0},
    {'key': 'SDY2277', 'doc_count': 0},
    {'key': 'SDY2279', 'doc_count': 0},
    {'key': 'SDY2281', 'doc_count': 0},
    {'key': 'SDY2282', 'doc_count': 0},
    {'key': 'SDY2286', 'doc_count': 0},
    {'key': 'SDY2295', 'doc_count': 0},
    {'key': 'SDY2299', 'doc_count': 0},
    {'key': 'SDY23', 'doc_count': 0},
    {'key': 'SDY230', 'doc_count': 0},
    {'key': 'SDY2306', 'doc_count': 0},
    {'key': 'SDY2310', 'doc_count': 0},
    {'key': 'SDY2311', 'doc_count': 0},
    {'key': 'SDY2312', 'doc_count': 0},
    {'key': 'SDY2314', 'doc_count': 0},
    {'key': 'SDY2315', 'doc_count': 0},
    {'key': 'SDY2316', 'doc_count': 0},
    {'key': 'SDY2317', 'doc_count': 0},
    {'key': 'SDY2319', 'doc_count': 0},
    {'key': 'SDY232', 'doc_count': 0},
    {'key': 'SDY2320', 'doc_count': 0},
    {'key': 'SDY2321', 'doc_count': 0},
    {'key': 'SDY2323', 'doc_count': 0},
    {'key': 'SDY2324', 'doc_count': 0},
    {'key': 'SDY2325', 'doc_count': 0},
    {'key': 'SDY2326', 'doc_count': 0},
    {'key': 'SDY2327', 'doc_count': 0},
    {'key': 'SDY2328', 'doc_count': 0},
    {'key': 'SDY2329', 'doc_count': 0},
    {'key': 'SDY2330', 'doc_count': 0},
    {'key': 'SDY2331', 'doc_count': 0},
    {'key': 'SDY2332', 'doc_count': 0},
    {'key': 'SDY2333', 'doc_count': 0},
    {'key': 'SDY2334', 'doc_count': 0},
    {'key': 'SDY2335', 'doc_count': 0},
    {'key': 'SDY2336', 'doc_count': 0},
    {'key': 'SDY2337', 'doc_count': 0},
    {'key': 'SDY2338', 'doc_count': 0},
    {'key': 'SDY2339', 'doc_count': 0},
    {'key': 'SDY2340', 'doc_count': 0},
    {'key': 'SDY2341', 'doc_count': 0},
    {'key': 'SDY2342', 'doc_count': 0},
    {'key': 'SDY2343', 'doc_count': 0},
    {'key': 'SDY2344', 'doc_count': 0},
    {'key': 'SDY2345', 'doc_count': 0},
    {'key': 'SDY2346', 'doc_count': 0},
    {'key': 'SDY2347', 'doc_count': 0},
    {'key': 'SDY2348', 'doc_count': 0},
    {'key': 'SDY2349', 'doc_count': 0},
    {'key': 'SDY2350', 'doc_count': 0},
    {'key': 'SDY2351', 'doc_count': 0},
    {'key': 'SDY2352', 'doc_count': 0},
    {'key': 'SDY2353', 'doc_count': 0},
    {'key': 'SDY2354', 'doc_count': 0},
    {'key': 'SDY2355', 'doc_count': 0},
    {'key': 'SDY2356', 'doc_count': 0},
    {'key': 'SDY2357', 'doc_count': 0},
    {'key': 'SDY2361', 'doc_count': 0},
    {'key': 'SDY2362', 'doc_count': 0},
    {'key': 'SDY2363', 'doc_count': 0},
    {'key': 'SDY2364', 'doc_count': 0},
    {'key': 'SDY2365', 'doc_count': 0},
    {'key': 'SDY2367', 'doc_count': 0},
    {'key': 'SDY2369', 'doc_count': 0},
    {'key': 'SDY2371', 'doc_count': 0},
    {'key': 'SDY2372', 'doc_count': 0},
    {'key': 'SDY2373', 'doc_count': 0},
    {'key': 'SDY2374', 'doc_count': 0},
    {'key': 'SDY2375', 'doc_count': 0},
    {'key': 'SDY2376', 'doc_count': 0},
    {'key': 'SDY2377', 'doc_count': 0},
    {'key': 'SDY2378', 'doc_count': 0},
    {'key': 'SDY2379', 'doc_count': 0},
    {'key': 'SDY2380', 'doc_count': 0},
    {'key': 'SDY2381', 'doc_count': 0},
    {'key': 'SDY2382', 'doc_count': 0},
    {'key': 'SDY2383', 'doc_count': 0},
    {'key': 'SDY2384', 'doc_count': 0},
    {'key': 'SDY2385', 'doc_count': 0},
    {'key': 'SDY2386', 'doc_count': 0},
    {'key': 'SDY2387', 'doc_count': 0},
    {'key': 'SDY2388', 'doc_count': 0},
    {'key': 'SDY2389', 'doc_count': 0},
    {'key': 'SDY2390', 'doc_count': 0},
    {'key': 'SDY2393', 'doc_count': 0},
    {'key': 'SDY2394', 'doc_count': 0},
    {'key': 'SDY2397', 'doc_count': 0},
    {'key': 'SDY2398', 'doc_count': 0},
    {'key': 'SDY2399', 'doc_count': 0},
    {'key': 'SDY24', 'doc_count': 0},
    {'key': 'SDY2400', 'doc_count': 0},
    {'key': 'SDY2401', 'doc_count': 0},
    {'key': 'SDY2402', 'doc_count': 0},
    {'key': 'SDY2403', 'doc_count': 0},
    {'key': 'SDY2404', 'doc_count': 0},
    {'key': 'SDY2405', 'doc_count': 0},
    {'key': 'SDY2406', 'doc_count': 0},
    {'key': 'SDY2407', 'doc_count': 0},
    {'key': 'SDY2408', 'doc_count': 0},
    {'key': 'SDY2409', 'doc_count': 0},
    {'key': 'SDY241', 'doc_count': 0},
    {'key': 'SDY2411', 'doc_count': 0},
    {'key': 'SDY2412', 'doc_count': 0},
    {'key': 'SDY2421', 'doc_count': 0},
    {'key': 'SDY2422', 'doc_count': 0},
    {'key': 'SDY2424', 'doc_count': 0},
    {'key': 'SDY2425', 'doc_count': 0},
    {'key': 'SDY2427', 'doc_count': 0},
    {'key': 'SDY2428', 'doc_count': 0},
    {'key': 'SDY2429', 'doc_count': 0},
    {'key': 'SDY2431', 'doc_count': 0},
    {'key': 'SDY2432', 'doc_count': 0},
    {'key': 'SDY2433', 'doc_count': 0},
    {'key': 'SDY2434', 'doc_count': 0},
    {'key': 'SDY2436', 'doc_count': 0},
    {'key': 'SDY2437', 'doc_count': 0},
    {'key': 'SDY2438', 'doc_count': 0},
    {'key': 'SDY2439', 'doc_count': 0},
    {'key': 'SDY2440', 'doc_count': 0},
    {'key': 'SDY2441', 'doc_count': 0},
    {'key': 'SDY2442', 'doc_count': 0},
    {'key': 'SDY2444', 'doc_count': 0},
    {'key': 'SDY2445', 'doc_count': 0},
    {'key': 'SDY2446', 'doc_count': 0},
    {'key': 'SDY2447', 'doc_count': 0},
    {'key': 'SDY2448', 'doc_count': 0},
    {'key': 'SDY2449', 'doc_count': 0},
    {'key': 'SDY2450', 'doc_count': 0},
    {'key': 'SDY2451', 'doc_count': 0},
    {'key': 'SDY2452', 'doc_count': 0},
    {'key': 'SDY2453', 'doc_count': 0},
    {'key': 'SDY2454', 'doc_count': 0},
    {'key': 'SDY2459', 'doc_count': 0},
    {'key': 'SDY2463', 'doc_count': 0},
    {'key': 'SDY2464', 'doc_count': 0},
    {'key': 'SDY2465', 'doc_count': 0},
    {'key': 'SDY2466', 'doc_count': 0},
    {'key': 'SDY2468', 'doc_count': 0},
    {'key': 'SDY2470', 'doc_count': 0},
    {'key': 'SDY2471', 'doc_count': 0},
    {'key': 'SDY2472', 'doc_count': 0},
    {'key': 'SDY2473', 'doc_count': 0},
    {'key': 'SDY2474', 'doc_count': 0},
    {'key': 'SDY2475', 'doc_count': 0},
    {'key': 'SDY2476', 'doc_count': 0},
    {'key': 'SDY2477', 'doc_count': 0},
    {'key': 'SDY2478', 'doc_count': 0},
    {'key': 'SDY2479', 'doc_count': 0},
    {'key': 'SDY2480', 'doc_count': 0},
    {'key': 'SDY2481', 'doc_count': 0},
    {'key': 'SDY2482', 'doc_count': 0},
    {'key': 'SDY2483', 'doc_count': 0},
    {'key': 'SDY2484', 'doc_count': 0},
    {'key': 'SDY2485', 'doc_count': 0},
    {'key': 'SDY2486', 'doc_count': 0},
    {'key': 'SDY2487', 'doc_count': 0},
    {'key': 'SDY2488', 'doc_count': 0},
    {'key': 'SDY2489', 'doc_count': 0},
    {'key': 'SDY2490', 'doc_count': 0},
    {'key': 'SDY2491', 'doc_count': 0},
    {'key': 'SDY2492', 'doc_count': 0},
    {'key': 'SDY2497', 'doc_count': 0},
    {'key': 'SDY25', 'doc_count': 0},
    {'key': 'SDY2500', 'doc_count': 0},
    {'key': 'SDY2507', 'doc_count': 0},
    {'key': 'SDY2509', 'doc_count': 0},
    {'key': 'SDY2510', 'doc_count': 0},
    {'key': 'SDY2511', 'doc_count': 0},
    {'key': 'SDY2516', 'doc_count': 0},
    {'key': 'SDY2517', 'doc_count': 0},
    {'key': 'SDY2518', 'doc_count': 0},
    {'key': 'SDY2519', 'doc_count': 0},
    {'key': 'SDY2520', 'doc_count': 0},
    {'key': 'SDY2521', 'doc_count': 0},
    {'key': 'SDY2522', 'doc_count': 0},
    {'key': 'SDY2523', 'doc_count': 0},
    {'key': 'SDY2524', 'doc_count': 0},
    {'key': 'SDY2525', 'doc_count': 0},
    {'key': 'SDY2526', 'doc_count': 0},
    {'key': 'SDY2527', 'doc_count': 0},
    {'key': 'SDY2529', 'doc_count': 0},
    {'key': 'SDY2530', 'doc_count': 0},
    {'key': 'SDY2531', 'doc_count': 0},
    {'key': 'SDY2532', 'doc_count': 0},
    {'key': 'SDY2533', 'doc_count': 0},
    {'key': 'SDY2534', 'doc_count': 0},
    {'key': 'SDY2537', 'doc_count': 0},
    {'key': 'SDY2540', 'doc_count': 0},
    {'key': 'SDY2541', 'doc_count': 0},
    {'key': 'SDY2543', 'doc_count': 0},
    {'key': 'SDY2544', 'doc_count': 0},
    {'key': 'SDY2545', 'doc_count': 0},
    {'key': 'SDY2546', 'doc_count': 0},
    {'key': 'SDY2547', 'doc_count': 0},
    {'key': 'SDY2548', 'doc_count': 0},
    {'key': 'SDY2549', 'doc_count': 0},
    {'key': 'SDY2550', 'doc_count': 0},
    {'key': 'SDY2551', 'doc_count': 0},
    {'key': 'SDY2552', 'doc_count': 0},
    {'key': 'SDY2553', 'doc_count': 0},
    {'key': 'SDY2554', 'doc_count': 0},
    {'key': 'SDY2555', 'doc_count': 0},
    {'key': 'SDY2556', 'doc_count': 0},
    {'key': 'SDY2557', 'doc_count': 0},
    {'key': 'SDY2558', 'doc_count': 0},
    {'key': 'SDY2559', 'doc_count': 0},
    {'key': 'SDY256', 'doc_count': 0},
    {'key': 'SDY2561', 'doc_count': 0},
    {'key': 'SDY2562', 'doc_count': 0},
    {'key': 'SDY2563', 'doc_count': 0},
    {'key': 'SDY2564', 'doc_count': 0},
    {'key': 'SDY2565', 'doc_count': 0},
    {'key': 'SDY2566', 'doc_count': 0},
    {'key': 'SDY2574', 'doc_count': 0},
    {'key': 'SDY2575', 'doc_count': 0},
    {'key': 'SDY2576', 'doc_count': 0},
    {'key': 'SDY2577', 'doc_count': 0},
    {'key': 'SDY2578', 'doc_count': 0},
    {'key': 'SDY2579', 'doc_count': 0},
    {'key': 'SDY258', 'doc_count': 0},
    {'key': 'SDY2580', 'doc_count': 0},
    {'key': 'SDY2581', 'doc_count': 0},
    {'key': 'SDY2582', 'doc_count': 0},
    {'key': 'SDY2583', 'doc_count': 0},
    {'key': 'SDY2584', 'doc_count': 0},
    {'key': 'SDY2586', 'doc_count': 0},
    {'key': 'SDY259', 'doc_count': 0},
    {'key': 'SDY2591', 'doc_count': 0},
    {'key': 'SDY2592', 'doc_count': 0},
    {'key': 'SDY2593', 'doc_count': 0},
    {'key': 'SDY2594', 'doc_count': 0},
    {'key': 'SDY2596', 'doc_count': 0},
    {'key': 'SDY2597', 'doc_count': 0},
    {'key': 'SDY2598', 'doc_count': 0},
    {'key': 'SDY2599', 'doc_count': 0},
    {'key': 'SDY26', 'doc_count': 0},
    {'key': 'SDY260', 'doc_count': 0},
    {'key': 'SDY2600', 'doc_count': 0},
    {'key': 'SDY2601', 'doc_count': 0},
    {'key': 'SDY2602', 'doc_count': 0},
    {'key': 'SDY2603', 'doc_count': 0},
    {'key': 'SDY2604', 'doc_count': 0},
    {'key': 'SDY2605', 'doc_count': 0},
    {'key': 'SDY2606', 'doc_count': 0},
    {'key': 'SDY2607', 'doc_count': 0},
    {'key': 'SDY2608', 'doc_count': 0},
    {'key': 'SDY2609', 'doc_count': 0},
    {'key': 'SDY261', 'doc_count': 0},
    {'key': 'SDY2610', 'doc_count': 0},
    {'key': 'SDY2611', 'doc_count': 0},
    {'key': 'SDY2612', 'doc_count': 0},
    {'key': 'SDY2614', 'doc_count': 0},
    {'key': 'SDY2617', 'doc_count': 0},
    {'key': 'SDY2618', 'doc_count': 0},
    {'key': 'SDY262', 'doc_count': 0},
    {'key': 'SDY2621', 'doc_count': 0},
    {'key': 'SDY2629', 'doc_count': 0},
    {'key': 'SDY2631', 'doc_count': 0},
    {'key': 'SDY2632', 'doc_count': 0},
    {'key': 'SDY2633', 'doc_count': 0},
    {'key': 'SDY2634', 'doc_count': 0},
    {'key': 'SDY2635', 'doc_count': 0},
    {'key': 'SDY2636', 'doc_count': 0},
    {'key': 'SDY2637', 'doc_count': 0},
    {'key': 'SDY2638', 'doc_count': 0},
    {'key': 'SDY2639', 'doc_count': 0},
    {'key': 'SDY264', 'doc_count': 0},
    {'key': 'SDY2640', 'doc_count': 0},
    {'key': 'SDY2641', 'doc_count': 0},
    {'key': 'SDY2642', 'doc_count': 0},
    {'key': 'SDY2643', 'doc_count': 0},
    {'key': 'SDY2644', 'doc_count': 0},
    {'key': 'SDY2645', 'doc_count': 0},
    {'key': 'SDY2646', 'doc_count': 0},
    {'key': 'SDY2647', 'doc_count': 0},
    {'key': 'SDY2648', 'doc_count': 0},
    {'key': 'SDY2649', 'doc_count': 0},
    {'key': 'SDY2650', 'doc_count': 0},
    {'key': 'SDY2651', 'doc_count': 0},
    {'key': 'SDY2652', 'doc_count': 0},
    {'key': 'SDY2653', 'doc_count': 0},
    {'key': 'SDY2654', 'doc_count': 0},
    {'key': 'SDY2655', 'doc_count': 0},
    {'key': 'SDY2656', 'doc_count': 0},
    {'key': 'SDY2657', 'doc_count': 0},
    {'key': 'SDY2658', 'doc_count': 0},
    {'key': 'SDY2659', 'doc_count': 0},
    {'key': 'SDY2660', 'doc_count': 0},
    {'key': 'SDY2661', 'doc_count': 0},
    {'key': 'SDY2662', 'doc_count': 0},
    {'key': 'SDY2663', 'doc_count': 0},
    {'key': 'SDY2665', 'doc_count': 0},
    {'key': 'SDY2666', 'doc_count': 0},
    {'key': 'SDY2672', 'doc_count': 0},
    {'key': 'SDY2673', 'doc_count': 0},
    {'key': 'SDY2674', 'doc_count': 0},
    {'key': 'SDY2675', 'doc_count': 0},
    {'key': 'SDY2676', 'doc_count': 0},
    {'key': 'SDY2677', 'doc_count': 0},
    {'key': 'SDY2678', 'doc_count': 0},
    {'key': 'SDY2679', 'doc_count': 0},
    {'key': 'SDY268', 'doc_count': 0},
    {'key': 'SDY2680', 'doc_count': 0},
    {'key': 'SDY2682', 'doc_count': 0},
    {'key': 'SDY2683', 'doc_count': 0},
    {'key': 'SDY2684', 'doc_count': 0},
    {'key': 'SDY2685', 'doc_count': 0},
    {'key': 'SDY2686', 'doc_count': 0},
    {'key': 'SDY2687', 'doc_count': 0},
    {'key': 'SDY2688', 'doc_count': 0},
    {'key': 'SDY2689', 'doc_count': 0},
    {'key': 'SDY269', 'doc_count': 0},
    {'key': 'SDY2690', 'doc_count': 0},
    {'key': 'SDY2691', 'doc_count': 0},
    {'key': 'SDY2692', 'doc_count': 0},
    {'key': 'SDY2693', 'doc_count': 0},
    {'key': 'SDY2694', 'doc_count': 0},
    {'key': 'SDY2695', 'doc_count': 0},
    {'key': 'SDY2696', 'doc_count': 0},
    {'key': 'SDY2697', 'doc_count': 0},
    {'key': 'SDY2699', 'doc_count': 0},
    {'key': 'SDY270', 'doc_count': 0},
    {'key': 'SDY2703', 'doc_count': 0},
    {'key': 'SDY2704', 'doc_count': 0},
    {'key': 'SDY2705', 'doc_count': 0},
    {'key': 'SDY2706', 'doc_count': 0},
    {'key': 'SDY2707', 'doc_count': 0},
    {'key': 'SDY2709', 'doc_count': 0},
    {'key': 'SDY271', 'doc_count': 0},
    {'key': 'SDY2710', 'doc_count': 0},
    {'key': 'SDY2711', 'doc_count': 0},
    {'key': 'SDY2712', 'doc_count': 0},
    {'key': 'SDY2713', 'doc_count': 0},
    {'key': 'SDY2716', 'doc_count': 0},
    {'key': 'SDY2717', 'doc_count': 0},
    {'key': 'SDY2718', 'doc_count': 0},
    {'key': 'SDY2719', 'doc_count': 0},
    {'key': 'SDY272', 'doc_count': 0},
    {'key': 'SDY2720', 'doc_count': 0},
    {'key': 'SDY2721', 'doc_count': 0},
    {'key': 'SDY2722', 'doc_count': 0},
    {'key': 'SDY2723', 'doc_count': 0},
    {'key': 'SDY2724', 'doc_count': 0},
    {'key': 'SDY2725', 'doc_count': 0},
    {'key': 'SDY2726', 'doc_count': 0},
    {'key': 'SDY2727', 'doc_count': 0},
    {'key': 'SDY2728', 'doc_count': 0},
    {'key': 'SDY2733', 'doc_count': 0},
    {'key': 'SDY2735', 'doc_count': 0},
    {'key': 'SDY2739', 'doc_count': 0},
    {'key': 'SDY2740', 'doc_count': 0},
    {'key': 'SDY2741', 'doc_count': 0},
    {'key': 'SDY2743', 'doc_count': 0},
    {'key': 'SDY2744', 'doc_count': 0},
    {'key': 'SDY2745', 'doc_count': 0},
    {'key': 'SDY2746', 'doc_count': 0},
    {'key': 'SDY2751', 'doc_count': 0},
    {'key': 'SDY2752', 'doc_count': 0},
    {'key': 'SDY2753', 'doc_count': 0},
    {'key': 'SDY2757', 'doc_count': 0},
    {'key': 'SDY2760', 'doc_count': 0},
    {'key': 'SDY2761', 'doc_count': 0},
    {'key': 'SDY2762', 'doc_count': 0},
    {'key': 'SDY2763', 'doc_count': 0},
    {'key': 'SDY2766', 'doc_count': 0},
    {'key': 'SDY2770', 'doc_count': 0},
    {'key': 'SDY2772', 'doc_count': 0},
    {'key': 'SDY2773', 'doc_count': 0},
    {'key': 'SDY2774', 'doc_count': 0},
    {'key': 'SDY2775', 'doc_count': 0},
    {'key': 'SDY2776', 'doc_count': 0},
    {'key': 'SDY2777', 'doc_count': 0},
    {'key': 'SDY2778', 'doc_count': 0},
    {'key': 'SDY278', 'doc_count': 0},
    {'key': 'SDY2780', 'doc_count': 0},
    {'key': 'SDY2783', 'doc_count': 0},
    {'key': 'SDY2784', 'doc_count': 0},
    {'key': 'SDY2785', 'doc_count': 0},
    {'key': 'SDY2786', 'doc_count': 0},
    {'key': 'SDY2787', 'doc_count': 0},
    {'key': 'SDY2788', 'doc_count': 0},
    {'key': 'SDY2789', 'doc_count': 0},
    {'key': 'SDY2790', 'doc_count': 0},
    {'key': 'SDY2791', 'doc_count': 0},
    {'key': 'SDY2792', 'doc_count': 0},
    {'key': 'SDY2793', 'doc_count': 0},
    {'key': 'SDY2794', 'doc_count': 0},
    {'key': 'SDY2795', 'doc_count': 0},
    {'key': 'SDY2796', 'doc_count': 0},
    {'key': 'SDY2797', 'doc_count': 0},
    {'key': 'SDY2798', 'doc_count': 0},
    {'key': 'SDY2799', 'doc_count': 0},
    {'key': 'SDY28', 'doc_count': 0},
    {'key': 'SDY2800', 'doc_count': 0},
    {'key': 'SDY2801', 'doc_count': 0},
    {'key': 'SDY2802', 'doc_count': 0},
    {'key': 'SDY2803', 'doc_count': 0},
    {'key': 'SDY2804', 'doc_count': 0},
    {'key': 'SDY2805', 'doc_count': 0},
    {'key': 'SDY2807', 'doc_count': 0},
    {'key': 'SDY2808', 'doc_count': 0},
    {'key': 'SDY2809', 'doc_count': 0},
    {'key': 'SDY281', 'doc_count': 0},
    {'key': 'SDY2810', 'doc_count': 0},
    {'key': 'SDY2811', 'doc_count': 0},
    {'key': 'SDY2812', 'doc_count': 0},
    {'key': 'SDY282', 'doc_count': 0},
    {'key': 'SDY2820', 'doc_count': 0},
    {'key': 'SDY2823', 'doc_count': 0},
    {'key': 'SDY2824', 'doc_count': 0},
    {'key': 'SDY2825', 'doc_count': 0},
    {'key': 'SDY2826', 'doc_count': 0},
    {'key': 'SDY2827', 'doc_count': 0},
    {'key': 'SDY283', 'doc_count': 0},
    {'key': 'SDY2830', 'doc_count': 0},
    {'key': 'SDY2837', 'doc_count': 0},
    {'key': 'SDY2838', 'doc_count': 0},
    {'key': 'SDY2839', 'doc_count': 0},
    {'key': 'SDY284', 'doc_count': 0},
    {'key': 'SDY2840', 'doc_count': 0},
    {'key': 'SDY2841', 'doc_count': 0},
    {'key': 'SDY2842', 'doc_count': 0},
    {'key': 'SDY2843', 'doc_count': 0},
    {'key': 'SDY2844', 'doc_count': 0},
    {'key': 'SDY2845', 'doc_count': 0},
    {'key': 'SDY2846', 'doc_count': 0},
    {'key': 'SDY2847', 'doc_count': 0},
    {'key': 'SDY2848', 'doc_count': 0},
    {'key': 'SDY2849', 'doc_count': 0},
    {'key': 'SDY2850', 'doc_count': 0},
    {'key': 'SDY2851', 'doc_count': 0},
    {'key': 'SDY2852', 'doc_count': 0},
    {'key': 'SDY2853', 'doc_count': 0},
    {'key': 'SDY2854', 'doc_count': 0},
    {'key': 'SDY2855', 'doc_count': 0},
    {'key': 'SDY2856', 'doc_count': 0},
    {'key': 'SDY2858', 'doc_count': 0},
    {'key': 'SDY2859', 'doc_count': 0},
    {'key': 'SDY286', 'doc_count': 0},
    {'key': 'SDY2860', 'doc_count': 0},
    {'key': 'SDY2863', 'doc_count': 0},
    {'key': 'SDY2869', 'doc_count': 0},
    {'key': 'SDY2873', 'doc_count': 0},
    {'key': 'SDY288', 'doc_count': 0},
    {'key': 'SDY2884', 'doc_count': 0},
    {'key': 'SDY2885', 'doc_count': 0},
    {'key': 'SDY2886', 'doc_count': 0},
    {'key': 'SDY2887', 'doc_count': 0},
    {'key': 'SDY2888', 'doc_count': 0},
    {'key': 'SDY2889', 'doc_count': 0},
    {'key': 'SDY289', 'doc_count': 0},
    {'key': 'SDY2890', 'doc_count': 0},
    {'key': 'SDY2891', 'doc_count': 0},
    {'key': 'SDY2892', 'doc_count': 0},
    {'key': 'SDY2893', 'doc_count': 0},
    {'key': 'SDY2894', 'doc_count': 0},
    {'key': 'SDY2895', 'doc_count': 0},
    {'key': 'SDY2896', 'doc_count': 0},
    {'key': 'SDY2897', 'doc_count': 0},
    {'key': 'SDY2898', 'doc_count': 0},
    {'key': 'SDY29', 'doc_count': 0},
    {'key': 'SDY290', 'doc_count': 0},
    {'key': 'SDY2903', 'doc_count': 0},
    {'key': 'SDY2908', 'doc_count': 0},
    {'key': 'SDY291', 'doc_count': 0},
    {'key': 'SDY2913', 'doc_count': 0},
    {'key': 'SDY2914', 'doc_count': 0},
    {'key': 'SDY2917', 'doc_count': 0},
    {'key': 'SDY2918', 'doc_count': 0},
    {'key': 'SDY292', 'doc_count': 0},
    {'key': 'SDY2922', 'doc_count': 0},
    {'key': 'SDY2923', 'doc_count': 0},
    ...]},
  'has_lab_test': {'doc_count_error_upper_bound': 0,
   'sum_other_doc_count': 0,
   'buckets': [{'key': 'Y', 'doc_count': 2}, {'key': 'N', 'doc_count': 0}]},
  'species': {'doc_count_error_upper_bound': 0,
   'sum_other_doc_count': 0,
   'buckets': [{'key': 'Homo sapiens', 'doc_count': 2},
    {'key': 'Anas platyrhynchos', 'doc_count': 0},
    {'key': 'Aotus nancymaae', 'doc_count': 0},
    {'key': 'Canis lupus familiaris', 'doc_count': 0},
    {'key': 'Cavia porcellus', 'doc_count': 0},
    {'key': 'Gallus gallus', 'doc_count': 0},
    {'key': 'Macaca fascicularis', 'doc_count': 0},
    {'key': 'Macaca mulatta', 'doc_count': 0},
    {'key': 'Mesocricetus auratus', 'doc_count': 0},
    {'key': 'Mus musculus', 'doc_count': 0},
    {'key': 'Mustela putorius furo', 'doc_count': 0},
    {'key': 'Other', 'doc_count': 0},
    {'key': 'Pan troglodytes', 'doc_count': 0},
    {'key': 'Rattus norvegicus', 'doc_count': 0},
    {'key': 'Sus scrofa domesticus', 'doc_count': 0}]},
  'condition_or_disease': {'doc_count_error_upper_bound': 0,
   'sum_other_doc_count': 0,
   'buckets': [{'key': 'Streptococcus pneumonia', 'doc_count': 2},
    {'key': 'healthy', 'doc_count': 1},
    {'key': 'influenza', 'doc_count': 1},
    {'key': 'Acute Respiratory Distress Syndrome', 'doc_count': 0},
    {'key': 'Aging', 'doc_count': 0},
    {'key': "Alzheimer's disease", 'doc_count': 0},
    {'key': 'COVID-19', 'doc_count': 0},
    {'key': 'COVID-19-Associated Acute Respiratory Distress Syndrome',
     'doc_count': 0},
    {'key': 'Chronic Fatigue Syndrome', 'doc_count': 0},
    {'key': 'Chronic Liver Disease', 'doc_count': 0},
    {'key': 'Clostridium difficile colitis', 'doc_count': 0},
    {'key': 'Cytogenetically Normal Acute Myeloid Leukemia', 'doc_count': 0},
    {'key': 'Cytomegaloviral Infection', 'doc_count': 0},
    {'key': 'EBV Infection', 'doc_count': 0},
    {'key': 'EBV-Related Post-Transplant Lymphoproliferative Disorder',
     'doc_count': 0},
    {'key': 'Ebola hemorrhagic fever', 'doc_count': 0},
    {'key': 'Escherichia Coli Infection', 'doc_count': 0},
    {'key': 'Family Medical History', 'doc_count': 0},
    {'key': 'Heart Failure', 'doc_count': 0},
    {'key': 'Heart Transplantation', 'doc_count': 0},
    {'key': 'Helicobacter Pylori Infection', 'doc_count': 0},
    {'key': 'Hematopoietic Cell Transplant Recipient', 'doc_count': 0},
    {'key': 'Immunologic Tolerance', 'doc_count': 0},
    {'key': 'Immunosuppressive Disorder', 'doc_count': 0},
    {'key': 'Inflammatory Disorder', 'doc_count': 0},
    {'key': 'Kidney Transplantation', 'doc_count': 0},
    {'key': 'Listeria meningitis', 'doc_count': 0},
    {'key': 'Liver Transplantation', 'doc_count': 0},
    {'key': 'Lung Transplantation', 'doc_count': 0},
    {'key': 'Lyme disease', 'doc_count': 0},
    {'key': 'Neurological diseases or conditions', 'doc_count': 0},
    {'key': 'Newcastle disease', 'doc_count': 0},
    {'key': 'Not Applicable', 'doc_count': 0},
    {'key': 'Not Specified', 'doc_count': 0},
    {'key': 'Pancreas Transplantation', 'doc_count': 0},
    {'key': 'Pancreatic Islet Transplantation', 'doc_count': 0},
    {'key': "Parkinson's disease", 'doc_count': 0},
    {'key': 'Perennial Allergic Rhinitis', 'doc_count': 0},
    {'key': 'Plasmodium falciparum malaria', 'doc_count': 0},
    {'key': 'Plasmodium vivax malaria', 'doc_count': 0},
    {'key': 'Post-Acute Sequelae of COVID-19', 'doc_count': 0},
    {'key': 'Post-Transplant Lymphoproliferative Disorder', 'doc_count': 0},
    {'key': 'Pregnancy', 'doc_count': 0},
    {'key': 'Preterm Birth', 'doc_count': 0},
    {'key': 'Primary Sjogren Syndrome', 'doc_count': 0},
    {'key': 'Radiation Exposure', 'doc_count': 0},
    {'key': 'Radiation Sickness Syndrome', 'doc_count': 0},
    {'key': 'Recurrent pregnancy loss', 'doc_count': 0},
    {'key': 'Rheumatic Disease', 'doc_count': 0},
    {'key': 'Rhinovirus Infection', 'doc_count': 0},
    {'key': 'Severe Acute Respiratory Syndrome (SARS)', 'doc_count': 0},
    {'key': 'Shigellosis', 'doc_count': 0},
    {'key': "Sjogren's syndrome", 'doc_count': 0},
    {'key': 'Small Bowel Transplantation', 'doc_count': 0},
    {'key': 'Small for Gestational Age', 'doc_count': 0},
    {'key': 'Solid Neoplasm', 'doc_count': 0},
    {'key': 'Solid Organ Transplant Recipient', 'doc_count': 0},
    {'key': 'Spontaneous Preterm Birth', 'doc_count': 0},
    {'key': 'Staphylococcus Aureus Infection', 'doc_count': 0},
    {'key': 'Streptococcal Pharyngitis', 'doc_count': 0},
    {'key': 'Viral Respiratory Tract Infection', 'doc_count': 0},
    {'key': 'West Nile encephalitis', 'doc_count': 0},
    {'key': 'West Nile fever', 'doc_count': 0},
    {'key': 'Zika fever', 'doc_count': 0},
    {'key': 'acquired immunodeficiency syndrome', 'doc_count': 0},
    {'key': 'allergic hypersensitivity disease', 'doc_count': 0},
    {'key': 'allergic rhinitis', 'doc_count': 0},
    {'key': 'anthrax disease', 'doc_count': 0},
    {'key': 'asthma', 'doc_count': 0},
    {'key': 'atopic dermatitis', 'doc_count': 0},
    {'key': 'autoimmune disease', 'doc_count': 0},
    {'key': 'autoimmune disease of musculoskeletal system', 'doc_count': 0},
    {'key': 'avian influenza', 'doc_count': 0},
    {'key': 'brain glioma', 'doc_count': 0},
    {'key': 'breast cancer', 'doc_count': 0},
    {'key': 'bronchiolitis', 'doc_count': 0},
    {'key': 'cancer', 'doc_count': 0},
    {'key': 'cardiomyopathy', 'doc_count': 0},
    {'key': 'cardiovascular system disease', 'doc_count': 0},
    {'key': 'celiac disease', 'doc_count': 0},
    {'key': 'chickenpox', 'doc_count': 0},
    {'key': 'chikungunya', 'doc_count': 0},
    {'key': 'childhood type dermatomyositis', 'doc_count': 0},
    {'key': 'chlamydia', 'doc_count': 0},
    {'key': 'cholera', 'doc_count': 0},
    {'key': 'chorioamnionitis', 'doc_count': 0},
    {'key': 'chromosomal disease', 'doc_count': 0},
    {'key': 'chronic kidney disease', 'doc_count': 0},
    {'key': 'chronic plaque psoriasis', 'doc_count': 0},
    {'key': 'chronic spontaneous urticaria', 'doc_count': 0},
    {'key': 'clinically isolated syndrome', 'doc_count': 0},
    {'key': 'colitis', 'doc_count': 0},
    {'key': 'colorectal cancer', 'doc_count': 0},
    {'key': 'congestive heart failure', 'doc_count': 0},
    {'key': 'dengue disease', 'doc_count': 0},
    {'key': 'dengue hemorrhagic fever', 'doc_count': 0},
    {'key': 'developmental disorder of mental health', 'doc_count': 0},
    {'key': 'diabetes mellitus', 'doc_count': 0},
    {'key': 'diphtheria', 'doc_count': 0},
    {'key': 'eczema herpeticum', 'doc_count': 0},
    {'key': 'eczema vaccinatum', 'doc_count': 0},
    {'key': 'egg allergy', 'doc_count': 0},
    {'key': 'encephalitis', 'doc_count': 0},
    {'key': 'eosinophilic esophagitis', 'doc_count': 0},
    {'key': 'food allergy', 'doc_count': 0},
    {'key': 'glioblastoma', 'doc_count': 0},
    {'key': 'granulomatosis with polyangiitis', 'doc_count': 0},
    {'key': 'haemophilus meningitis', 'doc_count': 0},
    {'key': 'hepatitis', 'doc_count': 0},
    {'key': 'hepatitis A', 'doc_count': 0},
    {'key': 'hepatitis B', 'doc_count': 0},
    {'key': 'hepatitis C', 'doc_count': 0},
    {'key': 'herpes zoster', 'doc_count': 0},
    {'key': 'human cytomegalovirus infection', 'doc_count': 0},
    {'key': 'human immunodeficiency virus infectious disease', 'doc_count': 0},
    {'key': 'hypertension', 'doc_count': 0},
    {'key': 'hypoglycemia', 'doc_count': 0},
    {'key': 'hypothyroidism', 'doc_count': 0},
    {'key': 'idiopathic pulmonary fibrosis', 'doc_count': 0},
    {'key': 'inflammatory bowel disease', 'doc_count': 0},
    {'key': 'interstitial lung disease', 'doc_count': 0},
    {'key': 'intestinal infectious disease', 'doc_count': 0},
    {'key': 'juvenile rheumatoid arthritis', 'doc_count': 0},
    {'key': 'keratoconjunctivitis sicca', 'doc_count': 0},
    {'key': 'kidney failure', 'doc_count': 0},
    {'key': 'leukemia', 'doc_count': 0},
    {'key': 'liver cancer', 'doc_count': 0},
    {'key': 'liver disease', 'doc_count': 0},
    {'key': 'lung adenocarcinoma', 'doc_count': 0},
    {'key': 'lung cancer', 'doc_count': 0},
    {'key': 'lung disease', 'doc_count': 0},
    {'key': 'lupus nephritis', 'doc_count': 0},
    {'key': 'lymphocytic choriomeningitis', 'doc_count': 0},
    {'key': 'lymphoma', 'doc_count': 0},
    {'key': 'malaria', 'doc_count': 0},
    {'key': 'measles', 'doc_count': 0},
    {'key': 'meningitis', 'doc_count': 0},
    {'key': 'meningococcal meningitis', 'doc_count': 0},
    {'key': 'meningoencephalitis', 'doc_count': 0},
    {'key': 'milk allergy', 'doc_count': 0},
    {'key': 'molluscum contagiosum', 'doc_count': 0},
    {'key': 'multiple myeloma', 'doc_count': 0},
    {'key': 'multiple sclerosis', 'doc_count': 0},
    {'key': 'mumps', 'doc_count': 0},
    {'key': 'muscle invasive bladder cancer', 'doc_count': 0},
    {'key': 'myasthenia gravis', 'doc_count': 0},
    {'key': 'myocarditis', 'doc_count': 0},
    {'key': 'neuromyelitis optica', 'doc_count': 0},
    {'key': 'obesity', 'doc_count': 0},
    {'key': 'optic nerve glioma', 'doc_count': 0},
    {'key': 'osteoarthritis', 'doc_count': 0},
    {'key': 'peanut allergy', 'doc_count': 0},
    {'key': 'pemphigus vulgaris', 'doc_count': 0},
    {'key': 'pertussis', 'doc_count': 0},
    {'key': 'pharyngitis', 'doc_count': 0},
    {'key': 'plague', 'doc_count': 0},
    {'key': 'pneumonia', 'doc_count': 0},
    {'key': 'post-traumatic stress disorder', 'doc_count': 0},
    {'key': 'pre-eclampsia', 'doc_count': 0},
    {'key': 'psoriasis', 'doc_count': 0},
    {'key': 'psoriatic arthritis', 'doc_count': 0},
    {'key': 'pustulosis of palm and sole', 'doc_count': 0},
    {'key': 'respiratory syncytial virus infectious disease', 'doc_count': 0},
    {'key': 'rheumatoid arthritis', 'doc_count': 0},
    {'key': 'rhinitis', 'doc_count': 0},
    {'key': 'rubella', 'doc_count': 0},
    {'key': 'salmonellosis', 'doc_count': 0},
    {'key': 'sarcoma', 'doc_count': 0},
    {'key': 'sickle cell anemia', 'doc_count': 0},
    {'key': 'smallpox', 'doc_count': 0},
    {'key': 'swine influenza', 'doc_count': 0},
    {'key': 'systemic lupus erythematosus', 'doc_count': 0},
    {'key': 'systemic scleroderma', 'doc_count': 0},
    {'key': 'tetanus', 'doc_count': 0},
    {'key': 'tuberculosis', 'doc_count': 0},
    {'key': 'tularemia', 'doc_count': 0},
    {'key': 'type 1 diabetes mellitus', 'doc_count': 0},
    {'key': 'type 2 diabetes mellitus', 'doc_count': 0},
    {'key': 'typhoid fever', 'doc_count': 0},
    {'key': 'ulcerative colitis', 'doc_count': 0},
    {'key': 'upper respiratory tract disease', 'doc_count': 0},
    {'key': 'viral tropism', 'doc_count': 0},
    {'key': 'yellow fever', 'doc_count': 0}]},
  'has_assessment': {'doc_count_error_upper_bound': 0,
   'sum_other_doc_count': 0,
   'buckets': [{'key': 'N', 'doc_count': 1}, {'key': 'Y', 'doc_count': 1}]},
  'assay_method': {'doc_count_error_upper_bound': 0,
   'sum_other_doc_count': 0,
   'buckets': [{'key': 'Flow Cytometry', 'doc_count': 2},
    {'key': 'Hemagglutination Inhibition', 'doc_count': 1},
    {'key': 'Luminex xMAP', 'doc_count': 1},
    {'key': 'Nanostring', 'doc_count': 1},
    {'key': 'Neutralizing Antibody Titer Assay', 'doc_count': 1},
    {'key': 'Transcription profiling by array', 'doc_count': 1},
    {'key': 'Virus Neutralization', 'doc_count': 1},
    {'key': '16S rRNA gene sequencing', 'doc_count': 0},
    {'key': '2D Gel', 'doc_count': 0},
    {'key': 'Array', 'doc_count': 0},
    {'key': 'B cell receptor repertoire sequencing assay', 'doc_count': 0},
    {'key': 'Bio-layer Interferometry Assay', 'doc_count': 0},
    {'key': 'Bulk RNA-seq assay', 'doc_count': 0},
    {'key': 'CITE-Seq', 'doc_count': 0},
    {'key': 'CRISPR Screening', 'doc_count': 0},
    {'key': 'Cell Culture', 'doc_count': 0},
    {'key': 'Cell Mediated Immunoassay', 'doc_count': 0},
    {'key': 'Chemiluminescent Assay', 'doc_count': 0},
    {'key': 'Colorimetric Cell Viability Assay', 'doc_count': 0},
    {'key': 'Cryo-Electron Microscopy', 'doc_count': 0},
    {'key': 'CyTOF', 'doc_count': 0},
    {'key': 'Cytometric Bead Array Assay', 'doc_count': 0},
    {'key': 'DNA methylation profiling assay', 'doc_count': 0},
    {'key': 'DNA microarray', 'doc_count': 0},
    {'key': 'ELISA', 'doc_count': 0},
    {'key': 'ELISPOT', 'doc_count': 0},
    {'key': 'EMSA', 'doc_count': 0},
    {'key': 'Fluorescence Resonance Energy Transfer', 'doc_count': 0},
    {'key': 'Fluorescent Antibody Procedure', 'doc_count': 0},
    {'key': 'Glycan profiling', 'doc_count': 0},
    {'key': 'HLA Typing', 'doc_count': 0},
    {'key': 'HPLC', 'doc_count': 0},
    {'key': 'High-Resolution Mass Spectrometry', 'doc_count': 0},
    {'key': 'Histological Assay', 'doc_count': 0},
    {'key': 'Histopathology', 'doc_count': 0},
    {'key': 'Immune Repertoire Deep Sequencing', 'doc_count': 0},
    {'key': 'Immunoblot', 'doc_count': 0},
    {'key': 'Immunohistochemistry', 'doc_count': 0},
    {'key': 'Immunoprecipitation', 'doc_count': 0},
    {'key': 'Intracellular Cytokine Stain Flow Cytometric Assay',
     'doc_count': 0},
    {'key': 'KIR Typing', 'doc_count': 0},
    {'key': 'LC_MS', 'doc_count': 0},
    {'key': 'Lateral Flow Assay', 'doc_count': 0},
    {'key': 'Liquid Chromatography', 'doc_count': 0},
    {'key': 'MS_MS', 'doc_count': 0},
    {'key': 'Mass Spectrometry', 'doc_count': 0},
    {'key': 'Meso Scale Discovery ECL', 'doc_count': 0},
    {'key': 'Microneutralization Assay', 'doc_count': 0},
    {'key': 'Microscopy', 'doc_count': 0},
    {'key': 'Multiplex Bead Array Assay', 'doc_count': 0},
    {'key': 'Multiplex Immunoassay', 'doc_count': 0},
    {'key': 'NMR', 'doc_count': 0},
    {'key': 'Neuraminidase Inhibition Assay', 'doc_count': 0},
    {'key': 'Northern Blot', 'doc_count': 0},
    {'key': 'Olink assay', 'doc_count': 0},
    {'key': 'Other', 'doc_count': 0},
    {'key': 'PCR', 'doc_count': 0},
    {'key': 'Plaque Reduction Neutralization Assay', 'doc_count': 0},
    {'key': 'Protein microarray', 'doc_count': 0},
    {'key': 'Pseudovirus Neutralization Assay', 'doc_count': 0},
    {'key': 'Q-PCR', 'doc_count': 0},
    {'key': 'RNA sequencing', 'doc_count': 0},
    {'key': 'Real time polymerase chain reaction assay', 'doc_count': 0},
    {'key': 'SARS-CoV-2 Virus Sequencing', 'doc_count': 0},
    {'key': 'SNP microarray', 'doc_count': 0},
    {'key': 'SOMAscan assay', 'doc_count': 0},
    {'key': 'Sequencing', 'doc_count': 0},
    {'key': 'Single-Molecule Array (SIMOA)', 'doc_count': 0},
    {'key': 'Spectral Flow Cytometry', 'doc_count': 0},
    {'key': 'Surface Plasmon Resonance', 'doc_count': 0},
    {'key': 'T cell receptor repertoire sequencing assay', 'doc_count': 0},
    {'key': 'TCID50', 'doc_count': 0},
    {'key': 'Transcription Profiling by NanoString', 'doc_count': 0},
    {'key': 'Transcription profiling assay', 'doc_count': 0},
    {'key': 'Virus Plaque Assay', 'doc_count': 0},
    {'key': 'Western Blot', 'doc_count': 0},
    {'key': 'Whole Genome Sequencing', 'doc_count': 0},
    {'key': 'X-Ray Crystallography', 'doc_count': 0},
    {'key': 'in situ Hybridization', 'doc_count': 0},
    {'key': 'microRNA profiling assay', 'doc_count': 0},
    {'key': 'scRNA-seq', 'doc_count': 0}]},
  'age': {'buckets': {'< 10': {'from': -1.0, 'to': 10.0, 'doc_count': 0},
    '10 - 19': {'from': 10.0, 'to': 20.0, 'doc_count': 0},
    '20 - 29': {'from': 20.0, 'to': 30.0, 'doc_count': 2},
    '30 - 39': {'from': 30.0, 'to': 40.0, 'doc_count': 0},
    '40 - 49': {'from': 40.0, 'to': 50.0, 'doc_count': 0},
    '50 - 59': {'from': 50.0, 'to': 60.0, 'doc_count': 0},
    '60 - 69': {'from': 60.0, 'to': 70.0, 'doc_count': 0},
    '70 - 79': {'from': 70.0, 'to': 80.0, 'doc_count': 0},
    '>= 80': {'from': 80.0, 'to': 91.0, 'doc_count': 0}}}}}
In [5]:
df = pd.read_json(json.dumps(results["hits"]["hits"]))
df
Out[5]:
_index _id _score _source
0 study_mapping_common_dr68 SDY87 0 {'clinical_trial': 'N', 'gender': ['Male'], 'e...
1 study_mapping_common_dr68 SDY180 0 {'clinical_trial': 'N', 'gender': ['Female', '...
In [6]:
# Normalize the nested column
source_expanded = pd.json_normalize(df['_source'])

# Join it back to the original DataFrame and drop the old column
df_final = df.drop(columns=['_source']).join(source_expanded)
df_final.head()
Out[6]:
_index _id _score clinical_trial gender ethnicity brief_title initial_data_release_version_number program_name latest_data_release_version ... study_pi species initial_data_release_version condition_or_disease has_assessment assessment_panel_count age_unit assay_method min_age doi
0 study_mapping_common_dr68 SDY87 0 N [Male] [Hispanic or Latino, Not Hispanic or Latino] In-Depth Characterization of Immune Responses ... 18.0 [Human Immunology Project Consortium (HIPC) RF... DR68 ... [A. Karolina Palucka: Baylor Research Institute] [Homo sapiens] DR18 [Streptococcus pneumonia] Y [Vitals (65), Medical History (209), Followup ... Years [Flow Cytometry] 22.0 10.21430/M3AA0XR32D
1 study_mapping_common_dr68 SDY180 0 N [Female, Male] [Hispanic or Latino, Not Hispanic or Latino] Systems scale interactive exploration reveals ... 6.0 [Human Immunology Project Consortium (HIPC) RF... DR58 ... [A. Karolina Palucka: Baylor Reasearch Institute] [Homo sapiens] DR6 [healthy, Streptococcus pneumonia, influenza] N [] Years [Nanostring, Virus Neutralization, Hemagglutin... 22.0 10.21430/M3I44H8R17

2 rows × 49 columns

Study Data¶

Endpoints to support the retrieval of study data for a single study including subject, experiment, etc¶

There are two ImmPort studies that matched our search.

Let's find out more about this first study, SDY87.

Start with basic study information.

/api/study/{studyAccession}

In [12]:
endpoint = DATA_QUERY_URL + "/api/study/SDY87"
results = api_data_query(endpoint)
results
Out[12]:
[{'studyAccession': 'SDY87',
  'actualCompletionDate': None,
  'actualEnrollment': 5,
  'actualStartDate': None,
  'ageUnit': 'Years',
  'briefDescription': 'This study will measure the immune response to the Pneumovax vaccine The long-term goal is to develop improved vaccines to infectious diseases such as influenza. Blood will be collected from patients at several visits before and after vaccination. The blood will be used in a series of immunological tests to measure the strength and breadth of immune response. These assays may include T cell and B cell activation assays, microarray testing, Epimax, Epigen, and flow cytometry.',
  'briefTitle': 'In-Depth Characterization of Immune Responses to Pneumovax Vaccination in Healthy Subjects',
  'clinicalTrial': 'N',
  'description': 'This study will measure the immune response to the Pneumovax vaccine The long-term goal is to develop improved vaccines to infectious diseases such as influenza. Blood will be collected from patients at several visits before and after vaccination. The blood will be used in a series of immunological tests to measure the strength and breadth of immune response. These assays may include T cell and B cell activation assays, microarray testing, Epimax, Epigen, and flow cytometry.',
  'dclId': 2,
  'doi': '10.21430/M3AA0XR32D',
  'endpoints': 'N/A',
  'genderIncluded': 'Male',
  'hypothesis': 'That immune responses can be measured longitudinally after vaccination and that the information gained may be useful for developing novel vaccines.',
  'initialDataReleaseDate': '2016-03-18',
  'initialDataReleaseVersion': 'DR18',
  'interventionAgent': '23PPV Pneumovax (Merck)',
  'latestDataReleaseDate': '2026-09-24',
  'latestDataReleaseVersion': 'DR68',
  'maximumAge': '  49.00',
  'minimumAge': '  22.00',
  'objectives': 'To measure immune responses to vaccination with Pneumovax vaccine in healthy adult subjects.',
  'officialTitle': 'In-Depth Characterization of Immune Responses to Pneumovax Vaccination in Healthy Subjects',
  'sharedStudy': 'Y',
  'sponsoringOrganization': 'NIAID',
  'targetEnrollment': None}]

Now let's see if there are other CDEs associated with the data for this study.

Retrieve study CDEs

/api/study/cde/{studyAccession}

In [7]:
endpoint = DATA_QUERY_URL + "/api/study/cde/SDY87"
results = api_data_query(endpoint)
results
Out[7]:
[{'study2CdeMappingId': 12586,
  'studyAccession': 'SDY87',
  'cdeId': 'fmMMaUGpKS',
  'name': 'Age',
  'cdePvId': None,
  'pvLabel': None,
  'immportTableName': 'arm_2_subject',
  'immportColumnName': 'min_subject_age',
  'immportColumnValue': None},
 {'study2CdeMappingId': 12587,
  'studyAccession': 'SDY87',
  'cdeId': 'FiTk9B5lx',
  'name': 'Study Identifier',
  'cdePvId': None,
  'pvLabel': None,
  'immportTableName': 'study',
  'immportColumnName': 'study_accession',
  'immportColumnValue': 'SDY87'},
 {'study2CdeMappingId': 12588,
  'studyAccession': 'SDY87',
  'cdeId': 'GOr1OFJAKC',
  'name': 'Vital Signs Type',
  'cdePvId': 'C25298',
  'pvLabel': 'Systolic Blood Pressure',
  'immportTableName': 'assessment_component',
  'immportColumnName': 'name_preferred',
  'immportColumnValue': 'Systolic Blood Pressure'},
 {'study2CdeMappingId': 12589,
  'studyAccession': 'SDY87',
  'cdeId': 'GOr1OFJAKC',
  'name': 'Vital Signs Type',
  'cdePvId': 'C25299',
  'pvLabel': 'Diastolic Blood Pressure',
  'immportTableName': 'assessment_component',
  'immportColumnName': 'name_preferred',
  'immportColumnValue': 'Diastolic Blood Pressure'},
 {'study2CdeMappingId': 12590,
  'studyAccession': 'SDY87',
  'cdeId': 'GOr1OFJAKC',
  'name': 'Vital Signs Type',
  'cdePvId': 'C49677',
  'pvLabel': 'Heart Rate',
  'immportTableName': 'assessment_component',
  'immportColumnName': 'name_preferred',
  'immportColumnValue': 'Heart Rate'},
 {'study2CdeMappingId': 12591,
  'studyAccession': 'SDY87',
  'cdeId': 'GOr1OFJAKC',
  'name': 'Vital Signs Type',
  'cdePvId': 'C49678',
  'pvLabel': 'Respiratory Rate',
  'immportTableName': 'assessment_component',
  'immportColumnName': 'name_preferred',
  'immportColumnValue': 'Respiration Rate'},
 {'study2CdeMappingId': 12592,
  'studyAccession': 'SDY87',
  'cdeId': 'GOr1OFJAKC',
  'name': 'Vital Signs Type',
  'cdePvId': 'C81328',
  'pvLabel': 'Weight',
  'immportTableName': 'assessment_component',
  'immportColumnName': 'name_preferred',
  'immportColumnValue': 'Weight'},
 {'study2CdeMappingId': 12593,
  'studyAccession': 'SDY87',
  'cdeId': 'GOr1OFJAKC',
  'name': 'Vital Signs Type',
  'cdePvId': 'C164634',
  'pvLabel': 'Height',
  'immportTableName': 'assessment_component',
  'immportColumnName': 'name_preferred',
  'immportColumnValue': 'Height'},
 {'study2CdeMappingId': 12594,
  'studyAccession': 'SDY87',
  'cdeId': 'Aguk0xu_dB',
  'name': 'Subject ID',
  'cdePvId': None,
  'pvLabel': None,
  'immportTableName': 'subject',
  'immportColumnName': 'subject_accession',
  'immportColumnValue': 'Subjects Exists'},
 {'study2CdeMappingId': 12595,
  'studyAccession': 'SDY87',
  'cdeId': 'PDjBiGXjO',
  'name': 'Age',
  'cdePvId': None,
  'pvLabel': None,
  'immportTableName': 'arm_2_subject',
  'immportColumnName': 'min_subject_age',
  'immportColumnValue': None},
 {'study2CdeMappingId': 12596,
  'studyAccession': 'SDY87',
  'cdeId': 's0OB4q7Pxk',
  'name': 'Age Units',
  'cdePvId': 'C29848',
  'pvLabel': 'Years',
  'immportTableName': 'arm_2_subject',
  'immportColumnName': 'age_unit',
  'immportColumnValue': 'Years'},
 {'study2CdeMappingId': 12597,
  'studyAccession': 'SDY87',
  'cdeId': 'GNVoEdFQR0',
  'name': 'Age Units',
  'cdePvId': 'C29848',
  'pvLabel': 'Years',
  'immportTableName': 'arm_2_subject',
  'immportColumnName': 'age_unit',
  'immportColumnValue': 'Years'},
 {'study2CdeMappingId': 12598,
  'studyAccession': 'SDY87',
  'cdeId': 'sznvIp17G',
  'name': 'Unique ID',
  'cdePvId': None,
  'pvLabel': None,
  'immportTableName': 'subject',
  'immportColumnName': 'subject_accession',
  'immportColumnValue': 'Subjects Exists'},
 {'study2CdeMappingId': 12599,
  'studyAccession': 'SDY87',
  'cdeId': 'rGEh0ckdmr',
  'name': 'Sex at Birth',
  'cdePvId': 'C20197',
  'pvLabel': 'Male',
  'immportTableName': 'subject',
  'immportColumnName': 'sex',
  'immportColumnValue': 'Male'},
 {'study2CdeMappingId': 12600,
  'studyAccession': 'SDY87',
  'cdeId': 'Fakc6Jy2x',
  'name': 'Race',
  'cdePvId': 'C41261',
  'pvLabel': 'White',
  'immportTableName': 'subject',
  'immportColumnName': 'race',
  'immportColumnValue': 'White'}]
In [8]:
df_immport_study_cde_sdy87 = pd.read_json(json.dumps(results))
df_immport_study_cde_sdy87
Out[8]:
study2CdeMappingId studyAccession cdeId name cdePvId pvLabel immportTableName immportColumnName immportColumnValue
0 12586 SDY87 fmMMaUGpKS Age None None arm_2_subject min_subject_age None
1 12587 SDY87 FiTk9B5lx Study Identifier None None study study_accession SDY87
2 12588 SDY87 GOr1OFJAKC Vital Signs Type C25298 Systolic Blood Pressure assessment_component name_preferred Systolic Blood Pressure
3 12589 SDY87 GOr1OFJAKC Vital Signs Type C25299 Diastolic Blood Pressure assessment_component name_preferred Diastolic Blood Pressure
4 12590 SDY87 GOr1OFJAKC Vital Signs Type C49677 Heart Rate assessment_component name_preferred Heart Rate
5 12591 SDY87 GOr1OFJAKC Vital Signs Type C49678 Respiratory Rate assessment_component name_preferred Respiration Rate
6 12592 SDY87 GOr1OFJAKC Vital Signs Type C81328 Weight assessment_component name_preferred Weight
7 12593 SDY87 GOr1OFJAKC Vital Signs Type C164634 Height assessment_component name_preferred Height
8 12594 SDY87 Aguk0xu_dB Subject ID None None subject subject_accession Subjects Exists
9 12595 SDY87 PDjBiGXjO Age None None arm_2_subject min_subject_age None
10 12596 SDY87 s0OB4q7Pxk Age Units C29848 Years arm_2_subject age_unit Years
11 12597 SDY87 GNVoEdFQR0 Age Units C29848 Years arm_2_subject age_unit Years
12 12598 SDY87 sznvIp17G Unique ID None None subject subject_accession Subjects Exists
13 12599 SDY87 rGEh0ckdmr Sex at Birth C20197 Male subject sex Male
14 12600 SDY87 Fakc6Jy2x Race C41261 White subject race White

We can see that this study includes multiple other CDEs beyond the one we were initially interested in, if we'd like to explore them further.

Join with data from another repository¶

Use the CDE ID to pull additional information about the CDE of interest (Vital Signs Type) from the NIH CDE repository.¶

In [12]:
cdeId = "GOr1OFJAKC"

base_url = 'https://cde.nlm.nih.gov/api'

search_url = base_url + "/de/" + cdeId

headers= {
    'accept': 'application/json',
    'Content-Type': 'application/json'
}

r = requests.get(search_url, headers=headers)
results = r.json()
results
Out[12]:
{'stewardOrg': {'name': 'Project 5'},
 'createdBy': {'username': 'NIH CDE Repository Team'},
 'property': {'concepts': []},
 'dataElementConcept': {'concepts': [{'name': 'Vital Signs Measurement',
    'origin': 'NCI Thesaurus',
    'originId': 'C49672'},
   {'name': 'Type', 'origin': 'NCI Thesaurus', 'originId': 'C25284'}]},
 'objectClass': {'concepts': []},
 'valueDomain': {'identifiers': [],
  'ids': [],
  'datatype': 'Value List',
  'permissibleValues': [{'permissibleValue': 'Systolic blood pressure',
    'valueMeaningDefinition': 'The maximum pressure exerted into the systemic arterial circulation during the contraction of the left ventricle of the heart C25298',
    'conceptId': 'C25298',
    'conceptSource': 'NCI Thesaurus'},
   {'permissibleValue': 'Diastolic blood pressure',
    'valueMeaningDefinition': 'The minimum pressure exerted into the systemic arterial circulation during cardiac ventricular relaxation and filling C25299',
    'conceptId': 'C25299',
    'conceptSource': 'NCI Thesaurus'},
   {'permissibleValue': 'Heart rate',
    'valueMeaningDefinition': 'The number of heartbeats per unit of time, usually expressed as beats per minute. C49677',
    'conceptId': 'C49677',
    'conceptSource': 'NCI Thesaurus'},
   {'permissibleValue': 'Respiratory rate',
    'valueMeaningDefinition': 'The rate of breathing (inhalation and exhalation) measured within in a unit time, usually expressed as breaths per minute C49678',
    'conceptId': 'C49678',
    'conceptSource': 'NCI Thesaurus'},
   {'permissibleValue': 'Body temperature',
    'valueMeaningDefinition': 'A measurement of the temperature of the body C174446',
    'conceptId': 'C174446',
    'conceptSource': 'NCI Thesaurus'},
   {'permissibleValue': 'Weight',
    'valueMeaningDefinition': 'The weight of a subject C81328',
    'conceptId': 'C81328',
    'conceptSource': 'NCI Thesaurus'},
   {'permissibleValue': 'Height',
    'valueMeaningDefinition': 'The vertical measurement or distance from the base to the top of a subject or participant C164634',
    'conceptId': 'C164634',
    'conceptSource': 'NCI Thesaurus'},
   {'permissibleValue': 'Oxygen Saturation',
    'valueMeaningDefinition': 'The measurement of the ratio of oxygenated hemoglobin to total hemoglobin in the blood C60832',
    'conceptId': 'C60832',
    'conceptSource': 'NCI Thesaurus'}]},
 '_id': '62432240ad66cd31638d50d4',
 'elementType': 'cde',
 'nihEndorsed': True,
 'tinyId': 'GOr1OFJAKC',
 'designations': [{'designation': 'Vital Signs Type',
   'tags': [],
   'sources': ['Project 5']},
  {'designation': 'Vital Sign Name',
   'tags': ['Preferred Question Text'],
   'sources': ['Project 5']}],
 'definitions': [{'definition': "A textual description of a person's vital signs measurement category.",
   'tags': [],
   'sources': ['Project 5']}],
 'sources': [{'sourceName': 'Project 5',
   'imported': '2022-03-29T15:13:59.754Z'}],
 'created': '2022-03-29T15:13:59.754Z',
 'imported': '2022-03-29T15:13:59.754Z',
 'changeNote': 'Update Name Source',
 'registrationState': {'registrationStatus': 'Qualified',
  'administrativeStatus': 'Org Approve'},
 'classification': [{'stewardOrg': {'name': 'Project 5'},
   'elements': [{'elements': [{'elements': [], 'name': 'Tier 1'}],
     'name': 'Project 5 (COVID-19)'}]}],
 'properties': [{'key': 'Tags/Keywords',
   'value': 'Person, Diagnosis, Vital Signs',
   'source': 'Project 5'},
  {'key': 'Project 5 Source', 'value': 'FDA, CDC', 'source': 'Project 5'}],
 'ids': [],
 'attachments': [],
 'history': [],
 'archived': False,
 'views': 4473,
 'referenceDocuments': [],
 'dataSets': [],
 'derivationRules': [],
 '__v': 30514,
 'partOfBundles': ['w_QQb9XUq']}
In [13]:
# Normalize the JSON
df_nih_cde = pd.json_normalize(results)
df_nih_cde
Out[13]:
_id elementType nihEndorsed tinyId designations definitions sources created imported changeNote ... createdBy.username property.concepts dataElementConcept.concepts objectClass.concepts valueDomain.identifiers valueDomain.ids valueDomain.datatype valueDomain.permissibleValues registrationState.registrationStatus registrationState.administrativeStatus
0 62432240ad66cd31638d50d4 cde True GOr1OFJAKC [{'designation': 'Vital Signs Type', 'tags': [... [{'definition': 'A textual description of a pe... [{'sourceName': 'Project 5', 'imported': '2022... 2022-03-29T15:13:59.754Z 2022-03-29T15:13:59.754Z Update Name Source ... NIH CDE Repository Team [] [{'name': 'Vital Signs Measurement', 'origin':... [] [] [] Value List [{'permissibleValue': 'Systolic blood pressure... Qualified Org Approve

1 rows × 33 columns

In [14]:
# filter the data from the ImmPort API to include only the row that corresponds to the CDE permissible value we are interested in (Weight) and join it with the results from the CDE API
df_merged = pd.merge(df_immport_study_cde_sdy87[df_immport_study_cde_sdy87["cdePvId"] == "C81328"], df_nih_cde, left_on='cdeId', right_on='tinyId', how='inner')
df_merged
Out[14]:
study2CdeMappingId studyAccession cdeId name cdePvId pvLabel immportTableName immportColumnName immportColumnValue _id ... createdBy.username property.concepts dataElementConcept.concepts objectClass.concepts valueDomain.identifiers valueDomain.ids valueDomain.datatype valueDomain.permissibleValues registrationState.registrationStatus registrationState.administrativeStatus
0 12592 SDY87 GOr1OFJAKC Vital Signs Type C81328 Weight assessment_component name_preferred Weight 62432240ad66cd31638d50d4 ... NIH CDE Repository Team [] [{'name': 'Vital Signs Measurement', 'origin':... [] [] [] Value List [{'permissibleValue': 'Systolic blood pressure... Qualified Org Approve

1 rows × 42 columns

We can see that the NIH CDE repository API results provide us with lots of additional metadata about the CDE of interest. Perhaps we are interested in getting a list of all possbile permissible values for this CDE to investigate what other possible vital sign type values exist.

In [38]:
pd.read_json(json.dumps(df_merged["valueDomain.permissibleValues"][0]))
Out[38]:
permissibleValue valueMeaningDefinition conceptId conceptSource
0 Systolic blood pressure The maximum pressure exerted into the systemic... C25298 NCI Thesaurus
1 Diastolic blood pressure The minimum pressure exerted into the systemic... C25299 NCI Thesaurus
2 Heart rate The number of heartbeats per unit of time, usu... C49677 NCI Thesaurus
3 Respiratory rate The rate of breathing (inhalation and exhalati... C49678 NCI Thesaurus
4 Body temperature A measurement of the temperature of the body C... C174446 NCI Thesaurus
5 Weight The weight of a subject C81328 C81328 NCI Thesaurus
6 Height The vertical measurement or distance from the ... C164634 NCI Thesaurus
7 Oxygen Saturation The measurement of the ratio of oxygenated hem... C60832 NCI Thesaurus

Now we can see all the possible permissible values for this CDE from the NIH CDE repository metadata. We can see that each of these concepts comes from the NCI Thesaurus and that there exists a corresponding definition and concept ID for each of the permissible values.

Next Steps¶

This same approach can be utilized to search for other CDE data within ImmPort and combine the results with data from other repositories that incorporate the use of CDEs, as adoption of CDEs increases.

In [ ]: