Skip to main content

Dynamic Tree Cut

Project description

Stars PyPIDownloads PyPI Build Status Coffee

Python translation of the hybrid dynamicTreeCut method created by Peter Langfelder and Bin Zhang.

dynamicTreeCut was originally published by in Bioinformatics:

Langfelder P, Zhang B, Horvath S (2007) Defining clusters from a hierarchical cluster tree: the Dynamic Tree Cut package for R. Bioinformatics 2008 24(5):719-720

dynamicTreeCut R code is distributed under the GPL-3 License and original sources should be cited.

dynamicTreeCut contains methods for detection of clusters in hierarchical clustering dendrograms. NOTE: though the clusters match the R output, the cluster names are shuffled

Installing

To install, it’s best to create an environment after installing and downloading the Anaconda Python Distribution

conda env create –file environment.yml

PyPI install, presuming you have all its requirements (numpy and scipy) installed:

pip install dynamicTreeCut

Importation

>>> from dynamicTreeCut import cutreeHybrid
>>> from scipy.spatial.distance import pdist
>>> import numpy as np
>>> from scipy.cluster.hierarchy import linkage
>>> d = np.transpose(np.arange(1,10001).reshape(100,100))
>>> distances = pdist(d, "euclidean")
>>> link = linkage(distances, "average")
>>> clusters = cutreeHybrid(link, distances)
..cutHeight not given, setting it to 495.1  ===>  99% of the (truncated) height range in dendro.
..done.
>>> clusters["labels"]
[2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3
 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 1 1 1 1 1 1 1 1
 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]

Compared to R:

> library(dynamicTreeCut)
> d = matrix(1:10000, 100)
> distances <- dist(d, method="euclidean")
> dendro <- hclust(distances, method="average")
> clusters <- cutreeDynamic(dendro, distM=as.matrix(distances))
  ..cutHeight not given, setting it to 495  ===>  99% of the (truncated) height range in dendro.
  ..done.
> clusters
  [1] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3
  [38] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 1 1 1 1 1 1 1 1
  [75] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Installation

If you dont already have numpy and scipy installed, it is best to download Anaconda, a python distribution that has them included.

https://continuum.io/downloads

Dependencies can be installed by:

pip install -r requirements.txt

License

dynamicTreeCut is available under the GPL-3 License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dynamicTreeCut-0.1.1.tar.gz (13.2 kB view details)

Uploaded Source

File details

Details for the file dynamicTreeCut-0.1.1.tar.gz.

File metadata

  • Download URL: dynamicTreeCut-0.1.1.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.5

File hashes

Hashes for dynamicTreeCut-0.1.1.tar.gz
Algorithm Hash digest
SHA256 8ad78e78867a17c9c5fb448e8481adf99db403d0a879a36d7d288fd4953e602b
MD5 13666611df7ac09261ed0fbe35a20dae
BLAKE2b-256 e2f907241f0d25fe0e00a2e545142241a9cf81482b4054789e0cd590b0016623

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page