Skip to main content

pyEnGNet: optimized reconstruction of gene co-expression networks using multi-GPU

Deployment & Documentation & Stats

PyPI version Documentation Status GitHub stars GitHub forks License

Abstract here

pyengnet is featured for:

  • Unified APIs, detailed documentation, and interactive examples available to the community.

  • Complete coverage for reconstruction of massive gene co-expression networks.

  • Optimized models to generate results in the shortest possible time.

  • Optimization of a High-Performance Computing (HPC) and Big Data ecosystem, using cuda and multiprocess.

API Demo:

import os
from pyengnet.File import File
from pyengnet.Engnet import Engnet

if __name__ == "__main__":

   # Load dataset
   dataset = File.load(path=os.getcwd()+"/datasets/Spellman.csv", separator=",", nmi_th=0.6, spearman_th=0.7, kendall_th=0.7, readded_th=0.7, hub_th = 3)

   # Run pyEnGNet on CPUs
   graphFiltered, infoGraphFiltered, graphComplete, infoGraphComplete = Engnet.process(dataset, saveComplete = True)

   # Run pyEnGNet on GPU devices
   # graphFiltered, infoGraphFiltered, graphComplete, infoGraphComplete = Engnet.process(dataset, saveComplete = True, numGpus = 2, computeCapability = 61)

   # Save gene co-expression networks and additional information
   File.saveFile(path='/home/principalpc/Escritorio/graphComplete.csv',graph=infoGraphComplete) # Full network
   File.saveFile(path='/home/principalpc/Escritorio/graphFiltered.csv',graph=infoGraphFiltered) # Filtered network

   # Print gene co-expression networks
   File.showGraph(graph=graphComplete,title='Complete graph') # Full network
   File.showGraph(graph=graphFiltered,title="Filtered graph") # Filtered network

Citing pyEnGNet:

pyEnGNet paper is published in (under review). If you use pyEnGNet in a scientific publication, we would appreciate citations to the following paper:

Under review

or:

Under review

Key Links and Resources:


Installation

It is recommended to use pip for installation. Please make sure the latest version is installed, as pyengnet is updated frequently:

pip install pyengnet            # normal install
pip install --upgrade pyengnet  # or update if needed
pip install --pre pyengnet      # or include pre-release version for new features

Alternatively, you could clone and run setup.py file:

git clone https://github.com/aureliolfdez/pyEnGNet.git
pip install .

Required Dependencies:

  • Python>=3.10

  • numpy>=1.24.0

  • tqdm>=4.64.0

  • multiprocess>=0.70.14

  • pandas>=1.5.3

  • matplotlib>=3.6.3

  • networkx>=3.0

  • scipy>=1.10.0

API Reference

I/O Management

  • pyengnet.File: Class used to manage file I/O operations and data visualization.

  • pyengnet.File.load(): Load dataset from a txt or csv file.

  • pyengnet.File.saveFile(): Save network to file (can be used to store full and/or pruned networks)

  • pyengnet.File.showGraph(): Display a specific network


Ensemble

  • pyengnet.Engnet: Class in charge of controlling the execution of the EnGNet algorithm.

  • pyengnet.Engnet.process(): Function that runs the EngNet algorithm. Depending on the parameters of this function, the algorithm will be executed in parallel with CPU processors or GPU devices.

  • pyengnet.Kendall: Kendall measurement is coded in a parallel ecosystem with CPUs.

  • pyengnet.NMI: NMI measurement is coded in a parallel ecosystem with CPUs.

  • pyengnet.Spearman: Spearman measurement is coded in a parallel ecosystem with CPUs.

  • pyengnet.src.correlations: Execution of Kendall, NMI, and Spearman measures under a parallel multi-GPU ecosystem (CUDA). In addition, it detects those pairs of genes that exceed the threshold for major voting.

Examples by Tasks

All implemented modes are associated with examples, check “pyEnGNet examples” for more information.


Run on CPU

“tests/test_integration/test_cpu.py” demonstrates the basic API for the generation of co-expression gene networks using CPUs.

  1. Load gene co-expression dataset from input file

    from pyengnet.File import File
    
    dataset = File.load(path=os.getcwd()+"/datasets/Spellman.csv", separator=",", nmi_th=0.6, spearman_th=0.7, kendall_th=0.7, readded_th=0.7, hub_th = 3)
  2. Run pyEnGNet based on CPUs.

    from pyengnet.Engnet import Engnet
    
    graphFiltered, infoGraphFiltered, graphComplete, infoGraphComplete = Engnet.process(dataset, saveComplete = True)
  3. Save gene co-expression networks output (optional)

    from pyengnet.File import File
    
    File.saveFile(path='/home/user/Desktop/graphComplete.csv',graph=infoGraphComplete)
    File.saveFile(path='/home/user/Desktop/graphFiltered.csv',graph=infoGraphFiltered)
  4. Print gene co-expression networks output (optional)

    from pyengnet.File import File
    
    File.showGraph(graph=graphComplete,title='Complete graph')
    File.showGraph(graph=graphFiltered,title="Filtered graph")

Run on GPU devices

“tests/test_integration/test_gpu.py” demonstrates the basic API for the generation of co-expression gene networks using GPU devices.

  1. Load gene co-expression dataset from input file

    from pyengnet.File import File
    
    dataset = File.load(path=os.getcwd()+"/datasets/Spellman.csv", separator=",", nmi_th=0.6, spearman_th=0.7, kendall_th=0.7, readded_th=0.7, hub_th = 3)
  2. Run pyEnGNet based on CPUs.

    from pyengnet.Engnet import Engnet
    
    graphFiltered, infoGraphFiltered, graphComplete, infoGraphComplete = Engnet.process(dataset, saveComplete = True, numGpus = 2, computeCapability = 61)
  3. Save gene co-expression networks output (optional)

    from pyengnet.File import File
    
    File.saveFile(path='/home/user/Desktop/graphComplete.csv',graph=infoGraphComplete)
    File.saveFile(path='/home/user/Desktop/graphFiltered.csv',graph=infoGraphFiltered)
  4. Print gene co-expression networks output (optional)

    from pyengnet.File import File
    
    File.showGraph(graph=graphComplete,title='Complete graph')
    File.showGraph(graph=graphFiltered,title="Filtered graph")

Metadata

Release files for pyengnet 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyengnet 0.0.3
File Size Uploaded Provenance
pyengnet-0.0.3.tar.gz 24.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for pyengnet 0.0.3
File Interpreter ABI Platform
pyengnet-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 49.5 kB

Release files / pyengnet-0.0.3.tar.gz

Download URL pyengnet-0.0.3.tar.gz
Size 24.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d8f7e9b79334dfdeb33b15beb7408aabf77ebfb4ca7760e67ae5790886b0f89a
BLAKE2b-256 checksum
How to use checksums
f5f4dba2cd5cb5bcf9e5a3f2d6f9dd3351877ee01b3dac07e971b53c55c5e0ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.6

Release files / pyengnet-0.0.3-py3-none-any.whl

Download URL pyengnet-0.0.3-py3-none-any.whl
Size 25.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eb029f1fd011a887b6284109cd6c90837e21f5cb30058ccedd10d3efcb730d43
BLAKE2b-256 checksum
How to use checksums
f48b77fcb016ca4b9614d6595062df5c7011afe3fd118418e053ad363b2e0ef2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.6

Security for pyengnet 0.0.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page