pyEnGNet: optimized reconstruction of gene co-expression networks using multi-GPU
Project description
pyEnGNet: optimized reconstruction of gene co-expression networks using multi-GPU
Deployment & Documentation & Stats
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.
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)
Run pyEnGNet based on CPUs.
from pyengnet.Engnet import Engnet graphFiltered, infoGraphFiltered, graphComplete, infoGraphComplete = Engnet.process(dataset, saveComplete = True)
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)
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.
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)
Run pyEnGNet based on CPUs.
from pyengnet.Engnet import Engnet graphFiltered, infoGraphFiltered, graphComplete, infoGraphComplete = Engnet.process(dataset, saveComplete = True, numGpus = 2, computeCapability = 61)
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)
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")
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
Built Distribution
File details
Details for the file pyengnet-0.0.3.tar.gz
.
File metadata
- Download URL: pyengnet-0.0.3.tar.gz
- Upload date:
- Size: 24.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8f7e9b79334dfdeb33b15beb7408aabf77ebfb4ca7760e67ae5790886b0f89a |
|
MD5 | 0ab3c4cb9955d9a73281fb9d3810368d |
|
BLAKE2b-256 | f5f4dba2cd5cb5bcf9e5a3f2d6f9dd3351877ee01b3dac07e971b53c55c5e0ab |
File details
Details for the file pyengnet-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: pyengnet-0.0.3-py3-none-any.whl
- Upload date:
- Size: 25.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb029f1fd011a887b6284109cd6c90837e21f5cb30058ccedd10d3efcb730d43 |
|
MD5 | 11c40fbb84087d2a07a9044f6a86da86 |
|
BLAKE2b-256 | f48b77fcb016ca4b9614d6595062df5c7011afe3fd118418e053ad363b2e0ef2 |