Skip to content
ProXimal pathway Enrichment Analysis
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
pxea
test
.gitignore
README.rst
setup.py

README.rst

# PxEA: ProXimal pathway Enrichment Analysis

Code for the ProXimal pathway enrichment analysis introduced in the "Targeting comorbid diseases via network endopharmacology" manuscript.

## Requirements

  • Python 2 or 3
  • numpy
  • scipy
  • networkx

## Installing & running tests

Download (i.e. clone) the files to your computer, you can use the package as a bare package (importing from the same folder) or install it using one of the following commands:

>>> python setup.py install

or

>>> pip install pxea

Several test cases for the methods are provided in test/test_pxea.py. To run these, on the parent directory (where this README file resides) type

>>> python -m unittest test.test_pxea

or

>>> python setup.py test

It should give an output similar to below .. ---------------------------------------------------------------------- Ran 2 tests in 1.220s

OK

## Usage

### PXEA

>>> from pxea.utilities.set_enrichment import get_enrichment_score_and_pval
get_enrichment_score_and_pval(ranked_list, candidates, n_random=n_random, alternative="greater", seed=51234)
""" KS based score (~max difference between cumulative distributions of the sample and expected random walk) """
Input parameters:
ranked_list: a list with the ranking of the elements (e.g., pathways proximal to a drug) candidates: set of elements (e.g., pathways common to two diseases) N: number of pathways in the candidates set (if None, len(candidates) will be used n_random: number of shufflings to the ranked list for permutation test based P-value calculation (if none, no pvalue is calculated and None is returned instead) alternative: greater | less | two-sided seed: number to be used initializing random generator (for reproducibility)
Output:
Returns enrichment score and pvalue

### Proximity

>>> from pxea.utilities.network import calculate_proximity
calculate_proximity(network, nodes_from, nodes_to, nodes_from_random=None, nodes_to_random=None, bins=None, n_random=1000, min_bin_size=None, seed=51234, lengths=None)
""" Calculate proximity (average distance to the closest node from the first to second)from nodes_from to nodes_to (if degree binning or random nodes are not given, they are generated) """
Input parameters:
network: networkx Graph object nodes_from: set of nodes from which proximity is calculated nodes_to: set of nodes proximity to which is calculated nodes_from_random: random from nodes to check proximity nodes_to_random: random to nodes to check proximity bins: degree equivalence bins n_random: number of randomizations for background closest distance calculation min_bin_size: minimum size of the bins for degree binning if None, len(network) // 100 is used seed: integer for initializing the state of the random generator lengths: precalculated shortest path length dictionary
Output:
Returns proximity z-score and average path length to nearest nodes in nodes_to

## Data sets

The data sets used in the analysis for the autoimmune diseases are under data/ folder at [pxea](https://github.com/emreg00/pxea).

## See also

See [toolbox](https://github.com/emreg00/toolbox) package for various related code.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.