This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Temporary Directory Problem in GATK4

Hi,

I have recently shifted from GATK 3 to GATK4. It has changed very much. I figured most of the step but one thing is giving me problem is that how to set temporary directory option in GATK4. I have used this option export _JAVA_OPTIONS=-Djava.io.tmpdir=./tmp with this option --TMP_DIR ./tmp/. As mentioned in this link But it is giving me this error

A USER ERROR has occurred: 'export' is not a valid command.

Can any one please tell me how to resolve this error.

gatk4 java temporary directory

Which shell are you using (echo $SHELL)? Setting ./tmp/ is vague since the program will always look for that directory from where you start it. You should provide full path to tmp when setting the --TMP_DIR.

I am using /bin/bash. I have set whole path to tmp directory. And there was space in export_JAVA_OPTIONS=-Djava.io.tmpdir=./tmp which I removed but now it is giving me error

A USER ERROR has occurred: 'export_JAVA_OPTIONS=-Djava.io.tmpdir=./tmp' is not a valid command.

That space before _JAVA is required. In any case @dario has a possible solution posted below. I would still suggest not using ./tmp.

3 answers

You are probably executing gatk as:

gatk export _JAVA_OPTIONS=-Djava.io.tmpdir=./tmp

What you want, probably (and not tested), is:

export _JAVA_OPTIONS=-Djava.io.tmpdir=./tmp

gatk <command> <options>

Or just (what I would do):

gatk <command> <options> --TMP_DIR=./tmp

My problem was resolved using:

  ./gatk --java-options "-Djava.io.tmpdir=/custom file path" SortSam -I=samplealn.sam -O=sortedsamplealn.bam -SO=coordinate --TMP_DIR=/custom file path

Just to share, faced the same problem and solved it by:

mkdir tmp

gatk <command> --tmp-dir tmp ...

Create a local tmp folder and use the local tmp folder as the tmp directory.

Log in to answer this question.