ssadedin / ximmer

Ximmer is a system for CNV calling on exome and targeted genomic sequencing
http://ssadedin.github.io/ximmer/
GNU Lesser General Public License v2.1
19 stars 10 forks source link

config. java.lang.IllegalArgumentException: Please set the HGFA parameter to your human genome reference in the config file at: /usr/local/ximmer/eval/pipeline/config.groovy Error #29

Open hkrzystek opened 5 years ago

hkrzystek commented 5 years ago

Hello,

Only Singularity is installed on our research cluster, not Docker. I have run the Docker container through singularity. When running analysis, I get the following error at the end:

,,, halina@c0801:~$ ximmer -c ximmer_config.groovy -nosim -v -o ximmer_results /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)



Configured verbose logging Ximmer [1] INFO |7:15:04 Configured verbose logging Ximmer [1] INFO |7:15:04 Simulation disabled. Ximmer [1] INFO |7:15:04 No run directory configured: run directory = run Caught: java.lang.IllegalArgumentException: Please set the HGFA parameter to your human genome reference in the config file at: /usr/local/ximmer/eval/pipeline/config.groovy java.lang.IllegalArgumentException: Please set the HGFA parameter to your human genome reference in the config file at: /usr/local/ximmer/eval/pipeline/config.groovy at Ximmer.validateConfiguration(Ximmer.groovy:177) at Ximmer.(Ximmer.groovy:154) at Ximmer.main(Ximmer.groovy:1271) ,,,

I have tried to edit the config.groovy file using vi since neither vim nor nano are installed in the container.. however I only have read access. How can I change the groovy file as prompted?

Thank you, Halina

bopohdr commented 5 years ago

Hello,

Only Singularity is installed on our research cluster, not Docker. I have run the Docker container through singularity. When running analysis, I get the following error at the end:

,,, halina@c0801:~$ ximmer -c ximmer_config.groovy -nosim -v -o ximmer_results /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)

Configured verbose logging Ximmer [1] INFO |7:15:04 Configured verbose logging Ximmer [1] INFO |7:15:04 Simulation disabled. Ximmer [1] INFO |7:15:04 No run directory configured: run directory = run Caught: java.lang.IllegalArgumentException: Please set the HGFA parameter to your human genome reference in the config file at: /usr/local/ximmer/eval/pipeline/config.groovy java.lang.IllegalArgumentException: Please set the HGFA parameter to your human genome reference in the config file at: /usr/local/ximmer/eval/pipeline/config.groovy at Ximmer.validateConfiguration(Ximmer.groovy:177) at Ximmer.(Ximmer.groovy:154) at Ximmer.main(Ximmer.groovy:1271) ,,,

I have tried to edit the config.groovy file using vi since neither vim nor nano are installed in the container.. however I only have read access. How can I change the groovy file as prompted?

Thank you, Halina

Dear Halina,

I have no experience with singularity, but I do not think that you are using correct code to run Ximmer in the first place. According to the instructions, You should set -e for reference genome, as well as -v for /data and -v for /reference. I use the command:

sudo docker run 
-e XIMMER_REF=/reference/hg38.fa 
-v /Users/dmitrijsrots/Downloads/NGS_Afib/reference:/reference  
-v /Users/dmitrijsrots/Downloads/NGS_Afib/data:/data 
ssadedin/ximmer ximmer  # I pull docker image provided already by Ssadedin at docker hub
-c /data/config.groovy 
-o /data/output.docker

As well as - could you provide your config.groovy file ? P.S. If you have real troubles with editing config.groovy file - why not make/modify the file on any other PC?

hkrzystek commented 5 years ago

Hi @bopohdr ,

Thanks for your reply. It took me a while to understand, but in your command -e and -v are docker run flags and not Ximmer options. I used the correct Ximmer commands (what you have written after "ssadedin/ximmer ximmer"). The -e flag in docker run sets environmental variables. Within the singularized docker container I ran export XIMMER_REF= etc and echo $XIMMER_REF confirmed it worked. (-B is the flag in singularity where you are using -v for docker)

However, the error message says to edit the config file at: /usr/local/ximmer/eval/pipeline/config.groovy, which is not my own config file. The issue is that I do not have write permissions to edit THIS file. My question to the developer is how can I get around this?

My Ximmer output after the environmental variable is set is:

halina@c1118:~$ ximmer -nosim -c my_config.groovy -o results
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
Using reference sequence: /proj/ncgenes2/src/ncgenes2-exome-pipeline/modules/apps/human-genome-for-alignment/1405.15/GRCh38_no_alt_analysis_set.refseqids.fna
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)

  | |/ /(_)___ ___  ____ ___  ___  _____
  |   // / __ `__ \/ __ `__ \/ _ \/ ___/
 /   |/ / / / / / / / / / / /  __/ /    
/_/|_/_/_/ /_/ /_/_/ /_/ /_/\___/_/     

Install directory detected as: /usr/local/ximmer
/usr/local/ximmer/bin/install: line 75: /usr/local/ximmer/eval/pipeline/config.groovy: Permission denied

Reference has been set to /proj/ncgenes2/src/ncgenes2-exome-pipeline/modules/apps/human-genome-for-alignment/1405.15/GRCh38_no_alt_analysis_set.refseqids.fna
**************************************************

#     #  ###  #     #  #     #  #######  ######   
 #   #    #   ##   ##  ##   ##  #        #     #  
  # #     #   # # # #  # # # #  #        #     #  
   #      #   #  #  #  #  #  #  #####    ######   
  # #     #   #     #  #     #  #        #   #    
 #   #    #   #     #  #     #  #        #    #   
#     #  ###  #     #  #     #  #######  #     #  

**************************************************
Caught: java.lang.IllegalArgumentException: Please set the HGFA parameter to your human genome reference in the config file at: /usr/local/ximmer/eval/pipeline/config.groovy
java.lang.IllegalArgumentException: Please set the HGFA parameter to your human genome reference in the config file at: /usr/local/ximmer/eval/pipeline/config.groovy
    at Ximmer.validateConfiguration(Ximmer.groovy:177)
    at Ximmer.<init>(Ximmer.groovy:154)
    at Ximmer.main(Ximmer.groovy:1271)

Thank you.

hkrzystek commented 5 years ago

I'm following this from the Documentation:

Using CRAM Format CRAM format saves a lot of space but requires that a reference sequence be specified.

This needs to be configured in two places for CRAM format to work:

Set the correct FASTA file for the reference in eval/pipeline/config.groovy Set the environment variable XIMMER_REF to the absolute path of the FASTA reference file, eg: 1 export XIMMER_REF=/path/to/your/reference.fasta

Can this be done through a Singularity-ized Docker container? or anything other than a native installation.

Thank You.

bopohdr commented 5 years ago

Hi @bopohdr ,

Thanks for your reply. It took me a while to understand, but in your command -e and -v are docker run flags and not Ximmer options. I used the correct Ximmer commands (what you have written after "ssadedin/ximmer ximmer"). The -e flag in docker run sets environmental variables. Within the singularized docker container I ran export XIMMER_REF= etc and echo $XIMMER_REF confirmed it worked. (-B is the flag in singularity where you are using -v for docker)

However, the error message says to edit the config file at: /usr/local/ximmer/eval/pipeline/config.groovy, which is not my own config file. The issue is that I do not have write permissions to edit THIS file. My question to the developer is how can I get around this?

My Ximmer output after the environmental variable is set is:

halina@c1118:~$ ximmer -nosim -c my_config.groovy -o results
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
Using reference sequence: /proj/ncgenes2/src/ncgenes2-exome-pipeline/modules/apps/human-genome-for-alignment/1405.15/GRCh38_no_alt_analysis_set.refseqids.fna
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)

  | |/ /(_)___ ___  ____ ___  ___  _____
  |   // / __ `__ \/ __ `__ \/ _ \/ ___/
 /   |/ / / / / / / / / / / /  __/ /    
/_/|_/_/_/ /_/ /_/_/ /_/ /_/\___/_/     

Install directory detected as: /usr/local/ximmer
/usr/local/ximmer/bin/install: line 75: /usr/local/ximmer/eval/pipeline/config.groovy: Permission denied

Reference has been set to /proj/ncgenes2/src/ncgenes2-exome-pipeline/modules/apps/human-genome-for-alignment/1405.15/GRCh38_no_alt_analysis_set.refseqids.fna
**************************************************

#     #  ###  #     #  #     #  #######  ######   
 #   #    #   ##   ##  ##   ##  #        #     #  
  # #     #   # # # #  # # # #  #        #     #  
   #      #   #  #  #  #  #  #  #####    ######   
  # #     #   #     #  #     #  #        #   #    
 #   #    #   #     #  #     #  #        #    #   
#     #  ###  #     #  #     #  #######  #     #  

**************************************************
Caught: java.lang.IllegalArgumentException: Please set the HGFA parameter to your human genome reference in the config file at: /usr/local/ximmer/eval/pipeline/config.groovy
java.lang.IllegalArgumentException: Please set the HGFA parameter to your human genome reference in the config file at: /usr/local/ximmer/eval/pipeline/config.groovy
  at Ximmer.validateConfiguration(Ximmer.groovy:177)
  at Ximmer.<init>(Ximmer.groovy:154)
  at Ximmer.main(Ximmer.groovy:1271)

Thank you.

Hi @hkrzystek ,

You can make config.groovy file in any text redactor by just providing following info:

bam_files="/home/simon/data/*.bam"
target_regions="/home/simon/data/EXOME.bed"
concurrency=20
callers {
    xhmm {}
    exomedepth {}
}

Or you can not make it ?

(example/other options here: https://ssadedin.github.io/ximmer/analyses.html)

I also previously was able to provide reference in config.groovy file by typing above "bam_files" HGFA="path/to/fasta"

hkrzystek commented 5 years ago

Hi @bopohdr , Thanks for your reply. It took me a while to understand, but in your command -e and -v are docker run flags and not Ximmer options. I used the correct Ximmer commands (what you have written after "ssadedin/ximmer ximmer"). The -e flag in docker run sets environmental variables. Within the singularized docker container I ran export XIMMER_REF= etc and echo $XIMMER_REF confirmed it worked. (-B is the flag in singularity where you are using -v for docker) However, the error message says to edit the config file at: /usr/local/ximmer/eval/pipeline/config.groovy, which is not my own config file. The issue is that I do not have write permissions to edit THIS file. My question to the developer is how can I get around this? My Ximmer output after the environmental variable is set is:

halina@c1118:~$ ximmer -nosim -c my_config.groovy -o results
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
Using reference sequence: /proj/ncgenes2/src/ncgenes2-exome-pipeline/modules/apps/human-genome-for-alignment/1405.15/GRCh38_no_alt_analysis_set.refseqids.fna
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)

  | |/ /(_)___ ___  ____ ___  ___  _____
  |   // / __ `__ \/ __ `__ \/ _ \/ ___/
 /   |/ / / / / / / / / / / /  __/ /    
/_/|_/_/_/ /_/ /_/_/ /_/ /_/\___/_/     

Install directory detected as: /usr/local/ximmer
/usr/local/ximmer/bin/install: line 75: /usr/local/ximmer/eval/pipeline/config.groovy: Permission denied

Reference has been set to /proj/ncgenes2/src/ncgenes2-exome-pipeline/modules/apps/human-genome-for-alignment/1405.15/GRCh38_no_alt_analysis_set.refseqids.fna
**************************************************

#     #  ###  #     #  #     #  #######  ######   
 #   #    #   ##   ##  ##   ##  #        #     #  
  # #     #   # # # #  # # # #  #        #     #  
   #      #   #  #  #  #  #  #  #####    ######   
  # #     #   #     #  #     #  #        #   #    
 #   #    #   #     #  #     #  #        #    #   
#     #  ###  #     #  #     #  #######  #     #  

**************************************************
Caught: java.lang.IllegalArgumentException: Please set the HGFA parameter to your human genome reference in the config file at: /usr/local/ximmer/eval/pipeline/config.groovy
java.lang.IllegalArgumentException: Please set the HGFA parameter to your human genome reference in the config file at: /usr/local/ximmer/eval/pipeline/config.groovy
    at Ximmer.validateConfiguration(Ximmer.groovy:177)
    at Ximmer.<init>(Ximmer.groovy:154)
    at Ximmer.main(Ximmer.groovy:1271)

Thank you.

Hi @hkrzystek ,

You can make config.groovy file in any text redactor by just providing following info:

bam_files="/home/simon/data/*.bam"
target_regions="/home/simon/data/EXOME.bed"
concurrency=20
callers {
    xhmm {}
    exomedepth {}
}

Or you can not make it ?

(example/other options here: https://ssadedin.github.io/ximmer/analyses.html)

I also previously was able to provide reference in config.groovy file by typing above "bam_files" HGFA="path/to/fasta"

Hi @bopohdr ,

I did not have permission to edit /usr/local/ximmer/eval/pipeline/config.groovy within the Docker container, which is the pipeline groovy file, not the user made config.groovy file. I have switched to a native installation so that I would have write permission to /usr/local/ximmer/eval/pipeline/config.groovy. I've gotten past this point and am running into other issues with the native installation. I will open another issue.

Best.