Unable to see error messages from java application

Posted in Add your tools by Filippo Martignano Fri Jun 01 2018 11:34:25 GMT+0000 (UTC)·3·Viewed 62 times

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 <options> 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 <arg> Exclusion list for chromosomes. A '/' seperated list: i.e. to exclude chromosomes 1,2, and 4, put -b 1/2/4. [null] -bamfile <arg> Bam file for MEI analysis. -bowtie <arg> Path to the bowtie2 algorithm if not in PATH [null]. -c <arg> Coverage level of supplied bam file. -cov <arg> Standard deviation cutoff when calling final sites in integer format. [35] -d <arg> Minumum length of chromosome/contig size for calling elements. [1000000] -e <arg> Expected insert size between reads. [500] -h <arg> Path to the reference sequence used to align reads. -j <arg> 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 <arg> 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 <arg> Read length of the supplied bam file(s). [100] -s <arg> Standard deviation cutoff for excluding sites with improper balance of readpairs in double format. [2.0] -sr <arg> Filter sites with less than X SRs during breakpoint ascertainment. Default, -1, is to not filter any such sites. [-1] -t <arg> Path to the transposon ZIP file(s) to be used for this analysis. -w <arg> Path to the working root directory. -z <arg> 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! Filippo
Natasa Bezmarevic
June 4, 2018

Hi Filippo,

As you said, it seems that your command line for MELT tool is not formed properly. We would suggest to add all required options in the command line (bamfile, h, w, t, n, c) since that was the error you had locally.

The ‘deboggy.txt’ is definitely created(since it’s present in the job.tree.log file), but it seems that it’s not stored in the current working dir.
If your tool creates output files in the folder where your input files are stored, try turning on ’Stage Input -> Link’ option for all of your input files.

If this doesn’t work or you need more help, please provide more details or add our bioinformatician Aleksandra Stevovic (username: aleksandra) to the project, so she can investigate further.

All the best,
Natasa Bezmarevic
Customer Support team

Filippo Martignano
June 4, 2018

Hi Natasa, thank you for the response!

Yes, the command line was intentionally faulty, I was using it in order to see if the error messages were displayed in the proper .log file, as I'm still testing the tool and it would be difficult to debug failed runs if it is impossible to see eventual future errors.

Anyway I will try with the ’Stage Input -> Link’ option! thank you very much for the suggestion!

Best regards


Filippo Martignano
June 5, 2018

Hello everyone, using the ’Stage Input -> Link’ didn't work, but i figured out how to solve it.

I used a very primitive but effective trick

i did something like:

java -jar MELT.jar Single | grep '.*' > debuggy.txt

I know it's stupid but it's working.


Markdown is allowed