VariantToolChest
VariantToolChest copied to clipboard
SetOperator: Empty sets
Hello,
I've been running into exceptions while trying out some set operations with empty datasets. The program does work perfectly on any other operations. Reference genome directory contains .fa as well as .fai and .dict files.
Input files
test_empty.vcf
##fileformat=VCFv4.1
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT A B C
test_2.vcf
##fileformat=VCFv4.1
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT A B C
1 10 . A T . . . GT 1/1 1/1 1/1
1 11 . A T . . . GT 0/1 0/1 0/1
1 12 . A T . . . GT 0/0 0/0 0/0
Set Operations
For each of these operations, I would expect an empty set as output. Union of test_empty with test_2 on all samples:
$ java -jar vtc.jar SO -i a=test_empty.vcf b=test_2.vcf -s u[a:b] -o res.vcf -R ~/Desktop/hg19.fa
Intersect type: pos
Complement type: het_homo_alt
2015-12-11 03:52:49 INFO AbstractVariantPool:134 - Opening test_empty.vcf for reading...
2015-12-11 03:52:49 INFO AbstractVariantPool:134 - Opening test_2.vcf for reading...
2015-12-11 03:52:49 INFO AbstractVariantPool:210 - Setting samples
2015-12-11 03:52:49 ERROR SetOperatorEngine:295 - Caught unexpected exception, something is very wrong!
java.lang.NullPointerException
at vtc.datastructures.AbstractVariantPool.getSamples(AbstractVariantPool.java:183)
at vtc.datastructures.SamplePool.parseSamplePool(SamplePool.java:128)
at vtc.datastructures.SamplePool.<init>(SamplePool.java:39)
at vtc.tools.setoperator.operation.OperationFactory.parseOperation(OperationFactory.java:92)
at vtc.tools.setoperator.operation.OperationFactory.createOperation(OperationFactory.java:32)
at vtc.tools.setoperator.SetOperatorEngine.performOperations(SetOperatorEngine.java:401)
at vtc.tools.setoperator.SetOperatorEngine.operate(SetOperatorEngine.java:275)
at vtc.VTCEngine.main(VTCEngine.java:62)
Intersect of test_empty with test_2 on all samples:
$ java -jar vtc.jar SO -i a=test_empty.vcf b=test_2.vcf -s i[a:b] -g pos -o res.vcf -R ~/Desktop/hg19.fa
Intersect type: pos
Complement type: het_homo_alt
2015-12-11 03:54:31 INFO AbstractVariantPool:134 - Opening test_empty.vcf for reading...
2015-12-11 03:54:31 INFO AbstractVariantPool:134 - Opening test_2.vcf for reading...
2015-12-11 03:54:31 INFO AbstractVariantPool:210 - Setting samples
2015-12-11 03:54:31 ERROR SetOperatorEngine:295 - Caught unexpected exception, something is very wrong!
java.lang.NullPointerException
at vtc.datastructures.AbstractVariantPool.getSamples(AbstractVariantPool.java:183)
at vtc.datastructures.SamplePool.parseSamplePool(SamplePool.java:128)
at vtc.datastructures.SamplePool.<init>(SamplePool.java:39)
at vtc.tools.setoperator.operation.OperationFactory.parseOperation(OperationFactory.java:92)
at vtc.tools.setoperator.operation.OperationFactory.createOperation(OperationFactory.java:32)
at vtc.tools.setoperator.SetOperatorEngine.performOperations(SetOperatorEngine.java:401)
at vtc.tools.setoperator.SetOperatorEngine.operate(SetOperatorEngine.java:275)
at vtc.VTCEngine.main(VTCEngine.java:62)
Union of test_empty with test_2 on some samples:
$ java -jar vtc.jar SO -i a=test_empty.vcf b=test_2.vcf -s u[a[A,B]:b[A,B]] -g pos -o res.vcf -R ~/Desktop/hg19.fa
Intersect type: pos
Complement type: het_homo_alt
2015-12-11 03:55:04 INFO AbstractVariantPool:134 - Opening test_empty.vcf for reading...
2015-12-11 03:55:04 INFO AbstractVariantPool:134 - Opening test_2.vcf for reading...
2015-12-11 03:55:04 INFO AbstractVariantPool:210 - Setting samples
Performing union...
2015-12-11 03:55:04 INFO SetOperator:992 - Processing variant pool 'a'...
2015-12-11 03:55:04 INFO SetOperator:992 - Processing variant pool 'b'...
2015-12-11 03:55:04 ERROR SetOperatorEngine:295 - Caught unexpected exception, something is very wrong!
java.lang.NullPointerException
at vtc.datastructures.AbstractVariantPool.getSamples(AbstractVariantPool.java:183)
at vtc.tools.setoperator.SetOperator.performUnion(SetOperator.java:1070)
at vtc.tools.setoperator.SetOperatorEngine.performOperations(SetOperatorEngine.java:415)
at vtc.tools.setoperator.SetOperatorEngine.operate(SetOperatorEngine.java:275)
at vtc.VTCEngine.main(VTCEngine.java:62)
Intersect of test_empty with test_2 on some samples: Strangely enough, intersecting on two files while selecting a few samples seems to work.
$ java -jar vtc.jar SO -i a=test_empty.vcf b=test_2.vcf -s i[a[A,B]:b[A,B]] -g pos -o res.vcf -R ~/Desktop/hg19.fa
Intersect type: pos
Complement type: het_homo_alt
2015-12-11 03:56:31 INFO AbstractVariantPool:134 - Opening test_empty.vcf for reading...
2015-12-11 03:56:31 INFO AbstractVariantPool:134 - Opening test_2.vcf for reading...
2015-12-11 03:56:31 INFO AbstractVariantPool:210 - Setting samples
Performing intersect...
2015-12-11 03:56:31 INFO SetOperatorEngine:493 - Printing s1 to file: /home/rhunos/Desktop/res.vcf
2015-12-11 03:56:31 INFO SetOperatorEngine:496 - 0 variant record(s) written.