exomiser / Exomiser

A Tool to Annotate and Prioritize Exome Variants
https://exomiser.readthedocs.io
GNU Affero General Public License v3.0
197 stars 54 forks source link

inheritance mode in yaml #395

Closed snashraf closed 3 years ago

snashraf commented 3 years ago

Dear team,

below is my command for running exomiser java -Xms4g -Xmx8g -Djava.io.tmpdir=/gpfs/projects/HPO//tmp -jar /gpfs/software/genomics/Exomiser/12.1.0/exomiser-cli-12.1.0/exomiser-cli-12.1.0.jar --analysis /gpfs/projects/HPO//fam_2.yaml --spring.config.location=/gpfs/software/genomics/Exomiser/12.1.0/exomiser-cli-12.1.0/

And YAML file looks like below:

Exomiser Analysis Template.

# These are all the possible options for running exomiser. Use this as a template for
analysis:
    genomeAssembly: hg19
    vcf: fam_2_ADHD.vcf.gz
    ped: fam_2_ADHD.ped
    proband: 02A
    # AUTOSOMAL_DOMINANT, AUTOSOMAL_RECESSIVE, X_RECESSIVE or UNDEFINED
    inheritanceModes: AUTOSOMAL_DOMINANT
    #FULL, SPARSE or PASS_ONLY
    analysisMode: PASS_ONLY
    #RAW_SCORE or RANK_BASED
    geneScoreMode: RAW_SCORE
    hpoIds: ['HP:0007018']
    #Possible frequencySources:
    #Thousand Genomes project http://www.1000genomes.org/
    #   THOUSAND_GENOMES,
    #ESP project http://evs.gs.washington.edu/EVS/
    #   ESP_AFRICAN_AMERICAN, ESP_EUROPEAN_AMERICAN, ESP_ALL,
    #ExAC project http://exac.broadinstitute.org/about
    #   EXAC_AFRICAN_INC_AFRICAN_AMERICAN, EXAC_AMERICAN,
    #   EXAC_SOUTH_ASIAN, EXAC_EAST_ASIAN,
    #   EXAC_FINNISH, EXAC_NON_FINNISH_EUROPEAN,
    #   EXAC_OTHER
    frequencySources: [
        THOUSAND_GENOMES,
                TOPMED,
                UK10K,

                ESP_AFRICAN_AMERICAN, ESP_EUROPEAN_AMERICAN, ESP_ALL,

                EXAC_AFRICAN_INC_AFRICAN_AMERICAN, EXAC_AMERICAN,
                EXAC_SOUTH_ASIAN, EXAC_EAST_ASIAN,
                EXAC_FINNISH, EXAC_NON_FINNISH_EUROPEAN,
                EXAC_OTHER,
                GNOMAD_E_AFR,
                GNOMAD_E_AMR,
        #       GNOMAD_E_ASJ,
                GNOMAD_E_EAS,
                GNOMAD_E_FIN,
                GNOMAD_E_NFE,
                GNOMAD_E_OTH,
                GNOMAD_E_SAS,

                GNOMAD_G_AFR,
                GNOMAD_G_AMR,
        #       GNOMAD_G_ASJ,
                GNOMAD_G_EAS,
                GNOMAD_G_FIN,
                GNOMAD_G_NFE,
                GNOMAD_G_OTH,
                GNOMAD_G_SAS
        ]
    #Possible pathogenicitySources: POLYPHEN, MUTATION_TASTER, SIFT, CADD, REMM
    #REMM is trained on non-coding regulatory regions
    #*WARNING* if you enable CADD, ensure that you have downloaded and installed the CADD tabix files
    #and updated their location in the application.properties. Exomiser will not run without this.
    pathogenicitySources: [POLYPHEN, MUTATION_TASTER, SIFT, REMM]
    #this is the recommended order for a genome-sized analysis.
    #all steps are optional
    steps: [
        #intervalFilter: {interval: 'chr10:123256200-123256300'},
        #geneIdFilter: {geneIds: [12345, 34567, 98765]},
        hiPhivePrioritiser: {},
        #running the prioritiser followed by a priorityScoreFilter will remove genes
        #which are least likely to contribute to the phenotype defined in hpoIds, this will
        #dramatically reduce the time and memory required to analyse a genome.
        # 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},
        #variantEffectFilter: {remove: [SYNONYMOUS_VARIANT]},
        #regulatoryFeatureFilter removes all non-regulatory non-coding variants over 20Kb from a known gene.
        regulatoryFeatureFilter: {},
        #knownVariantFilter: {}, #removes variants represented in the database
        frequencyFilter: {maxFrequency: 2.0},
        pathogenicityFilter: {keepNonPathogenic: true},
        #inheritanceFilter and omimPrioritiser should always run AFTER all other filters have completed
        #they will analyse genes according to the specified modeOfInheritance above- UNDEFINED will not be analysed.
        inheritanceFilter: {},
        #omimPrioritiser isn't mandatory.
        omimPrioritiser: {}
        #Other prioritisers: Only combine omimPrioritiser with one of these.
        #Don't include any if you only want to filter the variants.
        #hiPhivePrioritiser: {},
        # or run hiPhive in benchmarking mode:
        #hiPhivePrioritiser: {diseaseId: 'OMIM:101600', candidateGeneSymbol: FGFR2, runParams: 'human,mouse,fish,ppi'},
        #phenixPrioritiser: {}
        #exomeWalkerPrioritiser: {seedGeneIds: [11111, 22222, 33333]}
    ]
outputOptions:
    outputPassVariantsOnly: false
    #numGenes options: 0 = all or specify a limit e.g. 500 for the first 500 results
    numGenes: 0
    #outputPrefix options: specify the path/filename without an extension and this will be added
    # according to the outputFormats option. If unspecified this will default to the following:
    # {exomiserDir}/results/input-vcf-name-exomiser-results.html
    # alternatively, specify a fully qualifed path only. e.g. /users/jules/exomes/analysis
    outputPrefix: /gpfs/projects/SDR_SY_WGS_CGL_SANTOSH/Analysis/64samples/HPO//fam_2_ADHD
    #out-format options: HTML, TSV-GENE, TSV-VARIANT, VCF (default: HTML)
    outputFormats: [HTML, JSON, TSV_GENE, TSV_VARIANT, VCF]

But I am getting the below error.

consider removing this from your analysis script to prevent this message from showing again. 2021-03-03 16:36:07.980 ERROR 14442 --- [ main] o.m.e.cli.ExomiserCommandLineRunner :

java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Map at org.monarchinitiative.exomiser.core.analysis.AnalysisParser$AnalysisConstructor.inheritanceModeOptions(AnalysisParser.java:310) at org.monarchinitiative.exomiser.core.analysis.AnalysisParser$AnalysisConstructor.construct(AnalysisParser.java:235) at org.monarchinitiative.exomiser.core.analysis.AnalysisParser.constructAnalysisFromMap(AnalysisParser.java:121) at org.monarchinitiative.exomiser.core.analysis.AnalysisParser.parseAnalysis(AnalysisParser.java:85) at org.monarchinitiative.exomiser.cli.ExomiserCommandLineRunner.runAnalysisFromScript(ExomiserCommandLineRunner.java:122) at org.monarchinitiative.exomiser.cli.ExomiserCommandLineRunner.runAnalyses(ExomiserCommandLineRunner.java:83) at org.monarchinitiative.exomiser.cli.ExomiserCommandLineRunner.run(ExomiserCommandLineRunner.java:74) at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:813) at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:797) at org.springframework.boot.SpringApplication.run(SpringApplication.java:324) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) at org.monarchinitiative.exomiser.cli.Main.main(Main.java:44)

2021-03-03 16:36:07.989 INFO 14442 --- [ main] com.zaxxer.hikari.HikariDataSource : exomiser-phenotype-1909 - Shutdown initiated... 2021-03-03 16:36:07.997 INFO 14442 --- [ main] com.zaxxer.hikari.HikariDataSource : exomiser-phenotype-1909 - Shutdown completed. 2021-03-03 16:36:07.997 INFO 14442 --- [ main] org.monarchinitiative.exomiser.cli.Main : Exomising finished - Bye!

Can someone help me with this?

julesjacobsen commented 3 years ago

Like the error says, you need a map, not a string for the inheritance modes. This is the original from the test-analysis-exome.yml file in the examples directory:

    inheritanceModes: {
            AUTOSOMAL_DOMINANT: 0.1,
            AUTOSOMAL_RECESSIVE_HOM_ALT: 0.1,
            AUTOSOMAL_RECESSIVE_COMP_HET: 2.0,
            X_DOMINANT: 0.1,
            X_RECESSIVE_HOM_ALT: 0.1,
            X_RECESSIVE_COMP_HET: 2.0,
            MITOCHONDRIAL: 0.2
    }

if you only want to investigate autosomal dominant you can remove the other key-value pairs e.g.

    inheritanceModes: {
            AUTOSOMAL_DOMINANT: 0.1
    }

The numerical value is the maximum frequency cut-off (as a percentage) allowed for that mode of inheritance.

snashraf commented 3 years ago

Thanks Jules !!

It was very useful although a little late !! ;)