Ximmer User Guide

Introduction

Docker makes it especially easy to build and install all the different tools and CNV callers that Ximmer uses. Running using Docker requires some small extra accommodations when invoking Ximmer. This section describes these.

Building

Build the docker image using the following docker invocation:

git clone git@github.com:ssadedin/ximmer.git
cd ximmer/docker
docker build -t ximmer . 

Running

After building, Ximmer is runnable straight from docker:

$ docker run ximmer ximmer
**************************************************

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

**************************************************
error: Missing required options: c, o
usage: ximmer -c <config> -o <output_directory>
 -c <arg>      Configuration file
 -nosim        Analyse samples directly (no simulation)
 -o <arg>      Output directory
 -seed <arg>   Random seed
 -simonly      Run only simulation component
 -v            Verbose output

However there is a problem: Ximmer cannot see files outside Docker. So you would need to map the file systems where the files reside into the docker image. Specifically:

  • you have to map the files on your file system to where the Docker container can see them. These include:
    • Human genome reference (FASTA)
    • Ximmer analysis configuration
    • Source data files: BAM files, target region BED files, etc.
  • you need to pass through the reference using an environment variable when you run Ximmer.

Here is an example of an invocation of Ximmer which does these things:

docker run
     -e XIMMER_REF=/reference/ucsc.hg19.fasta \  # tell Ximmer the reference FASTA 
     -v /Volumes/reference:/reference \ # map the file system containing the reference
     -v /Volumes/data:/data \  # map the file system containing the data
        ximmer ximmer \ # run the ximmer executable in the ximmer image
     -c /data/config.groovy \
     -v \
     -o /data/output.docker # send output to the /data/output.docker directory

Also important is that the config.groovy file you pass will contain file paths itself. These must be relative to the locations inside Docker, not locations on the computer outside.

You should also ensure that machine Ximmer is running on has a reasonable amount of memory. Ximmer will require at least 24g of memory to run, unless you adjust the internal settings.