Whole Genome Analysis
Python Shell R Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



GenomeKey is a Whole Genome Analysis pipeline, that can call variants from FASTQ or BAM files, as well as massively annotate VCF files. It is implemented and made possible by the Cosmos workflow management system.

Components include:

  • BWA + GATK Best Practices v4 Cosmos workflow
  • AnnovarExtensions annotation Cosmos workflow
  • VarDB - Variant Database Warehouse. Integration coming soon.

Also make sure to checkout the GenomeKey Wiki page for more details, which David Tulga has generously started. We are using RST so that at some point we can make sphinx documentation easily, if we like.


  1. Install Cosmos using virtualenvwrapper

  2. Clone git@github.com:LPM-HMS/GenomeKey.git

  3. Activate Cosmos virtualenv

    $ workon cosmos

  4. Add GenomeKey to your PYTHONPATH when you're in the cosmos virtualenv

    add2virtualenv /path/to/GenomeKey


If you're running things on Orchestra or AWS, GenomeKey does not need any configuration, and the rest of this section is only for educational purposes.

GenomeKey is configured in GenomeKey/genomekey/wga_settings.py where it points to the correct paths to the GATK bundle, reference genome, and binaries. It chooses these paths based on the cosmos.ini server_name setting. If server_name is set to orchestra, it will point to /scratch/esg21/WGA where all the files such as annotation databases and binaries for GATK, BWA, AnnovarExtensions, etc. are located.

AnnovarExtensions is configured in WGA/annovarext_data/config.ini which may need to be edited if you are using an installation of of the WGA folder that is not /scratch/esg21/WGA (for ex, you copied it to AWS)


Inside the GenomeKey directory, execute:

$ bin/genomekey -h

From BAM

genomekey bam -n "My Workflow from BAM" -i /path/to/bam1

genomekey bam -n "My Multi-BAM Workflow" -il /path/to/bam.list


genomekey json -n "My workflow from a JSON file" '/path/to/json'

json file should be of the format:

        'chunk': 001,
        'library': 'LIB-1216301779A',
        'sample_name': '1216301779A',
        'platform': 'ILLUMINA',
        'platform_unit': 'C0MR3ACXX.001'
        'pair': 0, #0 or 1
        'path': '/path/to/fastq'


I have GenomeKey set to launch you into an ipdb post mortem debugging session on any exceptions. That behavior is set in bin/genomekey. To quit enter q then enter.


-test will inform GenomeKey you are running a test dataset. It will only analyse chr20, and drmaa_native_specification() will be adjusted accordingly automatically for Orchestra, so that requests are sent to the mini queue with a cpu_requirement of 1. GenomeKey comes with some test data, so you can just run this from the GenomeKey directory:

$ genomekey -t bam -n 'Test GK' -il genomekey/test/bams.list


  • If there are unpaired reads when converting a BAM to FASTQ, they're not used in the re-alignment