FAQ | This is a LIVE service | Changelog

Skip to content
Snippets Groups Projects
Commit e909ccb5 authored by Argyris Z's avatar Argyris Z
Browse files

Fixes plotting, labels, axes boundaries etc.

parent d9d54be3
No related branches found
No related tags found
No related merge requests found
......@@ -28,6 +28,12 @@ from common.seg import STissue
import grates as grs
import patternTransitions as p
dot_sizes = {10: 25,
40: 25,
96: 25,
120: 12,
132: 7}
geneNms: List[str] = ['"AG"',
'"AHP6"',
'"ANT"',
......@@ -54,6 +60,8 @@ geneNms: List[str] = ['"AG"',
'"SVP"',
'"WUS"']
mpl.rcParams.update(mpl.rcParamsDefault)
sts_ts = f.states_per_t()
......@@ -147,9 +155,9 @@ class GPairRegions():
f = plot_ts_q_(self.ts, d,
lb="{g1}-{g2}".format(g1=self.g1, g2=self.g2),
bounds=(0.1, 0.9), txt=txt)
bounds=(0.1, 0.9), txt=txt, size=dot_sizes[self.t])
return f, d
return f
def get_regions(self) -> Tuple[Set[int], Set[int]]:
grs_state = get_grs_state()
......@@ -183,8 +191,8 @@ class GPairRegions():
grs_e1 = reduce(add, [grs_state[st] for st in sts_e1])
grs_e2 = reduce(add, [grs_state[st] for st in sts_e2])
gr_e1 = np.mean(reduce(add, [grs_state[st] for st in sts_e1]))
gr_e2 = np.mean(reduce(add, [grs_state[st] for st in sts_e2]))
gr_e1 = np.median(reduce(add, [grs_state[st] for st in sts_e1]))
gr_e2 = np.median(reduce(add, [grs_state[st] for st in sts_e2]))
h_grs, l_grs = [e for e, gr in sorted([(grs_e1, gr_e1), (grs_e2, gr_e2)],
key=snd, reverse=True)]
......@@ -196,15 +204,17 @@ class GPairRegions():
ax = fig.add_subplot('111')
ax.set_xlim(-0.05, 0.18)
ax.set_ylim(0.0, 0.45)
sns.distplot(h_grs, bins=10, color=cls[-1], kde=True, ax=ax,
sns.histplot(h_grs, bins=10, color=cls[-1], kde=True, ax=ax, stat='probability',
label=astor.to_source(he).replace("'", ""))
sns.distplot(l_grs, bins=10, color=cls[0], kde=True, ax=ax,
sns.histplot(l_grs, bins=10, color=cls[0], kde=True, ax=ax, stat='probability',
label=astor.to_source(le).replace("'", ""))
ax.set_xlabel(r'$\mu$m/h')
#plt.legend(fontsize=10, loc='upper right', frameon=False)
ax.set_xlabel(r'growth rate ($h^{-1}$)')
plt.legend(fontsize=10, loc='upper right', frameon=False)
gns = "{g1}-{g2}".format(g1=self.g1, g2=self.g2)
print(gns, gratio(h_grs, l_grs))
plt.tight_layout()
plt.savefig("{g1}-{g2}-regions.png".format(g1=self.g1, g2=self.g2), dpi=300)
plt.show()
......@@ -238,7 +248,7 @@ def mean_gratio_(ps):
def groupByRegionGPairs(t: int,
ts: STissue,
ress: List[Tuple[Tuple[str, str], float]],
n=6,
n=9,
prc=0.5):
d = defaultdict(list)
ps_nnan = [(GPairRegions(t, ts, p[0], p[1]), v) for p, v in ress
......@@ -267,16 +277,16 @@ def plotRegions(t, ts, d):
gr=mean_gratio(ps)))
fns.append(f)
montage_fimgs(fns, im_label="t{t}_regions".format(t=t))
montage_fimgs(fns, im_label="t{t}_regions".format(t=str(t)))
for fn in fns:
os.remove(fn)
return "t{t}_regions.png".format(t=t)
return "t{t}_regions.png".format(t=str(t))
def cluster_states(grs_state: Dict[int, List[float]]):
mgrs = {st:np.mean(grs) for st, grs in grs_state.items()}
mgrs = {st:np.median(grs) for st, grs in grs_state.items()}
g = gaussian_kde(np.array(list(mgrs.values())))
xs = np.arange(-0.05, 0.2, 0.001)
......@@ -398,7 +408,7 @@ def bacc(ts, cids1, cids2):
def meanor0(xs):
if xs:
return np.mean(xs)
return np.median(xs)
else:
return 0.0
......@@ -414,8 +424,8 @@ def gratio(xs, xs1):
if not xs or not xs1:
return 0.0
m1 = np.mean(xs)
m2 = np.mean(xs1)
m1 = np.median(xs)
m2 = np.median(xs1)
return (m1 - m2) / (m1 + m2)
......@@ -494,7 +504,7 @@ def go_search2(t, k):
sts = f.states_per_t()[t]
grs_state = get_grs_state()
mgrs_state = {st:np.mean(grs)
mgrs_state = {st:np.median(grs)
for st, grs in grs_state.items()}
st_gr_obj = partial(states_d,
ts=ts,
......@@ -681,7 +691,7 @@ def plot_ts_binary(ts_, cids, lb="region", txt=""):
"{lb}.png".format(lb=lb)])
def plot_ts_q_(ts, d, lb="vals", bounds=(0, 1), txt=""):
def plot_ts_q_(ts, d, lb="vals", bounds=(0, 1), txt="", size=7):
vmin, vmax = bounds
xs = [c.pos.x for c in ts]
......@@ -692,7 +702,7 @@ def plot_ts_q_(ts, d, lb="vals", bounds=(0, 1), txt=""):
fig = plt.figure(figsize=(1.5, 1.5))
ax = fig.add_subplot(111, projection='3d')
ax.view_init(elev=104, azim=-89)
ax.scatter(xs, ys, zs, c=cs, cmap="coolwarm", alpha=0.9, s=7, vmin=vmin,
ax.scatter(xs, ys, zs, c=cs, cmap="coolwarm", alpha=0.9, s=size, vmin=vmin,
vmax=vmax, edgecolors='black', linewidths=0.5)
ax.set_title(txt)
plt.axis('off')
......@@ -700,7 +710,7 @@ def plot_ts_q_(ts, d, lb="vals", bounds=(0, 1), txt=""):
fout = "{lb}.png".format(lb=lb)
plt.savefig(fout, dpi=300, bbox_inches='tight')
plt.show()
return "{lb}.png".format(lb=lb)
def plot_distrs(grs, r1, r2, lb):
......@@ -721,7 +731,7 @@ def plot_distrs(grs, r1, r2, lb):
label="region1")
sns.distplot(grs2_, bins=10, color=cls[0], kde=True, ax=ax,
label="region2")
ax.set_xlabel(r'$\mu$m/h'.format())
ax.set_xlabel(r'$h^{-1}$'.format())
plt.savefig("zone{i}.png".format(i=lb), dpi=300, bbox_inches='tight')
plt.show()
......@@ -794,17 +804,18 @@ def montage_fimgs(fns, im_label="montage"):
m = np.ceil(n / 3)
k = min(n, 3)
print(fns)
#collage all the images
call([montageCmd] +
fns +
["-tile",
str(k) + "x" + str(m),
"-geometry", "+20+20",
im_label + ".png"])
"{im_n}.png".format(im_n=str(im_label))])
def mark_state_gr(ts, grs_state):
st_genes = f.states
mgrs = dict([(st, np.mean(grs)) for st, grs in grs_state.items()])
mgrs = dict([(st, np.median(grs)) for st, grs in grs_state.items()])
d = dict()
for c in ts:
d[c.cid] = mgrs.get(st_genes.get(c.getOnGenes(), None), 0.0)
......@@ -901,8 +912,8 @@ def gratio(xs, xs1):
if not xs or not xs1:
return np.nan
m1 = np.mean(xs)
m2 = np.mean(xs1)
m1 = np.median(xs)
m2 = np.median(xs1)
return (m1 - m2) / (m1 + m2)
......@@ -1075,8 +1086,8 @@ def mkStripPlotCombs(vals_, ax, cl, lb="", annot=True):
ax.set_xticks(list(range(len(xs_labs))))
if annot:
ax.text(21.3, -0.383, "ETTIN, STM", alpha=0.5, weight='ultralight')
ax.text(12.2, 0.36, "SEP1, LFY", alpha=0.5, weight='ultralight')
ax.text(21.3, -0.355, "ETTIN, STM", alpha=0.5, weight='ultralight')
ax.text(12.2, 0.36, "AP1, LFY", alpha=0.5, weight='ultralight')
plt.xticks(rotation=90)
......@@ -1123,7 +1134,7 @@ def plot_heatmap(ress, tss, t):
gs, gs, vals_annot = matrixify_df(invert_dlist(dict(d)), seg.geneNms)
plotHeatMap(vals, gs, gs, vals_annot, (-0.4, 0.4))
plt.savefig("grates_gene_pairs_t{t}.svg".format(t=t), dpi=300,
plt.savefig("grates_gene_pairs_t{t}.svg".format(t=str(t)), dpi=300,
bbox_inches='tight')
fn = plotRegions(t, tss[t], d_)
......@@ -1230,8 +1241,8 @@ def plot_res_combs_all_tpoints(res):
def go():
tss, linss = lin.mkSeries1(d="../data/FM1/tv/",
dExprs="../data/geneExpression/",
linDataLoc="../data/FM1/tracking_data/",
ft=lambda t: t in {10, 40, 96, 120, 132})
linDataLoc="../data/FM1/tracking_data/",
ft=lambda t: t in {10, 40, 96, 120, 132})
lin.filterL1_st(tss)
ress = go_combs(tss, linss, seg.geneNms, fgr)
......@@ -1243,7 +1254,7 @@ def go():
t=132
ts = tss[t]
g = GPairRegions(t, ts, 'ETTIN', 'STM')
g1 = GPairRegions(t, ts, 'SEP1', 'LFY')
g1 = GPairRegions(t, ts, 'AP1', 'LFY')
g.plot()
g.plot_distr()
......@@ -1251,6 +1262,24 @@ def go():
g1.plot()
g1.plot_distr()
def go_regions():
tss, linss = lin.mkSeries1(d="../data/FM1/tv/",
dExprs="../data/geneExpression/",
linDataLoc="../data/FM1/tracking_data/",
ft=lambda t: t in {10, 40, 96, 120, 132})
lin.filterL1_st(tss)
t=132
ts = tss[t]
g = GPairRegions(t, ts, 'MP', 'LFY')
g1 = GPairRegions(t, ts, 'REV', 'LFY')
g2 = GPairRegions(t, ts, 'ANT', 'LFY')
g3 = GPairRegions(t, ts, 'PHB_PHV', 'LFY')
g.plot()
g1.plot()
g2.plot()
g3.plot()
def go_():
tss, linss = lin.mkSeriesIm0(dataDir="../data/",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment