Skip to main content

A Python Library for Gene–environment Interaction Analysis via Deep Learning

Project description

overall_fig.png

pypi Python 3.8+ Build codecov License: MIT Documentation Status Code style: black

GENetLib: A Python Library for Gene–environment Interaction Analysis via Deep Learning

GENetLib is a Python library designed for gene-environment interaction analysis via neural network, addressing the analytical challenges in complex disease research. This package is capable of handling a variety of input data types:

  • Scalar input data
  • Functional input data (or densely measured data)

This package also supports diverse output requirements:

  • Continuous output data
  • Binary output data
  • Survival output data

By integrating minimax concave penalty (MCP) and $L_2$-norm regularization within a neural network estimation framework, GENetLib offers an innovative solution for high-dimensional genetic data analysis. The framework is shown below.

framework

We provide a web-based documentation which introduces the meaning of function parameters, the usage of functions, detailed information about methods, and gives examples for each. The web page is available at documentations. This package has been uploaded to PyPI with previous versions, and the web page is available at PyPI package. Users can also check releases to get historical versions.

Features

GENetLib has the following features:

  • Comprehensiveness: Supports a variety of input and output formats, enabling the construction of comprehensive neural network models for G-E interaction analysis.
  • Flexibility: Offers a multitude of parameters allowing users to build models flexibly according to their specific needs.
  • Functional data compatibility: Implements methods for functional data analysis (FDA) in Python, facilitating the processing of functional data with Python.
  • Scalability: New methods for G-E interaction analysis via deep learning can be easily integrated into the system.

Installation

It is recommended to use pip for installation:

pip install GENetLib

To get further information about installation and independencies, please move to installation instructions.

Quick Start

We start with the two basic functions scalar_ge and func_ge.

scalar_ge

scalar_ge performs G-E interaction analysis via deep leanring when the input is scalar data.

from GENetLib.sim_data import sim_data_scalar
from GENetLib.scalar_ge import scalar_ge

# Get example data where input is scalar data and output is survival data
scalar_survival_linear = sim_data_scalar(rho_G = 0.25, rho_E = 0.3, dim_G = 500, dim_E = 5, n = 1500,
                                         dim_E_Sparse = 2, ytype = 'Survival', n_inter = 30)

# Set up the ScalerGE model
scalar_ge_res = scalar_ge(y = scalar_survival_linear['y'], G = scalar_survival_linear['G'], E = scalar_survival_linear['E'],
                          ytype = 'Survival',num_hidden_layers = 2, nodes_hidden_layer = [1000, 100], num_epochs = 100,
                          learning_rate1 = 0.06, learning_rate2 = 0.035, lambda1 = None, lambda2 = 0.09, Lambda = 0.1,
                          threshold = 0.01, split_type = 0, ratio = [7, 3], important_feature = True, plot = True)

func_ge

func_ge performs G-E interaction analysis via deep leanring when the input is functional data.

from GENetLib.sim_data import sim_data_func
from GENetLib.func_ge import func_ge

# Get example data where input is densely measured functional data and output is survival data
func_continuous = sim_data_func(n = 1500, m = 30, ytype = 'Continuous', seed = 123)

# Set up the FuncGE model
func_ge_res = func_ge(y = func_continuous['y'], X = func_continuous['X'], location = func_continuous['location'],
                      Z = func_continuous['Z'], ytype = 'Continuous', btype = 'Bspline', num_hidden_layers = 2,
                      nodes_hidden_layer = [100,10], num_epochs = 50, learning_rate1 = 0.02, learning_rate2 = 0.035,
                      nbasis1 = 5, params1 = 4, lambda1 = None, lambda2 = 0.01, Lambda = 0.01, Bsplines = 5,
                      norder1 = 4, split_type = 1, ratio = [3, 1, 1], plot_res = True)

For more information about the functions and methods, please check main functions.

Reference

The main referenced papers are:

Other referenced papers can be obtained in references.

License

GENetLib is licensed under the MIT License. See LICENSE for details.

Feedback

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

genetlib-1.2.7.tar.gz (29.4 kB view details)

Uploaded Source

Built Distribution

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

genetlib-1.2.7-py3-none-any.whl (37.2 kB view details)

Uploaded Python 3

File details

Details for the file genetlib-1.2.7.tar.gz.

File metadata

  • Download URL: genetlib-1.2.7.tar.gz
  • Upload date:
  • Size: 29.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for genetlib-1.2.7.tar.gz
Algorithm Hash digest
SHA256 3cef1f1d2c14503dcbb2c06dd895728d42cae242a8907411e1d54ed2d66aecad
MD5 caf4ce7135a7172f210c89e8bcffb5b8
BLAKE2b-256 b7230c7283ff54f5f1fba2f4ac5374681c4caacbaef8d319aa5c27e7b4b8b1eb

See more details on using hashes here.

File details

Details for the file genetlib-1.2.7-py3-none-any.whl.

File metadata

  • Download URL: genetlib-1.2.7-py3-none-any.whl
  • Upload date:
  • Size: 37.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for genetlib-1.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 355ba9959a9bc6d52813f08c6fa33fec648129a81ac27f2f5214704990159ec2
MD5 0dadceab992324b5301e309d756a44f4
BLAKE2b-256 661a841f21cf59d8f4ac2432ab3f371e3caec93a7dd81ebba387bb8888b38391

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