Ejemplo n.º 1
0
def main(run_dir, cluster_file, genes=None):
    if genes is None:
        genes = [4,5,7,11]

    funcs = [get_gene_fn(i) for i in genes]
    labels = [genome.get_label(i, abbr=True) for i in genes]

    plot(cluster_file, funcs, labels, 
         plot_title="Representative Gene Values", run_dir=run_dir)
Ejemplo n.º 2
0
def main(run_dir, cluster_file, genes=None):
    if genes is None:
        genes = [4, 5, 7, 11]

    funcs = [get_gene_fn(i) for i in genes]
    labels = [genome.get_label(i, abbr=True) for i in genes]

    plot(cluster_file,
         funcs,
         labels,
         plot_title="Representative Gene Values",
         run_dir=run_dir)
Ejemplo n.º 3
0
        root = 'plots/'
        root += os.path.basename(cluster)
        root = root.rsplit('.', 1)[0]
        outfile = "%s_%s.png" % (root, options.mode)

    if options.mode == 'complexity':
        plot(cluster,
             outfile,
             filter=lambda a: a.complexity,
             func=lambda a: a.complexity,
             cmap=options.cmap)
    elif options.mode == 'fitness':
        plot(cluster,
             outfile,
             filter=lambda a: a.fitness,
             func=lambda a: a.fitness,
             cmap=options.cmap)
    elif options.gene is not None:
        if not options.outfile:
            outfile = "%s_%s%d_%s.png" % (root, options.mode, options.gene,
                                          genome.get_label(options.gene))

        plot(cluster,
             outfile,
             func=lambda a: a.genome[options.gene],
             plot_title=genome.get_label(options.gene),
             cmap=options.cmap)
    else:
        parser.print_help()
        print "\n*** ERROR: Please specify an action! ***"
Ejemplo n.º 4
0
def plot(genes,
         filename="plot.png",
         plot_title='',
         cmap='Paired',
         draw_legend=False):
    # get population
    p = get_population()

    # initialize population count
    pops = [[] for i in xrange(30000)]
    for a in p:
        for step in range(a.birth, a.death):
            pops[step].append(a)

    # initialize plot variables
    cmap = pylab.cm.jet
    lines = []

    # build plot for each gene
    for i, gene in enumerate(genes):

        # initialize line variables
        data = []
        err_up = []
        err_down = []

        # calculate points for each time step
        for step in xrange(30000):
            datum = [agent.genome[gene] for agent in pops[step]]
            mean = sum(datum) / len(pops[step])
            stderr = np.std(datum) / sqrt(len(pops[step]))

            # calculate 1 std dev error bars
            err_up.append(min(mean + np.std(datum), 255))
            err_down.append(max(mean - np.std(datum), 0))
            data.append(mean)

            # TODO: Implement stderr/stddev toggle
            """
            # calculate 1 std err error bars
            err_up.append(min(mean+stderr, 255))
            err_down.append(max(mean-stderr,0))
            """

        color = cmap(float(i) / len(genes))

        # use error bars
        fill = pylab.fill_between(range(0, 30000, 5),
                                  err_up[::5],
                                  err_down[::5],
                                  color=color,
                                  alpha=0.35,
                                  linewidth=0,
                                  edgecolor=None,
                                  facecolor=color)
        # plot line
        line = pylab.plot(range(30000), data, color=color)

        # append to list of lines for use with data legend
        lines.append(line)

    # plot all the things
    pylab.title("Size and Internal Neural Group Count (INGC)", weight='black')
    pylab.ylim(0, 255)
    pylab.xlim(0, 30000)
    pylab.ylabel("Raw Gene Value", weight='bold')
    pylab.xlabel("Time", weight='bold')
    pylab.legend(lines, [get_label(gene) for gene in genes],
                 loc='center right')
    pylab.figtext(0, .948, '(d)', size=6, weight='black')
    pylab.savefig("plots/test.pdf", dpi=300)
Ejemplo n.º 5
0
def plot(genes, filename="plot.png", plot_title='', cmap='Paired', 
         draw_legend=False):
    # get population
    p = get_population()

    # initialize population count
    pops = [[] for i in xrange(30000)]
    for a in p:
        for step in range(a.birth, a.death):
            pops[step].append(a)

    # initialize plot variables
    cmap = pylab.cm.jet
    lines=[]

    # build plot for each gene
    for i, gene in enumerate(genes):

        # initialize line variables
        data = []
        err_up = []
        err_down = []
        
        # calculate points for each time step
        for step in xrange(30000):
            datum = [agent.genome[gene] for agent in pops[step]]
            mean = sum(datum) / len(pops[step])
            stderr = np.std(datum) / sqrt(len(pops[step]))

            # calculate 1 std dev error bars
            err_up.append(min(mean+np.std(datum), 255))
            err_down.append(max(mean-np.std(datum),0))
            data.append(mean)
            
            # TODO: Implement stderr/stddev toggle
            """
            # calculate 1 std err error bars
            err_up.append(min(mean+stderr, 255))
            err_down.append(max(mean-stderr,0))
            """
        
        color = cmap(float(i)/len(genes))

        # use error bars
        fill = pylab.fill_between(range(0,30000,5), err_up[::5], err_down[::5], 
                                  color=color, alpha=0.35, linewidth=0,
                                  edgecolor=None, facecolor=color)
        # plot line
        line = pylab.plot(range(30000), data, color=color)

        # append to list of lines for use with data legend
        lines.append(line)

    # plot all the things
    pylab.title("Size and Internal Neural Group Count (INGC)", weight='black')
    pylab.ylim(0, 255)
    pylab.xlim(0, 30000)
    pylab.ylabel("Raw Gene Value", weight='bold')
    pylab.xlabel("Time", weight='bold')
    pylab.legend(lines, [get_label(gene) for gene in genes], loc='center right')
    pylab.figtext(0,.948, '(d)', size=6, weight='black')
    pylab.savefig("plots/test.pdf", dpi=300)
Ejemplo n.º 6
0
def calc_entropy(gene):
    e = 1 - gene_entropy(gene, N)
    return (gene, e, get_label(gene))
Ejemplo n.º 7
0
    ],
           fontsize=8)
    legend([b[0] for b in bars], labels, loc='upper left', prop=dict(size=6))

    savefig(filename, dpi=200)


if __name__ == '__main__':
    import sys
    from optparse import OptionParser

    usage = "usage: %prog [options] cluster_file"
    parser = OptionParser(usage)
    options, args = parser.parse_args()

    if args:
        cluster = args[-1]

    plot(cluster,
         funcs=(lambda x: Agent(x).genome[4] / 255.0,
                lambda x: Agent(x).genome[5] / 255.0,
                lambda x: Agent(x).genome[7] / 255.0,
                lambda x: Agent(x).genome[11] / 255.0,
                lambda x: Agent(x).complexity),
         labels=[
             genome.get_label(4),
             genome.get_label(5),
             genome.get_label(7),
             genome.get_label(11), 'complexity'
         ])
Ejemplo n.º 8
0
def calc_entropy(gene):
    e = 1- gene_entropy(gene, N)
    return (gene, e, get_label(gene))
Ejemplo n.º 9
0
                for i, clust in enumerate(clusters)],
           fontsize=8)
    legend([b[0] for b in bars], labels, loc='upper left', prop=dict(size=6)) 

    savefig(filename, dpi=200)


if __name__ == '__main__':
    import sys
    from optparse import OptionParser

    usage = "usage: %prog [options] cluster_file"
    parser = OptionParser(usage)
    options, args = parser.parse_args()

    if args:
        cluster = args[-1]

    plot(cluster, funcs=(lambda x: Agent(x).genome[4] / 255.0, 
                         lambda x: Agent(x).genome[5] / 255.0,
                         lambda x: Agent(x).genome[7] / 255.0,
                         lambda x: Agent(x).genome[11] / 255.0,
                         lambda x: Agent(x).complexity),
         labels=[genome.get_label(4),
                 genome.get_label(5),
                 genome.get_label(7),
                 genome.get_label(11),
                 'complexity'
                 ])

Ejemplo n.º 10
0
    else:
        #autoname rendering
        if not os.path.isdir('plots'):
            os.mkdir('plots')

        root = 'plots/'
        root += os.path.basename(cluster)
        root = root.rsplit('.', 1)[0]
        outfile = "%s_%s.png" % (root, options.mode)

    if options.mode == 'complexity': 
        plot(cluster, outfile, filter=lambda a: a.complexity,
             func=lambda a: a.complexity, cmap=options.cmap)
    elif options.mode == 'fitness':
        plot(cluster, outfile, filter=lambda a: a.fitness,
             func=lambda a: a.fitness, cmap=options.cmap)
    elif options.gene is not None:
        if not options.outfile:
            outfile = "%s_%s%d_%s.png" % (root, options.mode, options.gene,
                                          genome.get_label(options.gene))

        plot(cluster, outfile,
             func=lambda a: a.genome[options.gene],
             plot_title=genome.get_label(options.gene), cmap=options.cmap)
    else:
        parser.print_help()
        print "\n*** ERROR: Please specify an action! ***"