grnet.evaluations package

Module contents

grnet.evaluations.d_asterisk(subjective: Estimator, objective: Estimator) float
GRN evaluation function \(d^*\) is suitable for undirected GRNs generated with PC algorithm.

When \(S\): Set of samples, \(\xi:S\rightarrow S/\sim\) is a clustering function (\(\sim\): equivalent relation), \(\xi(S)(=S/\sim)\): whole set of equivalent classes induced by \(\xi\), \(F\): a subset of genes, \(^\forall c, c' \in S\) are arbitrary samples, and \(C_{\xi(c)}(F), C_{\xi(c')}(F)\) are eigen-cascades of clusters, \(d^* : \xi(S)\times\xi(S)\rightarrow\mathbb{R}\) is given as follows:

\[d^*(\xi(c), \xi(c')) := 1 - \frac{ |C_{\xi(c)}(F)\cap C_{\xi(c')}(F)| }{|C_{\xi(c)}(F)|}\]

Parameters

subjective: Estimator

GRNet model of the subjective cluster (i.e., cell class)

objective: Estimator

GRNet model of the objective cluster (i.e., cell class)

Returns

Quasi-pseudo distance: float

quasi-pseudo distance (centering the subjective cluster) between the two clusters

References

see also our original article for further information * original article: https://doi.org/10.1016/j.stemcr.2022.10.015

Examples

>>> import numpy as np
>>> import pandas as pd
>>> from grnet.evaluations import d_asterisk
>>> from grnet.models import PretrainedModel
>>> # here we deal undirected GRNs
>>> names = [f"gene_{i}" for i in range(4)]
>>> grn1 = pd.DataFrame(np.eye(4), index=names, columns=names)
>>> grn2 = pd.DataFrame(np.tri(4), index=names, columns=names)
>>> grn1
        gene_0  gene_1  gene_2  gene_3
gene_0     1.0     0.0     0.0     0.0
gene_1     0.0     1.0     0.0     0.0
gene_2     0.0     0.0     1.0     0.0
gene_3     0.0     0.0     0.0     1.0
>>> grn2
        gene_0  gene_1  gene_2  gene_3
gene_0     1.0     0.0     0.0     0.0
gene_1     1.0     1.0     0.0     0.0
gene_2     1.0     1.0     1.0     0.0
gene_3     1.0     1.0     1.0     1.0
>>> cluster1, cluster2 = PretrainedModel(data=grn1), PretrainedModel(data=grn2)
>>> d_asterisk(cluster1, cluster1)
0.0
>>> d_asterisk(cluster1, cluster2)
0.0
>>> d_asterisk(cluster2, cluster2)
0.0
>>> d_asterisk(cluster2, cluster1)
0.6
grnet.evaluations.whqpm(subjective: Estimator, objective: Estimator) float

Parameters

subjective: Estimator

GRNet model of the subjective cluster (i.e., cell class)

objective: Estimator

GRNet model of the objective cluster (i.e., cell class)

Returns

Quasi-pseudo distance: float

quasi-pseudo distance (centering the subjective cluster) between the two clusters