Skip to main content

PORTIA: Fast and Accurate Inference of Gene Regulatory Networks through Robust Precision Matrix Estimation

Project description

Build status Code analysis

PORTIA

Lightning-fast Gene Regulatory Network (GRN) inference tool.

PORTIA builds on power transforms and covariance matrix inversion to approximate GRNs, and is orders of magnitude faster than other existing tools (as of August 2021).


How to use it

Install the dependencies:

pip3 -r requirements.txt

For using the end-to-end inference algorithm, install dependencies from requirements-etel.txt instead.

Install the package:

python3 setup.py install

In Python, create an empty dataset:

import portia as pt

dataset = pt.GeneExpressionDataset()

Microarray experiments can be added with the GeneExpressionDataset.add method. data must be an iterable (list, NumPy array, etc).

for exp_id, data in enumerate(your_data):
    dataset.add(pt.Experiment(exp_id, data))

Gene knock-out experiments can be encoded using the knockout optional parameter.

dataset.add(pt.Experiment(exp_id, data, knockout=[gene_idx]))

where gene_idx is the (0-based) index of the gene being knocked out. Dual/multiple knock-out experiments are supported, but won't help in the inference process in any way.

Run PORTIA on your dataset:

M_bar = pt.run(dataset, method='fast')

The output M_bar is a matrix, where each element M_bar[i, j] is a score in the range [0, 1] reflecting the confidence about gene i being a regulator for target gene j. A whitelist of putative transcription factors can be specified with the tf_idx argument. tf_idx must be a (0-based) list of gene indices.

M_bar = pt.run(dataset, tf_idx=tf_idx, method='fast')

Finally, rank and store the results in a text file. gene_names is the list of your genes, provided in the correct order.

with open('your_destination/results.txt', 'w') as f:
    for gene_a, gene_b, score in pt.rank_scores(M_bar, gene_names, limit=10000):
        f.write(f'{gene_a}\t{gene_b}\t{score}\n')

Real examples on the DREAM datasets are provided in the scripts/ folder.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

portia-grn-0.0.5.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

portia_grn-0.0.5-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file portia-grn-0.0.5.tar.gz.

File metadata

  • Download URL: portia-grn-0.0.5.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/3.10.0 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for portia-grn-0.0.5.tar.gz
Algorithm Hash digest
SHA256 65259094e4d81977c3ce9c9a2bc02ff116f9a9699e9c1569e4e18e7fb5774cc9
MD5 5739c402d3ec0a84f6cf3685b2e31bb8
BLAKE2b-256 1c672e6a8e1aec64248716f142bc25da3e7727547522d305b54d67ee23da0032

See more details on using hashes here.

File details

Details for the file portia_grn-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: portia_grn-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/3.10.0 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for portia_grn-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 55ae9cc0790c1b4510d1707cd16a8fa5c6b47593f0915e1deac2daa060633d88
MD5 69f0812f1cb6df1f62c067eb9a185284
BLAKE2b-256 9004536351dead0099255c0544016d3899fe84b4b2e33ba97e7d9312c5abd6be

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page