Skip to content
Orion Buske edited this page Aug 1, 2016 · 1 revision

Use cases

1. Use cases: PhenomeCentral

  1. A case with severe adult-onset spasticity and no candidate genes have been identified after exome sequencing. We would like to find other cases with late-onset spasticity (and few other distinctive symptoms), especially if they have a rare variant in the same gene.

    This case isn't handled well by the API since there's no good way of specifying genes from exome results without performing strict filtering on them. Perhaps the patient should have a "genome" field for listing the NGS candidates (rather than the clinician-verified genes in genomicFeatures"

    {
      "meta": {
        "components": {
          "features": {"version": "1"},
          "genomicFeatures": {"version": "1"}
        }
      },
      "patient": {
        ...
        "ageOfOnset": {"id": "HP:...", "label": "Adult onset"},
        "features": [
          {"id": "HP:...", "label": "Microcephaly"},
          {"id": "HP:...", "label": "Seizures"}
        ],
        "genomicFeatures": [
          {"gene": {"id": "ENSG...", "label": "GENE1"}},
          {"gene": {"id": "ENSG...", "label": "GENE2"}},
          {"gene": {"id": "ENSG...", "label": "GENE3"}},
          {"gene": {"id": "ENSG...", "label": "GENE4"}},
          ...
          {"gene": {"id": "ENSG...", "label": "GENE500"}},
        ]
      },
      "query": {
        "components": {
          "features": {
            "component": "mandatory",
            "value": "mandatory",
            "filters": [
              {
                "operator": "ALL",
                "terms": [
                  {
                    "id": "HP:...",
                    "label": "Spasticity",
                    "ageOfOnset": {
                      "id": "HP:...",
                      "label": "Late onset"
                    }
                  }
                ]
              }
            ]
          }
        }
      }
    }

2. 
    > A case with a constellation of symptoms (e.g., developmental delay, seizures, skin abnormalities, and microcephaly) and 3 candidate genes (e.g., STAMBP, JAK3, and  CSF2). We would like to find cases that match on a gene and have some phenotypic overlap, or don't match on a gene and have strong phenotypic overlap.

    I believe this is just a standard similarity query.
    ```json
    {
      "patient": {
        ...
        "features": [
          {"id": "HP:...", "label": "Developmental Delay"},
          {"id": "HP:...", "label": "Seizures"},
          {"id": "HP:...", "label": "Skin abnormality"},
          {"id": "HP:...", "label": "Microcephaly"}
        ],
        "genomicFeatures": [
          {"gene": {"id": "ENSG...", "label": "STAMBP"}},
          {"gene": {"id": "ENSG...", "label": "JAK3"}},
          {"gene": {"id": "ENSG...", "label": "CSF2"}}
        ]
      }
    }

Use cases: DECIPHER

  1. A patient with phenotypic presentation microcephaly and seizures has a possible variant affecting PAFAH1B1. We would like to find other cases where variants in this gene have been found and have similar phenotypes.

    The following searches for any cases that match on the candidate gene (if matching on exome variants was desired, this could be done via the genome component):

    {
      "meta": {
        "components": {
          "features": {"version": "1"},
          "genomicFeatures": {"version": "1"}
        }
      },
      "patient": {
        ...
        "features": [
          {"id": "HP:...", "label": "Microcephaly"},
          {"id": "HP:...", "label": "Seizures"}
        ],
        "genomicFeatures": [
          {"gene": {"id": "ENSG...", "label": "PAFAH1B1"}}
        ]
      },
      "query": {
        "components": {
          "features": {
            "component": "mandatory",
            "value": "mandatory"
          },
          "genomicFeatures": {
            "component": "mandatory",
            "value": "mandatory",
            "filters": [
              {
                "operator": "ALL",
                "terms": [
                  {"gene": {"id": "ENSG...", "label": "PAFAH1B1"}}
                ]
              }
            ]
          }
        }
      }
    }

2. 
    > A clinician has a patient with plausibly pathogenic variants in TSC2 and L1CAM with phenotypes that include Global Developmental Delay, Conspicuously happy disposition, Agenesis of the corpus callosum and mild intellectual disability. We would hope to be able to prioritise the variant(s) causing the phenotypes by finding other patients that have similar genotype-phenotype correlations.

    I believe this is just a standard similarity query.
    ```json
    {
      "patient": {
        ...
        "features": [
          {"id": "HP:...", "label": "Developmental Delay"},
          {"id": "HP:...", "label": "Conspicuously happy disposition"},
          {"id": "HP:...", "label": "Agenesis of the corpus callosum"},
          {"id": "HP:...", "label": "Mild intellectual disability"}
        ],
        "genomicFeatures": [
          {"gene": {"id": "ENSG...", "label": "TSC2"}},
          {"gene": {"id": "ENSG...", "label": "L1CAM"}}
        ]
      }
    }
  1. Currently unsupported: A case with a small deletion in 8p23.1-23.2 presents the following symptoms: Global Developmental delay, Intrauterine growth retardation and Scoliosis. We would like to be able to find cases that match of any of the genes covered in this region and share all or some of the phenotypes.

    This is supported as long as you map the cytoband to a set of genes as a preprocessing step. The following assumes you want to require that at least one of the genes and at least one of the phenotypes are shared by the response.

    {
      "meta": {
        "components": {
          "features": {"version": "1"},
          "genomicFeatures": {"version": "1"}
        }
      },
      "patient": {
        ...
      },
      "query": {
        "components": {
          "features": {
            "component": "mandatory",
            "value": "mandatory",
            "filters": [
              {
                "operator": "ANY",
                "terms": [
                  {"id": "HP:...", "label": "Global developmental delay"},
                  {"id": "HP:...", "label": "Intrauterine growth retardation"},
                  {"id": "HP:...", "label": "Scoliosis"}
                ]
              }
            ]
          },
          "genomicFeatures": {
            "component": "mandatory",
            "value": "mandatory",
            "filters": [
              {
                "operator": "ANY",
                "terms": [
                  {"gene": {"id": "ENSG...", "label": "LONRF1"}},
                  {"gene": {"id": "ENSG...", "label": "FAM86B1"}},
                  ...
                ]
              }
            ]
          }
        }
      }
    }


## Use cases: RD-Connect

1.  

    > RD-Connect queries another service (e.g. Genesis) to identify similar patients in terms of phenotype and candidate genes
    >
    > WHAT RD-CONNECT HAS. RD-Connect has a patient with:
    > - a neuromuscular phenotype defined with 5-10 HPO terms. The phenotypes are stored in PhenoTips
    > - a short list of candidate variants (20-50) in genes not yet associated with the observed phenotype. The candidate variants are obtained by applying a set of filters (population frequency, annotation, pathogenicity predictors, lists of genes, etc.) in real time.

    > WHAT RD-CONNECT WOULD SEND (QUERY). A query to Genesis with:
    > - Internal Patient ID
    > - HPO terms
    > - List of genes which have the candidate variants selected in 1) (variants are not sent).
    > - List of filters applied to select the candidate variants in 1)

    > WHAT GENESIS DOES
    > - apply the same set of filters defined in (2) on the Genesis samples
    > - identify in each sample, genes for which variants have been identified
    > - check if any of these genes in each sample match those sent by RD-Connect
    > - if so, apply a matching algorithm with the HPO terms sent by RD-Connect and those available for each Genesis patient with a matching candidate gene
    > - return a scored list of patients (and contacts) with similar HPO terms and matching candidate genes.
    > - ideally, Genesis would keep a record of the filters applied so the owner of these samples could quickly check the actual variants in the candidate genes and evaluate if they are good matches or not (note that the evaluator in this case is the clinician with the sample in Genesis, not in RD-Connect, to avoid transferring variants).
    
    This is possible via the proposed API:
    ```json
    {
      "meta": {
        "components": {
          "features": {"version": "1"},
          "genome": {"version": "1"},
        }
      },
      "patient": {
        "features": [
          {"id": "HP:...", "label": "Neurological abnormality"},
          {"id": "HP:...", "label": "Muscular abnormality"},
          ...
        ]
      },
      "query": {
        "components": {
          "genome": {
            "component": "mandatory",
            "value": "mandatory",
            "filters": [
              {
                "annotation": "gene",
                "source": "Ensembl",
                "operator": "ANY",
                "terms": [
                  {"id": "ENSG...", "label": "GENE1"},
                  {"id": "ENSG...", "label": "GENE2"},
                  {"id": "ENSG...", "label": "GENE3"},
                  ...,
                  {"id": "ENSG...", "label": "GENE50"}
                ]
              }
              {
                "annotation": "alleleFrequency",
                "source": "ExAC",
                "population": "ALL",
                "operator": "LT",
                "value": 0.01
              }
              {
                "annotation": "consequence",
                "source": "VEP",
                "operator": "ANY",
                "terms": [
                  {"id": "SO:...", "label": "Stopgain"},
                  {"id": "SO:...", "label": "Missense"}
                ]
              }
            ]
          }
        }
      }
    }