Skip to main content

Store observations of vcf variants in a mongodb

Project description

loqusdb

Build Status - GitHub [![Coverage Status][coveralls-img]][coveralls-url] PyPI Version

Small tool to setup a local variant database. If you find loqusdb useful in your work, please cite the article.

Right now locusdb uses mongodb as backend for storing variants but there should not be a huge difference to use another database manager.

Installation

pip install loqusdb

or

$git clone https://github.com/moonso/loqusdb
$cd loqusdb
$pip install --editable .

Idea

Tool to keep track of what variants that have been seen and in what families they have been observed. This is NOT a tool to create a true frequency database. It will basically count the number of times we have seen a variant in any individual. We will also keep track of the variants that have been seen in a homozygous or hemizygous state.

Variants are stored by providing a vcf file and a (ped or ped like)family file.

Loqusdb will first check if the vcf file looks ok.

The tool will then check all variants if they have been observed in any of the individuals in the family.

When the variants are added:

  • Either the variant exists, in this case we increase the number of observations with one
  • Or this variant has not ben seen before, then the variant is added to database

Command Line Interface

$ loqusdb
Usage: loqusdb [OPTIONS] COMMAND [ARGS]...

  loqusdb: manage a local variant count database.

Options:
  -db, --database TEXT            Defaults to 'loqusdb' if not specified
  -u, --username TEXT
  -p, --password TEXT
  -a, --authdb TEXT               If authentication should be done against
                                  another database than --database

  -port, --port INTEGER           Specify the port where to look for the mongo
                                  database.  [default: 27017]

  -h, --host TEXT                 Specify the host where to look for the mongo
                                  database.  [default: localhost]

  --uri TEXT                      Specify a mongodb uri
  -c, --config FILENAME           Use a config with db information
  -t, --test                      Used for testing. This will use a mongomock
                                  database.

  -g, --genome-build [GRCh37|GRCh38]
                                  Specify what genome build to use
  -v, --verbose
  --version                       Show the version and exit.
  --help                          Show this message and exit.

Commands:
  annotate  Annotate a VCF with observations
  cases     Display cases in database
  delete    Delete the variants of a family
  dump      Dump the database
  export    Export variants to VCF format
  identity  Search identity collection
  index     Add indexes to database
  load      Load the variants of a family
  migrate   Migrate an old loqusdb instance
  profile   Loads variants to be used in profiling
  restore   Restore database from dump
  update    Update an existing case with a new type of variants
  variants  Display variants in database
  wipe      Wipe a loqusdb instance

Database

Connecting

Connection can be specified on command line with --database, --username, --password, --port, --host and/or --uri. Or these options can be sent with a config file that can take the same options, looks like:

uri: mongodb://loqusdb-username:loqusdb-pwd@localhost:27030/loqusdb-rd?authSource=admin
db_name: loqusdb_test

or

host: localhost
port: 27030
username: loqusdb-username
password: loqusdb-pwd
authdb: admin
db_name: loqusdb_test

Mongo

The collections looks like:

Case

{
    'case_id': 'case_id',
    'vcf_path': 'path_to_vcf'
}

Variant

{
    '_id': 'variant_id',
    'chrom': 'CHROM',
    'start': postition,
    'end': end postition,
    'ref': reference base(s),
    'alt': alternative base(s),
    'homozygote': number_of_homozygotes,
    'hemizygote': number_of_hemizygotes,
    'observations': number_of_observations,
    'families': ['family_id', ...]
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

loqusdb-2.5.2.tar.gz (78.0 kB view details)

Uploaded Source

Built Distribution

loqusdb-2.5.2-py2.py3-none-any.whl (54.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file loqusdb-2.5.2.tar.gz.

File metadata

  • Download URL: loqusdb-2.5.2.tar.gz
  • Upload date:
  • Size: 78.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for loqusdb-2.5.2.tar.gz
Algorithm Hash digest
SHA256 a5c9df3beee2611f0940f59c92c0bf8014749c64b1eb81c23e6e91a36cc65fa5
MD5 6d2f1fe78ce579d947abecbbd2533741
BLAKE2b-256 307d6343af65f1ef6bd31c4bc72230d6dddaaff879a69a5727db89f91fb511d0

See more details on using hashes here.

File details

Details for the file loqusdb-2.5.2-py2.py3-none-any.whl.

File metadata

  • Download URL: loqusdb-2.5.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 54.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for loqusdb-2.5.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a2da9ba4d4dfc26279c6eb57230cbb6fd1c2748b4562b2783dccdbe4e347a7a5
MD5 1cfb269063fafd9ef539f22a917f8376
BLAKE2b-256 70655ea5e49cad90b9e81484c37b87396d6ae68c7528b8942ac3cc4f7189a264

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page