def make_montage_rasters(simulation): """Make montage of rasters. :simulation: simulation to make montage for :returns: nothing """ print("Generating raster montage for {}".format(simulation)) output_file = ( "{}-raster-lpz_c_E-p_lpz_E-montage.png".format(simulation) ) f_glob = "{}-raster-lpz_c_E-p_lpz_E*.png".format(simulation) file_list = natsorted(glob.glob(f_glob)) args = [] for afile in file_list: if os.path.isfile(afile): args.append(afile) args += [ "-tile", "{}x{}".format(len(file_list), 1), "-geometry", "+2+2", output_file ] make_montage(args, output_file)
def make_montage_totals(sim): """Make main total montages :sim: simulation id :returns: nothing """ print("Generating main structural plasticity graphs") for nrn in ["E", "I"]: # input conductances vs time from different regions output_file = ("{}-structural-plasticity-{}-montage.png".format( sim, nrn)) args = [] for i in range(0, 4): fname = "{}-growth-curves-{}.png".format(sim, nrn) args.append(fname) for gps in [ "02-calcium", "05-se-all-totals", "05-se-all-means", ]: for region in ["lpz_c", "lpz_b", "p_lpz", "o"]: fname = "{}-{}-{}_{}.png".format(sim, gps, region, nrn) args.append(fname) args += ["-tile", "4x4", "-geometry", "+2+2", output_file] make_montage(args, output_file)
def make_montage_grid_plots(simulation): """Make montage of firing rate grid plots. :simulation: simulation to make montage for :returns: nothing """ print("Generating firing rate grid plot montage for {}".format(simulation)) output_file = ( "{}-firing-rate-grid-plots-montage.png".format(simulation) ) f_glob_E = "{}-firing-rates-grid-plot-E*.png".format(simulation) f_glob_I = "{}-firing-rates-grid-plot-I*.png".format(simulation) file_list_E = natsorted(glob.glob(f_glob_E)) file_list_I = natsorted(glob.glob(f_glob_I)) args = [] for afile in file_list_E + file_list_I: if os.path.isfile(afile): args.append(afile) args += [ "-tile", "{}x{}".format(len(file_list_E), 2), "-geometry", "+2+2", output_file ] make_montage(args, output_file)
def make_montages_hists(sim): """Make montage of snapshots: histograms :sim: simulation to make montage of :returns: TODO """ args = [] output_file = ("{}-02-calcium-hist-montage.png".format(sim)) for nrn in ["E", "I"]: f_glob = ("{}-02-calcium-hist-{}-*.png".format(sim, nrn)) file_list = natsorted(glob.glob(f_glob)) if not file_list: print("Component files not found. Skipping") return for afile in file_list: if os.path.isfile(afile): args.append(afile) cols = len(args) / 2 args += [ "-tile", "{}x{}".format(int(cols), 2), "-geometry", "+2+2", output_file ] make_montage(args, output_file)
def make_montages_hists(sim): """Make montage of snapshots: histograms :sim: simulation to make montage of :returns: TODO """ for nrn in ["E", "I"]: for ty in ["all", "con"]: args = [] output_file = ("{}-05-se-hist-{}-montage-{}.png".format( sim, ty, nrn)) f_glob = ("{}-05-se-ax-hist-{}-{}*.png".format(sim, ty, nrn)) file_list = natsorted(glob.glob(f_glob)) if not file_list: print("Component files not found. Skipping") return for afile in file_list: if os.path.isfile(afile): args.append(afile) f_glob = ("{}-05-se-denE-hist-{}-{}*.png".format(sim, ty, nrn)) file_list = natsorted(glob.glob(f_glob)) if not file_list: print("Component files not found. Skipping") return for afile in file_list: if os.path.isfile(afile): args.append(afile) f_glob = ("{}-05-se-denI-hist-{}-{}*.png".format(sim, ty, nrn)) file_list = natsorted(glob.glob(f_glob)) if not file_list: print("Component files not found. Skipping") return for afile in file_list: if os.path.isfile(afile): args.append(afile) cols = len(args) / 3 args += [ "-tile", "{}x{}".format(int(cols), 3), "-geometry", "+2+2", output_file ] make_montage(args, output_file)
def make_montage_firng_rate_plots(simulation): """Make montage of firing rate vs time plots. :simulation: simulation to make montage for :returns: nothing """ print("Generating firing rate plots montage for {}".format(simulation)) output_file = ( "{}-firing-rate-E-I-montage.png".format(simulation) ) args = [] args += [ "{}-mean-firing-rates-all-E-zoomed.png".format(simulation), "{}-mean-firing-rates-all-I-zoomed.png".format(simulation), "-tile", "1x2", "-geometry", "+2+2", output_file ] if os.path.isfile(args[0]): make_montage(args, output_file) else: print("Files not found. Skipping firing rate I-E montage.") # regions output_file = ( "{}-firing-rate-regions-montage.png".format(simulation) ) args = [] args += [ "{}-mean-firing-rates-lpz_c_I-E-zoomed.png".format(simulation), "{}-mean-firing-rates-lpz_b_I-E-zoomed.png".format(simulation), "{}-mean-firing-rates-p_lpz_I-E-zoomed.png".format(simulation), "{}-mean-firing-rates-o_I-E-zoomed.png".format(simulation), "-tile", "1x4", "-geometry", "+2+2", output_file ] if os.path.isfile(args[0]): make_montage(args, output_file) else: print("Files not found. Skipping region montage.")
def make_montage_conductance_hists(sim): """Make montage of conductance time lapse histogram plots. :sim: sim to make montage for :returns: nothing """ print("Generating firing rate grid plot montage for {}".format(sim)) output_file = ("{}-08-conductance-hist-time-lapse-montage.png".format(sim)) args = [] for syn in ["EE", "IE", "EI", "II"]: f_glob = "{}-08-conductance-hist-{}-*.png".format(sim, syn) file_list = natsorted(glob.glob(f_glob)) for afile in file_list: if os.path.isfile(afile): args.append(afile) cols = len(args) / 4 args += [ "-tile", "{}x{}".format(int(cols), 4), "-geometry", "+2+2", output_file ] make_montage(args, output_file)
def make_montage_total_conductances(sim): """Make montages of total conductances to regions. :sim: sim timestamp :returns: nothing """ for nrn in ["E", "I"]: # input conductances vs time from different regions output_file = ("{}-75-conductances-{}-montage.png".format(sim, nrn)) args = [] for gps in [ "02-calcium", "08-total-conductances-E-to", "08-total-conductances-I-to", "08-mean-conductances-E-to", "08-mean-conductances-I-to" ]: for region in ["lpz_c", "lpz_b", "p_lpz", "o"]: fname = "{}-{}-{}_{}.png".format(sim, gps, region, nrn) args.append(fname) args += ["-tile", "4x5", "-geometry", "+2+2", output_file] make_montage(args, output_file) # input conductances from different regions: histograms output_file = ("{}-75-conductances-histograms-{}-montage.png".format( sim, nrn)) args = [] for gps in [ "02-calcium", "081-conductance-clustered-histograms-E-to", "081-conductance-clustered-histograms-I-to", "081-conductance-rowstacked-histograms-E-to", "081-conductance-rowstacked-histograms-I-to", ]: for region in ["lpz_c", "lpz_b", "p_lpz", "o"]: fname = "{}-{}-{}_{}.png".format(sim, gps, region, nrn) args.append(fname) args += ["-tile", "4x5", "-geometry", "+2+2", output_file] make_montage(args, output_file) # net conductances to different regions output_file = ("{}-75-net-conductances-{}-montage.png".format( sim, nrn)) args = [] for gps in [ "02-calcium", "08-net-regional-conductances-to", "08-net-conductances-to", "08-net-conductances-slope-to" ]: for region in ["lpz_c", "lpz_b", "p_lpz", "o"]: fname = "{}-{}-{}_{}.png".format(sim, gps, region, nrn) args.append(fname) args += ["-tile", "4x4", "-geometry", "+2+2", output_file] make_montage(args, output_file)
def neuron_metrics(simlist, timestamp): """Make the neuron metrics montage :simlist: list of simulations :timestamp: time at which montages are generated :returns: nothing """ print("Generating neuron metrics montage") # Each simulation gets a column num_cols = len(simlist) graphs = [ "02-calcium", "05-se-all" ] regions = ["lpz_c_E", "lpz_b_E", "p_lpz_E", "o_E"] regions += ["lpz_c_I", "lpz_b_I", "p_lpz_I", "o_I"] for region in regions: output_file = ( "{}-multi-sim-neuron-metrics-{}-montage.png".format( timestamp, region ) ) print("Generating {}...".format(output_file)) args = [] # Add growth curves on top gcs = ['growth-curves-E', 'growth-curves-I'] for gc in gcs: for sim in simlist: fname = ( os.path.join(sim, "{}-{}.png".format( sim, gc )) ) if os.path.isfile(fname): args.append(fname) else: print( "{}: file not found. Exiting.".format( fname ), file=sys.stderr ) sys.exit(-2) for graph in graphs: for sim in simlist: fname = ( os.path.join(sim, "{}-{}-{}.png".format( sim, graph, region )) ) if os.path.isfile(fname): args.append(fname) else: print( "{}: file not found. Exiting.".format( fname ), file=sys.stderr ) sys.exit(-2) # Final bits args += [ "-title", "'{}'".format( ", ".join(str(sim) for sim in simlist) ), "-tile", "{}x{}".format(num_cols, len(graphs) + len(gcs)), "-pointsize", "28", "-font", "OpenSans", "-geometry", "+2+2", output_file ] make_montage(args, output_file)