Skip to content

Commit 97975e6

Browse files
committed
changes to scripts on develop2 not emrged with master
1 parent e842837 commit 97975e6

File tree

5 files changed

+1277
-30
lines changed

5 files changed

+1277
-30
lines changed

bin/clusterFun.py

+31-20
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import scipy.spatial.distance as ssd
55
import pandas as pd
66
import matplotlib.pyplot as plt
7+
import matplotlib as mpl
78
import sys
89
import os
910
import numpy as np
@@ -16,15 +17,25 @@ def clusterKmeans(ddGs, k):
1617
centroid, label = sc.vq.kmeans2(ddGs, k)
1718
return label
1819

19-
def clusterHierarchical(M, k, return_z=None):
20+
def clusterHierarchical(M, k, return_z=None, return_order=None):
2021
if return_z is None:
2122
return_z = False
23+
if return_order is None:
24+
return_order = False
2225
z = sch.linkage(M, method='average', metric='euclidean')
2326
labels = pd.Series(sch.fcluster(z, k, 'maxclust'), index=M.index)
27+
28+
to_return = labels
29+
if return_z or return_order:
30+
to_return = [labels]
2431
if return_z:
25-
return labels, z
26-
else:
27-
return labels
32+
to_return.append(z)
33+
if return_order:
34+
#order = np.array(sch.dendrogram(z, no_plot=True, count_sort='ascending')['leaves'])
35+
order = sch.leaves_list(z)
36+
to_return.append(order)
37+
38+
return to_return
2839

2940
def clusterHierarchicalCorr(M, k, return_z=None):
3041
if return_z is None:
@@ -155,11 +166,11 @@ def consensusCluster(D, method=None, subsample=None, n_samples=None, k=None,
155166
I += n
156167
M = M/I
157168

158-
labels, z = clusterHierarchical(M, k, return_z=True)
169+
labels, z, order = clusterHierarchical(M, k, return_z=True, return_order=True)
159170
if plot:
160171
sns.clustermap(M, yticklabels=False, xticklabels=False, square=True,
161172
row_linkage=z, col_linkage=z)
162-
return labels, M
173+
return labels, M, order
163174

164175
def optimizeNumClusters(D, method=None, subsample=None, n_samples=None, ks=None,
165176
numCores=None):
@@ -169,7 +180,7 @@ def optimizeNumClusters(D, method=None, subsample=None, n_samples=None, ks=None,
169180
cdfs = {}
170181
for k in ks:
171182
print k
172-
labels, M = consensusCluster(D, method=method, subsample=subsample,
183+
labels, M, order = consensusCluster(D, method=method, subsample=subsample,
173184
n_samples=n_samples, k=k, numCores=numCores,
174185
plot=False)
175186
x, cdf = getCDF(M)
@@ -192,21 +203,21 @@ def plotCDFs(cdfs):
192203
colorVal = scalarMap.to_rgba(i)
193204
plt.plot(x, cdfs.loc[:, col], color=colorVal, label=col)
194205

195-
values = np.arange(23, 50, 4)
196-
cm = 'Spectral'
197-
cNorm = mpl.colors.Normalize(vmin=0, vmax=len(values)-1)
198-
scalarMap = mpl.cm.ScalarMappable(norm=cNorm, cmap=cm)
199-
200-
for i, col in enumerate(values):
201-
if i%2==0:
202-
colorVal = 'k'
203-
else:
204-
colorVal = '0.7'
205-
#colorVal = scalarMap.to_rgba(i)
206-
plt.plot(x, cdfs.loc[:, col], color=colorVal, label=col)
206+
##values = np.arange(23, 50, 4)
207+
#cm = 'Spectral'
208+
#cNorm = mpl.colors.Normalize(vmin=0, vmax=len(values)-1)
209+
#scalarMap = mpl.cm.ScalarMappable(norm=cNorm, cmap=cm)
210+
#
211+
#for i, col in enumerate(values):
212+
# #if i%2==0:
213+
# # colorVal = 'k'
214+
# #else:
215+
# # colorVal = '0.7'
216+
# colorVal = scalarMap.to_rgba(i)
217+
# plt.plot(x, cdfs.loc[:, col], color=colorVal, label=col)
207218

208219
plt.legend(loc='lower right')
209-
plt.savefig(os.path.join(figDirectory, 'all_cdfs.subsampled_0.8.n_samples_500.pdf'))
220+
#plt.savefig(os.path.join(figDirectory, 'all_cdfs.subsampled_0.8.n_samples_500.pdf'))
210221

211222
def getDeltaK(cdfs):
212223
x = cdfs.index

bin/seqfun.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -142,5 +142,5 @@ def remove_outlier(points, thresh=None):
142142
return points[np.logical_not(is_outlier(points, thresh=thresh))]
143143

144144
def getCorrelation(vec1, vec2):
145-
index = np.all(np.isfinite(np.vstack([vec1, vec2])), axis=0)
145+
index = np.all(np.isfinite(np.vstack([vec1, vec2]).astype(float)), axis=0)
146146
return st.pearsonr(vec1[index], vec2[index])[0]

libs/pufData.py

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from matplotlib import gridspec
66
import seaborn as sns
77
import os
8+
import scipy.stats as st
89
import itertools
910

1011
from plotFun import fix_axes

0 commit comments

Comments
 (0)