Giter VIP home page Giter VIP logo

metallaxis's Introduction

Maintainability PyPI version Python 3.6 License: GPL v3

Metallaxis

MetallaxisLogo

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 generate statistics, graphs, and open a table view where the variants can be sorted, filtered, and their position visualised compared to the location of genes, based on data retrieved from API requests to ENSEMBL.

Additionally, there is the option to annotate the VCF, whereby the dbSNP and clinVar databases are downloaded and SnpEff is used to annotate the VCF, to view the impact of the variant.

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 dbSNP, ClinVar, and ENSEMBL (provided VCF is human)
  • Automatically generated statistics and graphs
  • Savable analysis as a portable sqlite database

Authors

Sean Laidlaw, with supervision from Anna-Sophie Fiston-Lavier, and with contributions from Qiqi He.

Requirements:

Python:

  • Python 3.6

Libraries

  • python-magic : 0.4.15
  • pandas : 0.23.4
  • numpy : 1.15.4
  • PyQt5 : 5.11.2
  • requests : 2.20.1
  • matplotlib : 3.0.2
  • wget : 3.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 database file as argument:

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

Screenshots

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

Example variant data with 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

Visualising variant position compared to nearby genes is also easy, with a customisable window, allowing zooming in or out.

gene_view gene_view

TODO

  1. Generate statistics off of annotation data
  2. Write documentation to be generated by Sphinx
  3. Split __main__ into separate files for easy importing and readability
  4. 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

metallaxis's People

Contributors

qiqihe93 avatar seanlaidlaw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

metallaxis's Issues

Compatibility with GATK VCFs?

Hi, I was hoping to use Metallaxis with some VCFs products in GATK. Specifically, I used a Staph. aureus Ensembl genome. The last few steps in producing the GATK 4.2 VCFs came through these tools:

  1. HaplotypeCaller
  2. GenomicsDBImport
  3. GenotypeGVCFs
  4. SelectVariants
  5. VariantFiltration

When I use the conjoint VCF with Metallaxis, though, I get a couple errors:

  • Error: Unable to access jarfile /home/proteomics/.local/lib/python3.8/site-packages/metallaxis/annotation/SnpEff.jar
  • Error: Selected file must be a VCF file

The traceback cites a "TypeError: cannot unpack non-iterable NoneType object."

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.