Back to All

Unable to see error messages from java application

Hello, I'm trying to bring a java application (MELTv2.1.4) to the cgc platform.
I've made a docker which works perfectly locally and create a tool on CGC.
However, maybe there is something wrong with my command line because if I run the tool the task fails with exit code 1.
I would like to figure out what is wrong with the command line, but unfortunately job.err.log is totally blank so I cannot understand the problem.

For example if I run the application without arguments in my docker ("java -jar MELT.jar Single"), the result is:

Command Line:
MELT.jar Single

Start time: Jun 1, 2018 11:13:01 AM

Performing MELT analysis...

Missing required options: bamfile, h, w, t, n, c

usage: java -jar MELT.jar Single
MELTv2.1.4 - MELT-Single - Perform transposon analysis on a single sample.

-a Reads have been aligned with bwa-aln. [false]
-ac Remove ac0 sites from final VCF file. [false]
-b Exclusion list for chromosomes. A '/' seperated list: i.e. to exclude chromosomes 1,2, and 4, put -b 1/2/4. [null]
-bamfile Bam file for MEI analysis.
-bowtie Path to the bowtie2 algorithm if not in PATH [null].
-c Coverage level of supplied bam file.
-cov Standard deviation cutoff when calling final sites in integer format. [35]
-d Minumum length of chromosome/contig size for calling elements. [1000000]
-e Expected insert size between reads. [500]
-h Path to the reference sequence used to align reads.
-j Total percentage of sites allowed to be no call (in integer form i.e. 25 percent would be -i 25, not .25). [25]
-k BAM file(s) have already been processed for discordant pairs (suffixes .fq, .disc, and .disc.bai are already present for the bam file in -l). [false]
-n Path to the genome annotation.
-nocleanup Do not cleanup MELT intermediate files after running. [false]
-q Alignments are pre Illumina 1.3 Quality encoding. [false]
-r Read length of the supplied bam file(s). [100]
-s Standard deviation cutoff for excluding sites with improper balance of readpairs in double format. [2.0]
-sr Filter sites with less than X SRs during breakpoint ascertainment. Default, -1, is to not filter any such sites. [-1]
-t Path to the transposon ZIP file(s) to be used for this analysis.
-w Path to the working root directory.
-z Maximum reads to load into memory when iterating over sequence files. Setting higher increases run time, but may increase sensitivity in large (>60X coverage) bam files. Setting lower may decrease sensitivity in all bam files. [5000]

-help will print this message and exit

This is not an actual "error message" (like for example "Error: Unable to access jarfile MELTe.jar" that appears in the job.err.log file if I intentionally misspell the name of the app) so, maybe that's the reason why I can't see it in the job.err.log file.

Is there a way to get it printed somewhere in order to understand eventual errors in the commandl line?

I tried with a trick:

java -jar MELT.jar Single > debuggy.txt

This works fine "locally" in the docker; I tried also on CGC setting up a specific output port for the debug file (glob= *.txt); unfortunately there is no downloadable output file (which is very strange).
Even more strange is the fact that, according to job.tree.log, the file has been created

. [ 89 Jun 01 10:48.16 UTC] cmd.log
. [2.3K Jun 01 10:48.17 UTC] deboggy.txt
. [ 0 Jun 01 10:48.27 UTC] job.err.log
. [3.1K Jun 01 10:48.16 UTC] job.json
. [ 0 Jun 01 10:48.27 UTC] job.tree.log

9.5K used in 0 directories, 5 files
but still is not possible to download it.

Can someone help me with this?

Thanks a lot!