https://github.com/daisybio/DysRegNet_package
Inferring patient-specific regulatory alterations
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
✓DOI references
Found 2 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.0%) to scientific vocabulary
Keywords
Repository
Inferring patient-specific regulatory alterations
Basic Info
Statistics
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 0
- Releases: 6
Topics
Metadata Files
README.md
DysRegNet package
DysRegNet, is a method for inferring patient-specific regulatory alterations (dysregulations) from gene expression profiles. DysRegNet uses linear models to account for confounders and residual-derived z-scores to assess significance.
Installation
To install the package from PyPI please run:
bash
pip install dysregnet
or you can install it from git:
bash
git clone https://github.com/biomedbigdata/DysRegNet_package.git && cd DysRegNet_package
python setup.py install
Data input
The inputs of the package are the following Pandas DataFrame objects:
- expression_data - Gene expression matrix in the format: patients as rows (first column - patients/samples ids), and genes as columns.
- GRN - Gene Regulatory Network (GRN) with two columns in the following order ['TF', 'target'].
- meta - Metadata with the first column containing patients/samples ids and other columns for the condition and the covariates.
The patients id or samples ids must be the same in the "expression_data" and "meta". Additionally, gene names or ids must match the ones in the "GRN" DataFrame.
In the condition column of the meta DataFrame, the control samples should be encoded as 0 and case samples as 1.
The gene regulatory network should be provided by the user. You can either use an experimental validated GRN or learn it from control samples. We recommend using software like arboreto since you can use its output directly to DysRegNet.
Parameters
Additionally, you can provide the following parameters:
conCol: Column name for the condition in the meta DataFrame.
CatCov: List of categorical variable names. They should match the name of their columns in the meta Dataframe.
ConCov: List of continuous covariates. They should match the name of their columns in the meta Dataframe.
zscoring: If True, DysRegNet will scale the expression of each gene and all continuous confounders based on their mean and standard deviation in the control samples.
bonferroni_alpha: P-value threshold for multiple testing correction
normaltest: If True, DysRegNet runs a normality test for residuals "scipy.stats.normaltest". If residuals are not normal, the edge will not be considered in the analysis.
normaltest_alpha: P-value threshold for normaltest (if True).
R2_threshold: R-squared (R2) threshold from 0 to 1 (optional). If the fit is weaker, the edge will not be considered in the analysis.
direction_condition: If True, DysRegNet will only consider case samples with positive residuals (target gene overexpressed) for models with a negative TF coefficient as potentially dysregulated. Similarly, for positive TF coefficients, only case samples with negative residuals are considered. Please check the paper for more details.
The parameters are also annotated with dockstrings for more details.
Get Started
Import the package and pandas:
python
import dysregnet
import pandas as pd
Define the confounding variables or the design matrix ```python
define condition column (0 indicated control, 1 indicates case)
conCol='condition'
define categorical confounder columns in meta dataframe
CatCov=['race','gender']
define continuous confounder columns in meta dataframe.
ConCov=['birthdaysto'] ```
Run DysRegNet ```python data=dysregnet.run(expressiondata=expr, meta=meta, GRN=grn, conCol=conCol, CatCov=CatCov, ConCov=ConCov, directioncondition=True, normaltest=True, R2_threshold=.2)
get the patient-specific dysregulate networks
data.get_results()
or with binary edges
data.getresultsbinary()
get R2 values, coefficients, and coefficient p-values for all models/edges
data.getmodelstats() ```
The output
The package outputs a data frame that represents patient-specific dysregulated edges. The columns represent edges, and the rows are patient IDs.
In the result table, a value of 0 means that the edge is not significantly dysregulated (different from control samples). Otherwise, the z-score is reported.
The method "getresultsbinary()" outputs binarized dysregulations instead of z-scores.
"getmodelstats()" outputs R2 values, coefficients, and coefficient p-values for all models/edges.
Example
A simple example for running DysRegNet: (Notebook/Google Colab).
You will need to download the demo dataset and extract the files into test dataset/
Link for the demo dataset: https://figshare.com/ndownloader/files/35142652
Cite
Kersting, J., Lazareva, O., Louadi, Z., Baumbach, J., Blumenthal, D. B., & List, M. (2024). DysRegNet: Patient-specific and confounder-aware dysregulated network inference towards precision therapeutics. British Journal of Pharmacology, 1–16. https://doi.org/10.1111/bph.17395
Owner
- Name: Data Science in Systems Biology
- Login: daisybio
- Kind: organization
- Email: markus.list@tum.de
- Location: Freising, Germany
- Website: daisybio.de
- Repositories: 1
- Profile: https://github.com/daisybio
The research group Data Science in Systems Biology at the School of Life Sciences, Technical University of Munich
GitHub Events
Total
- Watch event: 1
- Push event: 2
- Fork event: 1
Last Year
- Watch event: 1
- Push event: 2
- Fork event: 1
Dependencies
- numpy >=
- pandas *
- scipy *
- sklearn *
- statsmodels *
- tqdm *
- actions/checkout v3 composite
- actions/setup-python v3 composite
- pypa/gh-action-pypi-publish 27b31702a0e7fc50959f5ad993c78deac1bdfc29 composite