diff --git a/figures/Schmidt2018/.ipynb_checkpoints/Fig4_connectivity-checkpoint.py b/figures/Schmidt2018/.ipynb_checkpoints/Fig4_connectivity-checkpoint.py
new file mode 100644
index 0000000000000000000000000000000000000000..b724915930e2ac27dbe4600e9ffaa3b14a2fccd2
--- /dev/null
+++ b/figures/Schmidt2018/.ipynb_checkpoints/Fig4_connectivity-checkpoint.py
@@ -0,0 +1,237 @@
+import json
+import numpy as np
+import matplotlib.pyplot as pl
+import os
+
+from helpers import area_list, datapath
+from matplotlib import gridspec
+from matplotlib.colors import LogNorm
+from matplotlib.ticker import FixedLocator
+from matplotlib import rc_file
+from multiarea_model import MultiAreaModel
+from plotcolors import myblue
+from scipy import stats
+
+rc_file('plotstyle.rc')
+
+"""
+Figure layout
+"""
+nrows = 2
+ncols = 2
+width = 6.8556
+panel_wh_ratio = 0.7 * (1. + np.sqrt(5)) / 2.  # golden ratio
+
+height = width / panel_wh_ratio * float(nrows) / ncols
+print(width, height)
+pl.rcParams['figure.figsize'] = (width, height)
+
+fig = pl.figure()
+axes = {}
+
+gs1 = gridspec.GridSpec(2, 2)
+gs1.update(left=0.06, right=0.95, top=0.95, bottom=0.1, wspace=0.1, hspace=0.3)
+
+axes['A'] = pl.subplot(gs1[:1, :1])
+axes['B'] = pl.subplot(gs1[:1, 1:2])
+axes['D'] = pl.subplot(gs1[1:2, 1:2])
+
+pos = axes['A'].get_position()
+pos2 = axes['D'].get_position()
+axes['C'] = pl.axes([pos.x0 + 0.01, pos2.y0, pos.x1 - pos.x0 - 0.025, 0.23])
+
+print(pos.x1 - pos.x0 - 0.025)
+
+labels = ['A', 'B', 'C', 'D']
+for label in labels:
+    if label in ['C']:
+        label_pos = [-0.045, 1.18]
+    else:
+        label_pos = [-0.2, 1.04]
+    pl.text(label_pos[0], label_pos[1], r'\bfseries{}' + label,
+            fontdict={'fontsize': 10, 'weight': 'bold',
+                      'horizontalalignment': 'left', 'verticalalignment':
+                      'bottom'}, transform=axes[label].transAxes)
+
+"""
+Load data
+"""
+M = MultiAreaModel({})
+
+with open(os.path.join(datapath, 'viscortex_processed_data.json'), 'r') as f:
+    proc = json.load(f)
+with open(os.path.join(datapath, 'viscortex_raw_data.json'), 'r') as f:
+    raw = json.load(f)
+
+FLN_Data_FV91 = proc['FLN_Data_FV91']
+
+cocomac_data = raw['cocomac_data']
+median_distance_data = raw['median_distance_data']
+
+cocomac = np.zeros((32, 32))
+conn_matrix = np.zeros((32, 32))
+for i, area1 in enumerate(area_list[::-1]):
+    for j, area2 in enumerate(area_list):
+        if M.K_areas[area1][area2] > 0. and area2 in cocomac_data[area1]:
+            cocomac[i][j] = 1.
+        if area2 in FLN_Data_FV91[area1]:
+            conn_matrix[i][j] = FLN_Data_FV91[area1][area2]
+
+"""
+Panel A: CoCoMac Data
+"""
+ax = axes['A']
+ax.yaxis.set_ticks_position("left")
+ax.xaxis.set_ticks_position("bottom")
+
+ax.set_aspect(1. / ax.get_data_ratio())
+ax.yaxis.set_ticks_position("none")
+ax.xaxis.set_ticks_position("none")
+
+masked_matrix = np.ma.masked_values(cocomac, 0.0)
+cmap = pl.cm.binary
+cmap.set_bad('w', 1.0)
+
+x = np.arange(0, len(area_list) + 1)
+y = np.arange(0, len(area_list[::-1]) + 1)
+X, Y = np.meshgrid(x, y)
+
+ax.set_xticks([i + 0.5 for i in np.arange(0, len(area_list) + 1, 1)])
+ax.set_xticklabels(area_list, rotation=90, size=6.)
+
+ax.set_yticks([i + 0.5 for i in np.arange(0, len(area_list) + 1, 1)])
+ax.set_yticklabels(area_list[::-1], size=6.)
+
+ax.set_ylabel('Target area')
+ax.set_xlabel('Source area')
+
+im = ax.pcolormesh(masked_matrix, cmap=cmap,
+                   edgecolors='None', vmin=0., vmax=1.)
+
+t = FixedLocator([])
+cbar = pl.colorbar(im, ticks=t, fraction=0.046, ax=ax)
+cbar.set_alpha(0.)
+cbar.remove()
+
+"""
+Panel B: Data from Markov et al. (2014) "A weighted and directed
+interareal connectivity matrix for macaque cerebral cortex."
+Cerebral Cortex, 24(1), 17–36.
+"""
+ax = axes['B']
+ax.set_aspect(1. / ax.get_data_ratio())
+ax.yaxis.set_ticks_position("none")
+ax.xaxis.set_ticks_position("none")
+
+masked_matrix = np.ma.masked_values(conn_matrix, 0.0)
+cmap = pl.get_cmap('inferno')
+cmap.set_bad('w', 1.0)
+
+x = np.arange(0, len(area_list) + 1)
+y = np.arange(0, len(area_list[::-1]) + 1)
+X, Y = np.meshgrid(x, y)
+
+ax.set_xticks([i + 0.5 for i in np.arange(0, len(area_list) + 1, 1)])
+ax.set_xticklabels(area_list, rotation=90, size=6.)
+
+ax.set_yticks([i + 0.5 for i in np.arange(0, len(area_list) + 1, 1)])
+ax.set_yticklabels(area_list[::-1], size=6.)
+
+im = ax.pcolormesh(masked_matrix, cmap=cmap,
+                   edgecolors='None', norm=LogNorm(vmin=1e-6, vmax=1.))
+
+t = FixedLocator([1e-6, 1e-4, 1e-2, 1])
+cbar = pl.colorbar(im, ticks=t, fraction=0.046, ax=ax)
+cbar.set_alpha(0.)
+
+"""
+Panel C: Exponential decay of FLN with distance
+"""
+FLN_values_FV91 = np.array([])
+distances_FV91 = np.array([])
+
+for target_area in FLN_Data_FV91:
+    for source_area in FLN_Data_FV91[target_area]:
+        if target_area in median_distance_data and source_area in median_distance_data:
+            if FLN_Data_FV91[target_area][source_area]:
+                FLN_values_FV91 = np.append(FLN_values_FV91, FLN_Data_FV91[
+                                            target_area][source_area])
+                distances_FV91 = np.append(distances_FV91, median_distance_data[
+                                           target_area][source_area])
+
+# Linear fit of distances vs. log FLN
+print("\n \n Linear fit to logarithmic values")
+gradient, intercept, r_value, p_value, std_err = stats.linregress(
+    distances_FV91, np.log(FLN_values_FV91))
+print("Raw parameters: ", gradient, intercept)
+print("Transformed parameters: ", -gradient, np.exp(intercept))
+print('r_value**2', r_value ** 2)
+print('p_value', p_value)
+print('std_err', std_err)
+
+ax = axes['C']
+ax.yaxis.set_ticks_position("left")
+ax.xaxis.set_ticks_position("bottom")
+
+ax.yaxis.set_ticks_position("left")
+ax.xaxis.set_ticks_position("bottom")
+
+ax.spines['right'].set_color('none')
+ax.spines['top'].set_color('none')
+ax.yaxis.set_ticks_position("left")
+ax.xaxis.set_ticks_position("bottom")
+
+ax.plot(distances_FV91, np.log10(FLN_values_FV91), '.', color=myblue)
+x = np.arange(np.min(distances_FV91), np.max(distances_FV91), 1)
+ax.plot(x, (intercept + gradient * x) / np.log(10), linewidth=2.0,
+        color='Black', label='Linear regression fit')
+
+ax.set_xlabel('Distance (mm)', labelpad=7)
+ax.set_ylabel(r'$\log(FLN)$')
+ax.set_yticks([-6, -4, -2, 0])
+
+print("log fit")
+print(np.corrcoef(gradient * distances_FV91 + intercept, np.log(FLN_values_FV91))[0][1])
+
+"""
+Panel D: Resulting connectivity matrix
+"""
+conn_matrix = np.zeros((32, 32))
+for i, area1 in enumerate(area_list[::-1]):
+    for j, area2 in enumerate(area_list):
+        conn_matrix[i][j] = M.K_areas[area1][
+            area2] / np.sum(list(M.K_areas[area1].values()))
+
+ax = axes['D']
+ax.yaxis.set_ticks_position("none")
+ax.xaxis.set_ticks_position("none")
+
+ax.set_aspect(1. / ax.get_data_ratio())
+
+masked_matrix = np.ma.masked_values(conn_matrix, 0.0)
+cmap = pl.get_cmap('inferno')
+cmap.set_bad('w', 1.0)
+
+x = np.arange(0, len(area_list) + 1)
+y = np.arange(0, len(area_list[::-1]) + 1)
+X, Y = np.meshgrid(x, y)
+
+ax.set_xticks([i + 0.5 for i in np.arange(0, len(area_list) + 1, 1)])
+ax.set_xticklabels(area_list, rotation=90, size=6.)
+
+ax.set_yticks([i + 0.5 for i in np.arange(0, len(area_list) + 1, 1)])
+ax.set_yticklabels(area_list[::-1], size=6.)
+
+ax.set_ylabel('Target area')
+ax.set_xlabel('Source area')
+im = ax.pcolormesh(masked_matrix, cmap=cmap,
+                   edgecolors='None', norm=LogNorm(vmin=1e-6, vmax=1.))
+
+t = FixedLocator([1e-6, 1e-4, 1e-2, 1])
+cbar = pl.colorbar(im, ticks=t, fraction=0.046, ax=ax)
+cbar.set_alpha(0.)
+
+"""
+Save figure
+"""
+pl.savefig('Fig4_connectivity.eps')