Source code for maayanlab_bioinformatics.dge.logfc
import pandas as pd
from maayanlab_bioinformatics.normalization import log2_normalize
[docs]
def logfc_differential_expression(controls_mat: pd.DataFrame, cases_mat: pd.DataFrame):
''' NOT RECOMMENDED. Given two separate dataframes (controls, cases) with a shared index (genes),
we compute the logFC differential expression for all genes, also the average expression.
:param controls_mat: (pd.DataFrame) the control samples (samples as columns and genes as rows)
:param cases_mat: (pd.DataFrame) the case samples (samples as columns and genes as rows)
:return: A data frame with the results
'''
assert (controls_mat.index == cases_mat.index).all(), 'Index between controls and cases must be the same'
df_results = pd.DataFrame({
'LogFC': log2_normalize(cases_mat.mean(axis=1)) - log2_normalize(controls_mat.mean(axis=1)),
}, index=controls_mat.index)
df_results.sort_values('LogFC', key=lambda logfc: logfc.abs(), ascending=False, inplace=True)
return df_results