OakVar

OakVar is a genomic variant interpretation platform. Genomic variants can be annotated with diverse annotation sources, stored in databases, queried with filter sets, written to reports in diverse formats, and visualized with graphical user interfaces. Furthermore, OakVar supports command-line and graphical user interface apps which use the annotated variant data generated by OakVar, just like an operating system supports applications on it.

OakVar is a fork of OpenCRAVAT and further developed by the former lead architect of OpenCRAVAT, Ryangguk Kim. Currently, OakVar is a drop-in replacement of OpenCRAVAT and does not have a breaking change. However, using OakVar’s own command ov and package oakvar is recommended.

Installation

  1. pip uninstall open-cravat or conda remove open-cravat: uninstall OpenCRAVAT if already installed.

2. Temporary step to fix PyVCF installation

>pip install "setuptools<58" --upgrade
>pip uninstall pyvcf
>pip install pyvcf
>pip install setuptools --upgrade
  1. pip install oakvar: install OakVar.

  2. ov system setup: set up OakVar. See Setup section for details.

Setup

ov system setup will set up OakVar with sane defaults. The following will be performed with this command.

  1. Creates the root OakVar storage directory (root_dir). Default locations for root_dir is as follows.

    1. Windows: %systemdrive%\oakvar or %systemdrive%\open-cravat (if already exists)

    2. MacOS: /Users/Shared/oakvar or /Users/Shared/open-cravat (if already exists)

    3. Linux: ~/.oakvar (normal user) or /root/.oakvar (sudo)

  2. Creates the following OakVar system folders if absent.

    1. root_dir/conf (conf_dir)

    2. root_dir/modules (modules_dir)

    3. root_dir/jobs (jobs_dir)

    4. root_dir/log (log_dir)

  3. Creates an OakVar system config file, cravat-system.yml, and an OakVar auxiliary config file, cravat.yml, in conf_dir, if absent.

  4. Install OakVar system modules in modules_dir if absent.

Overriding default system config values are possible with environment variables and custom system config files, which is explained below.

Overriding with environment variables

All the fields in cravat-system.yml can be overridden with environment variables. To override a system config field, set the environment variable OV_ + upper-cased field name to a desired value. For example, modules_dir system config field can be overridden with OV_MODULES_DIR environment variable.

ov system setup uses default values. Let’s say you have OakVar modules somewhere else than the default modules_dir, for example ~/oakvar_modules. The following will set up OakVar to use this folder as modules_dir:

>export OV_MODULES_DIR=~/oakvar_modules
>ov system setup

Overriding with a setup file

A setup file, which is a yaml format file, can be used with ov system setup, which can help automation of OakVar setup in multiple hosts. The setup file can have any system config field. The above example of using a custom modules_dir can be achieved as follows.

setup.yaml
----------
modules_dir: ~/oakvar_modules

>ov system setup -f setup.yaml

CLI Commands

Below are OakVar CLI commands. Use -h option to know options to each command. For more details, please refer to https://open-cravat.readthedocs.io until OakVar’s own documentation is fully fleshed out.

Set up OakVar

>ov system setup

Run an analysis job

>ov run input_file ...

Create analysis reports

>ov report analysis_result_db_file ...

Launch a GUI server

>ov gui ...

Manage modules

List modules

>ov module ls ...

Install modules

>ov module install ...

Uninstall modules

>ov module uninstall ...

Install system modules

>ov module installbase ...

Update modules

>ov module update ...

Get information on modules

>ov module info ...

Manage configuration

Manage root module directory

>ov system md ...

Show system configuration

>ov system config

Utilities

Create an example input file

>ov new exampleinput ...

Create an annotation module template

>ov new annotator ...

Test modules

>ov util test ...

Merge analysis result database files

>ov util mergesqlite ...

Filter analysis result database files

>ov util filtersqlite ...

Show analysis result database file information

>ov util showsqliteinfo ...