blob: d0222ae76336b300d50ca567ddb4bdf94be48827 (
plain)
| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 | """
DESCRIPTION:
    TODO: Add a description for the module
FUNCTIONS:
compute_correlation:
    TODO: Describe what the function does..."""
from scipy import stats
## From GN1: mostly for clustering and heatmap generation
def __items_with_values(dbdata, userdata):
    """Retains only corresponding items in the data items that are not `None` values.
    This should probably be renamed to something sensible"""
    filtered = [x for x in zip(dbdata, userdata) if x[0] is not None and x[1] is not None]
    return tuple(zip(*filtered)) if filtered else ([], [])
def compute_correlation(dbdata, userdata):
    """Compute the Pearson correlation coefficient.
    This is extracted from
    https://github.com/genenetwork/genenetwork1/blob/master/web/webqtl/utility/webqtlUtil.py#L622-L647
    """
    x_items, y_items = __items_with_values(dbdata, userdata)
    correlation = stats.pearsonr(x_items, y_items)[0] if len(x_items) >= 6 else 0
    return (correlation, len(x_items))
 |