task = sys.argv[5] append_directory = sys.argv[6] """ Set directories """ current_path = os.getcwd() parent_path = os.path.abspath(os.path.join(current_path, os.pardir)) input_dir = parent_path + '/data/' output_dir = parent_path + '/outputs/' """ Load data """ data = Data(input_dir, output_dir) sc, hmap, fc_obj = load_data(data) fc_obj = fisher_z(subdiag(fc_obj)) rejection_threshold = 1.0 - pearsonr(fc_obj, subdiag(sc))[0] if model_type == 'homogeneous': from optimization import Homogeneous pmc_opt = Homogeneous(input_dir, output_dir + append_directory + '/') pmc_opt.initialize(sc, fc=fc_obj, gradient=None, n_particles=n_samples, rejection_threshold=rejection_threshold, norm_sc=True) else: from optimization import Heterogeneous
def distance_function(self, synthetic_data): fit = pearsonr(self.fc_objective, fisher_z(synthetic_data))[0] penalty = (self.fc_objective.mean() - synthetic_data.mean())**2 distance = 1.0 - (fit - penalty) return distance
mpl.rcParams['axes.labelsize'] = 26.0 mpl.rcParams['axes.titlesize'] = 26.0 mpl.rcParams['xtick.labelsize'] = 20.0 mpl.rcParams['ytick.labelsize'] = 20.0 fig, axes = plt.subplots(2, 3, figsize=(30, 15)) #import pdb; pdb.set_trace() matrix_plot(axes[0][0], fc_obj, 'RdBu_r') axes[0][0].set_title('Empirical FC') matrix_plot(axes[0][1], homogeneous.get('corr_bold'), 'RdBu_r') axes[0][1].set_title('Homogeneous model FC') matrix_plot(axes[0][2], heterogeneous.get('corr_bold'), 'RdBu_r') axes[0][2].set_title('Heterogeneous model FC') reg_plot(axes[1][0], fisher_z(subdiag(homogeneous.get('corr_bold'))), fisher_z(subdiag(fc_obj))) axes[1][0].set_title('Homogeneous model FC fit') reg_plot(axes[1][1], fisher_z(subdiag(heterogeneous.get('corr_bold'))), fisher_z(subdiag(fc_obj))) axes[1][1].set_title('Heterogeneous model FC fit') axes[1][2].bar(np.arange(5), theta_heterogeneous.mean(1)[:5]) axes[1][2].set_title('Optimal model parameters') axes[1][2].set_xticks(np.arange(5) + 0.5) axes[1][2].set_xticklabels( ['wEI min', 'wEI scale', 'wEE min', 'wEE scale', 'g'], minor=False) plt.tight_layout() plt.show() plt.savefig('Example_model_fit.png', dpi=100)