line 1:14 no viable alternative at input '[*].EFFECT!'
line 1:19 token recognition error at: '"'
java.lang.RuntimeException: java.lang.RuntimeException: LexerNoViableAltException('"')
at ca.mcgill.mcb.pcingola.snpSift.lang.LangFactory.compile(LangFactory.java:128)
at ca.mcgill.mcb.pcingola.snpSift.SnpSiftCmdFilter.parseExpression(SnpSiftCmdFilter.java:255)
at ca.mcgill.mcb.pcingola.snpSift.SnpSiftCmdFilter.run(SnpSiftCmdFilter.java:282)
at ca.mcgill.mcb.pcingola.snpSift.SnpSiftCmdFilter.run(SnpSiftCmdFilter.java:268)
at ca.mcgill.mcb.pcingola.snpSift.SnpSift.run(SnpSift.java:360)
at ca.mcgill.mcb.pcingola.snpSift.SnpSift.main(SnpSift.java:69)
Caused by: java.lang.RuntimeException: LexerNoViableAltException('"')
at ca.mcgill.mcb.pcingola.snpSift.lang.LangFactory$1.recover(LangFactory.java:117)
at org.antlr.v4.runtime.Lexer.nextToken(Lexer.java:169)
at org.antlr.v4.runtime.BufferedTokenStream.fetch(BufferedTokenStream.java:187)
at org.antlr.v4.runtime.BufferedTokenStream.sync(BufferedTokenStream.java:170)
at org.antlr.v4.runtime.BufferedTokenStream.consume(BufferedTokenStream.java:154)
at org.antlr.v4.runtime.Parser.consume(Parser.java:588)
at org.antlr.v4.runtime.DefaultErrorStrategy.consumeUntil(DefaultErrorStrategy.java:758)
at org.antlr.v4.runtime.DefaultErrorStrategy.recover(DefaultErrorStrategy.java:191)
at ca.mcgill.mcb.pcingola.snpSift.antlr.SnpSiftParser.expression(SnpSiftParser.java:778)
at ca.mcgill.mcb.pcingola.snpSift.antlr.SnpSiftParser.compilationUnit(SnpSiftParser.java:89)
at ca.mcgill.mcb.pcingola.snpSift.lang.LangFactory.compile(LangFactory.java:125)
... 5 more
Caused by: LexerNoViableAltException('"')
at org.antlr.v4.runtime.atn.LexerATNSimulator.failOrAccept(LexerATNSimulator.java:329)
at org.antlr.v4.runtime.atn.LexerATNSimulator.execATN(LexerATNSimulator.java:250)
at org.antlr.v4.runtime.atn.LexerATNSimulator.match(LexerATNSimulator.java:143)
at org.antlr.v4.runtime.Lexer.nextToken(Lexer.java:165)
... 14 more
It can not work again :(
instead of '=', try using 'has'
I have tried that as "ANN[*].EFFECT !has 'synonymous_variant'"
-bash: !has: event not found
swap single quotes and double quotes.
Is it like that "ANN[*].EFFECT !has "synonymous_variant""
It can not work
'ANN[*].EFFECT !has "synonymous_variant"'
Bash uses "!" expression in its history substitution command. So it confuses your command with history substitution function and throws an error that it didn't find such a command in its history.
Try temporarily turning off history substitution feature and turning it back on when you're done with your operations involving "!" :