Error "A USER ERROR has occurred: -12.5 is not a recognized option" at VariantFiltration step
Dear GATK Community,
I am stuck at VariantFiltration step with the error described with this message. I am not able to figure out the cause of this problem. I have used bowtie2 for the alignment and I am working with plant system (Rice/Oryza Sativa). Please help me with this issue. Thank you for your time and consideration.
REQUIRED for all errors and issues:
a) GATK version used: Version:4.4.0.0
b) Exact command used: gatk --java-options '-DGATK_STACKTRACE_ON_USER_EXCEPTION=true' VariantFiltration -R /work/cchaud3/db/os/Oryza_sativa.IRGSP-1.0.dna_sm.toplevel.fa -V jn-ju-nb_genotyped.gvcf.gz -O jn-ju-nb_filtered.gvcf --filter-expression "QD < 2.0 || FS > 60.0 || MQ < 40.00 || MQRankSum < -12.5 || ReadPosRankSum < -8.0 || SOR > 3.0" --filter-name "ck-filter"
c) Entire program log:
Using GATK jar /gatk/gatk-package-4.4.0.0-local.jar
Running:
java -Dsamjdk.use_async_io_read_samtools=false -Dsamjdk.use_async_io_write_samtools=true -Dsamjdk.use_async_io_write_tribble=false -Dsamjdk.compression_level=2 -DGATK_STACKTRACE_ON_USER_EXCEPTION=true -jar /gatk/gatk-package-4.4.0.0-local.jar VariantFiltration -R /work/cchaud3/db/os/Oryza_sativa.IRGSP-1.0.dna_sm.toplevel.fa -V jn-ju-nb_genotyped.gvcf.gz -O jn-ju-nb_filtered.gvcf --filter-expression QD < 2.0 || FS > 60.0 || MQ < 40.00 || MQRankSum < -12.5 || ReadPosRankSum < -8.0 || SOR > 3.0 --filter-name ck-filter
USAGE: VariantFiltration [arguments]
Filter variant calls based on INFO and/or FORMAT annotations.
Version:4.4.0.0
Required Arguments:
--output,-O <GATKPath> File to which variants should be written Required.
--variant,-V <GATKPath> A VCF file containing variants Required.
Optional Arguments:
--add-output-sam-program-record <Boolean>
If true, adds a PG tag to created SAM/BAM/CRAM files. Default value: true. Possible
values: {true, false}
--add-output-vcf-command-line <Boolean>
If true, adds a command line header line to created VCF files. Default value: true.
Possible values: {true, false}
--apply-allele-specific-filters <Boolean>
Set mask at the allele level. This option is not compatible with clustering. Default
value: false. Possible values: {true, false}
--arguments_file <File> read one or more arguments files and add them to the command line This argument may be
specified 0 or more times. Default value: null.
--cloud-index-prefetch-buffer,-CIPB <Integer>
Size of the cloud-only prefetch buffer (in MB; 0 to disable). Defaults to
cloudPrefetchBuffer if unset. Default value: -1.
--cloud-prefetch-buffer,-CPB <Integer>
Size of the cloud-only prefetch buffer (in MB; 0 to disable). Default value: 40.
--cluster-size,-cluster <Integer>
The number of SNPs which make up a cluster. Must be at least 2 Default value: 3.
--cluster-window-size,-window <Integer>
The window size (in bases) in which to evaluate clustered SNPs Default value: 0.
--create-output-bam-index,-OBI <Boolean>
If true, create a BAM/CRAM index when writing a coordinate-sorted BAM/CRAM file. Default
value: true. Possible values: {true, false}
--create-output-bam-md5,-OBM <Boolean>
If true, create a MD5 digest for any BAM/SAM/CRAM file created Default value: false.
Possible values: {true, false}
--create-output-variant-index,-OVI <Boolean>
If true, create a VCF index when writing a coordinate-sorted VCF file. Default value:
true. Possible values: {true, false}
--create-output-variant-md5,-OVM <Boolean>
If true, create a a MD5 digest any VCF file created. Default value: false. Possible
values: {true, false}
--disable-bam-index-caching,-DBIC <Boolean>
If true, don't cache bam indexes, this will reduce memory requirements but may harm
performance if many intervals are specified. Caching is automatically disabled if there
are no intervals specified. Default value: false. Possible values: {true, false}
--disable-read-filter,-DF <String>
Read filters to be disabled before analysis This argument may be specified 0 or more
times. Default value: null. Possible values: {WellformedReadFilter}
--disable-sequence-dictionary-validation <Boolean>
If specified, do not check the sequence dictionaries from our inputs for compatibility.
Use at your own risk! Default value: false. Possible values: {true, false}
--exclude-intervals,-XL <String>
One or more genomic intervals to exclude from processing This argument may be specified 0
or more times. Default value: null.
--filter-expression,-filter <String>
One or more expressions used with INFO fields to filter This argument may be specified 0
or more times. Default value: null.
--filter-name <String> Names to use for the list of filters This argument may be specified 0 or more times.
Default value: null.
--filter-not-in-mask <Boolean>Filter records NOT in given input mask. Default value: false. Possible values: {true,
false}
--gatk-config-file <String> A configuration file to use with the GATK. Default value: null.
--gcs-max-retries,-gcs-retries <Integer>
If the GCS bucket channel errors out, how many times it will attempt to re-initiate the
connection Default value: 20.
--gcs-project-for-requester-pays <String>
Project to bill when accessing "requester pays" buckets. If unset, these buckets cannot be
accessed. User must have storage.buckets.get permission on the bucket being accessed.
Default value: .
--genotype-filter-expression,-G-filter <String>
One or more expressions used with FORMAT (sample/genotype-level) fields to filter (see
documentation guide for more info) This argument may be specified 0 or more times.
Default value: null.
--genotype-filter-name,-G-filter-name <String>
Names to use for the list of sample/genotype filters (must be a 1-to-1 mapping); this name
is put in the FILTER field for variants that get filtered This argument may be specified
0 or more times. Default value: null.
--help,-h <Boolean> display the help message Default value: false. Possible values: {true, false}
--input,-I <GATKPath> BAM/SAM/CRAM file containing reads This argument may be specified 0 or more times.
Default value: null.
--interval-exclusion-padding,-ixp <Integer>
Amount of padding (in bp) to add to each interval you are excluding. Default value: 0.
--interval-merging-rule,-imr <IntervalMergingRule>
Interval merging rule for abutting intervals Default value: ALL. Possible values: {ALL,
OVERLAPPING_ONLY}
--interval-padding,-ip <Integer>
Amount of padding (in bp) to add to each interval you are including. Default value: 0.
--interval-set-rule,-isr <IntervalSetRule>
Set merging approach to use for combining interval inputs Default value: UNION. Possible
values: {UNION, INTERSECTION}
--intervals,-L <String> One or more genomic intervals over which to operate This argument may be specified 0 or
more times. Default value: null.
--invalidate-previous-filters <Boolean>
Remove previous filters applied to the VCF Default value: false. Possible values: {true,
false}
--invert-filter-expression,-invfilter <Boolean>
Invert the selection criteria for --filter-expression Default value: false. Possible
values: {true, false}
--invert-genotype-filter-expression,-invG-filter <Boolean>
Invert the selection criteria for --genotype-filter-expression Default value: false.
Possible values: {true, false}
--lenient,-LE <Boolean> Lenient processing of VCF files Default value: false. Possible values: {true, false}
--mask <FeatureInput> Input mask Default value: null.
--mask-extension <Integer> How many bases beyond records from a provided 'mask' should variants be filtered Default
value: 0.
--mask-name <String> The text to put in the FILTER field if a 'mask' is provided and overlaps with a variant
call Default value: Mask.
--max-variants-per-shard <Integer>
If non-zero, partitions VCF output into shards, each containing up to the given number of
records. Default value: 0.
--missing-values-evaluate-as-failing <Boolean>
When evaluating the JEXL expressions, missing values should be considered failing the
expression Default value: false. Possible values: {true, false}
--QUIET <Boolean> Whether to suppress job-summary info on System.err. Default value: false. Possible
values: {true, false}
--read-filter,-RF <String> Read filters to be applied before analysis This argument may be specified 0 or more
times. Default value: null. Possible values: {AlignmentAgreesWithHeaderReadFilter,
AllowAllReadsReadFilter, AmbiguousBaseReadFilter, CigarContainsNoNOperator,
ExcessiveEndClippedReadFilter, FirstOfPairReadFilter,
FlowBasedTPAttributeSymetricReadFilter, FlowBasedTPAttributeValidReadFilter,
FragmentLengthReadFilter, GoodCigarReadFilter, HasReadGroupReadFilter,
HmerQualitySymetricReadFilter, IntervalOverlapReadFilter,
JexlExpressionReadTagValueFilter, LibraryReadFilter, MappedReadFilter,
MappingQualityAvailableReadFilter, MappingQualityNotZeroReadFilter,
MappingQualityReadFilter, MatchingBasesAndQualsReadFilter, MateDifferentStrandReadFilter,
MateDistantReadFilter, MateOnSameContigOrNoMappedMateReadFilter,
MateUnmappedAndUnmappedReadFilter, MetricsReadFilter,
NonChimericOriginalAlignmentReadFilter, NonZeroFragmentLengthReadFilter,
NonZeroReferenceLengthAlignmentReadFilter, NotDuplicateReadFilter,
NotOpticalDuplicateReadFilter, NotProperlyPairedReadFilter,
NotSecondaryAlignmentReadFilter, NotSupplementaryAlignmentReadFilter,
OverclippedReadFilter, PairedReadFilter, PassesVendorQualityCheckReadFilter,
PlatformReadFilter, PlatformUnitReadFilter, PrimaryLineReadFilter,
ProperlyPairedReadFilter, ReadGroupBlackListReadFilter, ReadGroupHasFlowOrderReadFilter,
ReadGroupReadFilter, ReadLengthEqualsCigarLengthReadFilter, ReadLengthReadFilter,
ReadNameReadFilter, ReadStrandFilter, ReadTagValueFilter, SampleReadFilter,
SecondOfPairReadFilter, SeqIsStoredReadFilter, SoftClippedReadFilter,
ValidAlignmentEndReadFilter, ValidAlignmentStartReadFilter, WellformedFlowBasedReadFilter,
WellformedReadFilter}
--read-index <GATKPath> Indices to use for the read inputs. If specified, an index must be provided for every read
input and in the same order as the read inputs. If this argument is not specified, the
path to the index for each input will be inferred automatically. This argument may be
specified 0 or more times. Default value: null.
--read-validation-stringency,-VS <ValidationStringency>
Validation stringency for all SAM/BAM/CRAM/SRA files read by this program. The default
stringency value SILENT can improve performance when processing a BAM file in which
variable-length data (read, qualities, tags) do not otherwise need to be decoded. Default
value: SILENT. Possible values: {STRICT, LENIENT, SILENT}
--reference,-R <GATKPath> Reference sequence Default value: null.
--seconds-between-progress-updates <Double>
Output traversal statistics every time this many seconds elapse Default value: 10.0.
--sequence-dictionary <GATKPath>
Use the given sequence dictionary as the master/canonical sequence dictionary. Must be a
.dict file. Default value: null.
--set-filtered-genotype-to-no-call <Boolean>
Set filtered genotypes to no-call Default value: false. Possible values: {true, false}
--sites-only-vcf-output <Boolean>
If true, don't emit genotype fields when writing vcf file output. Default value: false.
Possible values: {true, false}
--tmp-dir <GATKPath> Temp directory to use. Default value: null.
--use-jdk-deflater,-jdk-deflater <Boolean>
Whether to use the JdkDeflater (as opposed to IntelDeflater) Default value: false.
Possible values: {true, false}
--use-jdk-inflater,-jdk-inflater <Boolean>
Whether to use the JdkInflater (as opposed to IntelInflater) Default value: false.
Possible values: {true, false}
--verbosity <LogLevel> Control verbosity of logging. Default value: INFO. Possible values: {ERROR, WARNING,
INFO, DEBUG}
--version <Boolean> display the version number for this tool Default value: false. Possible values: {true,
false}
Advanced Arguments:
--disable-tool-default-read-filters <Boolean>
Disable all tool default read filters (WARNING: many tools will not function correctly
without their default read filters on) Default value: false. Possible values: {true,
false}
--showHidden <Boolean> display hidden arguments Default value: false. Possible values: {true, false}
Conditional Arguments for readFilter:
Valid only if "AmbiguousBaseReadFilter" is specified:
--ambig-filter-bases <Integer>Threshold number of ambiguous bases. If null, uses threshold fraction; otherwise,
overrides threshold fraction. Default value: null. Cannot be used in conjunction with
argument(s) maxAmbiguousBaseFraction
--ambig-filter-frac <Double> Threshold fraction of ambiguous bases Default value: 0.05. Cannot be used in conjunction
with argument(s) maxAmbiguousBases
Valid only if "ExcessiveEndClippedReadFilter" is specified:
--max-clipped-bases <Integer> Maximum number of clipped bases on either end of a given read Default value: 1000.
Valid only if "FlowBasedTPAttributeValidReadFilter" is specified:
--read-filter-max-hmer <Integer>
maxHmer to use for testing in the filter Default value: 12.
Valid only if "FragmentLengthReadFilter" is specified:
--max-fragment-length <Integer>
Maximum length of fragment (insert size) Default value: 1000000.
--min-fragment-length <Integer>
Minimum length of fragment (insert size) Default value: 0.
Valid only if "IntervalOverlapReadFilter" is specified:
--keep-intervals <String> One or more genomic intervals to keep This argument must be specified at least once.
Required.
Valid only if "JexlExpressionReadTagValueFilter" is specified:
--read-filter-expression <String>
One or more JEXL expressions used to filter This argument must be specified at least
once. Required.
Valid only if "LibraryReadFilter" is specified:
--library <String> Name of the library to keep This argument must be specified at least once. Required.
Valid only if "MappingQualityReadFilter" is specified:
--maximum-mapping-quality <Integer>
Maximum mapping quality to keep (inclusive) Default value: null.
--minimum-mapping-quality <Integer>
Minimum mapping quality to keep (inclusive) Default value: 10.
Valid only if "MateDistantReadFilter" is specified:
--mate-too-distant-length <Integer>
Minimum start location difference at which mapped mates are considered distant Default
value: 1000.
Valid only if "OverclippedReadFilter" is specified:
--dont-require-soft-clips-both-ends <Boolean>
Allow a read to be filtered out based on having only 1 soft-clipped block. By default,
both ends must have a soft-clipped block, setting this flag requires only 1 soft-clipped
block Default value: false. Possible values: {true, false}
--filter-too-short <Integer> Minimum number of aligned bases Default value: 30.
Valid only if "PlatformReadFilter" is specified:
--platform-filter-name <String>
Platform attribute (PL) to match This argument must be specified at least once. Required.
Valid only if "PlatformUnitReadFilter" is specified:
--black-listed-lanes <String> Platform unit (PU) to filter out This argument must be specified at least once. Required.
Valid only if "ReadGroupBlackListReadFilter" is specified:
--read-group-black-list <String>
A read group filter expression in the form "attribute:value", where "attribute" is a two
character read group attribute such as "RG" or "PU". This argument must be specified at
least once. Required.
Valid only if "ReadGroupReadFilter" is specified:
--keep-read-group <String> The name of the read group to keep Required.
Valid only if "ReadLengthReadFilter" is specified:
--max-read-length <Integer> Keep only reads with length at most equal to the specified value Required.
--min-read-length <Integer> Keep only reads with length at least equal to the specified value Default value: 1.
Valid only if "ReadNameReadFilter" is specified:
--read-name <String> Keep only reads with this read name Required.
Valid only if "ReadStrandFilter" is specified:
--keep-reverse-strand-only <Boolean>
Keep only reads on the reverse strand Required. Possible values: {true, false}
Valid only if "ReadTagValueFilter" is specified:
--read-filter-tag <String> Look for this tag in read Required.
--read-filter-tag-comp <Float>Compare value in tag to this value Default value: 0.0.
--read-filter-tag-op <Operator>
Compare value in tag to value with this operator. If T is the value in the tag, OP is the
operation provided, and V is the value in read-filter-tag, then the read will pass the
filter iff T OP V is true. Default value: EQUAL. Possible values: {LESS, LESS_OR_EQUAL,
GREATER, GREATER_OR_EQUAL, EQUAL, NOT_EQUAL}
Valid only if "SampleReadFilter" is specified:
--sample <String> The name of the sample(s) to keep, filtering out all others This argument must be
specified at least once. Required.
Valid only if "SoftClippedReadFilter" is specified:
--invert-soft-clip-ratio-filter <Boolean>
Inverts the results from this filter, causing all variants that would pass to fail and
visa-versa. Default value: false. Possible values: {true, false}
--soft-clipped-leading-trailing-ratio <Double>
Threshold ratio of soft clipped bases (leading / trailing the cigar string) to total bases
in read for read to be filtered. Default value: null. Cannot be used in conjunction with
argument(s) minimumSoftClippedRatio
--soft-clipped-ratio-threshold <Double>
Threshold ratio of soft clipped bases (anywhere in the cigar string) to total bases in
read for read to be filtered. Default value: null. Cannot be used in conjunction with
argument(s) minimumLeadingTrailingSoftClippedRatio
***********************************************************************
A USER ERROR has occurred: -12.5 is not a recognized option
***********************************************************************
org.broadinstitute.barclay.argparser.CommandLineException: -12.5 is not a recognized option
at org.broadinstitute.barclay.argparser.CommandLineArgumentParser.parseArguments(CommandLineArgumentParser.java:149)
at org.broadinstitute.hellbender.cmdline.CommandLineProgram.parseArgs(CommandLineProgram.java:239)
at org.broadinstitute.hellbender.cmdline.CommandLineProgram.instanceMain(CommandLineProgram.java:213)
at org.broadinstitute.hellbender.Main.runCommandLineProgram(Main.java:160)
at org.broadinstitute.hellbender.Main.mainEntry(Main.java:203)
at org.broadinstitute.hellbender.Main.main(Main.java:289)
Best regards,
Chanderkant
-
Hi CK
From your commandline post nothing particularly hits the eye as an issue however looks like gatk script is unable to feed a proper commandline text to the main jar file.
Can you post a little more detail about the computing environment such as OS, Java and python versions available for use?
As a walkaround is it possible for you to run this command using the docker version of gatk?
Regards.
-
Hi SkyWarrior,
Thank you for the quick reply.
Please find the information attached with message.
java -version
openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)[cchaud3@smic106 04_gatk]$ python --version
Python 3.10.13[cchaud3@smic106 04_gatk]$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
(hts_mamba) [cchaud3@smic106 04_gatk]$ lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: RedHatEnterpriseServer
Description: Red Hat Enterprise Linux Server release 7.9 (Maipo)
Release: 7.9
Codename: Maipoand I will try running Docker.
Thank you.
Best regards,
CK
-
Hi CK
GATK 4.4.0.0 and upwards require Java Runtime version 17. That is the only thing looked out of order from these environment variables. If you wish to stick with Java Runtime 1.8 you need to stay with GATK version 4.3.0.0 or alternatively you may try using docker version which already includes Java 17.
Regards.
-
Hi SkyWarrior,
Thank you for the quick response. I will try with Java Runtime version 17. Meanwhile, I was trying with previous version of GATK and it worked for me. Now, VariantFiltration command is running without any errors. Thank you pointing out the issue.
Best regards,
CK
Please sign in to leave a comment.
4 comments