aboutsummaryrefslogtreecommitdiff
path: root/gn3/computations/partial_correlations.py
diff options
context:
space:
mode:
Diffstat (limited to 'gn3/computations/partial_correlations.py')
-rw-r--r--gn3/computations/partial_correlations.py22
1 files changed, 15 insertions, 7 deletions
diff --git a/gn3/computations/partial_correlations.py b/gn3/computations/partial_correlations.py
index f316f67..597c5a3 100644
--- a/gn3/computations/partial_correlations.py
+++ b/gn3/computations/partial_correlations.py
@@ -70,7 +70,9 @@ def control_samples(controls: Sequence[dict], sampleslist: Sequence[str]):
[__process_control__(trait_data) for trait_data in controls],
(tuple(), tuple(), tuple(), tuple()))
-def fix_samples(primary_trait: dict, control_traits: Sequence[dict]) -> Sequence[Sequence[Any]]:
+def fix_samples(
+ primary_trait_data: dict,
+ control_traits_data: Sequence[dict]) -> Sequence[Sequence[Any]]:
"""
Corrects sample_names, values and variance such that they all contain only
those samples that are common to the reference trait and all control traits.
@@ -80,20 +82,26 @@ def fix_samples(primary_trait: dict, control_traits: Sequence[dict]) -> Sequence
"""
primary_samples = tuple(
present[0] for present in
- ((sample, all(sample in control.keys() for control in control_traits))
- for sample in primary_trait.keys())
+ ((sample,
+ all(sample in control["data"].keys()
+ for control in control_traits_data))
+ for sample in primary_trait_data["data"].keys())
if present[1])
control_vals_vars: tuple = reduce(
lambda acc, x: (acc[0] + (x[0],), acc[1] + (x[1],)),
((item["value"], item["variance"])
- for sublist in [tuple(control.values()) for control in control_traits]
+ for sublist in [
+ tuple(control["data"].values())
+ for control in control_traits_data]
for item in sublist),
(tuple(), tuple()))
return (
primary_samples,
- tuple(primary_trait[sample]["value"] for sample in primary_samples),
+ tuple(primary_trait_data["data"][sample]["value"]
+ for sample in primary_samples),
control_vals_vars[0],
- tuple(primary_trait[sample]["variance"] for sample in primary_samples),
+ tuple(primary_trait_data["data"][sample]["variance"]
+ for sample in primary_samples),
control_vals_vars[1])
def find_identical_traits(
@@ -628,7 +636,7 @@ def check_for_common_errors(# pylint: disable=[R0914]
fixed_primary_vals,
fixed_control_vals,
_primary_variances,
- _cntrl_variances) = fix_samples(primary_trait, cntrl_traits)
+ _cntrl_variances) = fix_samples(primary_trait_data, cntrl_traits_data)
if len(common_primary_control_samples) < corr_min_informative:
return {