Coder Social home page Coder Social logo

naga's Introduction

Network Assisted Genomic Analysis (NAGA)

Network Assisted Genomic Analysis(NAGA) re-prioritizes significant single nucleotide polymorphisms (SNPs) to genes using network diffusion methods including random walk and heat diffusion.

A companion website and REST API can be found at http://nbgwas.ucsd.edu/.

Documentation

A readthedocs page will be coming soon! In the mean time, you can view the documentations by building the sphinx documentation in the docs directory. Simply run the following in the docs folder

make docs

and open the index.html in the docs/build/html directory.

Installation

It is recommended that NAGA be run under Anaconda with python-igraph manually installed using conda and to create a new conda environment

To create a new conda environment and activate it:

conda create -n nagaenv
source activate nagaenv

If you would like to use naga in a Jupyter Notebook, you will need to add the Jupyter kernel. To do so:

# Make sure to activate the environment first!
conda install ipykernel # or pip install ipykernel
python -m ipykernel install --user --name nagaenv --display-name "Python (Naga)"

To install python-igraph via conda:

conda install -c conda-forge python-igraph

To install NAGA via pip:

pip install naga-gwas

Tutorial

notebooks/tutorial.ipynb demonstrates how to use this package once it is installed.

Citing NAGA

Carlin, Daniel E., Samson H. Fong, Yue Qin, Tongqiu Jia, Justin K. Huang, Bokan Bao, Chao Zhang, and Trey Ideker. "A Fast and Flexible Framework for Network-Assisted Genomic Association." iScience 16 (2019): 155.

naga's People

Contributors

coleslaw481 avatar decarlin avatar shfong avatar tongqiu-jia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

naga's Issues

Handle multiple transcripts in assign snp to genes

Generally, protein_coding_file would contain multiple lines per gene. Should improve the naive way simply taking the first line; instead, we should consider take the union of all the start and end position (longest possible region).

Handle exception: strong gene association(P-value=0) in convert_to_heat

As I was working with a GWAS summary stats, I ran into this case where I have a gene which its assigned p-value is 0. As it is in the current code, using neg_log would result in "inf" for the initial heat of this gene. Further, if I chose to normalize, there would be no heat for all genes across the network since dividing by the sum (which is inf) would result in 0 for all network genes.

How do we want to handle this exception?

parameter check

Not priority, but we should add parameter check to throw error when not-supported parameters is used in function.

Cytoscape lacks gene names

Thanks for getting this package together. We are using it for analysis of screen data. Anyway, everything works well except when Cytoscape (3.7.1) is evoked with CyRest the Gene name is not shown. Index number is present instead.

Import network to a Nbgwas object

In nbgwas.py function random_walk(self, alpha=0.5), line 656: it assumes that network.node() are integer and has the field "name". This assumption breaks if I assign Nbgwas object with a networkx that already has nodes labeled with gene name (i.e. network.nodes() gives you a list like ['GeneA', 'GeneB']).

Consider:

  1. Is function random_walk() a proper place to modify network properties?
  2. How to handle the discrepancy in different ways of importing network to Nbgwas object?

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.