コード例 #1
0
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)
コード例 #2
0
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)
コード例 #3
0
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)
コード例 #4
0
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)
コード例 #5
0
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)
コード例 #6
0
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.")
コード例 #7
0
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)
コード例 #8
0
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)
コード例 #9
0
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)