-
Notifications
You must be signed in to change notification settings - Fork 3
Dosage Sensitivity
The purpose of this page is to outline the main pages and core features each page contains. THIS IS A TEST - From Local
Table of contents
The Dosage Sensitivity Curation List acts the primary page for summary information about Dosage's curations to be listed. This page will support the ability to do the following...
- Provide visitors key summary facts about curations
- List all of the curations
- Provide a paginated list of all of the curations
- Allow visitors to "search" and "filter" Dosage curations
- Provide visitors ways to "sort" curations (all or matched)
- Provide helpful insights about other ClinGen curation activities
- Provide information from external resources to assist visitors
The curation totals are displayed in a few areas. On this page, figures displayed are totals for all of the curations done by dosage, regardless of filter, sort, or pagination configuration.
This page is seeking the following data to be returned to allow the totals to be displayed.
NOTE: JSON structure, key, and labels are intended to facilitate the discussion. Final structure and examples will be replace the options below.
Option 1 (For consideration)
This option has the API return the total curations along with totals based on each type of curation.
{
"totals": {
"total": "1000",
"types": {
"genes": "500",
"regions": "500"
}
}
}
KEY | DESCRIPTION |
---|---|
totals | Placeholder - intended to provide context for the example |
totals>total | The total number of curations for both genes and regions. NOTE: this shouldn't include any hidden, private, or past versions of curations. This total should only be active and public curations |
totals>types | Provides a object to organize two different types of curations and the totals |
totals>types>genes | The total number of curations for genes. NOTE: this shouldn't include any hidden, private, or past versions of curations. This total should only be active and public curations |
totals>types>regions | The total number of curations for genes. NOTE: this shouldn't include any hidden, private, or past versions of curations. This total should only be active and public curations |
Option 2 (For consideration)
This option has the API return the totals based on each type of curation. The website will then take the data from the API to compute the total.
{
"totals": {
"genes": "500",
"regions": "500"
}
}
KEY | DESCRIPTION |
---|---|
totals | Placeholder - intended to provide context for the example |
totals>genes | The total number of curations for genes. NOTE: this shouldn't include any hidden, private, or past versions of curations. This total should only be active and public curations |
totals>regions | The total number of curations for genes. NOTE: this shouldn't include any hidden, private, or past versions of curations. This total should only be active and public curations |
This area of the user experience provide visitors with three key features
- The ability to see the filter that was set (Teal badge)
- The quick ability to remove a filter [x]
- The number of results matched (4)
- Click and expand the filter area to see all of the possible features (3)
NOTE: At this time (Oct 1, 2019) the filter capabilities are available. This area of the documentation TDB on how it will interact with the API.
Items to consider
- The UX should be retain what the user input in the filter and thus was sent to the API
- The API should return the filters that were used along with the results. This ensures the the UX display reflects the filters the API used. If filters were not used or not available the UX would be able to info the user and log the discrepancy for review.
This block (column) informs the visitor the gene or region that the curation was performed for. This is the most important data to be displayed. This block is also the main clickable area for users to continue to the curation details.
Option 1 (For consideration)
This option has the API return the total curations along with totals based on each type of curation.
{
"curation": {
"gene": {
"label": "ABC123",
"curie": "HGNC:1234"
},
"iri": "unique123-4567"
}
}
KEY | DESCRIPTION |
---|---|
curation | Placeholder - intended to provide context for the example |
curation>gene | They key informs the UX what type of curation |
curation>gene>label | The label that will be used on the row. For a gene this will be the gene symbol. The DCI provides a label but the API should provide the label (gene symbol) that HGNC provides (which the curation should be linked) |
curation>gene>curie | The compact identifier for the gene (in this case). For a gene this should be HGNC:XXXX |
curation>iri | The IRI to the specific curation. This IRI should be a permanent IRI and not subject to change if the database reset/rebuilt |
{
"curation": {
"region": {
"label": "6p12 region (includes ABC123)",
"curie": "6:157099063-157531913",
"build": {
"GRCH37": "6:157099063-157531913",
"GRCH38": "6:157090063-157501913"
}
},
"iri": "unique321-4567"
}
KEY | DESCRIPTION |
---|---|
curation | Placeholder - intended to provide context for the example |
curation>region | They key informs the UX what type of curation |
curation>region>label | The label that will be used on the row. The DCI provides a label which the curator manually typed in. This is why some labels may have () or other special characters |
curation>region>curie | For a region this would be the genome build that is being prioritized. This will be build (TBD GRCh37 or GRCh38) |
location>region>build | Including the build values allows the UX to provide additional display options. Other builds would be added to this object |
curation>region>build>GRCH37 | The key informs the build and the value provides the coordinates |
curation>region>build>GRCH38 | The key informs the build and the value provides the coordinates |
curation>iri | The IRI to the specific curation. This IRI should be a permanent IRI and not subject to change if the database reset/rebuilt |
Sort Options This column will have sort abilities. The API should be able to accept a request to sort/re-sort the results. The UX should have the ability to pass the field (key) and the type of sort (ascending or descending).
- Sort by row 'label' (gene or region) in an ascending order
- Sort by row 'label' (gene or region) in an descending order
It is very important to the user community to provide them context of where this gene or region is by displaying genomic coordinates.
{
"location": {
"build": {
"GRCH37": "6:157099063-157531913",
"GRCH38": "6:157090063-157501913"
}
}
}
KEY | DESCRIPTION |
---|---|
location | Placeholder - intended to provide context for the example |
location>build | Including the build values allows the UX to provide additional display options. Other builds would be added to this object |
curation>build>GRCH37 | The key informs the build and the value provides the coordinates |
curation>build>GRCH38 | The key informs the build and the value provides the coordinates |
This Haploinsufficiency Score is the score that ClinGen's Dosage Sensitivity curation assertion. This Haploinsufficiency is not related in anyway to the %HI value outlined later in this document. This Haploinsufficiency Score is provided by the DSI.
{
"haploinsufficiency": {
"score": "0",
"label": "No Evidence",
"curie": "cg:dsi:1234"
}
}
KEY | DESCRIPTION |
---|---|
haploinsufficiency | Placeholder - intended to provide context for the example |
haploinsufficiency>score | This is the numeric score that was assigned in the DSI. |
haploinsufficiency>label | This is the human readable score that the numeric score reflects. |
haploinsufficiency>curie | TBD: It is unknown if the API will have a permanent references to a haploinsufficiency score object. If so, having a CURIE assigned allows the UX to handle difference references and possible future queries. |
This Triplosensitivity Score is the score that ClinGen's Dosage Sensitivity curation assertion and is provided by the DSI.
{
"triplosensitivity": {
"score": "0",
"label": "No Evidence",
"curie": "cg:dsi:1234"
}
}
KEY | DESCRIPTION |
---|---|
triplosensitivity | Placeholder - intended to provide context for the example |
triplosensitivity>score | This is the numeric score that was assigned in the DSI. |
triplosensitivity>label | This is the human readable score that the numeric score reflects. |
triplosensitivity>curie | TBD: It is unknown if the API will have a permanent references to a triplosensitivity score object. If so, having a CURIE assigned allows the UX to handle difference references and possible future queries. NOTE: It would be curious to know if shared scores, like 0, would need to have different CURIEs for each type (Triplosensitivity or Haploinsufficiency). This may not be needed but it would be good to check. |
This block (column) allows the user to quickly see if other curations have been done by ClinGen for this gene or region (region would be exact match, touching, or contained within).
NOTE: At this time this feature is not possible because the API doesn't have all of ClinGen's curations
{
"clingen": {
"total": "3",
"activity": {
"actionability": [
{
"iri": "unique321-4567",
"gene": {
"curie": "HGNC:1234",
"label": "ABC123"
},
"disease": {
"curie": "MONDO:1234",
"label": "XZY Disease"
},
"moi": {
"curie": "HP:1234",
"label": "Autosomal Dominant"
}
},
{
"iri": "unique321-4567",
"region": {
"curie": "6:157099063-157531913",
"label": "6:157099063-157531913"
},
"disease": {
"curie": "MONDO:1234",
"label": "XZY Disease"
},
"moi": {
"curie": "HP:1234",
"label": "Autosomal Dominant"
}
}
],
"gene-validity": [
{
"iri": "unique321-4567",
"gene": {
"curie": "HGNC:1234",
"label": "ABC123"
},
"region": {
"curie": "6:157099063-157531913",
"label": "6:157099063-157531913"
},
"disease": {
"curie": "MONDO:1234",
"label": "XZY Disease"
},
"moi": {
"curie": "HP:1234",
"label": "Autosomal Dominant"
}
}
]
}
}
}
KEY | DESCRIPTION |
---|---|
clingen | Placeholder - intended to provide context for the example |
clingen>total | The total number of active (publicly available) curations other curation activities. This number should exclude curations for Dosage |
clingen>activity | This object contains all of the curation activities that have done curations |
clingen>activity>XXXXXXXX[] | The key informs the curation activity and the array allows one or more curations to be provided. |
clingen>activity>XXXXXXXX[]>iri | This is the IRI to allow the UX to link directly to the curation |
clingen>activity>XXXXXXXX[]>gene | The gene symbol NOTE: this could be derived from other data in the main object if needed |
clingen>activity>XXXXXXXX[]>gene>curie | The compact IRI for the gene |
clingen>activity>XXXXXXXX[]>gene>label | The gene symbol |
clingen>activity>XXXXXXXX[]>region>curie | The compact IRI for the region |
clingen>activity>XXXXXXXX[]>region>label | The region coordinates |
clingen>activity>XXXXXXXX[]>disease>curie | The compact IRI for the condition |
clingen>activity>XXXXXXXX[]>disease>label | The disease label |
clingen>activity>XXXXXXXX[]>moi>curie | The compact IRI for the mode of inheritance |
clingen>activity>XXXXXXXX[]>moi>label | The mode of inheritance label |
This reflects if OMIM if this gene existing in OMIM's Mordid Map. This is helpful for users to know because to allows them to quickly reveal if this gene has relationship(s) with a phenotype.
The UX will count the number of morbid in the array.
- IF 0 :: Don't display a check-mark
- IF 1 :: Display a check-mark and on:hover display the phenotype with links
- IF 1+ :: Display a check-mark + and on:hover display list of phenotypes with links
This will be interesting to understand how the API wants to provide this data to support the users request since OMIM data has not been available in the past.
{
"morbid": [
{
"label": "123 Disease",
"curie": "OMIM:1234"
},
{
"label": "ABC Disease",
"curie": "OMIM:1234"
},
{
"label": "XZY Disease",
"curie": "OMIM:1234"
}
]
}
KEY | DESCRIPTION |
---|---|
morbid | Placeholder - intended to provide context for the example |
morbid[] | This should structure should be able to handle 1+ pieces of data |
morbid[]>curie | The compact IRI for the OMIM term |
morbid[]>label | The OMIM disease name |
This reflects if OMIM if this gene is in OMIM.
This will be interesting to understand how the API wants to provide this data to support the users request since OMIM data has not been available in the past.
The UX will check if this OMIM data is available.
- IF NO :: Don't display a check-mark
- IF YES :: Display a check-mark and link to OMIM page
{
"OMIM": {
"label": "XZY Disease",
"curie": "MONDO:1234"
}
}
KEY | DESCRIPTION |
---|---|
OMIM | Placeholder - intended to provide context for the example |
morbid>curie | The compact IRI for the OMIM gene |
morbid>label | The OMIM gene name |
This data is available from Decipher (link below) and the API should use updated knowledge from decipher.
{
"HIindex": {
"value": "61.44%",
"source": "Haploinsufficiency Predictions Version 3 (Ni et al). https://decipher.sanger.ac.uk"
"last_updated": "2019-10-22T00:00:00.000-02:00"
}
}
KEY | DESCRIPTION |
---|---|
HIindex | Placeholder - intended to provide context for the example |
HIindex>value | The value that was assigned |
HIindex>source | The description from the BED file so it can referenced as needed |
HIindex>last_updated | The last time that the API checked to see if the source was updated |
Decipher has over 17,000 protein coding genes have been scored according to their predicted probability of exhibiting haploinsufficiency. These predictions are generated using a classification model trained on two datasets:
- known haploinsufficient genes and
- genes disrupted by unambiguous loss-of-function variants in at least two apparently healthy individuals. The model uses sequence conservation, expression patterns and proximity within a gene network to known haploinsufficient genes as predictor variables. Missing predictor variables are imputed using other gene properties before prediction. Percentages refer to genome-wide percentiles of genes ranked according to their haploinsufficient score.
- High ranks (e.g. 0-10%) indicate a gene is more likely to exhibit haploinsufficiency, low ranks (e.g. 90-100%) indicate a gene is more likely to NOT exhibit haploinsufficiency.
- The manuscript describing the generation and validation of these haploinsufficiency predictions (Huang et al) is published in PLoS Genetics. Updated predictions of haploinsufficiency can be downloaded from our data download page. https://decipher.sanger.ac.uk/about#downloads/data
This data is generated by Exome Aggregation Consortium (ExAC) and the API should use updated knowledge from decipher. It looks that the data is available at ftp://ftp.broadinstitute.org/pub/ExAC_release/release0.3.1/manuscript_data/
{
"pLI": {
"value": "1.44%",
"source": "ftp://ftp.broadinstitute.org/pub/ExAC_release/release0.3.1/manuscript_data/"
"last_updated": "2019-10-22T00:00:00.000-02:00"
}
}
KEY | DESCRIPTION |
---|---|
pLI | Placeholder - intended to provide context for the example |
pLI>value | The value that was assigned |
pLI>source | Where it was downloaded so it can referenced as needed |
pLI>last_updated | The last time that the API checked to see if the source was updated |
The Exome Aggregation Consortium (ExAC) has computed a score called pLI, which indicates the probability that a gene is intolerant to a Loss of Function (LoF) mutation. This analysis is based on high-quality exome sequence data for 60,706 individuals of diverse ethnicities.
The ExAC consortium used a selection-neutral, sequence-context-based mutational model to compare the observed number of rare variants per gene to an expected number, then quantified deviation from expectation with a Z score (method described in Samocha et al.). To reduce confounding by coding sequence length, for Protein Truncating Variants (PTV) an expectation-maximization algorithm using the observed and expected PTV counts within each gene was used to separate genes into three categories:
- Null, where observed ≈ expected (LoF variation is tolerated)
- Recessive, where observed ≤ 50% of expected (heterozygous LoFs are tolerated)
- Haploinsufficient, where observed < 10% of expected (heterozygous LoFs are not tolerated)
The pLI score is the probability that a given gene falls into the Haploinsufficient category, therefore is extremely intolerant of loss-of-function variation. Genes with high pLI scores (pLI ≥ 0.9) are extremely LoF intolerant, whereby genes with low pLI scores (pLI ≤ 0.1) are LoF tolerant.
The manuscript describing this dataset and analysis (Lek et al.) is published in Nature. http://exac.broadinstitute.org/
{
"dates": {
"created": "2019-10-22T00:00:00.000-02:00",
"last_reviewed": "2019-10-22T00:00:00.000-02:00"
}
}
KEY | DESCRIPTION |
---|---|
dates | Placeholder - intended to provide context for the example |
dates>created | The date the record was created |
dates>last_reviewed | The date the curation was last reviewed |
Each curation will be displayed as a row (or other form factor). The API should be formatted in a way that is easy to loop through each block of curation data. Not every data-point outlined above will be needed or available for each curation.
The API needs to provide ways to paginate the data that is returned. This pagination process should have the ability to define the number of records that the user would like displayed. The APIs pagination functions also need to support how a user will sort/filter the results.
Coming soon Views & Partials:
- /resources/views/gene-dosage/show.blade.php
Coming soon
Coming soon
Coming soon Views & Partials:
- /resources/views/gene-dosage/reports.blade.php
Coming soon Views & Partials:
- /resources/views/gene-dosage/stats.blade.php
Coming soon Views & Partials:
- /resources/views/gene-dosage/downloads.blade.php
© ClinGen
- Home
-
Dosage Sensitivity
-- Curation List
-- Curation Details
-- Reports
-- Stats
-- Downloads