napistu.statistics.hypothesis_testing

Hypothesis tests.

Public Functions

binomial_test_vectorized(sample_successes, sample_total, population_successes, population_total)

Fast vectorized one-tailed binomial test using normal approximation.

fisher_exact_vectorized(observed_members, missing_members, observed_nonmembers, nonobserved_nonmembers)

Fast vectorized one-tailed Fisher exact test using normal approximation.

proportion_test_vectorized(sample_successes, sample_total, population_successes, population_total)

Fast vectorized one-tailed proportion test using normal approximation.

Functions

binomial_test_vectorized(sample_successes, ...)

Binomial test for enrichment in sampled edges.

fisher_exact_vectorized(observed_members, ...)

Fast vectorized one-tailed Fisher exact test using normal approximation.

proportion_test_vectorized(sample_successes, ...)

Fast vectorized one-tailed proportion test using normal approximation.

napistu.statistics.hypothesis_testing.binomial_test_vectorized(sample_successes, sample_total, population_successes, population_total) tuple[ndarray, ndarray]

Binomial test for enrichment in sampled edges.

H0: Sample edges are drawn proportionally from universe H1: This pathway pair is enriched in sample

Parameters:
  • sample_successes (array) – Observed edges for each pathway pair

  • sample_total (int) – Total edges in sample (e.g., 10K)

  • population_successes (array) – Universe edges for each pathway pair

  • population_total (int) – Total edges in universe (e.g., 8M)

Returns:

  • expected (array) – Expected edges under null

  • p_values (array) – One-tailed p-values (upper tail)

napistu.statistics.hypothesis_testing.fisher_exact_vectorized(observed_members: list[int] | ndarray, missing_members: list[int] | ndarray, observed_nonmembers: list[int] | ndarray, nonobserved_nonmembers: list[int] | ndarray) tuple[ndarray, ndarray]

Fast vectorized one-tailed Fisher exact test using normal approximation.

Parameters:

observed_members, missing_members, observed_nonmembers, nonobserved_nonmembersarray-like

The four cells of the 2x2 contingency tables (must be non-negative)

Returns:

odds_ratiosnumpy array

Odds ratios for each test

p_valuesnumpy array

One-tailed p-values (tests for enrichment)

napistu.statistics.hypothesis_testing.proportion_test_vectorized(sample_successes: list[int] | ndarray, sample_total: int, population_successes: list[int] | ndarray, population_total: int) tuple[ndarray, ndarray, ndarray]

Fast vectorized one-tailed proportion test using normal approximation.

Tests whether the proportion of successes in a sample differs from the proportion in a reference population.

Parameters:
  • sample_successes (array-like) – Number of successes in the sample (must be non-negative)

  • sample_total (int) – Total number of observations in the sample (must be positive)

  • population_successes (array-like) – Number of successes in the population (must be non-negative)

  • population_total (int) – Total number of observations in the population (must be positive)

Returns:

  • expected_successes (numpy array) – Expected number of successes in sample under null hypothesis

  • odds_ratios (numpy array) – Odds ratios for each test

  • p_values (numpy array) – One-tailed p-values (tests for enrichment, upper tail)