Skip to content

seanlaidlaw/Metallaxis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Known Vulnerabilities Maintainability Documentation Status PyPI version

Python 3.6 License: GPL v3

Metallaxis

Metallaxis is a Python graphical interface for viewing and annotating VCF files. On loading a VCF file or compressed variant (vcf.gz,vcf.xz) it will make an API call to EMSEMBL's VEP with the IDs of the VCF.

On the interface basic statistics and graphs are displayed in the statistics pane, and a Table pane is also avaliable on which variants can be filtered by data from VCF, from annotation, or parsed form the INFO column.

Features

  • INFO column splitting into columns that can be sorted
  • Filtering of all VCF columns
  • Automatic annotation from VEP (provided VCF is human)
  • Automatically generated statistics and graphs
  • Savable analysis as a HDF5 data store

Authors

Sean Laidlaw & Qiqi He

Requirements:

Python:

  • Python 3.6

Libraries

  • python-magic : 0.4.15
  • pandas : 0.23.4
  • numpy : 1.15.4
  • tables : 3.4.4
  • PyQt5 : 5.11.2
  • requests : 2.20.1
  • matplotlib : 3.0.2

Installation

Pip

Use the package manager pip to install Metallaxis.

pip install Metallaxis

From Source

Metallaxis can also be installed from source, by running a git clone and then running the make file which will install dependancies and install as a python module.

git clone https://github.com/SL-LAIDLAW/Metallaxis
cd Metallaxis && make

Usage

To open the GUI and get started, run Metallaxis as a module:

python3 -m metallaxis

It can also be run directly on a VCF file:

python3 -m metallaxis ../samples/1000_genomes_extract.vcf.gz

Or to load a previously saved Metallaxis session, by using the saved HDF5 as argument:

python3 -m metallaxis ../saves/big_saved_analysis.h5

Screenshots

Changing the Species to "Human" in the Settings window allows you to check "Annotate Variants", meaning that the next loaded file will have its IDs sent to be annotated from the VEP API.

settings_annot_off settings_annot_on

Example variant data displaying statistics of variants by chromosome, types of variants, and averages. As well as number of variants by position for each chromosome. window_statistics window_statistics_pos

Example variant data with VEP annotation listing consequence terms, biotype, gene id, impact, etc. for some of our variants.

window_annotation

Example data showing off filtering ability of Metallaxis, not just limited to normal VCF columns but works equally well on recently obtained annotation columns:

window_filter

TODO

  1. Rewrite API request to retry in case of server error
  2. Generate statistics off of annotation data
  3. Write documentation to be generated by Sphinx
  4. Split __main__ into separate files for easy importing and readability
  5. Optimise writing annotation data to HDF5 to reduce performance bottleneck
  6. Add secondary annotation to get ontology and phenotype information

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

GPLv3

About

A Python GUI VCF viewer for SNP, indels, and TE.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages