Skip to content

Commit 65aad17

Browse files
committed
Update docs
1 parent f5e70b0 commit 65aad17

6 files changed

Lines changed: 241 additions & 92 deletions

File tree

docs/advanced_analysis.rst

Lines changed: 84 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ These fields define all the input data, analysis steps and output requirements f
2222
be used as a record of how a sample was analysed. Alternatively the various sections can all be defined at runtime using
2323
the CLI arguments as explained in the :ref:`inputandoptions` section.
2424

25-
which defines run mode, :ref:`filters<variantfilters>` and :ref:`prioritisers<prioritisers>`, and the :ref:`output options<outputoptions>` section that defines the output format,
25+
The :ref:`preset<preset>` or :ref:`analysis<analysis>` section define the run mode, :ref:`filters<variantfilters>` and :ref:`prioritisers<prioritisers>`, and the :ref:`output options<outputoptions>` section that defines the output format,
2626
output file and number of results that should be returned. Each of these sections can be defined independently on the
2727
command line or provided as a single file as shown in the `job`_ section.
2828

@@ -68,9 +68,18 @@ Preset
6868

6969
.. code-block:: yaml
7070
71-
# one of EXOME or GENOME. GENOME will require REMM to be available. Default is EXOME.
71+
# one of EXOME, GENOME or PHENOTYPE_ONLY. GENOME will require REMM to be available. Default is EXOME.
7272
preset: EXOME
7373
74+
The presets are also provided as a set of analysis YAML files in the ``examples/`` directory:
75+
76+
.. csv-table:: Preset option YAML file equivalents
77+
:header: "Preset", "YAML file"
78+
:widths: auto
79+
80+
EXOME , examples/preset-exome-analysis.yml
81+
GENOME , examples/preset-genome-analysis.yml
82+
PHENOTYPE_ONLY , examples/preset-phenotype-only-analysis.yml
7483

7584

7685
.. _analysis:
@@ -278,12 +287,12 @@ the population frequency for the ACMG assignments, even if used in the filtering
278287
pathogenicitySources:
279288
---------------------
280289
Possible pathogenicitySources: ``POLYPHEN``, ``MUTATION_TASTER``, ``SIFT``, ``REVEL``, ``MVP``, ``ALPHA_MISSENSE``,
281-
``SPLICE_AI`` (derived from gnomAD 4.0, so only available for hg38), ``CADD``, ``REMM``. ``REMM`` is trained on
290+
``SPLICE_AI``, ``CADD``, ``REMM``. ``REMM`` is trained on
282291
non-coding regulatory regions. **WARNING** if you enable ``CADD``, ensure that you have downloaded and installed the CADD
283-
tabix files and updated their location in the ``application.properties`` (see :ref:`cadd-install`). Exomiser will not run
284-
without this.
292+
tabix files and updated their location in the ``application.properties`` (see :ref:`cadd-install`). Similarly, REMM
293+
requires an optional data download (see :ref:`remm`). Exomiser will not run without these if specified.
285294

286-
We recommend using either ``[REVEL, MVP, ALPHA_MISSENSE]`` **OR** ``[POLYPHEN, MUTATION_TASTER, SIFT]`` as REVEL, MVP
295+
We recommend using either ``[REVEL, MVP, ALPHA_MISSENSE]`` **OR** ``[POLYPHEN, MUTATION_TASTER, SIFT]`` as REVEL, MVP
287296
and ALPHA_MISSENSE are newer predictors which have been shown to have better performance and are more nuanced. Mixing
288297
them with the Polyphen2, MutationTaster or SIFT will give worse performance. Testing on GEL solved cases with
289298
AlphaMissense slightly increased performance when combined with MVP. We advise testing on local cohorts for assessing
@@ -349,31 +358,78 @@ Removes variants with VCF `QUAL` scores lower than the given `minQuality`.
349358
qualityFilter: {minQuality: 50.0}
350359
351360
361+
alleleBalanceFilter:
362+
....................
363+
364+
The allele balance AB, also known as the Variant Allele Frequency VAF, filter uses the ratio of reads at a variant locus
365+
supporting the alternate allele. This is a variant quality metric used, along with the genotype quality score (GQ) and
366+
allele depth (DP) found in the VCF file. Based on the `Undiagnosed Diseases Network (UDN)
367+
paper on optimising Exomiser and Genomiser <https://doi.org/10.1186/s13073-025-01546-1>`_, we implemented their
368+
recommendation of 15%>=VAF<=85% for heterozygous variants and GQ>=20. Additionally we placed a requirement for a DP>=20
369+
and for mitochondrial variants we used an AB cutoff of >= 0.05 in line with the `Genomics England Tiering pipeline <https://pipeline-rd-help.genomicsengland.co.uk/Lyra/variant-prioritisation-approaches/small-variant-tiering/segregation-with-disease/#mitochondrialgenome>`_.
370+
371+
This filter is set to run as a default, from version 15.0.0, yet users may wish to disable it to perform their own
372+
pre-filtering as this is a very stringent filter and may remove some low-quality diagnostic variants.
373+
374+
.. code-block:: yaml
375+
376+
alleleBalanceFilter: {}
377+
378+
379+
Refs:
380+
1. `Effective variant filtering and expected candidate variant yield in studies of rare human disease DOI:10.1038/s41525-021-00227-3 <https://doi.org/10.1038/s41525-021-00227-3>`_
381+
2. `Gene prioritisation for enhancing molecular diagnosis in rare skeletal muscle disease cohort DOI:10.1136/jmg-2024-110212 <https://doi.org/10.1136/jmg-2024-110212>`_
382+
3. `An optimized variant prioritization process for rare disease diagnostics: recommendations for Exomiser and Genomiser DOI:10.1186/s13073-025-01546-1 <https://doi.org/10.1186/s13073-025-01546-1>`_
383+
384+
352385
intervalFilter:
353386
...............
354-
Defines an interval of interest. Only variants within this interval will be passed. Currently only single intervals are
355-
possible.
387+
Defines an interval(s) of interest. Only variants within an interval will be passed.
356388

357389
.. code-block:: yaml
358390
359391
intervalFilter: {interval: 'chr10:123256200-123256300'}
392+
# or for multiple intervals:
393+
intervalFilter: {intervals: ['chr10:123256200-123256300', 'chr10:123256290-123256350']}
360394
361395
362-
geneIdFilter:
396+
genePanelFilter:
363397
.............
364-
You can define `entrez-gene-ids <http://www.ncbi.nlm.nih.gov/gene/>`_ for genes of interest. Only variants associated with
398+
You can define `HGNC <https://genenames.org>`_ gene symbols for genes of interest. Only variants associated with
365399
these genes will be analyzed.
366400

367401
.. code-block:: yaml
368402
369-
geneIdFilter: {geneIds: [12345, 34567, 98765]}
403+
genePanelFilter: {geneSymbols: ["FGFR1", "FGFR2"]}
404+
405+
406+
geneBlacklistFilter:
407+
....................
408+
409+
Removes variants from the analysis which are assigned to a set of blacklisted genes.
410+
411+
Blacklisted genes are removed to reduce the noise level. These are 56 pseudogenes, HLA genes, and others that have a
412+
high degree of variants called in healthy individuals:
413+
414+
.. parsed-literal::
415+
416+
COL4A2-AS2, CRIPAK, FCGBP, GOLGA6L2, GOLGA8N, HLA-A, HLA-B, HLA-C, HLA-DMA, HLA-DMB, HLA-DOA, HLA-DOB, HLA-DPA1,
417+
HLA-DPB1, HLA-DPB2, HLA-DQA1, HLA-DQA2, HLA-DQB1, HLA-DQB1-AS1, HLA-DQB2, HLA-DRA, HLA-DRB1, HLA-DRB5, HLA-DRB6,
418+
HLA-E, HLA-F, HLA-F-AS1, HLA-G, HLA-H, HLA-J, HLA-L, KRTAP4-7, KRTAP4-8, KRTAP9-6, LILRA6, LILRB3, LINC02081,
419+
LRRC37A2, MUC12, MUC16, MUC17, MUC19, MUC2, MUC20, MUC21, MUC3A, MUC4, MUC6, PDE4DIP, PRAMEF2, PRAMEF9, SIRPA, TBC1D3I,
420+
UGT1A7, USP17L1
421+
422+
423+
.. code-block:: yaml
424+
425+
geneBlacklistFilter: {}
370426
371427
372428
variantEffectFilter:
373429
....................
374430
If you are interested only in specific functional classes of variants you can define a set of classes you want to remove
375-
from the output. Variant effects are generated by `Jannovar <http://charite.github.io/jannovar/>`_. Jannovar uses
376-
`Sequence Ontology (SO) <http://www.sequenceontology.org/>`_ terms and are listed in their `manual <http://jannovar.readthedocs.io/en/master/var_effects.html>`_.
431+
from the output. Variant effects are generated by `Jannovar <http://charite.github.io/jannovar/>`_ and reported as
432+
`Sequence Ontology (SO) <http://www.sequenceontology.org/>`_ terms.
377433

378434
.. code-block:: yaml
379435
@@ -436,7 +492,13 @@ pathogenicityFilter:
436492
Will apply the pathogenicity scores defined in the :ref:`pathogenicitySources<pathogenicitysources>` section to variants.
437493
If the ``keepNonPathogenic`` field is set to ``true`` then all variants will be kept. Setting this to ``false`` will set
438494
the filter to fail non-missense variants with pathogenicity scores lower than a score cutoff of 0.5.
439-
This filter is meant to be quite permissive and we recommend it be set to true.
495+
496+
This filter is meant to be quite permissive and we recommend it be set to ``true`` unless running genomiser
497+
(i.e. including REMM/CADD/SPLICE_AI and all non-coding regions), in which case setting ``keepNonPathogenic: false`` is
498+
recommended as Exomiser will use a stringent cutoff to remove variants with a `CADD <https://cadd.bihealth.org/info>`_
499+
raw score <= 15.0 a `REMM score <https://doi.org/10.1093/gigascience/giad024>`_ <= 0.914
500+
or a `SpliceAI <https://doi.org/10.1016/j.cell.2018.12.015>`_ <= 0.1 These thresholds were chosen based on the
501+
recommendations of the authors of the scores.
440502

441503
.. code-block:: yaml
442504
@@ -538,6 +600,14 @@ protein-protein interaction proximities ``ppi``. e.g. only using human and mouse
538600
539601
hiPhivePrioritiser: {runParams: 'human,mouse'}
540602
603+
For a clinical diagnostic pipeline we advise running HiPhive in human-only mode as this will only prioritise genes with
604+
known disease associations but there will be no potential for strong mouse model hits if a causative variant lies in a
605+
novel disease causing gene.
606+
607+
.. code-block:: yaml
608+
609+
hiPhivePrioritiser: {runParams: 'human'}
610+
541611
542612
phenixPrioritiser:
543613
..................

docs/conf.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,13 @@
5555
# -- Project information -----------------------------------------------------
5656

5757
project = u'exomiser'
58-
copyright = u'2024, Jules Jacobsen, Damian Smedley, Peter Robinson'
58+
copyright = u'2026, Jules Jacobsen, Damian Smedley, Peter Robinson'
5959
author = u'Jules Jacobsen, Damian Smedley, Peter Robinson'
6060

6161
# The short X.Y version
6262
version = u'15.0.0'
63-
genome_data_version = u'2502'
64-
phenotype_data_version = u'2502'
63+
genome_data_version = u'2512'
64+
phenotype_data_version = u'2512'
6565
# The full version, including alpha/beta/rc tags
6666
release = version
6767

docs/input_files_and_options.rst

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ analysis
9999

100100
.. important::
101101

102-
The exome and genome analyses found in the `test-analysis-exome.yml` and `test-analysis-genome.yml` files are
102+
The exome and genome analyses found in the `examples/preset-exome-analysis.yml` and `examples/preset-genome-analysis.yml` files are
103103
recommended for use in most situations, and removing steps from the analysis is likely to negatively impact
104104
performance. It is *strongly* recommended to test any changes against the standard setup on the example samples and
105105
your own solved cases to check the impact of any changes you might want to make. If you want to score all variants
@@ -126,19 +126,20 @@ output
126126

127127
By default Exomiser will write out any result files to the exomiser-cli-|version|/results sub-directory of the
128128
Exomiser installation directory. Unless specified in the `output.yml` or `outputOptions` section of the analysis YAML
129-
file, Exomiser will write out a `.json` and a `.html` file. These are for machine (JSON) and human (HTML) use. The
129+
file, Exomiser will write out a `.jsonl`, a `.parquet` and a `.html` file. These are for machine (JSON) and human (HTML) use. The
130130
filenames will match the input VCF filename. For example
131131

132132
.. parsed-literal::
133133
134134
java -jar exomiser-cli-|version|.jar analyse --sample examples/pfeiffer-phenopacket.yml --vcf path/to/manuel.vcf.gz --assembly hg19
135135
136-
Would result in two files being output with the filename 'manuel_exomiser' and the '.json' and '.html' extensions:
136+
Would result in three files being output with the filename 'manuel_exomiser' and the '.jsonl', `.parquet` and '.html' extensions:
137137

138138
.. parsed-literal::
139139
140140
exomiser-cli-|version|/results/manuel_exomiser.html
141141
exomiser-cli-|version|/results/manuel_exomiser.json
142+
exomiser-cli-|version|/results/manuel_exomiser.parquet
142143
143144
144145
Users requiring more control over their output can use either the ``outputOptions`` section of an analysis file or a
@@ -156,8 +157,8 @@ file:
156157
outputDirectory: results/
157158
# outputFileName: (optional) (default: 'input-vcf-name-exomiser')
158159
outputFileName: NA12345-exomiser-results
159-
# out-format options: HTML, JSON, TSV_GENE, TSV_VARIANT, VCF (default: HTML)
160-
outputFormats: [HTML, JSON, TSV_GENE]
160+
# out-format options: HTML, JSON, PARQUET, TSV_GENE, TSV_VARIANT, VCF (default: HTML)
161+
outputFormats: [HTML, PARQUET]
161162
162163
163164
This file is passed to Exomiser using the ``--output`` switch:

docs/installation.rst

Lines changed: 57 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -207,13 +207,23 @@ This will install the Exomiser program. You will still need to download the
207207
data files separately (see the :ref:`linux-install` instructions above for the
208208
list of files to download from https://data.monarchinitiative.org/exomiser/latest).
209209

210-
After downloading and extracting the data files, configure
211-
``application.properties`` as described in the Linux section above.
210+
When installed via Homebrew, the first time it is run Exomiser will automatically create the following folders in your
211+
home directory:
212+
213+
.. code-block:: bash
214+
215+
$ tree ~/.exomiser
216+
/home/user/.exomiser
217+
├── application.properties
218+
└── data
219+
220+
If they are not present run `exomiser --version` and this should create them. By default, Exomiser will expect the data
221+
to be in the `~.exomiser/data` directory but this can be changed in the `~.exomiser/application.properties` file to suit
222+
your needs (see :ref:`data-directory`). For the most part, when using Exomiser installed via Homebrew, once configured,
223+
you can replace the `java -jar exomiser-cli-|version|.jar` incantation used in this manual with just `exomiser` and it
224+
should just work, however you will need to specify explicitly where to write the results as they will default to being
225+
written to the current working directory you are calling the `exomiser` command from (see :ref:`outputdirectory`)
212226

213-
Given the nature of how Homebrew manages the application, you might want to consider
214-
installing the data in a separate data directory (see :ref:`data-directory`) and
215-
providing the variables needed in the ``application.properties`` via environment
216-
variables (see :ref:`overriding-settings`).
217227

218228
.. _data-directory:
219229

@@ -224,7 +234,7 @@ By default, Exomiser expects its data files to be in a ``data`` subfolder
224234
inside the Exomiser program folder. If you store your data elsewhere, you
225235
must tell Exomiser where to find it.
226236

227-
Open ``application.properties`` and set the ``exomiser.data-directory`` to
237+
Edit the ``application.properties`` file and set the ``exomiser.data-directory`` to
228238
the full path of your data folder. For example:
229239

230240
.. code-block:: properties
@@ -398,8 +408,46 @@ and try again.
398408

399409
**Wrong Java version**
400410

401-
Run ``java -version``. If the version shown is below 21, install a newer
402-
version from https://adoptium.net.
411+
Exomiser requires Java 21 or higher. This can be checked by running:
412+
413+
.. code-block:: console
414+
415+
$ java -version
416+
417+
You should see something like this in response:
418+
419+
.. code-block:: console
420+
421+
openjdk 21.0.6 2025-01-21
422+
OpenJDK Runtime Environment (build 21.0.6+7-Ubuntu-124.04.1)
423+
OpenJDK 64-Bit Server VM (build 21.0.6+7-Ubuntu-124.04.1, mixed mode, sharing)
424+
425+
426+
Versions lower than 21 (e.g. 1.5, 1.6, 1.7, 1.8, 9, 10...) will not run exomiser.
427+
You can install the latest version from https://adoptium.net or https://jdk.java.net/ for
428+
example. On linux your distribution should provide a packaged version. MacOS users might prefer to use a homebrew version
429+
via ``brew install openjdk``
430+
431+
If you get the following error message:
432+
433+
.. code-block:: console
434+
435+
Exception in thread "main" java.lang.UnsupportedClassVersionError:
436+
org/monarchinitiative/exomiser/cli/Main : Unsupported major.minor version
437+
438+
439+
or
440+
441+
.. code-block:: console
442+
443+
Error: A JNI error has occurred, please check your installation and try again
444+
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/monarchinitiative/exomiser/cli/Main has been
445+
compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime
446+
only recognizes class file versions up to 52.0
447+
448+
449+
You are running an older unsupported version of Java, update your java installation.
450+
403451

404452
**"Permission denied" errors (Linux/macOS)**
405453

0 commit comments

Comments
 (0)