Mercurial > repos > bgruening > chemfp
comparison chemfp_clustering/nxn_clustering.py @ 21:7c84cfa515e0
ChemicalToolBoX update.
| author | Bjoern Gruening <bjoern.gruening@gmail.com> |
|---|---|
| date | Sat, 01 Jun 2013 20:03:04 +0200 |
| parents | 438bc12d591b |
| children | 6c496b524b41 |
comparison
equal
deleted
inserted
replaced
| 20:21d29a7f13d8 | 21:7c84cfa515e0 |
|---|---|
| 10 import os | 10 import os |
| 11 import chemfp | 11 import chemfp |
| 12 import scipy.cluster.hierarchy as hcluster | 12 import scipy.cluster.hierarchy as hcluster |
| 13 import pylab | 13 import pylab |
| 14 import numpy | 14 import numpy |
| 15 import tempfile | |
| 15 | 16 |
| 16 | 17 |
| 17 def distance_matrix(arena, tanimoto_threshold = 0.0): | 18 def distance_matrix(arena, tanimoto_threshold = 0.0): |
| 18 n = len(arena) | 19 n = len(arena) |
| 19 # Start off a similarity matrix with 1.0s along the diagonal | 20 # Start off a similarity matrix with 1.0s along the diagonal |
| 61 parser.add_argument('-p', '--processors', type=int, | 62 parser.add_argument('-p', '--processors', type=int, |
| 62 default=4) | 63 default=4) |
| 63 | 64 |
| 64 args = parser.parse_args() | 65 args = parser.parse_args() |
| 65 | 66 |
| 67 # make sure that the file ending is fps | |
| 68 temp_file = tempfile.NamedTemporaryFile() | |
| 69 temp_link = "%s.%s" % (temp_file.name, 'fps') | |
| 70 temp_file.close() | |
| 71 os.symlink(args.input_path, temp_link) | |
| 66 | 72 |
| 67 arena = chemfp.load_fingerprints( args.input_path ) | 73 arena = chemfp.load_fingerprints( temp_link ) |
| 68 distances = distance_matrix( arena, args.tanimoto_threshold ) | 74 distances = distance_matrix( arena, args.tanimoto_threshold ) |
| 69 linkage = hcluster.linkage( distances, method="single", metric="euclidean" ) | 75 linkage = hcluster.linkage( distances, method="single", metric="euclidean" ) |
| 70 | 76 |
| 71 hcluster.dendrogram(linkage, labels=arena.ids) | 77 hcluster.dendrogram(linkage, labels=arena.ids) |
| 72 | 78 |
