Skip to content

Commit

Permalink
Add geneBlacklistFilter, SPLICE_AI and ALPHA_MISSENSE to example YAML…
Browse files Browse the repository at this point in the history
… files.

Return exit code from exomiser-cli
  • Loading branch information
julesjacobsen committed Feb 20, 2024
1 parent 996cdbe commit 2708652
Show file tree
Hide file tree
Showing 17 changed files with 42 additions and 40 deletions.
3 changes: 3 additions & 0 deletions exomiser-cli/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@

## 14.0.0 2023-MM-dd

- Minimum Java version is now set to __Java 17__
- Enabled independent update of ClinVar data [#501](https://github.com/exomiser/Exomiser/issues/501)
- Fix for issue [#531](https://github.com/exomiser/Exomiser/issues/531) where the `priorityScoreFilter` and `regulatoryFeatureFilter` pass/fail counts were not displayed in the HTML.
- Fix for issue [#534](https://github.com/exomiser/Exomiser/issues/534) where variant frequency and/or pathogenicity annotations are missing in certain run configurations.


## 13.3.0 2023-10-17
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,6 @@
import java.util.function.Predicate;
import java.util.stream.Stream;

import static java.util.stream.Collectors.toList;

/**
* Reads in Exomiser batch files and returns a list of Paths to the
* settings/analysis files. The reader expects a single path per line.
Expand All @@ -56,7 +54,7 @@ public static List<Path> readPathsFromBatchFile(Path batchFile) {
.filter(commentLines())
.filter(emptyLines())
.map(line -> Paths.get(line.trim()))
.collect(toList());
.toList();
} catch (IOException ex) {
logger.error("Unable to read batch file {}", batchFile, ex);
}
Expand All @@ -71,7 +69,7 @@ public static List<JobProto.Job> readJobsFromBatchFile(Path batchFile) {
.filter(commentLines())
.filter(emptyLines())
.flatMap(line -> commandLineJobReader.readJobs(CommandLineOptionsParser.parse(line.split("\\s+"))).stream())
.collect(toList());
.toList();
} catch (IOException ex) {
logger.error("Unable to read batch file {}", batchFile, ex);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public List<JobProto.Job> readJobs(CommandLine commandLine) {
if (userOptions.equals(Set.of("analysis-batch"))) {
Path analysisBatchFile = Path.of(commandLine.getOptionValue("analysis-batch"));
List<Path> analysisScripts = BatchFileReader.readPathsFromBatchFile(analysisBatchFile);
return analysisScripts.stream().map(JobReader::readJob).collect(Collectors.toList());
return analysisScripts.stream().map(JobReader::readJob).toList();
}
// new batch option which will parse each line as a cli command
if (userOptions.equals(Set.of("batch"))) {
Expand Down Expand Up @@ -361,16 +361,12 @@ private <U extends Message.Builder> U tryParseJsonOrYaml(U messageBuilder, Path
}

private AnalysisProto.Preset parsePreset(String presetValue) {
switch (presetValue.toLowerCase()) {
case "exome":
return AnalysisProto.Preset.EXOME;
case "genome":
return AnalysisProto.Preset.GENOME;
case "phenotype-only":
return AnalysisProto.Preset.PHENOTYPE_ONLY;
default:
throw new IllegalArgumentException("Unrecognised preset option: " + presetValue);
}
return switch (presetValue.toLowerCase()) {
case "exome" -> AnalysisProto.Preset.EXOME;
case "genome" -> AnalysisProto.Preset.GENOME;
case "phenotype-only" -> AnalysisProto.Preset.PHENOTYPE_ONLY;
default -> throw new IllegalArgumentException("Unrecognised preset option: " + presetValue);
};
}

private OutputProto.OutputOptions readOutputOptions(Path outputOptionsPath) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@
import java.nio.file.Paths;
import java.util.List;

import static java.util.stream.Collectors.toList;

/**
* @author Jules Jacobsen <[email protected]>
* @since 13.0.0
Expand Down Expand Up @@ -226,7 +224,7 @@ protected static List<String> fileDependentOptions() {
return options.getOptions().stream()
.filter(option -> "file".equals(option.getArgName()))
.map(Option::getLongOpt)
.collect(toList());
.toList();
}

public static void printHelp() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,9 @@ public static void main(String[] args) {

// all ok so far - try launching the app
Locale.setDefault(Locale.UK);
SpringApplication.run(Main.class, args).close();

int exitCode = SpringApplication.exit(SpringApplication.run(Main.class, args));
logger.info("Exomising finished - Bye!");
System.exit(exitCode);
}

}
2 changes: 1 addition & 1 deletion exomiser-cli/src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ exomiser.hg19.data-version=2402
#exomiser.hg38.use-clinvar-white-list=true

### phenotypes ###
exomiser.phenotype.data-version=2109
exomiser.phenotype.data-version=2402
#exomiser.phenotype.data-directory=${exomiser.data-directory}/${exomiser.phenotype.data-version}_phenotype
# String random walk data file
#exomiser.phenotype.random-walk-file-name=rw_string_10.mv
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ frequencySources: [
# GNOMAD_G_OTH,
GNOMAD_G_SAS
]
# Possible pathogenicitySources: (POLYPHEN, MUTATION_TASTER, SIFT), (REVEL, MVP), CADD, REMM
# Possible pathogenicitySources: (POLYPHEN, MUTATION_TASTER, SIFT), (REVEL, MVP), CADD, REMM, SPLICE_AI, ALPHA_MISSENSE
# REMM is trained on non-coding regulatory regions
# *WARNING* if you enable CADD or REMM ensure that you have downloaded and installed the CADD/REMM tabix files
# and updated their location in the application.properties. Exomiser will not run without this.
pathogenicitySources: [ REVEL, MVP ]
pathogenicitySources: [ REVEL, MVP, SPLICE_AI ]
#this is the standard exomiser order.
steps: [
failedVariantFilter: { },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ frequencySources: [
# GNOMAD_G_OTH,
GNOMAD_G_SAS
]
# Possible pathogenicitySources: (POLYPHEN, MUTATION_TASTER, SIFT), (REVEL, MVP), CADD, REMM
# Possible pathogenicitySources: (POLYPHEN, MUTATION_TASTER, SIFT), (REVEL, MVP), CADD, REMM, SPLICE_AI, ALPHA_MISSENSE
# REMM is trained on non-coding regulatory regions
# *WARNING* if you enable CADD or REMM ensure that you have downloaded and installed the CADD/REMM tabix files
# and updated their location in the application.properties. Exomiser will not run without this.
pathogenicitySources: [ REVEL, MVP, REMM ]
pathogenicitySources: [ REVEL, MVP, REMM, SPLICE_AI ]
# this is the recommended order for a genome-sized analysis.
steps: [
hiPhivePrioritiser: { },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,11 @@ analysis:
# GNOMAD_G_OTH,
GNOMAD_G_SAS
]
# Possible pathogenicitySources: (POLYPHEN, MUTATION_TASTER, SIFT), (REVEL, MVP), CADD, REMM
# Possible pathogenicitySources: (POLYPHEN, MUTATION_TASTER, SIFT), (REVEL, MVP), CADD, REMM, SPLICE_AI, ALPHA_MISSENSE
# REMM is trained on non-coding regulatory regions
# *WARNING* if you enable CADD or REMM ensure that you have downloaded and installed the CADD/REMM tabix files
# and updated their location in the application.properties. Exomiser will not run without this.
pathogenicitySources: [ REVEL, MVP ]
pathogenicitySources: [ REVEL, MVP, SPLICE_AI ]
# this is the standard exomiser order.
# all steps are optional
steps: [
Expand All @@ -65,6 +65,7 @@ analysis:
# or using a BED file - NOTE this should be 0-based, Exomiser otherwise uses 1-based coordinates in line with VCF
#intervalFilter: {bed: /full/path/to/bed_file.bed},
#genePanelFilter: {geneSymbols: ['FGFR1','FGFR2']},
# geneBlacklistFilter: { },
failedVariantFilter: { },
#qualityFilter: {minQuality: 50.0},
variantEffectFilter: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,11 @@ analysis:
# GNOMAD_G_OTH,
GNOMAD_G_SAS
]
# Possible pathogenicitySources: (POLYPHEN, MUTATION_TASTER, SIFT), (REVEL, MVP), CADD, REMM
# Possible pathogenicitySources: (POLYPHEN, MUTATION_TASTER, SIFT), (REVEL, MVP), CADD, REMM, SPLICE_AI, ALPHA_MISSENSE
# REMM is trained on non-coding regulatory regions
# *WARNING* if you enable CADD or REMM ensure that you have downloaded and installed the CADD/REMM tabix files
# and updated their location in the application.properties. Exomiser will not run without this.
pathogenicitySources: [ REVEL, MVP, REMM ]
pathogenicitySources: [ REVEL, MVP, REMM, SPLICE_AI ]
# this is the recommended order for a genome-sized analysis.
# all steps are optional
steps: [
Expand All @@ -66,6 +66,7 @@ analysis:
# 0.501 is a good compromise to select good phenotype matches and the best protein-protein interactions hits from hiPhive
priorityScoreFilter: { priorityType: HIPHIVE_PRIORITY, minPriorityScore: 0.501 },
failedVariantFilter: { },
# geneBlacklistFilter: { },
#intervalFilter: {interval: 'chr10:123256200-123256300'},
# or for multiple intervals:
#intervalFilter: {intervals: ['chr10:123256200-123256300', 'chr10:123256290-123256350']},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,11 @@ analysis:
# GNOMAD_G_OTH,
GNOMAD_G_SAS
]
# Possible pathogenicitySources: (POLYPHEN, MUTATION_TASTER, SIFT), (REVEL, MVP), CADD, REMM
# Possible pathogenicitySources: (POLYPHEN, MUTATION_TASTER, SIFT), (REVEL, MVP), CADD, REMM, SPLICE_AI, ALPHA_MISSENSE
# REMM is trained on non-coding regulatory regions
# *WARNING* if you enable CADD or REMM ensure that you have downloaded and installed the CADD/REMM tabix files
# and updated their location in the application.properties. Exomiser will not run without this.
pathogenicitySources: [ REVEL, MVP ]
pathogenicitySources: [ REVEL, MVP, SPLICE_AI ]
# this is the standard exomiser order.
# all steps are optional
steps: [
Expand All @@ -64,6 +64,7 @@ analysis:
# or using a BED file - NOTE this should be 0-based, Exomiser otherwise uses 1-based coordinates in line with VCF
#intervalFilter: {bed: /full/path/to/bed_file.bed},
#genePanelFilter: {geneSymbols: ['FGFR1','FGFR2']},
# geneBlacklistFilter: { },
failedVariantFilter: { },
#qualityFilter: {minQuality: 50.0},
variantEffectFilter: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,7 @@
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.containsInAnyOrder;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.monarchinitiative.exomiser.core.model.pathogenicity.PathogenicitySource.MVP;
import static org.monarchinitiative.exomiser.core.model.pathogenicity.PathogenicitySource.REVEL;
import static org.monarchinitiative.exomiser.core.model.pathogenicity.PathogenicitySource.*;

/**
* @author Jules Jacobsen <[email protected]>
Expand Down Expand Up @@ -265,7 +264,7 @@ class CommandLineJobReaderTest {
// FrequencySource.GNOMAD_G_OTH,
FrequencySource.GNOMAD_G_SAS
))
.pathogenicitySources(ImmutableSet.of(REVEL, MVP))
.pathogenicitySources(ImmutableSet.of(REVEL, MVP, SPLICE_AI))
.addFailedVariantFilter()
.addVariantEffectFilter(ImmutableSet.of(
FIVE_PRIME_UTR_EXON_VARIANT,
Expand Down
5 changes: 3 additions & 2 deletions exomiser-cli/src/test/resources/exome-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ frequencySources: [
# REMM is trained on non-coding regulatory regions
# *WARNING* if you enable CADD or REMM ensure that you have downloaded and installed the CADD/REMM tabix files
# and updated their location in the application.properties. Exomiser will not run without this.
pathogenicitySources: [ REVEL, MVP ]
pathogenicitySources: [ REVEL, MVP, SPLICE_AI ]
#this is the standard exomiser order.
#all steps are optional
steps: [
Expand All @@ -54,7 +54,8 @@ steps: [
# or using a BED file - NOTE this should be 0-based, Exomiser otherwise uses 1-based coordinates in line with VCF
#intervalFilter: {bed: /full/path/to/bed_file.bed},
#genePanelFilter: {geneSymbols: ['FGFR1','FGFR2']},
failedVariantFilter: { },
# geneBlacklistFilter: { },
failedVariantFilter: { },
#qualityFilter: {minQuality: 50.0},
variantEffectFilter: {
remove: [
Expand Down
3 changes: 2 additions & 1 deletion exomiser-cli/src/test/resources/pfeiffer-analysis-v8-12.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ analysis:
# REMM is trained on non-coding regulatory regions
# *WARNING* if you enable CADD or REMM ensure that you have downloaded and installed the CADD/REMM tabix files
# and updated their location in the application.properties. Exomiser will not run without this.
pathogenicitySources: [ REVEL, MVP ]
pathogenicitySources: [ REVEL, MVP, SPLICE_AI ]
#this is the standard exomiser order.
#all steps are optional
steps: [
Expand All @@ -66,6 +66,7 @@ analysis:
# or using a BED file - NOTE this should be 0-based, Exomiser otherwise uses 1-based coordinates in line with VCF
#intervalFilter: {bed: /full/path/to/bed_file.bed},
#genePanelFilter: {geneSymbols: ['FGFR1','FGFR2']},
# geneBlacklistFilter: { },
failedVariantFilter: { },
#qualityFilter: {minQuality: 50.0},
variantEffectFilter: {
Expand Down
3 changes: 2 additions & 1 deletion exomiser-cli/src/test/resources/pfeiffer-job-phenopacket.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ analysis:
# REMM is trained on non-coding regulatory regions
# *WARNING* if you enable CADD or REMM ensure that you have downloaded and installed the CADD/REMM tabix files
# and updated their location in the application.properties. Exomiser will not run without this.
pathogenicitySources: [ REVEL, MVP ]
pathogenicitySources: [ REVEL, MVP, SPLICE_AI ]
#this is the standard exomiser order.
#all steps are optional
steps: [
Expand All @@ -105,6 +105,7 @@ analysis:
# or using a BED file - NOTE this should be 0-based, Exomiser otherwise uses 1-based coordinates in line with VCF
#intervalFilter: {bed: /full/path/to/bed_file.bed},
#genePanelFilter: {geneSymbols: ['FGFR1','FGFR2']},
# geneBlacklistFilter: { },
failedVariantFilter: { },
#qualityFilter: {minQuality: 50.0},
variantEffectFilter: {
Expand Down
3 changes: 2 additions & 1 deletion exomiser-cli/src/test/resources/pfeiffer-job-sample.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ analysis:
# REMM is trained on non-coding regulatory regions
# *WARNING* if you enable CADD or REMM ensure that you have downloaded and installed the CADD/REMM tabix files
# and updated their location in the application.properties. Exomiser will not run without this.
pathogenicitySources: [ REVEL, MVP ]
pathogenicitySources: [ REVEL, MVP, SPLICE_AI ]
#this is the standard exomiser order.
#all steps are optional
steps: [
Expand All @@ -73,6 +73,7 @@ analysis:
# or using a BED file - NOTE this should be 0-based, Exomiser otherwise uses 1-based coordinates in line with VCF
#intervalFilter: {bed: /full/path/to/bed_file.bed},
#genePanelFilter: {geneSymbols: ['FGFR1','FGFR2']},
# geneBlacklistFilter: { },
failedVariantFilter: { },
#qualityFilter: {minQuality: 50.0},
variantEffectFilter: {
Expand Down
3 changes: 2 additions & 1 deletion exomiser-cli/src/test/resources/test-analysis-exome.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ analysis:
# REMM is trained on non-coding regulatory regions
# *WARNING* if you enable CADD or REMM ensure that you have downloaded and installed the CADD/REMM tabix files
# and updated their location in the application.properties. Exomiser will not run without this.
pathogenicitySources: [ REVEL, MVP ]
pathogenicitySources: [ REVEL, MVP, SPLICE_AI ]
# this is the standard exomiser order.
# all steps are optional
steps: [
Expand All @@ -65,6 +65,7 @@ analysis:
# or using a BED file - NOTE this should be 0-based, Exomiser otherwise uses 1-based coordinates in line with VCF
#intervalFilter: {bed: /full/path/to/bed_file.bed},
#genePanelFilter: {geneSymbols: ['FGFR1','FGFR2']},
# geneBlacklistFilter: { },
failedVariantFilter: { },
#qualityFilter: {minQuality: 50.0},
variantEffectFilter: {
Expand Down

0 comments on commit 2708652

Please sign in to comment.