Calling HaplotypeCaller (and other tools) from within Java
Is there a quick and easy way to invoke the various GATK tools from within an already-running Java program?
The reason I ask is because I have a 64-CPU machine that exhibits severe lock contention when I try to run more than 20 separate JVMs simultaneously. Currently, I have a queueing system written in Java that uses ProcessBuilder.start to execute GATK tools such as HaplotypeCaller. It would become more efficient if all the Java work were to be executed in a single JVM.
I had a look at CommandLineGATK.java, and the line "System.exit(CommandLineProgram.result); // todo -- this is a painful hack" scared me a little - surely not a global variable!