Source code for pyensae.graphhelper.linkage
"""
dendogram, heatmap functionalities.
It comes from `linkage.py <https://raw.githubusercontent.com/biokit/biokit/master/biokit/viz/linkage.py>`_
which I copied here because the module does not properly work on Python 3 (import issues).
See also `biokit license <https://github.com/biokit/biokit/blob/master/LICENSE>`_.
:author: Thomas Cokelaer
:githublink:`%|py|12`
"""
[docs]class Linkage:
"""
Linkage used in other tools such as Heatmap,
the class requires `scipy <http://www.scipy.org/>`_.
:githublink:`%|py|18`
"""
[docs] def __init__(self):
"""
unused
:githublink:`%|py|23`
"""
pass
[docs] def linkage(self, df, method, metric):
"""
Mostly calls `linkage
<https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.linkage.html>`_.
:param df: dataframe
:param method: see `linkage
<https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.linkage.html>`_
:param metric: see `linkage
<https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.linkage.html>`_
:return: output of `linkage
<https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.linkage.html>`_
:githublink:`%|py|38`
"""
from scipy.cluster.hierarchy import linkage
from scipy.spatial.distance import pdist, squareform
d = pdist(df)
D = squareform(d)
Y = linkage(D, method=method, metric=metric)
return Y