# ACMG criteria and classification
NOTE
This documentation is a work in progress and is not currently up to date.
Please contact developers for more details.
# ACMG rules engine
Rules for suggested ACMG criteria are defined in JSON format in:
- File:
ella/rule_engine/mapping_rules.py - Key:
rules
See ella/rule_engine/README for details.
# User group rules
User group-specific ACMG value rules. See usergroups.json (opens new window) for examples.
- File:
usergroups.json(see user groups) - Key:
config.acmg
The following subkeys define thresholds and values that act as input for the ACMG rules engine, for the given user group:
| Subkey | Explanation | Values |
|---|---|---|
frequency.thresholds * | The population frequency threshold for ACMG criteria BA1 (hi_freq_cutoff) and BS1 (lo_freq_cutoff). | 0-1 |
frequency.num_thresholds * | The minimum "allele number" (observed chromosomes at a given locus) for each sub-population. | [integer] |
disease_mode | Whether only missense (MISS) or loss of function (LOF) mutations, or both (ANY), are expected to cause disease. | MISS / LOF / ANY (default) |
last_exon_important | Whether the last exon is important (LEI) or not (LENI). | LEI (default) / LENI |
* Similar to filter frequency thresholds, with possibilities for separation of dataset groups and inheritance modes.
# Gene-specific overrides
To define rules for given genes only (within a user group), place the above subkeys within the config.acmg.genes key, providing a HGNC ID for each gene the rules should apply to.
In addition, the subkey comment can be defined, specifying information relevant to evaluation of more/all variants in a gene as free text.
# ACMG descriptions
Short (short_criteria) and long (criteria) descriptions and any notes for each ACMG criterion and REQ (shown in UI pop-ups) are given in:
- File:
ella/api/config/acmgconfig.py - Key:
acmgconfig["explanation"]
For REQs, you can also define which ACMG criteria the REQ relates to in this file, using the key sources.
# Classification
The available classifications and how ELLA treats each of them are given in:
- File:
ella_config.yml(set byELLA_CONFIGenv variable) - Key:
classification.options(list, in display order)
| Subkey | Explanation | Values |
|---|---|---|
name | Name shown in the UI. | [text] |
value | Value stored in the database. | [text] |
outdated_after_days | Number of days after which a classification is outdated. Outdated classifications are not treated as valid, e.g. when checking whether variants are classified at import. If not set, the classification never becomes outdated. | [integer] |
include_report | Automatically include variants with this classification on the REPORT page. Variants marked as technical or not relevant in the analysis are not included. Users can still include or exclude variants manually. | true / false (default) |
include_analysis_with_findings | Count this classification as a finding. If the analysis_finalize_without_findings postprocessor is enabled, an analysis is finalized automatically at import if all its unfiltered variants have a valid classification that is not a finding, and the analysis has no warnings. | true / false (default) |
sort_index | Sort position when sorting variants by classification. If not set, the position in the list is used. | [integer] |
See example_config.yml (opens new window) for examples.