Skip to content

Commit

Permalink
check changelog
Browse files Browse the repository at this point in the history
  • Loading branch information
AnnaChristina committed Sep 7, 2023
1 parent 05fca3f commit 0180093
Show file tree
Hide file tree
Showing 7 changed files with 76 additions and 47 deletions.
19 changes: 12 additions & 7 deletions ncem/tl/__init__.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
from ncem.tl.fit.backend.linear_model import (differential_ncem,
differential_ncem_deconvoluted,
linear_ncem,
linear_ncem_deconvoluted)
from ncem.tl.fit.backend.linear_model import (
differential_ncem,
differential_ncem_deconvoluted,
linear_ncem,
linear_ncem_deconvoluted,
)
from ncem.tl.fit.backend.spline_model import (
get_spline_interpolation, spline_differential_ncem,
spline_differential_ncem_deconvoluted, spline_linear_ncem,
spline_linear_ncem_deconvoluted)
get_spline_interpolation,
spline_differential_ncem,
spline_differential_ncem_deconvoluted,
spline_linear_ncem,
spline_linear_ncem_deconvoluted,
)

from . import fit
3 changes: 1 addition & 2 deletions ncem/tl/fit/backend/ablation.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@
import squidpy as sq
from scipy.stats import linregress

from ncem.tl.fit.constants import (OBS_KEY_SPLIT, OBSM_KEY_DMAT,
UNS_KEY_ABLATION, VARM_KEY_PARAMS)
from ncem.tl.fit.constants import OBS_KEY_SPLIT, OBSM_KEY_DMAT, UNS_KEY_ABLATION, VARM_KEY_PARAMS
from ncem.tl.fit.glm import linear_ncem


Expand Down
4 changes: 3 additions & 1 deletion ncem/tl/fit/backend/design_matrix.py
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,9 @@ def get_dmats_from_deconvoluted(
obs_full = pd.concat([obs, obs_index_type_x, obs_niche], axis=1)
dmats[x] = patsy.dmatrix(formulas[x], obs_full)
# ensure that column names start with index type name
dmat_columns = [col if col.startswith(PREFIX_INDEX) else PREFIX_INDEX+x+col for col in dmats[x].design_info.column_names]
dmat_columns = [
col if col.startswith(PREFIX_INDEX) else PREFIX_INDEX + x + col for col in dmats[x].design_info.column_names
]
dmats[x] = pd.DataFrame(np.asarray(dmats[x]), index=obs.index, columns=dmat_columns)
return dmats

Expand Down
32 changes: 21 additions & 11 deletions ncem/tl/fit/backend/linear_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,30 @@
import pandas as pd

from ncem.tl.fit.backend.design_matrix import (
extend_formula_differential_ncem, extend_formula_ncem,
get_binary_sample_annotation_conditions, get_dmat_from_obs,
get_dmats_from_deconvoluted, get_obs_niche_from_graph)
extend_formula_differential_ncem,
extend_formula_ncem,
get_binary_sample_annotation_conditions,
get_dmat_from_obs,
get_dmats_from_deconvoluted,
get_obs_niche_from_graph,
)
from ncem.tl.fit.backend.ols_fit import ols_fit
from ncem.tl.fit.backend.testing import test_deconvoluted, test_standard
from ncem.tl.fit.backend.utils import write_uns
from ncem.tl.fit.constants import (OBSM_KEY_DMAT, OBSM_KEY_DMAT_NICHE,
UNS_KEY_CELL_TYPES, UNS_KEY_CONDITIONS,
UNS_KEY_PER_INDEX, VARM_KEY_FDR_PVALS,
VARM_KEY_FDR_PVALS_DIFFERENTIAL,
VARM_KEY_PARAMS, VARM_KEY_PVALS,
VARM_KEY_PVALS_DIFFERENTIAL,
VARM_KEY_TESTED_PARAMS,
VARM_KEY_TESTED_PARAMS_DIFFERENTIAL)
from ncem.tl.fit.constants import (
OBSM_KEY_DMAT,
OBSM_KEY_DMAT_NICHE,
UNS_KEY_CELL_TYPES,
UNS_KEY_CONDITIONS,
UNS_KEY_PER_INDEX,
VARM_KEY_FDR_PVALS,
VARM_KEY_FDR_PVALS_DIFFERENTIAL,
VARM_KEY_PARAMS,
VARM_KEY_PVALS,
VARM_KEY_PVALS_DIFFERENTIAL,
VARM_KEY_TESTED_PARAMS,
VARM_KEY_TESTED_PARAMS_DIFFERENTIAL,
)


def _validate_formula(formula: str, auto_keys: List[str] = []):
Expand Down
28 changes: 18 additions & 10 deletions ncem/tl/fit/backend/spline_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,26 @@
import pandas as pd
import patsy

from ncem.tl.fit.backend.linear_model import (differential_ncem,
differential_ncem_deconvoluted,
linear_ncem,
linear_ncem_deconvoluted)
from ncem.tl.fit.backend.linear_model import (
differential_ncem,
differential_ncem_deconvoluted,
linear_ncem,
linear_ncem_deconvoluted,
)
from ncem.tl.fit.backend.testing import test_deconvoluted, test_standard
from ncem.tl.fit.backend.utils import read_uns, write_uns
from ncem.tl.fit.constants import (PREFIX_INDEX, UNS_KEY_CELL_TYPES,
UNS_KEY_PER_INDEX, UNS_KEY_SPLINE_COEFS,
UNS_KEY_SPLINE_DF, UNS_KEY_SPLINE_FAMILY,
UNS_KEY_SPLINE_KEY_1D,
VARM_KEY_FDR_PVALS_SPLINE, VARM_KEY_PARAMS,
VARM_KEY_PVALS_SPLINE)
from ncem.tl.fit.constants import (
PREFIX_INDEX,
UNS_KEY_CELL_TYPES,
UNS_KEY_PER_INDEX,
UNS_KEY_SPLINE_COEFS,
UNS_KEY_SPLINE_DF,
UNS_KEY_SPLINE_FAMILY,
UNS_KEY_SPLINE_KEY_1D,
VARM_KEY_FDR_PVALS_SPLINE,
VARM_KEY_PARAMS,
VARM_KEY_PVALS_SPLINE,
)


def get_spline_basis(df: int, key_1d_coord: str, obs: pd.DataFrame, spline_family: str):
Expand Down
18 changes: 9 additions & 9 deletions ncem/tl/fit/backend/testing.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,24 +127,24 @@ def test_deconvoluted(
for k, y in coef_to_test.items():
if np.all([z in parameter_names for z in y]):
params_idx = np.sort([parameter_names.index(z) for z in y])
#theta_mle = params.values[:, params_idx]
# theta_mle = params.values[:, params_idx]
for idx, coef in enumerate(y):
theta_mle = params.values[:, idx]
theta_sd = fisher_inv[:, idx, idx]
theta_sd = np.nextafter(0, np.inf, out=theta_sd, where=theta_sd < np.nextafter(0, np.inf))
theta_sd = np.sqrt(theta_sd)
theta_sd = np.expand_dims(theta_sd, axis=0)
theta_mle = np.expand_dims(theta_mle, axis=0)
#pvals[x] = wald_test(theta_mle=theta_mle, theta_sd=theta_sd, theta0=0)
#fisher_inv_subset = fisher_inv[:, idx, :][:, :, idx]
# pvals[x] = wald_test(theta_mle=theta_mle, theta_sd=theta_sd, theta0=0)
# fisher_inv_subset = fisher_inv[:, idx, :][:, :, idx]
assert coef not in pvals.keys()
pvals[coef] = wald_test(theta_mle=theta_mle, theta_sd=theta_sd, theta0=0)
qvals[coef] = correct(pvals[coef].flatten()).reshape(pvals[coef].shape)
tested_coefficients[coef] = theta_mle
#pvals[k] = wald_test_chisq(theta_mle=theta_mle.T, theta_covar=fisher_inv_subset)
#if len(idx) == 1:
# pvals[k] = wald_test_chisq(theta_mle=theta_mle.T, theta_covar=fisher_inv_subset)
# if len(idx) == 1:
# tested_coefficients[k] = theta_mle[:, 0]
#else:
# else:
# tested_coefficients[k] = np.zeros_like(theta_mle[:, 0]) + np.nan
else:
for y in coef_to_test:
Expand All @@ -163,9 +163,9 @@ def test_deconvoluted(
qvals_arr = np.concatenate(list(qvals.values()), axis=0).T
adata.varm[key_pval] = pd.DataFrame(pvals_arr, index=adata.var_names, columns=list(pvals.keys()))
adata.varm[key_fdr_pval] = pd.DataFrame(qvals_arr, index=adata.var_names, columns=list(pvals.keys()))
#pvals_flat = np.hstack(list(pvals.values()))
#qvals_flat = np.hstack(list(qvals.values()))
#qvals_flat = correct(pvals_flat)
# pvals_flat = np.hstack(list(pvals.values()))
# qvals_flat = np.hstack(list(qvals.values()))
# qvals_flat = correct(pvals_flat)
# qvals = qvals_flat.reshape((-1, len(test_keys)))
# Write results to object:
if key_coef is not None:
Expand Down
19 changes: 12 additions & 7 deletions ncem/tl/fit/glm/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
from ncem.tl.fit.backend.linear_model import (differential_ncem,
differential_ncem_deconvoluted,
linear_ncem,
linear_ncem_deconvoluted)
from ncem.tl.fit.backend.linear_model import (
differential_ncem,
differential_ncem_deconvoluted,
linear_ncem,
linear_ncem_deconvoluted,
)
from ncem.tl.fit.backend.spline_model import (
get_spline_interpolation, spline_differential_ncem,
spline_differential_ncem_deconvoluted, spline_linear_ncem,
spline_linear_ncem_deconvoluted)
get_spline_interpolation,
spline_differential_ncem,
spline_differential_ncem_deconvoluted,
spline_linear_ncem,
spline_linear_ncem_deconvoluted,
)

0 comments on commit 0180093

Please sign in to comment.