GithubHelp home page GithubHelp logo

pstawinski / pygenebe Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 0.0 2.84 MB

PyGeneBe: A Python client seamlessly integrating with the GeneBe platform, offering efficient annotation of genetic variants through its API, while supporting pandas, VCF file formats, and HGVS parsing

Home Page: https://genebe.net

Dockerfile 0.74% Python 98.63% Shell 0.63%
acmg-guidelines bioinformatics genetics gnomad hgvs python variant-annotations vep-annotation clinvar

pygenebe's Introduction

GeneBe Utils

PyGeneBe: A Python client seamlessly integrating with the GeneBe platform, offering efficient annotation of genetic variants through its API, while supporting pandas, VCF file formats, and HGVS parsing

Using this client, you can easily annotate your DNA variants with the GeneBe API. Annotations include:

  • Gene, transcript, and effect
  • ClinVar phenotype
  • GnomAD frequency
  • ACMG score
  • ... if you need more, please let me know

Usage

For more information about the usage, go to the https://pygenebe.readthedocs.io/en/latest/ documentation.

Command line usage

Check current options using --help switch

genebe --help
genebe annotate --help
Annotating VCF using annotate command

GeneBe client allows you to annotate your VCF file with ease. Use the following command:

genebe annotate --input input.vcf.gz --output output.vcf.gz

Remember that your VCF file must be in a single allelic format! Utilize bcftools (https://samtools.github.io/bcftools/) to split the file. The output VCF will contain additional fields.

To use VCF annoation you have to have cyvcf2 package installed. Take a look at the Installation section below.

If your VCF file is large (over 10.000 variants), you may encounter request limits. To avoid this, create a GeneBe account with an API Key and provide your login/key using the --username and --api-key arguments. You can always check your limits with the account command. Update your annotation command as follows:

genebe annotate --input input.vcf.gz --output output.vcf.gz --username your_username --api-key your_api_key

For more information call

genebe annotate --help
Using account command

The account command displays information about your request history statistics and limits. To check your limits without specifying a username and API key, run:

genebe account

Alternatively, if you have a GeneBe account with an API key, use the following command:

genebe account --username your_username --api-key your_api_key

Replace "your_username" and "your_api_key" with your GeneBe account credentials.

For more details and options, you can refer to the help documentation:

genebe account --help

Python usage

GeneBe makes annotating DNA variants in pandas dataframe easy.

import genebe as gnb

input_variants = ['7-69599651-A-G']

# output as a list, with all transcripts
list = gnb.annotate_variants_list(input_variants,flatten_consequences = False)

# output as a pandas dataframe, flat
df = gnb.annotate_variants_list_to_dataframe(input_variants, flatten_consequences=True)

# parse HGVS
input_hgvs = ['NM_000277.2:c.1A>G']
parsed_variants = gnb.parse_hgvs(input_hgvs)

# annotate existing dataframe with chr, pos, ref, alt columns

df = pd.DataFrame({'chr': ['6', '22'], 'pos': [160585140, 28695868], 'ref': ['T', 'AG'], 'alt': ['G', 'A']})
annotated_df = gnb.annotate_dataframe_variants(df, genome='hg38',use_ensembl=False,use_refseq=True, genome='hg38', flatten_consequences=True)

# lift over variants from hg19 to hg38
input_variants = ['chr6-161006172-T-G']
from_genome = "hg19"
dest_genome = "hg38"
lifted_variants = gnb.lift_over_variants(input_variants, from_genome, dest_genome)

If you want to annotate thousands of variants, please log in to https://genebe.net, generate an API Key, and provide it using username and api_key.

Find out more usage examples in the examples directory.

Installation

You can install GeneBe Utils using pip:

pip install genebe

If you wish to install faster mmh3 implementation or use the option of annotating vcf files install using:

pip install genebe[cpp]

or install modules

pip install cyvcf2
pip install mmh3

in the environment.

This step will require build tools installed on your computer.

Docker

There is a dockerized version of this package, available at https://hub.docker.com/r/genebe/pygenebe .

Usage example, reading from file input.vcf and writing output to stdout:

docker run -v input.vcf:/tmp/input.vcf --rm genebe/pygenebe:0.0.14 genebe annotate --input /tmp/input.vcf --output /dev/stdout

Limits

If you wish to annotate thousands of variants, please log in to https://genebe.net, generate an API Key, and provide it using username and api_key.

The number of daily requests from a single IP is restricted to prevent abuse and excessive resource consumption on our server. Account holders with an API Key enjoy significantly higher limits (in the tens of thousands). If you require a higher daily request limit, please reach out to us via the https://genebe.net .

Troubleshooting and issues

Experiencing issues? Follow these steps:

  1. Check Existing Issues:
  1. Report New Issues:

Your feedback is crucial for improving GeneBe client. Thank you for contributing to the community!

Other

For more information about GeneBe, visit GeneBe website, https://genebe.net .

pygenebe's People

Contributors

ps209497 avatar pstawinski avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

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.