In [ ]:
from om import base, settings
from om.components import *
from om.data import *
from om.util import *

import pandas as pd
import numpy as np
import math,cobra

ome = base.Session()
#model = cobra.io.read_sbml_model('/Users/dbuser/Dropbox/om_data/annotation/iJO1366.xml')

In [ ]:
ome.query(GeneGroup).all()

In [2]:
from IPython.display import display
from IPython.html import widgets as W
from IPython.utils import traitlets as T

class HeatmapWidget(W.DOMWidget):
    _view_name = T.Unicode('HeatmapView', sync=True)
    heatmap_data = T.Unicode(sync=True)
    row_labels = T.Unicode(sync=True)
    col_labels = T.Unicode(sync=True)
    html_style = T.Unicode(sync=True)

In [3]:
ged = GeneExpressionData
x = ome.query(ged).filter(and_(ged.gene_name.in_(['sucA','sucB','sucC','sucD','frdA','frdB','frdC','frdD','gapA']),
                           ged.dataset_type == 'array_experiment')).all()

In [4]:
x


Out[4]:
[Gene: (b0726, sucA), Value:  8.87, std: 0.20, Condition: glucose, NH4Cl, anaerobic, Strain: wt, array_experiment,
 Gene: (b0726, sucA), Value: 13.67, std: 0.02, Condition: glucose, NH4Cl, anaerobic, Strain: delta-arcA, array_experiment,
 Gene: (b0726, sucA), Value: 13.28, std: 0.14, Condition: glucose, NH4Cl, anaerobic, Strain: delta-arcAfnr, array_experiment,
 Gene: (b0726, sucA), Value:  9.97, std: 0.76, Condition: glucose, NH4Cl, anaerobic, Strain: delta-fnr, array_experiment,
 Gene: (b0726, sucA), Value:  8.49, std: 0.09, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narL, array_experiment,
 Gene: (b0726, sucA), Value:  8.69, std: 0.16, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narLnarP, array_experiment,
 Gene: (b0726, sucA), Value:  8.74, std: 0.23, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narP, array_experiment,
 Gene: (b0727, sucB), Value:  9.84, std: 0.26, Condition: glucose, NH4Cl, anaerobic, Strain: wt, array_experiment,
 Gene: (b0727, sucB), Value: 13.90, std: 0.04, Condition: glucose, NH4Cl, anaerobic, Strain: delta-arcA, array_experiment,
 Gene: (b0727, sucB), Value: 13.64, std: 0.20, Condition: glucose, NH4Cl, anaerobic, Strain: delta-arcAfnr, array_experiment,
 Gene: (b0727, sucB), Value: 11.08, std: 0.54, Condition: glucose, NH4Cl, anaerobic, Strain: delta-fnr, array_experiment,
 Gene: (b0727, sucB), Value:  9.69, std: 0.12, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narL, array_experiment,
 Gene: (b0727, sucB), Value:  9.72, std: 0.10, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narLnarP, array_experiment,
 Gene: (b0727, sucB), Value:  9.78, std: 0.18, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narP, array_experiment,
 Gene: (b0728, sucC), Value: 10.77, std: 0.15, Condition: glucose, NH4Cl, anaerobic, Strain: wt, array_experiment,
 Gene: (b0728, sucC), Value: 14.50, std: 0.05, Condition: glucose, NH4Cl, anaerobic, Strain: delta-arcA, array_experiment,
 Gene: (b0728, sucC), Value: 14.50, std: 0.16, Condition: glucose, NH4Cl, anaerobic, Strain: delta-arcAfnr, array_experiment,
 Gene: (b0728, sucC), Value: 12.07, std: 0.41, Condition: glucose, NH4Cl, anaerobic, Strain: delta-fnr, array_experiment,
 Gene: (b0728, sucC), Value: 10.72, std: 0.04, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narL, array_experiment,
 Gene: (b0728, sucC), Value: 10.68, std: 0.03, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narLnarP, array_experiment,
 Gene: (b0728, sucC), Value: 10.78, std: 0.08, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narP, array_experiment,
 Gene: (b0729, sucD), Value:  5.88, std: 0.13, Condition: glucose, NH4Cl, anaerobic, Strain: wt, array_experiment,
 Gene: (b0729, sucD), Value: 11.41, std: 0.12, Condition: glucose, NH4Cl, anaerobic, Strain: delta-arcA, array_experiment,
 Gene: (b0729, sucD), Value: 11.16, std: 0.40, Condition: glucose, NH4Cl, anaerobic, Strain: delta-arcAfnr, array_experiment,
 Gene: (b0729, sucD), Value:  7.56, std: 0.73, Condition: glucose, NH4Cl, anaerobic, Strain: delta-fnr, array_experiment,
 Gene: (b0729, sucD), Value:  5.79, std: 0.05, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narL, array_experiment,
 Gene: (b0729, sucD), Value:  5.73, std: 0.07, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narLnarP, array_experiment,
 Gene: (b0729, sucD), Value:  5.79, std: 0.05, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narP, array_experiment,
 Gene: (b1779, gapA), Value: 15.26, std: 0.05, Condition: glucose, NH4Cl, anaerobic, Strain: wt, array_experiment,
 Gene: (b1779, gapA), Value: 15.20, std: 0.06, Condition: glucose, NH4Cl, anaerobic, Strain: delta-arcA, array_experiment,
 Gene: (b1779, gapA), Value: 15.07, std: 0.07, Condition: glucose, NH4Cl, anaerobic, Strain: delta-arcAfnr, array_experiment,
 Gene: (b1779, gapA), Value: 15.07, std: 0.06, Condition: glucose, NH4Cl, anaerobic, Strain: delta-fnr, array_experiment,
 Gene: (b1779, gapA), Value: 15.31, std: 0.02, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narL, array_experiment,
 Gene: (b1779, gapA), Value: 15.27, std: 0.02, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narLnarP, array_experiment,
 Gene: (b1779, gapA), Value: 15.31, std: 0.02, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narP, array_experiment,
 Gene: (b4151, frdD), Value:  7.53, std: 1.33, Condition: glucose, NH4Cl, anaerobic, Strain: wt, array_experiment,
 Gene: (b4151, frdD), Value:  5.54, std: 0.71, Condition: glucose, NH4Cl, anaerobic, Strain: delta-arcA, array_experiment,
 Gene: (b4151, frdD), Value:  4.73, std: 0.12, Condition: glucose, NH4Cl, anaerobic, Strain: delta-arcAfnr, array_experiment,
 Gene: (b4151, frdD), Value:  4.02, std: 0.62, Condition: glucose, NH4Cl, anaerobic, Strain: delta-fnr, array_experiment,
 Gene: (b4151, frdD), Value:  9.76, std: 0.32, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narL, array_experiment,
 Gene: (b4151, frdD), Value:  9.07, std: 0.23, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narLnarP, array_experiment,
 Gene: (b4151, frdD), Value:  8.50, std: 0.36, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narP, array_experiment,
 Gene: (b4152, frdC), Value:  4.63, std: 0.45, Condition: glucose, NH4Cl, anaerobic, Strain: wt, array_experiment,
 Gene: (b4152, frdC), Value:  3.66, std: 0.66, Condition: glucose, NH4Cl, anaerobic, Strain: delta-arcA, array_experiment,
 Gene: (b4152, frdC), Value:  2.58, std: 0.06, Condition: glucose, NH4Cl, anaerobic, Strain: delta-arcAfnr, array_experiment,
 Gene: (b4152, frdC), Value:  2.36, std: 0.09, Condition: glucose, NH4Cl, anaerobic, Strain: delta-fnr, array_experiment,
 Gene: (b4152, frdC), Value:  5.23, std: 0.28, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narL, array_experiment,
 Gene: (b4152, frdC), Value:  4.75, std: 0.21, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narLnarP, array_experiment,
 Gene: (b4152, frdC), Value:  5.11, std: 0.26, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narP, array_experiment,
 Gene: (b4153, frdB), Value:  9.59, std: 0.56, Condition: glucose, NH4Cl, anaerobic, Strain: wt, array_experiment,
 Gene: (b4153, frdB), Value:  8.70, std: 0.58, Condition: glucose, NH4Cl, anaerobic, Strain: delta-arcA, array_experiment,
 Gene: (b4153, frdB), Value:  7.41, std: 0.07, Condition: glucose, NH4Cl, anaerobic, Strain: delta-arcAfnr, array_experiment,
 Gene: (b4153, frdB), Value:  5.66, std: 0.66, Condition: glucose, NH4Cl, anaerobic, Strain: delta-fnr, array_experiment,
 Gene: (b4153, frdB), Value:  9.84, std: 0.20, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narL, array_experiment,
 Gene: (b4153, frdB), Value:  9.92, std: 0.05, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narLnarP, array_experiment,
 Gene: (b4153, frdB), Value: 10.19, std: 0.24, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narP, array_experiment,
 Gene: (b4154, frdA), Value: 11.04, std: 0.57, Condition: glucose, NH4Cl, anaerobic, Strain: wt, array_experiment,
 Gene: (b4154, frdA), Value: 10.09, std: 0.48, Condition: glucose, NH4Cl, anaerobic, Strain: delta-arcA, array_experiment,
 Gene: (b4154, frdA), Value:  9.40, std: 0.06, Condition: glucose, NH4Cl, anaerobic, Strain: delta-arcAfnr, array_experiment,
 Gene: (b4154, frdA), Value:  8.06, std: 0.84, Condition: glucose, NH4Cl, anaerobic, Strain: delta-fnr, array_experiment,
 Gene: (b4154, frdA), Value: 11.52, std: 0.33, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narL, array_experiment,
 Gene: (b4154, frdA), Value: 11.50, std: 0.10, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narLnarP, array_experiment,
 Gene: (b4154, frdA), Value: 11.77, std: 0.17, Condition: glucose, NH4Cl, anaerobic, Strain: delta-narP, array_experiment,
 Gene: (b0726, sucA), Value: 11.86, std: 0.10, Condition: fructose, NH4Cl, O2, Strain: delta-crp, array_experiment,
 Gene: (b0726, sucA), Value: 13.67, std: 0.08, Condition: fructose, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b0727, sucB), Value: 12.23, std: 0.06, Condition: fructose, NH4Cl, O2, Strain: delta-crp, array_experiment,
 Gene: (b0727, sucB), Value: 13.92, std: 0.04, Condition: fructose, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b0728, sucC), Value: 11.91, std: 0.03, Condition: fructose, NH4Cl, O2, Strain: delta-crp, array_experiment,
 Gene: (b0728, sucC), Value: 14.21, std: 0.03, Condition: fructose, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b0729, sucD), Value: 12.22, std: 0.03, Condition: fructose, NH4Cl, O2, Strain: delta-crp, array_experiment,
 Gene: (b0729, sucD), Value: 14.49, std: 0.03, Condition: fructose, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b1779, gapA), Value: 14.93, std: 0.01, Condition: fructose, NH4Cl, O2, Strain: delta-crp, array_experiment,
 Gene: (b1779, gapA), Value: 15.05, std: 0.04, Condition: fructose, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b4151, frdD), Value:  4.60, std: 0.27, Condition: fructose, NH4Cl, O2, Strain: delta-crp, array_experiment,
 Gene: (b4151, frdD), Value:  7.23, std: 1.11, Condition: fructose, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b4152, frdC), Value:  3.98, std: 0.17, Condition: fructose, NH4Cl, O2, Strain: delta-crp, array_experiment,
 Gene: (b4152, frdC), Value:  6.66, std: 1.32, Condition: fructose, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b4153, frdB), Value:  7.90, std: 0.29, Condition: fructose, NH4Cl, O2, Strain: delta-crp, array_experiment,
 Gene: (b4153, frdB), Value: 11.45, std: 0.91, Condition: fructose, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b4154, frdA), Value:  7.42, std: 0.19, Condition: fructose, NH4Cl, O2, Strain: delta-crp, array_experiment,
 Gene: (b4154, frdA), Value: 12.05, std: 0.45, Condition: fructose, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b0726, sucA), Value: 12.88, std: 0.06, Condition: glucose, NH4Cl, O2, Strain: delta-crp, array_experiment,
 Gene: (b0726, sucA), Value: 13.23, std: 0.18, Condition: glucose, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b0726, sucA), Value: 13.54, std: 0.12, Condition: glucose, NH4Cl, O2, Strain: delta-arcA, array_experiment,
 Gene: (b0726, sucA), Value: 13.23, std: 0.03, Condition: glucose, NH4Cl, O2, Strain: delta-arcAfnr, array_experiment,
 Gene: (b0726, sucA), Value: 12.78, std: 0.09, Condition: glucose, NH4Cl, O2, Strain: delta-fnr, array_experiment,
 Gene: (b0726, sucA), Value: 12.89, std: 0.05, Condition: glucose, NH4Cl, O2, Strain: delta-cra, array_experiment,
 Gene: (b0726, sucA), Value: 13.49, std: 0.06, Condition: glucose, NH4Cl, O2, Strain: delta-lrp, array_experiment,
 Gene: (b0726, sucA), Value: 12.17, std: 0.26, Condition: glucose, NH4Cl, O2, Strain: delta-purR, array_experiment,
 Gene: (b0727, sucB), Value: 13.10, std: 0.02, Condition: glucose, NH4Cl, O2, Strain: delta-crp, array_experiment,
 Gene: (b0727, sucB), Value: 13.54, std: 0.10, Condition: glucose, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b0727, sucB), Value: 13.71, std: 0.14, Condition: glucose, NH4Cl, O2, Strain: delta-arcA, array_experiment,
 Gene: (b0727, sucB), Value: 13.56, std: 0.07, Condition: glucose, NH4Cl, O2, Strain: delta-arcAfnr, array_experiment,
 Gene: (b0727, sucB), Value: 13.30, std: 0.12, Condition: glucose, NH4Cl, O2, Strain: delta-fnr, array_experiment,
 Gene: (b0727, sucB), Value: 13.35, std: 0.03, Condition: glucose, NH4Cl, O2, Strain: delta-cra, array_experiment,
 Gene: (b0727, sucB), Value: 13.64, std: 0.02, Condition: glucose, NH4Cl, O2, Strain: delta-lrp, array_experiment,
 Gene: (b0727, sucB), Value: 13.08, std: 0.08, Condition: glucose, NH4Cl, O2, Strain: delta-purR, array_experiment,
 Gene: (b0728, sucC), Value: 12.99, std: 0.02, Condition: glucose, NH4Cl, O2, Strain: delta-crp, array_experiment,
 Gene: (b0728, sucC), Value: 14.01, std: 0.25, Condition: glucose, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b0728, sucC), Value: 14.45, std: 0.08, Condition: glucose, NH4Cl, O2, Strain: delta-arcA, array_experiment,
 Gene: (b0728, sucC), Value: 14.47, std: 0.08, Condition: glucose, NH4Cl, O2, Strain: delta-arcAfnr, array_experiment,
 Gene: (b0728, sucC), Value: 13.96, std: 0.16, Condition: glucose, NH4Cl, O2, Strain: delta-fnr, array_experiment,
 Gene: (b0728, sucC), Value: 13.18, std: 0.05, Condition: glucose, NH4Cl, O2, Strain: delta-cra, array_experiment,
 Gene: (b0728, sucC), Value: 13.72, std: 0.03, Condition: glucose, NH4Cl, O2, Strain: delta-lrp, array_experiment,
 Gene: (b0728, sucC), Value: 12.97, std: 0.02, Condition: glucose, NH4Cl, O2, Strain: delta-purR, array_experiment,
 Gene: (b0729, sucD), Value: 13.26, std: 0.06, Condition: glucose, NH4Cl, O2, Strain: delta-crp, array_experiment,
 Gene: (b0729, sucD), Value: 11.71, std: 1.73, Condition: glucose, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b0729, sucD), Value: 11.57, std: 0.13, Condition: glucose, NH4Cl, O2, Strain: delta-arcA, array_experiment,
 Gene: (b0729, sucD), Value: 11.21, std: 0.24, Condition: glucose, NH4Cl, O2, Strain: delta-arcAfnr, array_experiment,
 Gene: (b0729, sucD), Value: 10.60, std: 0.39, Condition: glucose, NH4Cl, O2, Strain: delta-fnr, array_experiment,
 Gene: (b0729, sucD), Value: 13.35, std: 0.00, Condition: glucose, NH4Cl, O2, Strain: delta-cra, array_experiment,
 Gene: (b0729, sucD), Value: 13.88, std: 0.06, Condition: glucose, NH4Cl, O2, Strain: delta-lrp, array_experiment,
 Gene: (b0729, sucD), Value: 13.35, std: 0.00, Condition: glucose, NH4Cl, O2, Strain: delta-purR, array_experiment,
 Gene: (b1779, gapA), Value: 14.66, std: 0.02, Condition: glucose, NH4Cl, O2, Strain: delta-crp, array_experiment,
 Gene: (b1779, gapA), Value: 14.74, std: 0.22, Condition: glucose, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b1779, gapA), Value: 14.75, std: 0.11, Condition: glucose, NH4Cl, O2, Strain: delta-arcA, array_experiment,
 Gene: (b1779, gapA), Value: 14.95, std: 0.03, Condition: glucose, NH4Cl, O2, Strain: delta-arcAfnr, array_experiment,
 Gene: (b1779, gapA), Value: 14.78, std: 0.04, Condition: glucose, NH4Cl, O2, Strain: delta-fnr, array_experiment,
 Gene: (b1779, gapA), Value: 15.12, std: 0.02, Condition: glucose, NH4Cl, O2, Strain: delta-cra, array_experiment,
 Gene: (b1779, gapA), Value: 15.04, std: 0.09, Condition: glucose, NH4Cl, O2, Strain: delta-lrp, array_experiment,
 Gene: (b1779, gapA), Value: 15.12, std: 0.01, Condition: glucose, NH4Cl, O2, Strain: delta-purR, array_experiment,
 Gene: (b4151, frdD), Value:  4.41, std: 0.37, Condition: glucose, NH4Cl, O2, Strain: delta-crp, array_experiment,
 Gene: (b4151, frdD), Value:  4.11, std: 0.38, Condition: glucose, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b4151, frdD), Value:  3.27, std: 0.00, Condition: glucose, NH4Cl, O2, Strain: delta-arcA, array_experiment,
 Gene: (b4151, frdD), Value:  2.86, std: 0.34, Condition: glucose, NH4Cl, O2, Strain: delta-arcAfnr, array_experiment,
 Gene: (b4151, frdD), Value:  3.15, std: 0.00, Condition: glucose, NH4Cl, O2, Strain: delta-fnr, array_experiment,
 Gene: (b4151, frdD), Value: 11.15, std: 0.13, Condition: glucose, NH4Cl, O2, Strain: delta-cra, array_experiment,
 Gene: (b4151, frdD), Value:  7.80, std: 1.34, Condition: glucose, NH4Cl, O2, Strain: delta-lrp, array_experiment,
 Gene: (b4151, frdD), Value: 11.39, std: 0.72, Condition: glucose, NH4Cl, O2, Strain: delta-purR, array_experiment,
 Gene: (b4152, frdC), Value:  4.12, std: 0.08, Condition: glucose, NH4Cl, O2, Strain: delta-crp, array_experiment,
 Gene: (b4152, frdC), Value:  2.54, std: 0.36, Condition: glucose, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b4152, frdC), Value:  2.26, std: 0.01, Condition: glucose, NH4Cl, O2, Strain: delta-arcA, array_experiment,
 Gene: (b4152, frdC), Value:  2.25, std: 0.00, Condition: glucose, NH4Cl, O2, Strain: delta-arcAfnr, array_experiment,
 Gene: (b4152, frdC), Value:  2.25, std: 0.00, Condition: glucose, NH4Cl, O2, Strain: delta-fnr, array_experiment,
 Gene: (b4152, frdC), Value: 11.38, std: 0.08, Condition: glucose, NH4Cl, O2, Strain: delta-cra, array_experiment,
 Gene: (b4152, frdC), Value:  8.11, std: 1.75, Condition: glucose, NH4Cl, O2, Strain: delta-lrp, array_experiment,
 Gene: (b4152, frdC), Value: 11.52, std: 0.46, Condition: glucose, NH4Cl, O2, Strain: delta-purR, array_experiment,
 Gene: (b4153, frdB), Value:  9.12, std: 0.26, Condition: glucose, NH4Cl, O2, Strain: delta-crp, array_experiment,
 Gene: (b4153, frdB), Value:  4.88, std: 0.30, Condition: glucose, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b4153, frdB), Value:  4.68, std: 0.05, Condition: glucose, NH4Cl, O2, Strain: delta-arcA, array_experiment,
 Gene: (b4153, frdB), Value:  4.40, std: 0.00, Condition: glucose, NH4Cl, O2, Strain: delta-arcAfnr, array_experiment,
 Gene: (b4153, frdB), Value:  4.61, std: 0.00, Condition: glucose, NH4Cl, O2, Strain: delta-fnr, array_experiment,
 Gene: (b4153, frdB), Value: 13.79, std: 0.11, Condition: glucose, NH4Cl, O2, Strain: delta-cra, array_experiment,
 Gene: (b4153, frdB), Value: 12.77, std: 0.72, Condition: glucose, NH4Cl, O2, Strain: delta-lrp, array_experiment,
 Gene: (b4153, frdB), Value: 13.94, std: 0.25, Condition: glucose, NH4Cl, O2, Strain: delta-purR, array_experiment,
 Gene: (b4154, frdA), Value:  8.82, std: 0.19, Condition: glucose, NH4Cl, O2, Strain: delta-crp, array_experiment,
 Gene: (b4154, frdA), Value:  6.32, std: 0.97, Condition: glucose, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b4154, frdA), Value:  7.24, std: 0.21, Condition: glucose, NH4Cl, O2, Strain: delta-arcA, array_experiment,
 Gene: (b4154, frdA), Value:  6.47, std: 0.70, Condition: glucose, NH4Cl, O2, Strain: delta-arcAfnr, array_experiment,
 Gene: (b4154, frdA), Value:  6.96, std: 0.29, Condition: glucose, NH4Cl, O2, Strain: delta-fnr, array_experiment,
 Gene: (b4154, frdA), Value: 13.60, std: 0.08, Condition: glucose, NH4Cl, O2, Strain: delta-cra, array_experiment,
 Gene: (b4154, frdA), Value: 13.08, std: 0.45, Condition: glucose, NH4Cl, O2, Strain: delta-lrp, array_experiment,
 Gene: (b4154, frdA), Value: 13.85, std: 0.04, Condition: glucose, NH4Cl, O2, Strain: delta-purR, array_experiment,
 Gene: (b0726, sucA), Value:  9.26, std: 0.22, Condition: glucose, NH4Cl, NO3, Strain: wt, array_experiment,
 Gene: (b0726, sucA), Value:  9.11, std: 0.08, Condition: glucose, NH4Cl, NO3, Strain: delta-narL, array_experiment,
 Gene: (b0726, sucA), Value:  8.46, std: 0.35, Condition: glucose, NH4Cl, NO3, Strain: delta-narLnarP, array_experiment,
 Gene: (b0726, sucA), Value:  9.29, std: 0.14, Condition: glucose, NH4Cl, NO3, Strain: delta-narP, array_experiment,
 Gene: (b0727, sucB), Value: 10.81, std: 0.14, Condition: glucose, NH4Cl, NO3, Strain: wt, array_experiment,
 Gene: (b0727, sucB), Value: 10.06, std: 0.12, Condition: glucose, NH4Cl, NO3, Strain: delta-narL, array_experiment,
 Gene: (b0727, sucB), Value:  9.83, std: 0.20, Condition: glucose, NH4Cl, NO3, Strain: delta-narLnarP, array_experiment,
 Gene: (b0727, sucB), Value: 10.31, std: 0.13, Condition: glucose, NH4Cl, NO3, Strain: delta-narP, array_experiment,
 Gene: (b0728, sucC), Value: 11.91, std: 0.16, Condition: glucose, NH4Cl, NO3, Strain: wt, array_experiment,
 Gene: (b0728, sucC), Value: 11.50, std: 0.11, Condition: glucose, NH4Cl, NO3, Strain: delta-narL, array_experiment,
 Gene: (b0728, sucC), Value: 11.05, std: 0.13, Condition: glucose, NH4Cl, NO3, Strain: delta-narLnarP, array_experiment,
 Gene: (b0728, sucC), Value: 11.67, std: 0.05, Condition: glucose, NH4Cl, NO3, Strain: delta-narP, array_experiment,
 Gene: (b0729, sucD), Value:  6.23, std: 0.25, Condition: glucose, NH4Cl, NO3, Strain: wt, array_experiment,
 Gene: (b0729, sucD), Value:  6.14, std: 0.15, Condition: glucose, NH4Cl, NO3, Strain: delta-narL, array_experiment,
 Gene: (b0729, sucD), Value:  5.75, std: 0.04, Condition: glucose, NH4Cl, NO3, Strain: delta-narLnarP, array_experiment,
 Gene: (b0729, sucD), Value:  6.43, std: 0.00, Condition: glucose, NH4Cl, NO3, Strain: delta-narP, array_experiment,
 Gene: (b1779, gapA), Value: 15.15, std: 0.04, Condition: glucose, NH4Cl, NO3, Strain: wt, array_experiment,
 Gene: (b1779, gapA), Value: 15.19, std: 0.01, Condition: glucose, NH4Cl, NO3, Strain: delta-narL, array_experiment,
 Gene: (b1779, gapA), Value: 15.33, std: 0.04, Condition: glucose, NH4Cl, NO3, Strain: delta-narLnarP, array_experiment,
 Gene: (b1779, gapA), Value: 15.14, std: 0.04, Condition: glucose, NH4Cl, NO3, Strain: delta-narP, array_experiment,
 Gene: (b4151, frdD), Value:  3.77, std: 0.43, Condition: glucose, NH4Cl, NO3, Strain: wt, array_experiment,
 Gene: (b4151, frdD), Value:  9.26, std: 0.26, Condition: glucose, NH4Cl, NO3, Strain: delta-narL, array_experiment,
 Gene: (b4151, frdD), Value:  8.16, std: 0.76, Condition: glucose, NH4Cl, NO3, Strain: delta-narLnarP, array_experiment,
 Gene: (b4151, frdD), Value:  3.21, std: 0.06, Condition: glucose, NH4Cl, NO3, Strain: delta-narP, array_experiment,
 Gene: (b4152, frdC), Value:  2.25, std: 0.00, Condition: glucose, NH4Cl, NO3, Strain: wt, array_experiment,
 Gene: (b4152, frdC), Value:  4.98, std: 0.23, Condition: glucose, NH4Cl, NO3, Strain: delta-narL, array_experiment,
 Gene: (b4152, frdC), Value:  4.64, std: 0.30, Condition: glucose, NH4Cl, NO3, Strain: delta-narLnarP, array_experiment,
 Gene: (b4152, frdC), Value:  2.25, std: 0.00, Condition: glucose, NH4Cl, NO3, Strain: delta-narP, array_experiment,
 Gene: (b4153, frdB), Value:  4.50, std: 0.04, Condition: glucose, NH4Cl, NO3, Strain: wt, array_experiment,
 Gene: (b4153, frdB), Value:  9.78, std: 0.07, Condition: glucose, NH4Cl, NO3, Strain: delta-narL, array_experiment,
 Gene: (b4153, frdB), Value:  9.49, std: 0.23, Condition: glucose, NH4Cl, NO3, Strain: delta-narLnarP, array_experiment,
 Gene: (b4153, frdB), Value:  4.62, std: 0.01, Condition: glucose, NH4Cl, NO3, Strain: delta-narP, array_experiment,
 Gene: (b4154, frdA), Value:  6.48, std: 0.46, Condition: glucose, NH4Cl, NO3, Strain: wt, array_experiment,
 Gene: (b4154, frdA), Value: 11.32, std: 0.33, Condition: glucose, NH4Cl, NO3, Strain: delta-narL, array_experiment,
 Gene: (b4154, frdA), Value: 11.31, std: 0.15, Condition: glucose, NH4Cl, NO3, Strain: delta-narLnarP, array_experiment,
 Gene: (b4154, frdA), Value:  7.09, std: 0.00, Condition: glucose, NH4Cl, NO3, Strain: delta-narP, array_experiment,
 Gene: (b0726, sucA), Value: 14.35, std: 0.05, Condition: acetate, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b0726, sucA), Value: 14.53, std: 0.02, Condition: acetate, NH4Cl, O2, Strain: delta-cra, array_experiment,
 Gene: (b0727, sucB), Value: 14.50, std: 0.02, Condition: acetate, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b0727, sucB), Value: 14.64, std: 0.01, Condition: acetate, NH4Cl, O2, Strain: delta-cra, array_experiment,
 Gene: (b0728, sucC), Value: 14.75, std: 0.01, Condition: acetate, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b0728, sucC), Value: 14.84, std: 0.03, Condition: acetate, NH4Cl, O2, Strain: delta-cra, array_experiment,
 Gene: (b0729, sucD), Value: 15.04, std: 0.02, Condition: acetate, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b0729, sucD), Value: 15.01, std: 0.07, Condition: acetate, NH4Cl, O2, Strain: delta-cra, array_experiment,
 Gene: (b1779, gapA), Value: 14.38, std: 0.01, Condition: acetate, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b1779, gapA), Value: 15.18, std: 0.02, Condition: acetate, NH4Cl, O2, Strain: delta-cra, array_experiment,
 Gene: (b4151, frdD), Value:  9.18, std: 0.18, Condition: acetate, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b4151, frdD), Value:  7.75, std: 0.18, Condition: acetate, NH4Cl, O2, Strain: delta-cra, array_experiment,
 Gene: (b4152, frdC), Value:  8.98, std: 0.28, Condition: acetate, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b4152, frdC), Value:  6.74, std: 0.11, Condition: acetate, NH4Cl, O2, Strain: delta-cra, array_experiment,
 Gene: (b4153, frdB), Value: 12.79, std: 0.04, Condition: acetate, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b4153, frdB), Value: 11.74, std: 0.16, Condition: acetate, NH4Cl, O2, Strain: delta-cra, array_experiment,
 Gene: (b4154, frdA), Value: 13.01, std: 0.14, Condition: acetate, NH4Cl, O2, Strain: wt, array_experiment,
 Gene: (b4154, frdA), Value: 11.87, std: 0.30, Condition: acetate, NH4Cl, O2, Strain: delta-cra, array_experiment,
 Gene: (b0726, sucA), Value: 13.54, std: 0.03, Condition: glucose, leucine, O2, Strain: wt, array_experiment,
 Gene: (b0726, sucA), Value: 13.23, std: 0.07, Condition: glucose, leucine, O2, Strain: delta-lrp, array_experiment,
 Gene: (b0727, sucB), Value: 13.65, std: 0.03, Condition: glucose, leucine, O2, Strain: wt, array_experiment,
 Gene: (b0727, sucB), Value: 13.39, std: 0.02, Condition: glucose, leucine, O2, Strain: delta-lrp, array_experiment,
 Gene: (b0728, sucC), Value: 13.51, std: 0.02, Condition: glucose, leucine, O2, Strain: wt, array_experiment,
 Gene: (b0728, sucC), Value: 13.46, std: 0.01, Condition: glucose, leucine, O2, Strain: delta-lrp, array_experiment,
 Gene: (b0729, sucD), Value: 13.68, std: 0.02, Condition: glucose, leucine, O2, Strain: wt, array_experiment,
 Gene: (b0729, sucD), Value: 13.64, std: 0.07, Condition: glucose, leucine, O2, Strain: delta-lrp, array_experiment,
 Gene: (b1779, gapA), Value: 14.65, std: 0.03, Condition: glucose, leucine, O2, Strain: wt, array_experiment,
 Gene: (b1779, gapA), Value: 15.02, std: 0.02, Condition: glucose, leucine, O2, Strain: delta-lrp, array_experiment,
 Gene: (b4151, frdD), Value:  6.33, std: 0.04, Condition: glucose, leucine, O2, Strain: wt, array_experiment,
 Gene: (b4151, frdD), Value:  6.90, std: 1.02, Condition: glucose, leucine, O2, Strain: delta-lrp, array_experiment,
 Gene: (b4152, frdC), Value:  5.72, std: 0.23, Condition: glucose, leucine, O2, Strain: wt, array_experiment,
 Gene: (b4152, frdC), Value:  6.87, std: 1.02, Condition: glucose, leucine, O2, Strain: delta-lrp, array_experiment,
 Gene: (b4153, frdB), Value: 10.71, std: 0.22, Condition: glucose, leucine, O2, Strain: wt, array_experiment,
 Gene: (b4153, frdB), Value: 12.55, std: 0.38, Condition: glucose, leucine, O2, Strain: delta-lrp, array_experiment,
 Gene: (b4154, frdA), Value: 10.63, std: 0.43, Condition: glucose, leucine, O2, Strain: wt, array_experiment,
 Gene: (b4154, frdA), Value: 12.57, std: 0.24, Condition: glucose, leucine, O2, Strain: delta-lrp, array_experiment,
 Gene: (b0726, sucA), Value: 11.36, std: 0.17, Condition: glucose, adenine, O2, Strain: wt, array_experiment,
 Gene: (b0726, sucA), Value: 11.45, std: 0.74, Condition: glucose, adenine, O2, Strain: delta-purR, array_experiment,
 Gene: (b0727, sucB), Value: 12.31, std: 0.06, Condition: glucose, adenine, O2, Strain: wt, array_experiment,
 Gene: (b0727, sucB), Value: 12.69, std: 0.33, Condition: glucose, adenine, O2, Strain: delta-purR, array_experiment,
 Gene: (b0728, sucC), Value: 11.71, std: 0.04, Condition: glucose, adenine, O2, Strain: wt, array_experiment,
 Gene: (b0728, sucC), Value: 12.13, std: 0.36, Condition: glucose, adenine, O2, Strain: delta-purR, array_experiment,
 Gene: (b0729, sucD), Value: 12.26, std: 0.26, Condition: glucose, adenine, O2, Strain: wt, array_experiment,
 Gene: (b0729, sucD), Value: 12.23, std: 0.38, Condition: glucose, adenine, O2, Strain: delta-purR, array_experiment,
 Gene: (b1779, gapA), Value: 14.40, std: 0.09, Condition: glucose, adenine, O2, Strain: wt, array_experiment,
 Gene: (b1779, gapA), Value: 14.43, std: 0.15, Condition: glucose, adenine, O2, Strain: delta-purR, array_experiment,
 Gene: (b4151, frdD), Value:  4.34, std: 0.62, Condition: glucose, adenine, O2, Strain: wt, array_experiment,
 Gene: (b4151, frdD), Value:  3.73, std: 0.51, Condition: glucose, adenine, O2, Strain: delta-purR, array_experiment,
 Gene: (b4152, frdC), Value:  2.95, std: 0.07, Condition: glucose, adenine, O2, Strain: wt, array_experiment,
 Gene: (b4152, frdC), Value:  2.98, std: 0.12, Condition: glucose, adenine, O2, Strain: delta-purR, array_experiment,
 Gene: (b4153, frdB), Value:  5.56, std: 0.20, Condition: glucose, adenine, O2, Strain: wt, array_experiment,
 Gene: (b4153, frdB), Value:  5.74, std: 0.50, Condition: glucose, adenine, O2, Strain: delta-purR, array_experiment,
 Gene: (b4154, frdA), Value:  5.98, std: 0.35, Condition: glucose, adenine, O2, Strain: wt, array_experiment,
 Gene: (b4154, frdA), Value:  7.71, std: 2.86, Condition: glucose, adenine, O2, Strain: delta-purR, array_experiment]

In [5]:
genes = [ome.query(Gene).filter(Gene.name == x).one() for x in ['gapA','sucA','sucB','sucC']]
genes_data = {gene: gene.data for gene in genes}

col_labels = [x.data_set.name for x in genes_data.itervalues().next()]
row_labels = [x.name for x in genes_data.keys()]

heatmap_data = []
for i,gene in enumerate(genes_data):
    for j,data in enumerate(genes_data[gene]):
        if data.value < 0: value = 1.
        else: value = data.value
        heatmap_data.append({"row": i+1, "col": j+1, "value": int(np.log(value))})

In [6]:
%%javascript

require.config({paths: {d3: "https://mpld3.github.io/js/d3.v3.min"}});

require(["widgets/js/widget", "d3"], function(WidgetManager, d3){
    var HeatmapView = IPython.DOMWidgetView.extend({

        render: function(){
            
            this.$el.append(this.model.get("html_style"));
            this.svg = d3.select(this.el).append("svg")
                .attr({
                    width: 600,
                    height: 600
                });
            
            
            this.update();
        },
        update: function(){
            var margin = { top: 150, right: 10, bottom: 50, left: 100 },
  cellSize=12,
  width = cellSize*col_number, // - margin.left - margin.right,
  height = cellSize*row_number , // - margin.top - margin.bottom,
  //gridSize = Math.floor(width / 24),
  legendElementWidth = cellSize*2.5,
  colorBuckets = 21,
  colors = ['#005824','#1A693B','#347B53','#4F8D6B','#699F83','#83B09B','#9EC2B3','#B8D4CB','#D2E6E3','#EDF8FB','#FFFFFF','#F1EEF6','#E6D3E1','#DBB9CD','#D19EB9','#C684A4','#BB6990','#B14F7C','#A63467','#9B1A53','#91003F'],
  hcrow = [1,2,4,3], //,18,6,12,20,19,33,32,26,44,35,38,3,23,41,22,10,2,15,16,36,8,25,29,7,27,34,48,31,45,43,14,9,39,1,37,47,42,21,40,5,28,46,50,17,24,13], // change to gene name or probe id
  hccol = [2,1,5,3,6,4]; //,42,21,58,56,14,16,43,15,17,46,47,48,54,49,37,38,25,22,7,8,2,45,9,20,24,44,23,19,13,40,11,1,39,53,10,52,3,26,27,60,50,51,59,18,31,32,30,4,55,28,29,57,36,34,33,35], // change to gene name or probe id
  //rowLabel = ['1','2','1759080_s_at','1759302_s_at','1759502_s_at','1759540_s_at','1759781_s_at','1759828_s_at','1759829_s_at','1759906_s_at','1760088_s_at','1760164_s_at','1760453_s_at','1760516_s_at','1760594_s_at','1760894_s_at','1760951_s_at','1761030_s_at','1761128_at','1761145_s_at','1761160_s_at','1761189_s_at','1761222_s_at','1761245_s_at','1761277_s_at','1761434_s_at','1761553_s_at','1761620_s_at','1761873_s_at','1761884_s_at','1761944_s_at','1762105_s_at','1762118_s_at','1762151_s_at','1762388_s_at','1762401_s_at','1762633_s_at','1762701_s_at','1762787_s_at','1762819_s_at','1762880_s_at','1762945_s_at','1762983_s_at','1763132_s_at','1763138_s_at','1763146_s_at','1763198_s_at','1763383_at','1763410_s_at','1763426_s_at','1763490_s_at','1763491_s_at'], // change to gene name or probe id
  //colLabel = ['3','4','con1027','con1028','con1029','con103','con1030','con1031','con1032','con1033','con1034','con1035','con1036','con1037','con1038','con1039','con1040','con1041','con108','con109','con110','con111','con112','con125','con126','con127','con128','con129','con130','con131','con132','con133','con134','con135','con136','con137','con138','con139','con14','con15','con150','con151','con152','con153','con16','con17','con174','con184','con185','con186','con187','con188','con189','con191','con192','con193','con194','con199','con2','con200','con201','con21']; // change to contrast name
    
  var rowLabel = JSON.parse(this.model.get("row_labels"));
  var colLabel = JSON.parse(this.model.get("col_labels"));
  var data = JSON.parse(this.model.get("heatmap_data"));
 
            
  var col_number = colLabel.length,
      row_number = rowLabel.length;
            
  var colorScale = d3.scale.quantile()
      .domain([ -10 , 0, 10])
      .range(colors);
  
  var svg = this.svg;
            
  var rowSortOrder=false;
  var colSortOrder=false;
  var rowLabels = svg.append("g")
      .selectAll(".rowLabelg")
      .data(rowLabel)
      .enter()
      .append("text")
      .text(function (d) { return d; })
      .attr("x", 0)
      .attr("y", function (d, i) { return hcrow.indexOf(i+1) * cellSize; })
      .style("text-anchor", "end")
      .attr("transform", "translate(-6," + cellSize / 1.5 + ")")
      .attr("class", function (d,i) { return "rowLabel mono r"+i;} ) 
      .on("mouseover", function(d) {d3.select(this).classed("text-hover",true);})
      .on("mouseout" , function(d) {d3.select(this).classed("text-hover",false);})
      .on("click", function(d,i) {rowSortOrder=!rowSortOrder; sortbylabel("r",i,rowSortOrder);d3.select("#order").property("selectedIndex", 4).node().focus();;})
      ;

  var colLabels = svg.append("g")
      .selectAll(".colLabelg")
      .data(colLabel)
      .enter()
      .append("text")
      .text(function (d) { return d; })
      .attr("x", 0)
      .attr("y", function (d, i) { return hccol.indexOf(i+1) * cellSize; })
      .style("text-anchor", "left")
      .attr("transform", "translate("+cellSize/2 + ",-6) rotate (-90)")
      .attr("class",  function (d,i) { return "colLabel mono c"+i;} )
      .on("mouseover", function(d) {d3.select(this).classed("text-hover",true);})
      .on("mouseout" , function(d) {d3.select(this).classed("text-hover",false);})
      .on("click", function(d,i) {colSortOrder=!colSortOrder;  sortbylabel("c",i,colSortOrder);d3.select("#order").property("selectedIndex", 4).node().focus();;})
      ;

  var heatMap = svg.append("g").attr("class","g3")
        .selectAll(".cellg")
        .data(data,function(d){return d.row+":"+d.col;})
        .enter()
        .append("rect")
        .attr("x", function(d) { return hccol.indexOf(d.col) * cellSize; })
        .attr("y", function(d) { return hcrow.indexOf(d.row) * cellSize; })
        .attr("class", function(d){return "cell cell-border cr"+(d.row-1)+" cc"+(d.col-1);})
        .attr("width", cellSize)
        .attr("height", cellSize)
        .style("fill", function(d) { return colorScale(d.value); })
        /* .on("click", function(d) {
               var rowtext=d3.select(".r"+(d.row-1));
               if(rowtext.classed("text-selected")==false){
                   rowtext.classed("text-selected",true);
               }else{
                   rowtext.classed("text-selected",false);
               }
        })*/
        .on("mouseover", function(d){
               //highlight text
               d3.select(this).classed("cell-hover",true);
               d3.selectAll(".rowLabel").classed("text-highlight",function(r,ri){ return ri==(d.row-1);});
               d3.selectAll(".colLabel").classed("text-highlight",function(c,ci){ return ci==(d.col-1);});
        
               //Update the tooltip position and value
               d3.select("#tooltip")
                 .style("left", (d3.event.pageX+10) + "px")
                 .style("top", (d3.event.pageY-10) + "px")
                 .select("#value")
                 .text("lables:"+rowLabel[d.row-1]+","+colLabel[d.col-1]+"\ndata:"+d.value+"\nrow-col-idx:"+d.col+","+d.row+"\ncell-xy "+this.x.baseVal.value+", "+this.y.baseVal.value);  
               //Show the tooltip
               d3.select("#tooltip").classed("hidden", false);
        })
        .on("mouseout", function(){
               d3.select(this).classed("cell-hover",false);
               d3.selectAll(".rowLabel").classed("text-highlight",false);
               d3.selectAll(".colLabel").classed("text-highlight",false);
               d3.select("#tooltip").classed("hidden", true);
        })
        ;

  var legend = svg.selectAll(".legend")
      .data([-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10])
      .enter().append("g")
      .attr("class", "legend");
 
  legend.append("rect")
    .attr("x", function(d, i) { return legendElementWidth * i; })
    .attr("y", height+(cellSize*2))
    .attr("width", legendElementWidth)
    .attr("height", cellSize)
    .style("fill", function(d, i) { return colors[i]; });
 
  legend.append("text")
    .attr("class", "mono")
    .text(function(d) { return d; })
    .attr("width", legendElementWidth)
    .attr("x", function(d, i) { return legendElementWidth * i; })
    .attr("y", height + (cellSize*4));

// Change ordering of cells

  function sortbylabel(rORc,i,sortOrder){
       var t = svg.transition().duration(3000);
       var log2r=[];
       var sorted; // sorted is zero-based index
       d3.selectAll(".c"+rORc+i) 
         .filter(function(ce){
            log2r.push(ce.value);
          })
       ;
       if(rORc=="r"){ // sort log2ratio of a gene
         sorted=d3.range(col_number).sort(function(a,b){ if(sortOrder){ return log2r[b]-log2r[a];}else{ return log2r[a]-log2r[b];}});
         t.selectAll(".cell")
           .attr("x", function(d) { return sorted.indexOf(d.col-1) * cellSize; })
           ;
         t.selectAll(".colLabel")
          .attr("y", function (d, i) { return sorted.indexOf(i) * cellSize; })
         ;
       }else{ // sort log2ratio of a contrast
         sorted=d3.range(row_number).sort(function(a,b){if(sortOrder){ return log2r[b]-log2r[a];}else{ return log2r[a]-log2r[b];}});
         t.selectAll(".cell")
           .attr("y", function(d) { return sorted.indexOf(d.row-1) * cellSize; })
           ;
         t.selectAll(".rowLabel")
          .attr("y", function (d, i) { return sorted.indexOf(i) * cellSize; })
         ;
       }
  }

  d3.select("#order").on("change",function(){
    order(this.value);
  });
  
  function order(value){
   if(value=="hclust"){
    var t = svg.transition().duration(3000);
    t.selectAll(".cell")
      .attr("x", function(d) { return hccol.indexOf(d.col) * cellSize; })
      .attr("y", function(d) { return hcrow.indexOf(d.row) * cellSize; })
      ;

    t.selectAll(".rowLabel")
      .attr("y", function (d, i) { return hcrow.indexOf(i+1) * cellSize; })
      ;

    t.selectAll(".colLabel")
      .attr("y", function (d, i) { return hccol.indexOf(i+1) * cellSize; })
      ;

   }else if (value=="probecontrast"){
    var t = svg.transition().duration(3000);
    t.selectAll(".cell")
      .attr("x", function(d) { return (d.col - 1) * cellSize; })
      .attr("y", function(d) { return (d.row - 1) * cellSize; })
      ;

    t.selectAll(".rowLabel")
      .attr("y", function (d, i) { return i * cellSize; })
      ;

    t.selectAll(".colLabel")
      .attr("y", function (d, i) { return i * cellSize; })
      ;

   }else if (value=="probe"){
    var t = svg.transition().duration(3000);
    t.selectAll(".cell")
      .attr("y", function(d) { return (d.row - 1) * cellSize; })
      ;

    t.selectAll(".rowLabel")
      .attr("y", function (d, i) { return i * cellSize; })
      ;
   }else if (value=="contrast"){
    var t = svg.transition().duration(3000);
    t.selectAll(".cell")
      .attr("x", function(d) { return (d.col - 1) * cellSize; })
      ;
    t.selectAll(".colLabel")
      .attr("y", function (d, i) { return i * cellSize; })
      ;
   }
  }
  // 
  var sa=d3.select(".g3")
      .on("mousedown", function() {
          if( !d3.event.altKey) {
             d3.selectAll(".cell-selected").classed("cell-selected",false);
             d3.selectAll(".rowLabel").classed("text-selected",false);
             d3.selectAll(".colLabel").classed("text-selected",false);
          }
         var p = d3.mouse(this);
         sa.append("rect")
         .attr({
             rx      : 0,
             ry      : 0,
             class   : "selection",
             x       : p[0],
             y       : p[1],
             width   : 1,
             height  : 1
         })
      })
      .on("mousemove", function() {
         var s = sa.select("rect.selection");
      
         if(!s.empty()) {
             var p = d3.mouse(this),
                 d = {
                     x       : parseInt(s.attr("x"), 10),
                     y       : parseInt(s.attr("y"), 10),
                     width   : parseInt(s.attr("width"), 10),
                     height  : parseInt(s.attr("height"), 10)
                 },
                 move = {
                     x : p[0] - d.x,
                     y : p[1] - d.y
                 }
             ;
      
             if(move.x < 1 || (move.x*2<d.width)) {
                 d.x = p[0];
                 d.width -= move.x;
             } else {
                 d.width = move.x;       
             }
      
             if(move.y < 1 || (move.y*2<d.height)) {
                 d.y = p[1];
                 d.height -= move.y;
             } else {
                 d.height = move.y;       
             }
             s.attr(d);
      
                 // deselect all temporary selected state objects
             d3.selectAll('.cell-selection.cell-selected').classed("cell-selected", false);
             d3.selectAll(".text-selection.text-selected").classed("text-selected",false);

             d3.selectAll('.cell').filter(function(cell_d, i) {
                 if(
                     !d3.select(this).classed("cell-selected") && 
                         // inner circle inside selection frame
                     (this.x.baseVal.value)+cellSize >= d.x && (this.x.baseVal.value)<=d.x+d.width && 
                     (this.y.baseVal.value)+cellSize >= d.y && (this.y.baseVal.value)<=d.y+d.height
                 ) {
      
                     d3.select(this)
                     .classed("cell-selection", true)
                     .classed("cell-selected", true);

                     d3.select(".r"+(cell_d.row-1))
                     .classed("text-selection",true)
                     .classed("text-selected",true);

                     d3.select(".c"+(cell_d.col-1))
                     .classed("text-selection",true)
                     .classed("text-selected",true);
                 }
             });
         }
      })
      .on("mouseup", function() {
            // remove selection frame
         sa.selectAll("rect.selection").remove();
      
             // remove temporary selection marker class
         d3.selectAll('.cell-selection').classed("cell-selection", false);
         d3.selectAll(".text-selection").classed("text-selection",false);
      })
      .on("mouseout", function() {
         if(d3.event.relatedTarget.tagName=='html') {
                 // remove selection frame
             sa.selectAll("rect.selection").remove();
                 // remove temporary selection marker class
             d3.selectAll('.cell-selection').classed("cell-selection", false);
             d3.selectAll(".rowLabel").classed("text-selected",false);
             d3.selectAll(".colLabel").classed("text-selected",false);
         }
      });

            
        }
    });
    WidgetManager.register_widget_view("HeatmapView", HeatmapView);
});



In [9]:
#circles = CirclesWidget(radii=[1,2,3], sets=json.dumps(sets), overlaps=json.dumps(overlaps))
heatmap_diagram = HeatmapWidget(row_labels=json.dumps(row_labels), 
                                col_labels=json.dumps(col_labels), 
                                heatmap_data=json.dumps(heatmap_data), html_style=html_style)
display(heatmap_diagram)

In [8]:
html_style = """
     <style>
      /* disable text selection */
      svg *::selection {
         background : transparent;
      }
     
      svg *::-moz-selection {
         background:transparent;
      } 
     
      svg *::-webkit-selection {
         background:transparent;
      }
      rect.selection {
        stroke          : #333;
        stroke-dasharray: 4px;
        stroke-opacity  : 0.5;
        fill            : transparent;
      }

      rect.cell-border {
        stroke: #eee;
        stroke-width:0.3px;   
      }

      rect.cell-selected {
        stroke: rgb(51,102,153);
        stroke-width:0.5px;   
      }

      rect.cell-hover {
        stroke: #F00;
        stroke-width:0.3px;   
      }

      text.mono {
        font-size: 9pt;
        font-family: Consolas, courier;
        fill: #aaa;
      }

      text.text-selected {
        fill: #000;
      }

      text.text-highlight {
        fill: #c00;
      }
      text.text-hover {
        fill: #00C;
      }
      #tooltip {
        position: fixed;
        width: 200px;
        height: auto;
        padding: 10px;
        background-color: white;
        -webkit-border-radius: 10px;
        -moz-border-radius: 10px;
        border-radius: 10px;
        -webkit-box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.4);
        -moz-box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.4);
        box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.4);
        pointer-events: none;
      }

      #tooltip.hidden {
        display: none;
      }

      #tooltip p {
        margin: 0;
        font-family: sans-serif;
        font-size: 12px;
        line-height: 20px;
      }
    </style>


<div id="tooltip" class="hidden">
        <p><span id="value"></p>
</div>

 
  <select id="order">
  <option value="hclust">by cluster</option>
  <option value="probecontrast">by probe name and contrast name</option>
  <option value="probe">by probe name</option>
  <option value="contrast">by contrast name</option>
  <option value="custom">by log2 ratio</option>
  </select>
  </select>
<div id="chart" style='overflow:auto; width:960px; height:auto;'></div>
"""

In [69]:
%%html

     <style>
      /* disable text selection */
      svg *::selection {
         background : transparent;
      }
     
      svg *::-moz-selection {
         background:transparent;
      } 
     
      svg *::-webkit-selection {
         background:transparent;
      }
      rect.selection {
        stroke          : #333;
        stroke-dasharray: 4px;
        stroke-opacity  : 0.5;
        fill            : transparent;
      }

      rect.cell-border {
        stroke: #eee;
        stroke-width:0.3px;   
      }

      rect.cell-selected {
        stroke: rgb(51,102,153);
        stroke-width:0.5px;   
      }

      rect.cell-hover {
        stroke: #F00;
        stroke-width:0.3px;   
      }

      text.mono {
        font-size: 9pt;
        font-family: Consolas, courier;
        fill: #aaa;
      }

      text.text-selected {
        fill: #000;
      }

      text.text-highlight {
        fill: #c00;
      }
      text.text-hover {
        fill: #00C;
      }
      #tooltip {
        position: fixed;
        width: 200px;
        height: auto;
        padding: 10px;
        background-color: white;
        -webkit-border-radius: 10px;
        -moz-border-radius: 10px;
        border-radius: 10px;
        -webkit-box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.4);
        -moz-box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.4);
        box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.4);
        pointer-events: none;
      }

      #tooltip.hidden {
        display: none;
      }

      #tooltip p {
        margin: 0;
        font-family: sans-serif;
        font-size: 12px;
        line-height: 20px;
      }
    </style>


<div id="tooltip" class="hidden">
        <p><span id="value"></p>
</div>

 
  <select id="order">
  <option value="hclust">by cluster</option>
  <option value="probecontrast">by probe name and contrast name</option>
  <option value="probe">by probe name</option>
  <option value="contrast">by contrast name</option>
  <option value="custom">by log2 ratio</option>
  </select>
  </select>
<div id="chart" style='overflow:auto; width:960px; height:auto;'></div>



In [70]:
%%javascript

require.config({paths: {d3: "https://mpld3.github.io/js/d3.v3.min"}});

require(["d3"], function(d3){

var margin = { top: 150, right: 10, bottom: 50, left: 100 },
  cellSize=12,
  col_number=6,
  row_number=4,
  width = cellSize*col_number, // - margin.left - margin.right,
  height = cellSize*row_number , // - margin.top - margin.bottom,
  //gridSize = Math.floor(width / 24),
  legendElementWidth = cellSize*2.5,
  colorBuckets = 21,
  colors = ['#005824','#1A693B','#347B53','#4F8D6B','#699F83','#83B09B','#9EC2B3','#B8D4CB','#D2E6E3','#EDF8FB','#FFFFFF','#F1EEF6','#E6D3E1','#DBB9CD','#D19EB9','#C684A4','#BB6990','#B14F7C','#A63467','#9B1A53','#91003F'],
  hcrow = [1, 2, 3, 4],
  hccol = [6, 2, 1, 3, 5, 4],
  rowLabel = ['1759302_s_at','1759080_s_at','1759502_s_at','1759540_s_at'],
  colLabel = ['con1027','con1028','con1029','con103','con1030','con1031'];

//d3.tsv("data/heatmap_data.tsv",
//function(d) {
  //return {
    //row:   +d.row_idx,
    //col:   +d.col_idx,
    //value: +d.log2ratio
  //};
//},

  var data = [{"col": 1, "value": 6, "row": 1}, {"col": 2, "value": 6, "row": 1}, {"col": 3, "value": 7, "row": 1}, {"col": 4, "value": 6, "row": 1}, {"col": 5, "value": 6, "row": 1}, {"col": 6, "value": 6, "row": 1}, {"col": 1, "value": 6, "row": 2}, {"col": 2, "value": 6, "row": 2}, {"col": 3, "value": 6, "row": 2}, {"col": 4, "value": 6, "row": 2}, {"col": 5, "value": 6, "row": 2}, {"col": 6, "value": 6, "row": 2}, {"col": 1, "value": 9, "row": 3}, {"col": 2, "value": 9, "row": 3}, {"col": 3, "value": 9, "row": 3}, {"col": 4, "value": 9, "row": 3}, {"col": 5, "value": 9, "row": 3}, {"col": 6, "value": 9, "row": 3}, {"col": 1, "value": 6, "row": 4}, {"col": 2, "value": 6, "row": 4}, {"col": 3, "value": 6, "row": 4}, {"col": 4, "value": 6, "row": 4}, {"col": 5, "value": 6, "row": 4}, {"col": 6, "value": 5, "row": 4}];
  console.log(data.slice(1,10));
  var colorScale = d3.scale.quantile()
      .domain([ -10 , 0, 10])
      .range(colors);
  
  var svg = d3.select("#chart").append("svg")
      .attr("width", width + margin.left + margin.right)
      .attr("height", height + margin.top + margin.bottom)
      .append("g")
      .attr("transform", "translate(" + margin.left + "," + margin.top + ")")
      ;
  var rowSortOrder=false;
  var colSortOrder=false;
  var rowLabels = svg.append("g")
      .selectAll(".rowLabelg")
      .data(rowLabel)
      .enter()
      .append("text")
      .text(function (d) { return d; })
      .attr("x", 0)
      .attr("y", function (d, i) { return hcrow.indexOf(i+1) * cellSize; })
      .style("text-anchor", "end")
      .attr("transform", "translate(-6," + cellSize / 1.5 + ")")
      .attr("class", function (d,i) { return "rowLabel mono r"+i;} ) 
      .on("mouseover", function(d) {d3.select(this).classed("text-hover",true);})
      .on("mouseout" , function(d) {d3.select(this).classed("text-hover",false);})
      .on("click", function(d,i) {rowSortOrder=!rowSortOrder; sortbylabel("r",i,rowSortOrder);d3.select("#order").property("selectedIndex", 4).node().focus();;})
      ;

  var colLabels = svg.append("g")
      .selectAll(".colLabelg")
      .data(colLabel)
      .enter()
      .append("text")
      .text(function (d) { return d; })
      .attr("x", 0)
      .attr("y", function (d, i) { return hccol.indexOf(i+1) * cellSize; })
      .style("text-anchor", "left")
      .attr("transform", "translate("+cellSize/2 + ",-6) rotate (-90)")
      .attr("class",  function (d,i) { return "colLabel mono c"+i;} )
      .on("mouseover", function(d) {d3.select(this).classed("text-hover",true);})
      .on("mouseout" , function(d) {d3.select(this).classed("text-hover",false);})
      .on("click", function(d,i) {colSortOrder=!colSortOrder;  sortbylabel("c",i,colSortOrder);d3.select("#order").property("selectedIndex", 4).node().focus();;})
      ;

  var heatMap = svg.append("g").attr("class","g3")
        .selectAll(".cellg")
        .data(data,function(d){return d.row+":"+d.col;})
        .enter()
        .append("rect")
        .attr("x", function(d) { return hccol.indexOf(d.col) * cellSize; })
        .attr("y", function(d) { return hcrow.indexOf(d.row) * cellSize; })
        .attr("class", function(d){return "cell cell-border cr"+(d.row-1)+" cc"+(d.col-1);})
        .attr("width", cellSize)
        .attr("height", cellSize)
        .style("fill", function(d) { return colorScale(d.value); })
        /* .on("click", function(d) {
               var rowtext=d3.select(".r"+(d.row-1));
               if(rowtext.classed("text-selected")==false){
                   rowtext.classed("text-selected",true);
               }else{
                   rowtext.classed("text-selected",false);
               }
        })*/
        .on("mouseover", function(d){
               //highlight text
               d3.select(this).classed("cell-hover",true);
               d3.selectAll(".rowLabel").classed("text-highlight",function(r,ri){ return ri==(d.row-1);});
               d3.selectAll(".colLabel").classed("text-highlight",function(c,ci){ return ci==(d.col-1);});
        
               //Update the tooltip position and value
               d3.select("#tooltip")
                 .style("left", (d3.event.pageX+10) + "px")
                 .style("top", (d3.event.pageY-10) + "px")
                 .select("#value")
                 .text("lables:"+rowLabel[d.row-1]+","+colLabel[d.col-1]+"\ndata:"+d.value+"\nrow-col-idx:"+d.col+","+d.row+"\ncell-xy "+this.x.baseVal.value+", "+this.y.baseVal.value);  
               //Show the tooltip
               d3.select("#tooltip").classed("hidden", false);
        })
        .on("mouseout", function(){
               d3.select(this).classed("cell-hover",false);
               d3.selectAll(".rowLabel").classed("text-highlight",false);
               d3.selectAll(".colLabel").classed("text-highlight",false);
               d3.select("#tooltip").classed("hidden", true);
        })
        ;

  var legend = svg.selectAll(".legend")
      .data([-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10])
      .enter().append("g")
      .attr("class", "legend");
 
  legend.append("rect")
    .attr("x", function(d, i) { return legendElementWidth * i; })
    .attr("y", height+(cellSize*2))
    .attr("width", legendElementWidth)
    .attr("height", cellSize)
    .style("fill", function(d, i) { return colors[i]; });
 
  legend.append("text")
    .attr("class", "mono")
    .text(function(d) { return d; })
    .attr("width", legendElementWidth)
    .attr("x", function(d, i) { return legendElementWidth * i; })
    .attr("y", height + (cellSize*4));

// Change ordering of cells

  function sortbylabel(rORc,i,sortOrder){
       var t = svg.transition().duration(3000);
       var log2r=[];
       var sorted; // sorted is zero-based index
       d3.selectAll(".c"+rORc+i) 
         .filter(function(ce){
            log2r.push(ce.value);
          })
       ;
       if(rORc=="r"){ // sort log2ratio of a gene
         sorted=d3.range(col_number).sort(function(a,b){ if(sortOrder){ return log2r[b]-log2r[a];}else{ return log2r[a]-log2r[b];}});
         t.selectAll(".cell")
           .attr("x", function(d) { return sorted.indexOf(d.col-1) * cellSize; })
           ;
         t.selectAll(".colLabel")
          .attr("y", function (d, i) { return sorted.indexOf(i) * cellSize; })
         ;
       }else{ // sort log2ratio of a contrast
         sorted=d3.range(row_number).sort(function(a,b){if(sortOrder){ return log2r[b]-log2r[a];}else{ return log2r[a]-log2r[b];}});
         t.selectAll(".cell")
           .attr("y", function(d) { return sorted.indexOf(d.row-1) * cellSize; })
           ;
         t.selectAll(".rowLabel")
          .attr("y", function (d, i) { return sorted.indexOf(i) * cellSize; })
         ;
       }
  }

  d3.select("#order").on("change",function(){
    order(this.value);
  });
  
  function order(value){
   if(value=="hclust"){
    var t = svg.transition().duration(3000);
    t.selectAll(".cell")
      .attr("x", function(d) { return hccol.indexOf(d.col) * cellSize; })
      .attr("y", function(d) { return hcrow.indexOf(d.row) * cellSize; })
      ;

    t.selectAll(".rowLabel")
      .attr("y", function (d, i) { return hcrow.indexOf(i+1) * cellSize; })
      ;

    t.selectAll(".colLabel")
      .attr("y", function (d, i) { return hccol.indexOf(i+1) * cellSize; })
      ;

   }else if (value=="probecontrast"){
    var t = svg.transition().duration(3000);
    t.selectAll(".cell")
      .attr("x", function(d) { return (d.col - 1) * cellSize; })
      .attr("y", function(d) { return (d.row - 1) * cellSize; })
      ;

    t.selectAll(".rowLabel")
      .attr("y", function (d, i) { return i * cellSize; })
      ;

    t.selectAll(".colLabel")
      .attr("y", function (d, i) { return i * cellSize; })
      ;

   }else if (value=="probe"){
    var t = svg.transition().duration(3000);
    t.selectAll(".cell")
      .attr("y", function(d) { return (d.row - 1) * cellSize; })
      ;

    t.selectAll(".rowLabel")
      .attr("y", function (d, i) { return i * cellSize; })
      ;
   }else if (value=="contrast"){
    var t = svg.transition().duration(3000);
    t.selectAll(".cell")
      .attr("x", function(d) { return (d.col - 1) * cellSize; })
      ;
    t.selectAll(".colLabel")
      .attr("y", function (d, i) { return i * cellSize; })
      ;
   }
  }
  // 
  var sa=d3.select(".g3")
      .on("mousedown", function() {
          if( !d3.event.altKey) {
             d3.selectAll(".cell-selected").classed("cell-selected",false);
             d3.selectAll(".rowLabel").classed("text-selected",false);
             d3.selectAll(".colLabel").classed("text-selected",false);
          }
         var p = d3.mouse(this);
         sa.append("rect")
         .attr({
             rx      : 0,
             ry      : 0,
             class   : "selection",
             x       : p[0],
             y       : p[1],
             width   : 1,
             height  : 1
         })
      })
      .on("mousemove", function() {
         var s = sa.select("rect.selection");
      
         if(!s.empty()) {
             var p = d3.mouse(this),
                 d = {
                     x       : parseInt(s.attr("x"), 10),
                     y       : parseInt(s.attr("y"), 10),
                     width   : parseInt(s.attr("width"), 10),
                     height  : parseInt(s.attr("height"), 10)
                 },
                 move = {
                     x : p[0] - d.x,
                     y : p[1] - d.y
                 }
             ;
      
             if(move.x < 1 || (move.x*2<d.width)) {
                 d.x = p[0];
                 d.width -= move.x;
             } else {
                 d.width = move.x;       
             }
      
             if(move.y < 1 || (move.y*2<d.height)) {
                 d.y = p[1];
                 d.height -= move.y;
             } else {
                 d.height = move.y;       
             }
             s.attr(d);
      
                 // deselect all temporary selected state objects
             d3.selectAll('.cell-selection.cell-selected').classed("cell-selected", false);
             d3.selectAll(".text-selection.text-selected").classed("text-selected",false);

             d3.selectAll('.cell').filter(function(cell_d, i) {
                 if(
                     !d3.select(this).classed("cell-selected") && 
                         // inner circle inside selection frame
                     (this.x.baseVal.value)+cellSize >= d.x && (this.x.baseVal.value)<=d.x+d.width && 
                     (this.y.baseVal.value)+cellSize >= d.y && (this.y.baseVal.value)<=d.y+d.height
                 ) {
      
                     d3.select(this)
                     .classed("cell-selection", true)
                     .classed("cell-selected", true);

                     d3.select(".r"+(cell_d.row-1))
                     .classed("text-selection",true)
                     .classed("text-selected",true);

                     d3.select(".c"+(cell_d.col-1))
                     .classed("text-selection",true)
                     .classed("text-selected",true);
                 }
             });
         }
      })
      .on("mouseup", function() {
            // remove selection frame
         sa.selectAll("rect.selection").remove();
      
             // remove temporary selection marker class
         d3.selectAll('.cell-selection').classed("cell-selection", false);
         d3.selectAll(".text-selection").classed("text-selection",false);
      })
      .on("mouseout", function() {
         if(d3.event.relatedTarget.tagName=='html') {
                 // remove selection frame
             sa.selectAll("rect.selection").remove();
                 // remove temporary selection marker class
             d3.selectAll('.cell-selection').classed("cell-selection", false);
             d3.selectAll(".rowLabel").classed("text-selected",false);
             d3.selectAll(".colLabel").classed("text-selected",false);
         }
      })
      ;
//});

});



In [5]:


In [5]:


In [17]:
import simplejson as json
json.dumps([{'row': 1, 'col': 1, 'value':1},{'row': 1, 'col': 2, 'value':2},{'row': 2, 'col': 1, 'value':3},{'row': 2, 'col': 2, 'value':4}])


Out[17]:
'[{"col": 1, "value": 1, "row": 1}, {"col": 2, "value": 2, "row": 1}, {"col": 1, "value": 3, "row": 2}, {"col": 2, "value": 4, "row": 2}]'

In [17]:
genes = [ome.query(Gene).filter(Gene.name == x).one() for x in ['gapA','sucA','sucB','sucC','sucD']]
genes_data = {gene: gene.data for gene in genes}
json.dumps({
            "rowlabels" : [x.data_set.name for x in genes_data.itervalues().next()],
            "collabels" : [x.name for x in genes_data.keys()],
            "data" : [[{"row": i, "col": j, "value": data.value} for j,data in enumerate(genes_data[gene])] for i,gene in enumerate(genes_data)]})


Out[17]:
'{"rowlabels": ["RNAseq_Ar3_glycerol_NH4Cl_O2_1_1.0", "RNAseq_Ar3_glycerol_NH4Cl_O2_3_1.0", "RNAseq_delAr1_glycerol_NH4Cl_O2_2_1.0", "RNAseq_delAr1delAr2_glycerol_NH4Cl_O2_1_1.0", "RNAseq_delAr1delAr2_glycerol_NH4Cl_O2_3_1.0", "RNAseq_delAr2_glycerol_NH4Cl_O2_2_1.0", "RNAseq_delta-crp_glycerol_NH4Cl_O2_1_1.0", "RNAseq_delta-crp_glycerol_NH4Cl_O2_3_1.0", "RNAseq_delta-crp_fructose_NH4Cl_O2_2_1.0", "RNAseq_delta-crp_glucose_NH4Cl_O2_1_1.0", "RNAseq_delta-crp_glucose_NH4Cl_O2_3_1.0", "RNAseq_wt_glycerol_NH4Cl_O2_2_1.0", "RNAseq_wt_fructose_NH4Cl_O2_2_1.0", "RNAseq_wt_glucose_NH4Cl_O2_2_1.0", "RNAseq_Ar3_glycerol_NH4Cl_O2_2_1.0", "RNAseq_delAr1_glycerol_NH4Cl_O2_1_1.0", "RNAseq_delAr1_glycerol_NH4Cl_O2_3_1.0", "RNAseq_delAr1delAr2_glycerol_NH4Cl_O2_2_1.0", "RNAseq_delAr2_glycerol_NH4Cl_O2_1_1.0", "RNAseq_delAr2_glycerol_NH4Cl_O2_3_1.0", "RNAseq_delta-crp_glycerol_NH4Cl_O2_2_1.0", "RNAseq_delta-crp_fructose_NH4Cl_O2_1_1.0", "RNAseq_delta-crp_fructose_NH4Cl_O2_3_1.0", "RNAseq_delta-crp_glucose_NH4Cl_O2_2_1.0", "RNAseq_wt_glycerol_NH4Cl_O2_1_1.0", "RNAseq_wt_fructose_NH4Cl_O2_1_1.0", "RNAseq_wt_glucose_NH4Cl_O2_1_1.0", "RNAseq_wt_glucose_NH4Cl_O2_3_1.0", "RNAseq_delta-crp_fructose/glucose_NH4Cl_O2", "RNAseq_delta-crp_glucose/glycerol_NH4Cl_O2", "RNAseq_delAr2/wt_glycerol_NH4Cl_O2", "RNAseq_delAr1/wt_glycerol_NH4Cl_O2", "RNAseq_delta-crp/wt_glycerol_NH4Cl_O2", "RNAseq_delAr1delAr2/wt_glycerol_NH4Cl_O2", "RNAseq_Ar3/wt_glycerol_NH4Cl_O2", "RNAseq_wt_fructose/glycerol_NH4Cl_O2", "RNAseq_wt_glucose/glycerol_NH4Cl_O2", "RNAseq_delta-crp/wt_fructose_NH4Cl_O2", "RNAseq_delta-crp/wt_glucose_NH4Cl_O2", "RNAseq_wt_fructose/glucose_NH4Cl_O2", "affyexp_delta-arcA_glucose_NH4Cl_O2_1_asv2", "affyexp_delta-arcA_glucose_NH4Cl_O2_3_asv2", "affyexp_delta-arcA_glucose_NH4Cl_anaerobic_2_asv2", "affyexp_delta-arcAfnr_glucose_NH4Cl_O2_1_asv2", "affyexp_delta-arcAfnr_glucose_NH4Cl_O2_3_asv2", "affyexp_delta-arcAfnr_glucose_NH4Cl_anaerobic_2_asv2", "affyexp_delta-fnr_glucose_NH4Cl_O2_1_asv2", "affyexp_delta-fnr_glucose_NH4Cl_O2_3_asv2", "affyexp_delta-fnr_glucose_NH4Cl_anaerobic_2_asv2", "affyexp_delta-narL_glucose_NH4Cl_anaerobic_1_asv2", "affyexp_delta-narL_glucose_NH4Cl_anaerobic_3_asv2", "affyexp_delta-narL_glucose_NH4Cl_NO3_2_asv2", "affyexp_delta-narLnarP_glucose_NH4Cl_anaerobic_1_asv2", "affyexp_delta-narLnarP_glucose_NH4Cl_anaerobic_3_asv2", "affyexp_delta-narLnarP_glucose_NH4Cl_NO3_2_asv2", "affyexp_delta-narP_glucose_NH4Cl_anaerobic_1_asv2", "affyexp_delta-narP_glucose_NH4Cl_anaerobic_3_asv2", "affyexp_delta-narP_glucose_NH4Cl_NO3_3_asv2", "affyexp_wt_glucose_NH4Cl_NO3_2_asv2", "affyexp_wt_glucose_NH4Cl_O2_1_asv2", "affyexp_wt_glucose_NH4Cl_O2_3_asv2", "affyexp_wt_glucose_NH4Cl_anaerobic_2_asv2", "affyexp_wt_glucose_NH4Cl_anaerobic_4_asv2", "affyexp_wt_glucose_NH4Cl_anaerobic_6_asv2", "affyexp_delta-arcA_glucose_NH4Cl_O2_2_asv2", "affyexp_delta-arcA_glucose_NH4Cl_anaerobic_1_asv2", "affyexp_delta-arcA_glucose_NH4Cl_anaerobic_3_asv2", "affyexp_delta-arcAfnr_glucose_NH4Cl_O2_2_asv2", "affyexp_delta-arcAfnr_glucose_NH4Cl_anaerobic_1_asv2", "affyexp_delta-arcAfnr_glucose_NH4Cl_anaerobic_3_asv2", "affyexp_delta-fnr_glucose_NH4Cl_O2_2_asv2", "affyexp_delta-fnr_glucose_NH4Cl_anaerobic_1_asv2", "affyexp_delta-fnr_glucose_NH4Cl_anaerobic_3_asv2", "affyexp_delta-narL_glucose_NH4Cl_anaerobic_2_asv2", "affyexp_delta-narL_glucose_NH4Cl_NO3_1_asv2", "affyexp_delta-narL_glucose_NH4Cl_NO3_3_asv2", "affyexp_delta-narLnarP_glucose_NH4Cl_anaerobic_2_asv2", "affyexp_delta-narLnarP_glucose_NH4Cl_NO3_1_asv2", "affyexp_delta-narLnarP_glucose_NH4Cl_NO3_3_asv2", "affyexp_delta-narP_glucose_NH4Cl_anaerobic_2_asv2", "affyexp_delta-narP_glucose_NH4Cl_NO3_2_asv2", "affyexp_wt_glucose_NH4Cl_NO3_1_asv2", "affyexp_wt_glucose_NH4Cl_NO3_3_asv2", "affyexp_wt_glucose_NH4Cl_O2_2_asv2", "affyexp_wt_glucose_NH4Cl_anaerobic_1_asv2", "affyexp_wt_glucose_NH4Cl_anaerobic_3_asv2", "affyexp_wt_glucose_NH4Cl_anaerobic_5_asv2", "affyexp_delta-cra_acetate_NH4Cl_O2_2_ec2", "affyexp_delta-cra_glucose_NH4Cl_O2_1_ec2", "affyexp_delta-cra_glucose_NH4Cl_O2_3_ec2", "affyexp_delta-crp_fructose_NH4Cl_O2_2_ec2", "affyexp_delta-crp_glucose_NH4Cl_O2_1_ec2", "affyexp_delta-crp_glucose_NH4Cl_O2_3_ec2", "affyexp_delta-lrp_glucose_NH4Cl_O2_2_ec2", "affyexp_delta-lrp_glucose_leucine_O2_1_ec2", "affyexp_delta-lrp_glucose_leucine_O2_3_ec2", "affyexp_delta-purR_glucose_NH4Cl_O2_2_ec2", "affyexp_delta-purR_glucose_adenine_O2_2_ec2", "affyexp_wt_acetate_NH4Cl_O2_2_ec2", "affyexp_wt_fructose_NH4Cl_O2_1_ec2", "affyexp_wt_fructose_NH4Cl_O2_3_ec2", "affyexp_wt_glucose_NH4Cl_O2_2_ec2", "affyexp_wt_glucose_adenine_O2_2_ec2", "affyexp_wt_glucose_leucine_O2_2_ec2", "affyexp_delta-cra_acetate_NH4Cl_O2_1_ec2", "affyexp_delta-cra_acetate_NH4Cl_O2_3_ec2", "affyexp_delta-cra_glucose_NH4Cl_O2_2_ec2", "affyexp_delta-crp_fructose_NH4Cl_O2_1_ec2", "affyexp_delta-crp_fructose_NH4Cl_O2_3_ec2", "affyexp_delta-crp_glucose_NH4Cl_O2_2_ec2", "affyexp_delta-lrp_glucose_NH4Cl_O2_1_ec2", "affyexp_delta-lrp_glucose_NH4Cl_O2_3_ec2", "affyexp_delta-lrp_glucose_leucine_O2_2_ec2", "affyexp_delta-purR_glucose_NH4Cl_O2_1_ec2", "affyexp_delta-purR_glucose_adenine_O2_1_ec2", "affyexp_wt_acetate_NH4Cl_O2_1_ec2", "affyexp_wt_acetate_NH4Cl_O2_3_ec2", "affyexp_wt_fructose_NH4Cl_O2_2_ec2", "affyexp_wt_glucose_NH4Cl_O2_1_ec2", "affyexp_wt_glucose_adenine_O2_1_ec2", "affyexp_wt_glucose_leucine_O2_1_ec2", "affyexp_wt_glucose_leucine_O2_3_ec2"], "collabels": ["sucB", "sucC", "gapA", "sucD", "sucA"], "data": [[{"col": 0, "value": 857.844, "row": 0}, {"col": 1, "value": 851.957, "row": 0}, {"col": 2, "value": 818.335, "row": 0}, {"col": 3, "value": 777.381, "row": 0}, {"col": 4, "value": 758.984, "row": 0}, {"col": 5, "value": 495.698, "row": 0}, {"col": 6, "value": 435.969, "row": 0}, {"col": 7, "value": 471.084, "row": 0}, {"col": 8, "value": 437.242, "row": 0}, {"col": 9, "value": 598.409, "row": 0}, {"col": 10, "value": 543.095, "row": 0}, {"col": 11, "value": 2105.33, "row": 0}, {"col": 12, "value": 1995.13, "row": 0}, {"col": 13, "value": 837.41, "row": 0}, {"col": 14, "value": 909.427, "row": 0}, {"col": 15, "value": 829.254, "row": 0}, {"col": 16, "value": 772.537, "row": 0}, {"col": 17, "value": 759.333, "row": 0}, {"col": 18, "value": 557.82, "row": 0}, {"col": 19, "value": 357.458, "row": 0}, {"col": 20, "value": 436.722, "row": 0}, {"col": 21, "value": 440.41, "row": 0}, {"col": 22, "value": 436.962, "row": 0}, {"col": 23, "value": 553.857, "row": 0}, {"col": 24, "value": 2354.17, "row": 0}, {"col": 25, "value": 1192.19, "row": 0}, {"col": 26, "value": 1040.39, "row": 0}, {"col": 27, "value": 889.687, "row": 0}, {"col": 28, "value": 0.432536, "row": 0}, {"col": 29, "value": -0.397255, "row": 0}, {"col": 30, "value": 2.04668, "row": 0}, {"col": 31, "value": 1.34544, "row": 0}, {"col": 32, "value": 2.29933, "row": 0}, {"col": 33, "value": 1.51219, "row": 0}, {"col": 34, "value": 1.28779, "row": 0}, {"col": 35, "value": 0.561733, "row": 0}, {"col": 36, "value": 1.44532, "row": 0}, {"col": 37, "value": 1.77288, "row": 0}, {"col": 38, "value": 0.456752, "row": 0}, {"col": 39, "value": -0.883587, "row": 0}, {"col": 40, "value": 13.561455618006, "row": 0}, {"col": 41, "value": 13.6704110951708, "row": 0}, {"col": 42, "value": 13.929860654029, "row": 0}, {"col": 43, "value": 13.6497693355289, "row": 0}, {"col": 44, "value": 13.5122785899231, "row": 0}, {"col": 45, "value": 13.8956617357311, "row": 0}, {"col": 46, "value": 13.4563724543563, "row": 0}, {"col": 47, "value": 13.2654149197683, "row": 0}, {"col": 48, "value": 11.5822062985467, "row": 0}, {"col": 49, "value": 9.53809257914902, "row": 0}, {"col": 50, "value": 9.81608132214322, "row": 0}, {"col": 51, "value": 9.91468138976239, "row": 0}, {"col": 52, "value": 9.818821129562, "row": 0}, {"col": 53, "value": 9.57325880077826, "row": 0}, {"col": 54, "value": 9.93303053120947, "row": 0}, {"col": 55, "value": 9.89217920441508, "row": 0}, {"col": 56, "value": 9.5183624996305, "row": 0}, {"col": 57, "value": 10.1748566773564, "row": 0}, {"col": 58, "value": 11.0072296815255, "row": 0}, {"col": 59, "value": 13.5765822043872, "row": 0}, {"col": 60, "value": 13.4609118284044, "row": 0}, {"col": 61, "value": 9.46610475657578, "row": 0}, {"col": 62, "value": 9.83810007090159, "row": 0}, {"col": 63, "value": 10.1572837907573, "row": 0}, {"col": 64, "value": 13.9039922806566, "row": 0}, {"col": 65, "value": 13.8533773183025, "row": 0}, {"col": 66, "value": 13.9265210339694, "row": 0}, {"col": 67, "value": 13.5040855499817, "row": 0}, {"col": 68, "value": 13.4073901570674, "row": 0}, {"col": 69, "value": 13.6238123203913, "row": 0}, {"col": 70, "value": 13.163433712565, "row": 0}, {"col": 71, "value": 10.3315788284862, "row": 0}, {"col": 72, "value": 11.3316588963345, "row": 0}, {"col": 73, "value": 9.72468191276667, "row": 0}, {"col": 74, "value": 10.0718998332607, "row": 0}, {"col": 75, "value": 10.1969084173449, "row": 0}, {"col": 76, "value": 9.75692228945093, "row": 0}, {"col": 77, "value": 9.54993956612485, "row": 0}, {"col": 78, "value": 10.0183717266756, "row": 0}, {"col": 79, "value": 9.9220314430799, "row": 0}, {"col": 80, "value": 10.4394240067545, "row": 0}, {"col": 81, "value": 10.7050005286526, "row": 0}, {"col": 82, "value": 10.7102134291794, "row": 0}, {"col": 83, "value": 13.4011541088589, "row": 0}, {"col": 84, "value": 9.55431277564047, "row": 0}, {"col": 85, "value": 9.93320345822298, "row": 0}, {"col": 86, "value": 10.0840935769721, "row": 0}, {"col": 87, "value": 14.6259746688342, "row": 0}, {"col": 88, "value": 13.3108119005334, "row": 0}, {"col": 89, "value": 13.3784201488828, "row": 0}, {"col": 90, "value": 12.2017337688336, "row": 0}, {"col": 91, "value": 13.0911628329115, "row": 0}, {"col": 92, "value": 13.1239577475452, "row": 0}, {"col": 93, "value": 13.6612269902857, "row": 0}, {"col": 94, "value": 13.4108699090057, "row": 0}, {"col": 95, "value": 13.4040543918307, "row": 0}, {"col": 96, "value": 13.1634051943626, "row": 0}, {"col": 97, "value": 12.3638222852243, "row": 0}, {"col": 98, "value": 14.5130086841624, "row": 0}, {"col": 99, "value": 13.9235930558533, "row": 0}, {"col": 100, "value": 13.8728724913113, "row": 0}, {"col": 101, "value": 13.6917064147896, "row": 0}, {"col": 102, "value": 12.257514955916, "row": 0}, {"col": 103, "value": 13.6375913098284, "row": 0}, {"col": 104, "value": 14.6446687092058, "row": 0}, {"col": 105, "value": 14.6520827180006, "row": 0}, {"col": 106, "value": 13.3594585813192, "row": 0}, {"col": 107, "value": 12.1804220683582, "row": 0}, {"col": 108, "value": 12.3084543962541, "row": 0}, {"col": 109, "value": 13.0880788492005, "row": 0}, {"col": 110, "value": 13.6411787371232, "row": 0}, {"col": 111, "value": 13.6243884637951, "row": 0}, {"col": 112, "value": 13.3602109077489, "row": 0}, {"col": 113, "value": 12.99794156477, "row": 0}, {"col": 114, "value": 13.0175659687197, "row": 0}, {"col": 115, "value": 14.5062981908542, "row": 0}, {"col": 116, "value": 14.4748561401981, "row": 0}, {"col": 117, "value": 13.9619337375569, "row": 0}, {"col": 118, "value": 13.5810168313386, "row": 0}, {"col": 119, "value": 12.3723737107103, "row": 0}, {"col": 120, "value": 13.6973083273534, "row": 0}, {"col": 121, "value": 13.6243884637951, "row": 0}], [{"col": 0, "value": 864.328, "row": 1}, {"col": 1, "value": 892.316, "row": 1}, {"col": 2, "value": 1204.33, "row": 1}, {"col": 3, "value": 851.607, "row": 1}, {"col": 4, "value": 875.709, "row": 1}, {"col": 5, "value": 674.234, "row": 1}, {"col": 6, "value": 381.148, "row": 1}, {"col": 7, "value": 410.24, "row": 1}, {"col": 8, "value": 410.009, "row": 1}, {"col": 9, "value": 537.38, "row": 1}, {"col": 10, "value": 527.486, "row": 1}, {"col": 11, "value": 2855.02, "row": 1}, {"col": 12, "value": 2755.67, "row": 1}, {"col": 13, "value": 871.778, "row": 1}, {"col": 14, "value": 988.004, "row": 1}, {"col": 15, "value": 985.675, "row": 1}, {"col": 16, "value": 908.14, "row": 1}, {"col": 17, "value": 898.058, "row": 1}, {"col": 18, "value": 748.474, "row": 1}, {"col": 19, "value": 359.481, "row": 1}, {"col": 20, "value": 388.915, "row": 1}, {"col": 21, "value": 419.198, "row": 1}, {"col": 22, "value": 433.252, "row": 1}, {"col": 23, "value": 530.207, "row": 1}, {"col": 24, "value": 3167.41, "row": 1}, {"col": 25, "value": 1346.74, "row": 1}, {"col": 26, "value": 1067.83, "row": 1}, {"col": 27, "value": 914.552, "row": 1}, {"col": 28, "value": 0.402896, "row": 1}, {"col": 29, "value": -0.496367, "row": 1}, {"col": 30, "value": 2.14171, "row": 1}, {"col": 31, "value": 1.41692, "row": 1}, {"col": 32, "value": 2.91983, "row": 1}, {"col": 33, "value": 1.75205, "row": 1}, {"col": 34, "value": 1.65407, "row": 1}, {"col": 35, "value": 0.629755, "row": 1}, {"col": 36, "value": 1.83433, "row": 1}, {"col": 37, "value": 2.19661, "row": 1}, {"col": 38, "value": 0.589137, "row": 1}, {"col": 39, "value": -1.20457, "row": 1}, {"col": 40, "value": 14.5405211513889, "row": 1}, {"col": 41, "value": 14.4755164928986, "row": 1}, {"col": 42, "value": 14.5621085368645, "row": 1}, {"col": 43, "value": 14.4760783426781, "row": 1}, {"col": 44, "value": 14.3295825350024, "row": 1}, {"col": 45, "value": 14.4419520539588, "row": 1}, {"col": 46, "value": 13.7555013134898, "row": 1}, {"col": 47, "value": 11.4961049865679, "row": 1}, {"col": 48, "value": 12.2633440290454, "row": 1}, {"col": 49, "value": 10.6956196831267, "row": 1}, {"col": 50, "value": 11.5855793662712, "row": 1}, {"col": 51, "value": 11.5630498098673, "row": 1}, {"col": 52, "value": 10.7163397734516, "row": 1}, {"col": 53, "value": 10.8655468890673, "row": 1}, {"col": 54, "value": 11.1643680475884, "row": 1}, {"col": 55, "value": 10.8343868085565, "row": 1}, {"col": 56, "value": 11.7155976515182, "row": 1}, {"col": 57, "value": 11.7127777692279, "row": 1}, {"col": 58, "value": 11.9101925757306, "row": 1}, {"col": 59, "value": 14.2291834234721, "row": 1}, {"col": 60, "value": 10.6956196831267, "row": 1}, {"col": 61, "value": 10.7956249563169, "row": 1}, {"col": 62, "value": 10.8272787009327, "row": 1}, {"col": 63, "value": 14.3434160884441, "row": 1}, {"col": 64, "value": 14.452838293866, "row": 1}, {"col": 65, "value": 14.4497768243623, "row": 1}, {"col": 66, "value": 14.5681737964195, "row": 1}, {"col": 67, "value": 14.3648590460782, "row": 1}, {"col": 68, "value": 14.7193130137693, "row": 1}, {"col": 69, "value": 14.1374910469573, "row": 1}, {"col": 70, "value": 13.9910982505065, "row": 1}, {"col": 71, "value": 12.4393662978739, "row": 1}, {"col": 72, "value": 10.7811427996588, "row": 1}, {"col": 73, "value": 10.6956196831267, "row": 1}, {"col": 74, "value": 11.3384099282529, "row": 1}, {"col": 75, "value": 10.6370860330724, "row": 1}, {"col": 76, "value": 10.6956196831267, "row": 1}, {"col": 77, "value": 11.1207916879495, "row": 1}, {"col": 78, "value": 10.8542099907482, "row": 1}, {"col": 79, "value": 10.6658783970378, "row": 1}, {"col": 80, "value": 11.6252953825635, "row": 1}, {"col": 81, "value": 12.1097660200214, "row": 1}, {"col": 82, "value": 14.2362523790018, "row": 1}, {"col": 83, "value": 14.1963915580646, "row": 1}, {"col": 84, "value": 10.495513568846, "row": 1}, {"col": 85, "value": 10.7825103803924, "row": 1}, {"col": 86, "value": 10.9990194104065, "row": 1}, {"col": 87, "value": 14.8433709014479, "row": 1}, {"col": 88, "value": 13.1390607589549, "row": 1}, {"col": 89, "value": 13.2427803594229, "row": 1}, {"col": 90, "value": 11.8705904742461, "row": 1}, {"col": 91, "value": 13.0015230699051, "row": 1}, {"col": 92, "value": 13.0143967218247, "row": 1}, {"col": 93, "value": 13.7635673988645, "row": 1}, {"col": 94, "value": 13.4430273321534, "row": 1}, {"col": 95, "value": 13.4575161302421, "row": 1}, {"col": 96, "value": 12.9860549353965, "row": 1}, {"col": 97, "value": 11.7677320387783, "row": 1}, {"col": 98, "value": 14.7642192444709, "row": 1}, {"col": 99, "value": 14.22301466263, "row": 1}, {"col": 100, "value": 14.1636451939945, "row": 1}, {"col": 101, "value": 13.7379375769337, "row": 1}, {"col": 102, "value": 14.8081763340917, "row": 1}, {"col": 103, "value": 14.8765615352645, "row": 1}, {"col": 104, "value": 13.1576316856191, "row": 1}, {"col": 105, "value": 11.909352674459, "row": 1}, {"col": 106, "value": 11.9485501174067, "row": 1}, {"col": 107, "value": 12.9565740980974, "row": 1}, {"col": 108, "value": 13.6856439177874, "row": 1}, {"col": 109, "value": 13.6958430058741, "row": 1}, {"col": 110, "value": 13.4707410962044, "row": 1}, {"col": 111, "value": 12.9465758340433, "row": 1}, {"col": 112, "value": 12.4958960659889, "row": 1}, {"col": 113, "value": 14.7464779107469, "row": 1}, {"col": 114, "value": 14.7533881888109, "row": 1}, {"col": 115, "value": 14.234250948783, "row": 1}, {"col": 116, "value": 13.6697017094389, "row": 1}, {"col": 117, "value": 11.7509430558054, "row": 1}, {"col": 118, "value": 11.6666075585501, "row": 1}, {"col": 119, "value": 13.4859534548997, "row": 1}, {"col": 120, "value": 13.5310666334558, "row": 1}, {"col": 121, "value": 13.4985422883422, "row": 1}], [{"col": 0, "value": 8441.48, "row": 2}, {"col": 1, "value": 10163.0, "row": 2}, {"col": 2, "value": 12477.0, "row": 2}, {"col": 3, "value": 9177.41, "row": 2}, {"col": 4, "value": 13680.6, "row": 2}, {"col": 5, "value": 15979.3, "row": 2}, {"col": 6, "value": 10659.2, "row": 2}, {"col": 7, "value": 15947.1, "row": 2}, {"col": 8, "value": 15789.1, "row": 2}, {"col": 9, "value": 8950.6, "row": 2}, {"col": 10, "value": 7344.37, "row": 2}, {"col": 11, "value": 22882.9, "row": 2}, {"col": 12, "value": 10385.7, "row": 2}, {"col": 13, "value": 10718.2, "row": 2}, {"col": 14, "value": 14045.1, "row": 2}, {"col": 15, "value": 10642.8, "row": 2}, {"col": 16, "value": 9456.22, "row": 2}, {"col": 17, "value": 9447.5, "row": 2}, {"col": 18, "value": 9358.12, "row": 2}, {"col": 19, "value": 15569.4, "row": 2}, {"col": 20, "value": 10556.6, "row": 2}, {"col": 21, "value": 11046.1, "row": 2}, {"col": 22, "value": 15406.1, "row": 2}, {"col": 23, "value": 9080.24, "row": 2}, {"col": 24, "value": 8946.44, "row": 2}, {"col": 25, "value": 7034.7, "row": 2}, {"col": 26, "value": 14485.5, "row": 2}, {"col": 27, "value": 10395.9, "row": 2}, {"col": 28, "value": -0.739799, "row": 2}, {"col": 29, "value": -0.543811, "row": 2}, {"col": 30, "value": -1.26578, "row": 2}, {"col": 31, "value": -0.688438, "row": 2}, {"col": 32, "value": -0.597566, "row": 2}, {"col": 33, "value": -0.407043, "row": 2}, {"col": 34, "value": -0.686886, "row": 2}, {"col": 35, "value": -1.29482, "row": 2}, {"col": 36, "value": -0.373457, "row": 2}, {"col": 37, "value": -0.921366, "row": 2}, {"col": 38, "value": 14.62573119367, "row": 2}, {"col": 39, "value": 14.7312163047866, "row": 2}, {"col": 40, "value": 15.1737339677414, "row": 2}, {"col": 41, "value": 14.8849757144116, "row": 2}, {"col": 42, "value": 15.1483621402449, "row": 2}, {"col": 43, "value": 15.2861573917198, "row": 2}, {"col": 44, "value": 14.9755915881524, "row": 2}, {"col": 45, "value": 14.9131415579488, "row": 2}, {"col": 46, "value": 15.1691533113857, "row": 2}, {"col": 47, "value": 14.7624129838008, "row": 2}, {"col": 48, "value": 14.7393148880886, "row": 2}, {"col": 49, "value": 15.1543981029227, "row": 2}, {"col": 50, "value": 15.293131534817, "row": 2}, {"col": 51, "value": 15.290183080108, "row": 2}, {"col": 52, "value": 15.1870997952338, "row": 2}, {"col": 53, "value": 15.2922616668467, "row": 2}, {"col": 54, "value": 15.2471085401846, "row": 2}, {"col": 55, "value": 15.293361965437, "row": 2}, {"col": 56, "value": 15.3171415600528, "row": 2}, {"col": 57, "value": 15.2937175363001, "row": 2}, {"col": 58, "value": 15.1005865199303, "row": 2}, {"col": 59, "value": 15.096376056089, "row": 2}, {"col": 60, "value": 14.9900042338563, "row": 2}, {"col": 61, "value": 14.8555617268161, "row": 2}, {"col": 62, "value": 15.240588850075, "row": 2}, {"col": 63, "value": 15.247840330133, "row": 2}, {"col": 64, "value": 15.3155389112093, "row": 2}, {"col": 65, "value": 14.9594510288028, "row": 2}, {"col": 66, "value": 15.0282020536705, "row": 2}, {"col": 67, "value": 15.0203720124043, "row": 2}, {"col": 68, "value": 14.8247886731378, "row": 2}, {"col": 69, "value": 15.0213191556482, "row": 2}, {"col": 70, "value": 15.0389053505209, "row": 2}, {"col": 71, "value": 15.3432727084573, "row": 2}, {"col": 72, "value": 15.1870275022297, "row": 2}, {"col": 73, "value": 15.2108514377502, "row": 2}, {"col": 74, "value": 15.2653548238471, "row": 2}, {"col": 75, "value": 15.3102171750458, "row": 2}, {"col": 76, "value": 15.3757792211681, "row": 2}, {"col": 77, "value": 15.3331618881839, "row": 2}, {"col": 78, "value": 15.1746832755923, "row": 2}, {"col": 79, "value": 15.1739387374962, "row": 2}, {"col": 80, "value": 15.184095753171, "row": 2}, {"col": 81, "value": 14.9049824216955, "row": 2}, {"col": 82, "value": 15.1878231272835, "row": 2}, {"col": 83, "value": 15.2325554456742, "row": 2}, {"col": 84, "value": 15.3482330748621, "row": 2}, {"col": 85, "value": 15.202271730361, "row": 2}, {"col": 86, "value": 15.0901408378359, "row": 2}, {"col": 87, "value": 15.1204321713054, "row": 2}, {"col": 88, "value": 14.9250863001004, "row": 2}, {"col": 89, "value": 14.6362840667017, "row": 2}, {"col": 90, "value": 14.6575643770163, "row": 2}, {"col": 91, "value": 15.1426286753281, "row": 2}, {"col": 92, "value": 15.0172228366454, "row": 2}, {"col": 93, "value": 15.0455306282876, "row": 2}, {"col": 94, "value": 15.1058827686014, "row": 2}, {"col": 95, "value": 14.2729101905939, "row": 2}, {"col": 96, "value": 14.3585197347181, "row": 2}, {"col": 97, "value": 15.1429344798579, "row": 2}, {"col": 98, "value": 15.1816273935928, "row": 2}, {"col": 99, "value": 15.1459918657813, "row": 2}, {"col": 100, "value": 14.9120960497957, "row": 2}, {"col": 101, "value": 14.9418439216937, "row": 2}, {"col": 102, "value": 14.6902281807943, "row": 2}, {"col": 103, "value": 14.9298684444447, "row": 2}, {"col": 104, "value": 15.0512196684508, "row": 2}, {"col": 105, "value": 14.9990611995586, "row": 2}, {"col": 106, "value": 15.1322849645899, "row": 2}, {"col": 107, "value": 14.5827231180623, "row": 2}, {"col": 108, "value": 14.3816519468653, "row": 2}, {"col": 109, "value": 14.389843192468, "row": 2}, {"col": 110, "value": 15.0158077367492, "row": 2}, {"col": 111, "value": 15.1030914586582, "row": 2}, {"col": 112, "value": 14.4664062337857, "row": 2}, {"col": 113, "value": 14.303203763911, "row": 2}, {"col": 114, "value": 14.6103238175394, "row": 2}, {"col": 115, "value": 15.0327820794008, "row": 2}, {"col": 116, "value": 14.4703107801472, "row": 2}, {"col": 117, "value": 14.4871251509898, "row": 2}, {"col": 118, "value": 14.6840412074516, "row": 2}, {"col": 119, "value": 14.653436598562, "row": 2}], [{"col": 0, "value": 1032.51, "row": 3}, {"col": 1, "value": 969.801, "row": 3}, {"col": 2, "value": 1289.1, "row": 3}, {"col": 3, "value": 853.452, "row": 3}, {"col": 4, "value": 908.141, "row": 3}, {"col": 5, "value": 949.017, "row": 3}, {"col": 6, "value": 360.906, "row": 3}, {"col": 7, "value": 398.414, "row": 3}, {"col": 8, "value": 430.772, "row": 3}, {"col": 9, "value": 525.792, "row": 3}, {"col": 10, "value": 503.336, "row": 3}, {"col": 11, "value": 2832.2, "row": 3}, {"col": 12, "value": 2685.58, "row": 3}, {"col": 13, "value": 1129.75, "row": 3}, {"col": 14, "value": 929.478, "row": 3}, {"col": 15, "value": 1241.64, "row": 3}, {"col": 16, "value": 1073.65, "row": 3}, {"col": 17, "value": 922.08, "row": 3}, {"col": 18, "value": 1011.99, "row": 3}, {"col": 19, "value": 564.081, "row": 3}, {"col": 20, "value": 406.193, "row": 3}, {"col": 21, "value": 410.831, "row": 3}, {"col": 22, "value": 405.27, "row": 3}, {"col": 23, "value": 542.085, "row": 3}, {"col": 24, "value": 3132.85, "row": 3}, {"col": 25, "value": 1400.01, "row": 3}, {"col": 26, "value": 1264.73, "row": 3}, {"col": 27, "value": 1089.99, "row": 3}, {"col": 28, "value": 0.399798, "row": 3}, {"col": 29, "value": -0.492987, "row": 3}, {"col": 30, "value": 1.62557, "row": 3}, {"col": 31, "value": 1.18764, "row": 3}, {"col": 32, "value": 2.92374, "row": 3}, {"col": 33, "value": 1.7065, "row": 3}, {"col": 34, "value": 1.54325, "row": 3}, {"col": 35, "value": 0.622234, "row": 3}, {"col": 36, "value": 1.53334, "row": 3}, {"col": 37, "value": 2.20832, "row": 3}, {"col": 38, "value": 0.897417, "row": 3}, {"col": 39, "value": -0.911105, "row": 3}, {"col": 40, "value": 11.7486969140658, "row": 3}, {"col": 41, "value": 11.434958165666, "row": 3}, {"col": 42, "value": 11.3651483594406, "row": 3}, {"col": 43, "value": 10.9048726773157, "row": 3}, {"col": 44, "value": 11.2195708490158, "row": 3}, {"col": 45, "value": 11.6377555262172, "row": 3}, {"col": 46, "value": 10.8706568269436, "row": 3}, {"col": 47, "value": 10.8841429514676, "row": 3}, {"col": 48, "value": 8.34621992832311, "row": 3}, {"col": 49, "value": 5.82484248934215, "row": 3}, {"col": 50, "value": 5.82531391184846, "row": 3}, {"col": 51, "value": 5.96282154178591, "row": 3}, {"col": 52, "value": 5.65743147256468, "row": 3}, {"col": 53, "value": 5.70890496243925, "row": 3}, {"col": 54, "value": 5.8093237650659, "row": 3}, {"col": 55, "value": 5.72754703437456, "row": 3}, {"col": 56, "value": 5.82484248934215, "row": 3}, {"col": 57, "value": 6.43051751344742, "row": 3}, {"col": 58, "value": 6.57205164239759, "row": 3}, {"col": 59, "value": 10.7444841474629, "row": 3}, {"col": 60, "value": 10.018952821018, "row": 3}, {"col": 61, "value": 5.81140812543894, "row": 3}, {"col": 62, "value": 6.13493920043813, "row": 3}, {"col": 63, "value": 5.82484248934215, "row": 3}, {"col": 64, "value": 11.5221378148739, "row": 3}, {"col": 65, "value": 11.5788238477493, "row": 3}, {"col": 66, "value": 11.2824710754811, "row": 3}, {"col": 67, "value": 11.4989259524433, "row": 3}, {"col": 68, "value": 10.6509842795521, "row": 3}, {"col": 69, "value": 11.1783055043196, "row": 3}, {"col": 70, "value": 10.0440364299462, "row": 3}, {"col": 71, "value": 6.59319281519788, "row": 3}, {"col": 72, "value": 7.72938588292353, "row": 3}, {"col": 73, "value": 5.72754703437456, "row": 3}, {"col": 74, "value": 6.32701157421743, "row": 3}, {"col": 75, "value": 6.13588890824566, "row": 3}, {"col": 76, "value": 5.82484248934215, "row": 3}, {"col": 77, "value": 5.72754703437456, "row": 3}, {"col": 78, "value": 5.72754703437456, "row": 3}, {"col": 79, "value": 5.82484248934215, "row": 3}, {"col": 80, "value": 6.43903671746403, "row": 3}, {"col": 81, "value": 6.13493920043813, "row": 3}, {"col": 82, "value": 5.98825003377746, "row": 3}, {"col": 83, "value": 10.1864929203784, "row": 3}, {"col": 84, "value": 5.82484248934215, "row": 3}, {"col": 85, "value": 5.94943171830464, "row": 3}, {"col": 86, "value": 5.71793578172453, "row": 3}, {"col": 87, "value": 15.1060204440129, "row": 3}, {"col": 88, "value": 13.3590011034457, "row": 3}, {"col": 89, "value": 13.3490313509454, "row": 3}, {"col": 90, "value": 12.2561106110884, "row": 3}, {"col": 91, "value": 13.1936153495798, "row": 3}, {"col": 92, "value": 13.246616767917, "row": 3}, {"col": 93, "value": 13.9340820433142, "row": 3}, {"col": 94, "value": 13.645621302051, "row": 3}, {"col": 95, "value": 13.7321512182067, "row": 3}, {"col": 96, "value": 13.3564879139581, "row": 3}, {"col": 97, "value": 11.8511196132199, "row": 3}, {"col": 98, "value": 15.0588732275334, "row": 3}, {"col": 99, "value": 14.5083592772589, "row": 3}, {"col": 100, "value": 14.5124907465626, "row": 3}, {"col": 101, "value": 13.9233746349494, "row": 3}, {"col": 102, "value": 11.9945187549267, "row": 3}, {"col": 103, "value": 13.6989274056345, "row": 3}, {"col": 104, "value": 14.9491787207137, "row": 3}, {"col": 105, "value": 14.9807443569418, "row": 3}, {"col": 106, "value": 13.3496428118898, "row": 3}, {"col": 107, "value": 12.2213088090254, "row": 3}, {"col": 108, "value": 12.1895126754522, "row": 3}, {"col": 109, "value": 13.3405778654097, "row": 3}, {"col": 110, "value": 13.8037673342542, "row": 3}, {"col": 111, "value": 13.9072524254844, "row": 3}, {"col": 112, "value": 13.5490947182515, "row": 3}, {"col": 113, "value": 13.3532496981122, "row": 3}, {"col": 114, "value": 12.6056705577619, "row": 3}, {"col": 115, "value": 15.0398576914503, "row": 3}, {"col": 116, "value": 15.0103881163362, "row": 3}, {"col": 117, "value": 14.4451776130836, "row": 3}, {"col": 118, "value": 13.6963917041923, "row": 3}, {"col": 119, "value": 12.5242943764293, "row": 3}, {"col": 120, "value": 13.6581215226181, "row": 3}, {"col": 121, "value": 13.6733926348365, "row": 3}], [{"col": 0, "value": 500.291, "row": 4}, {"col": 1, "value": 644.47, "row": 4}, {"col": 2, "value": 612.081, "row": 4}, {"col": 3, "value": 555.167, "row": 4}, {"col": 4, "value": 558.052, "row": 4}, {"col": 5, "value": 177.538, "row": 4}, {"col": 6, "value": 308.184, "row": 4}, {"col": 7, "value": 345.27, "row": 4}, {"col": 8, "value": 325.871, "row": 4}, {"col": 9, "value": 471.865, "row": 4}, {"col": 10, "value": 435.534, "row": 4}, {"col": 11, "value": 1522.67, "row": 4}, {"col": 12, "value": 1658.55, "row": 4}, {"col": 13, "value": 652.18, "row": 4}, {"col": 14, "value": 710.589, "row": 4}, {"col": 15, "value": 447.461, "row": 4}, {"col": 16, "value": 414.598, "row": 4}, {"col": 17, "value": 534.134, "row": 4}, {"col": 18, "value": 184.243, "row": 4}, {"col": 19, "value": 144.276, "row": 4}, {"col": 20, "value": 303.89, "row": 4}, {"col": 21, "value": 340.346, "row": 4}, {"col": 22, "value": 338.238, "row": 4}, {"col": 23, "value": 441.33, "row": 4}, {"col": 24, "value": 1675.96, "row": 4}, {"col": 25, "value": 928.722, "row": 4}, {"col": 26, "value": 766.127, "row": 4}, {"col": 27, "value": 633.749, "row": 4}, {"col": 28, "value": 0.490689, "row": 4}, {"col": 29, "value": -0.556177, "row": 4}, {"col": 30, "value": 3.04692, "row": 4}, {"col": 31, "value": 1.57264, "row": 4}, {"col": 32, "value": 2.3087, "row": 4}, {"col": 33, "value": 1.5113, "row": 4}, {"col": 34, "value": 1.30422, "row": 4}, {"col": 35, "value": 0.382657, "row": 4}, {"col": 36, "value": 1.39772, "row": 4}, {"col": 37, "value": 1.86055, "row": 4}, {"col": 38, "value": 0.354804, "row": 4}, {"col": 39, "value": -1.01506, "row": 4}, {"col": 40, "value": 13.7015953208703, "row": 4}, {"col": 41, "value": 13.4033477031613, "row": 4}, {"col": 42, "value": 13.5127984636589, "row": 4}, {"col": 43, "value": 13.6572848636245, "row": 4}, {"col": 44, "value": 13.6469096652644, "row": 4}, {"col": 45, "value": 13.2427967048635, "row": 4}, {"col": 46, "value": 13.1222150579961, "row": 4}, {"col": 47, "value": 13.2623395194459, "row": 4}, {"col": 48, "value": 12.6545600685311, "row": 4}, {"col": 49, "value": 8.91755751907217, "row": 4}, {"col": 50, "value": 10.2984667098165, "row": 4}, {"col": 51, "value": 8.5665447593854, "row": 4}, {"col": 52, "value": 9.1989729517728, "row": 4}, {"col": 53, "value": 9.12401440666377, "row": 4}, {"col": 54, "value": 8.91753009030931, "row": 4}, {"col": 55, "value": 8.05452404993128, "row": 4}, {"col": 56, "value": 8.91755751907217, "row": 4}, {"col": 57, "value": 8.89467416195157, "row": 4}, {"col": 58, "value": 9.4362219182956, "row": 4}, {"col": 59, "value": 9.04515766370691, "row": 4}, {"col": 60, "value": 9.18016946529716, "row": 4}, {"col": 61, "value": 12.9483141507175, "row": 4}, {"col": 62, "value": 8.66303618244731, "row": 4}, {"col": 63, "value": 8.78446696671244, "row": 4}, {"col": 64, "value": 8.96891035093045, "row": 4}, {"col": 65, "value": 13.6983967817659, "row": 4}, {"col": 66, "value": 13.2575883494835, "row": 4}, {"col": 67, "value": 13.1887390438677, "row": 4}, {"col": 68, "value": 13.4655229320479, "row": 4}, {"col": 69, "value": 12.874435993494, "row": 4}, {"col": 70, "value": 12.8205813085134, "row": 4}, {"col": 71, "value": 10.6946787303242, "row": 4}, {"col": 72, "value": 8.35700219178756, "row": 4}, {"col": 73, "value": 8.53584011875399, "row": 4}, {"col": 74, "value": 9.00598660928958, "row": 4}, {"col": 75, "value": 8.61739975592415, "row": 4}, {"col": 76, "value": 8.53584011875399, "row": 4}, {"col": 77, "value": 8.4137265984172, "row": 4}, {"col": 78, "value": 8.91755751907217, "row": 4}, {"col": 79, "value": 8.40841885887191, "row": 4}, {"col": 80, "value": 9.15340890613546, "row": 4}, {"col": 81, "value": 9.56281914461084, "row": 4}, {"col": 82, "value": 13.4305009764987, "row": 4}, {"col": 83, "value": 13.1212902072851, "row": 4}, {"col": 84, "value": 8.78317884605077, "row": 4}, {"col": 85, "value": 9.27734759255929, "row": 4}, {"col": 86, "value": 8.76812872636418, "row": 4}, {"col": 87, "value": 14.5527518192236, "row": 4}, {"col": 88, "value": 12.9556532638012, "row": 4}, {"col": 89, "value": 12.8329187931707, "row": 4}, {"col": 90, "value": 11.7768623442291, "row": 4}, {"col": 91, "value": 12.9480826019022, "row": 4}, {"col": 92, "value": 12.8072791753891, "row": 4}, {"col": 93, "value": 13.4644448609481, "row": 4}, {"col": 94, "value": 13.2359796737507, "row": 4}, {"col": 95, "value": 13.1363498041007, "row": 4}, {"col": 96, "value": 12.4256683086673, "row": 4}, {"col": 97, "value": 10.7072497467802, "row": 4}, {"col": 98, "value": 14.3867584713303, "row": 4}, {"col": 99, "value": 13.6911825990341, "row": 4}, {"col": 100, "value": 13.5735477975709, "row": 4}, {"col": 101, "value": 13.2781045596659, "row": 4}, {"col": 102, "value": 11.5294705929067, "row": 4}, {"col": 103, "value": 13.5111490179521, "row": 4}, {"col": 104, "value": 14.5002424441276, "row": 4}, {"col": 105, "value": 14.5503768151331, "row": 4}, {"col": 106, "value": 12.884706400654, "row": 4}, {"col": 107, "value": 11.9980110415735, "row": 4}, {"col": 108, "value": 11.8184821498611, "row": 4}, {"col": 109, "value": 12.8798488505069, "row": 4}, {"col": 110, "value": 13.5744928372611, "row": 4}, {"col": 111, "value": 13.4383093247762, "row": 4}, {"col": 112, "value": 13.3068118041082, "row": 4}, {"col": 113, "value": 11.914078238606, "row": 4}, {"col": 114, "value": 12.1890944983656, "row": 4}, {"col": 115, "value": 14.3817668055912, "row": 4}, {"col": 116, "value": 14.2845271638751, "row": 4}, {"col": 117, "value": 13.7573783517173, "row": 4}, {"col": 118, "value": 13.3754775135612, "row": 4}, {"col": 119, "value": 11.1989578790269, "row": 4}, {"col": 120, "value": 13.5289043326408, "row": 4}, {"col": 121, "value": 13.5754295756759, "row": 4}]]}'

In [14]:
[k for i,k in enumerate(genes_data)]


Out[14]:
[Gene: (b0727, sucB) 761521-762739 (+),
 Gene: (b0728, sucC) 763013-764180 (+),
 Gene: (b1779, gapA) 1862770-1863766 (+),
 Gene: (b0729, sucD) 764179-765049 (+),
 Gene: (b0726, sucA) 758705-761507 (+)]

In [16]:
[[{"row": i, "col": j, "value": data.value} for j,data in enumerate(genes_data[gene])] for i,gene in enumerate(genes_data)]


Out[16]:
[[{'col': 0, 'row': 0, 'value': 857.844},
  {'col': 1, 'row': 0, 'value': 851.957},
  {'col': 2, 'row': 0, 'value': 818.335},
  {'col': 3, 'row': 0, 'value': 777.381},
  {'col': 4, 'row': 0, 'value': 758.984},
  {'col': 5, 'row': 0, 'value': 495.698},
  {'col': 6, 'row': 0, 'value': 435.969},
  {'col': 7, 'row': 0, 'value': 471.084},
  {'col': 8, 'row': 0, 'value': 437.242},
  {'col': 9, 'row': 0, 'value': 598.409},
  {'col': 10, 'row': 0, 'value': 543.095},
  {'col': 11, 'row': 0, 'value': 2105.33},
  {'col': 12, 'row': 0, 'value': 1995.13},
  {'col': 13, 'row': 0, 'value': 837.41},
  {'col': 14, 'row': 0, 'value': 909.427},
  {'col': 15, 'row': 0, 'value': 829.254},
  {'col': 16, 'row': 0, 'value': 772.537},
  {'col': 17, 'row': 0, 'value': 759.333},
  {'col': 18, 'row': 0, 'value': 557.82},
  {'col': 19, 'row': 0, 'value': 357.458},
  {'col': 20, 'row': 0, 'value': 436.722},
  {'col': 21, 'row': 0, 'value': 440.41},
  {'col': 22, 'row': 0, 'value': 436.962},
  {'col': 23, 'row': 0, 'value': 553.857},
  {'col': 24, 'row': 0, 'value': 2354.17},
  {'col': 25, 'row': 0, 'value': 1192.19},
  {'col': 26, 'row': 0, 'value': 1040.39},
  {'col': 27, 'row': 0, 'value': 889.687},
  {'col': 28, 'row': 0, 'value': 0.432536},
  {'col': 29, 'row': 0, 'value': -0.397255},
  {'col': 30, 'row': 0, 'value': 2.04668},
  {'col': 31, 'row': 0, 'value': 1.34544},
  {'col': 32, 'row': 0, 'value': 2.29933},
  {'col': 33, 'row': 0, 'value': 1.51219},
  {'col': 34, 'row': 0, 'value': 1.28779},
  {'col': 35, 'row': 0, 'value': 0.561733},
  {'col': 36, 'row': 0, 'value': 1.44532},
  {'col': 37, 'row': 0, 'value': 1.77288},
  {'col': 38, 'row': 0, 'value': 0.456752},
  {'col': 39, 'row': 0, 'value': -0.883587},
  {'col': 40, 'row': 0, 'value': 13.561455618006},
  {'col': 41, 'row': 0, 'value': 13.6704110951708},
  {'col': 42, 'row': 0, 'value': 13.929860654029},
  {'col': 43, 'row': 0, 'value': 13.6497693355289},
  {'col': 44, 'row': 0, 'value': 13.5122785899231},
  {'col': 45, 'row': 0, 'value': 13.8956617357311},
  {'col': 46, 'row': 0, 'value': 13.4563724543563},
  {'col': 47, 'row': 0, 'value': 13.2654149197683},
  {'col': 48, 'row': 0, 'value': 11.5822062985467},
  {'col': 49, 'row': 0, 'value': 9.53809257914902},
  {'col': 50, 'row': 0, 'value': 9.81608132214322},
  {'col': 51, 'row': 0, 'value': 9.91468138976239},
  {'col': 52, 'row': 0, 'value': 9.818821129562},
  {'col': 53, 'row': 0, 'value': 9.57325880077826},
  {'col': 54, 'row': 0, 'value': 9.93303053120947},
  {'col': 55, 'row': 0, 'value': 9.89217920441508},
  {'col': 56, 'row': 0, 'value': 9.5183624996305},
  {'col': 57, 'row': 0, 'value': 10.1748566773564},
  {'col': 58, 'row': 0, 'value': 11.0072296815255},
  {'col': 59, 'row': 0, 'value': 13.5765822043872},
  {'col': 60, 'row': 0, 'value': 13.4609118284044},
  {'col': 61, 'row': 0, 'value': 9.46610475657578},
  {'col': 62, 'row': 0, 'value': 9.83810007090159},
  {'col': 63, 'row': 0, 'value': 10.1572837907573},
  {'col': 64, 'row': 0, 'value': 13.9039922806566},
  {'col': 65, 'row': 0, 'value': 13.8533773183025},
  {'col': 66, 'row': 0, 'value': 13.9265210339694},
  {'col': 67, 'row': 0, 'value': 13.5040855499817},
  {'col': 68, 'row': 0, 'value': 13.4073901570674},
  {'col': 69, 'row': 0, 'value': 13.6238123203913},
  {'col': 70, 'row': 0, 'value': 13.163433712565},
  {'col': 71, 'row': 0, 'value': 10.3315788284862},
  {'col': 72, 'row': 0, 'value': 11.3316588963345},
  {'col': 73, 'row': 0, 'value': 9.72468191276667},
  {'col': 74, 'row': 0, 'value': 10.0718998332607},
  {'col': 75, 'row': 0, 'value': 10.1969084173449},
  {'col': 76, 'row': 0, 'value': 9.75692228945093},
  {'col': 77, 'row': 0, 'value': 9.54993956612485},
  {'col': 78, 'row': 0, 'value': 10.0183717266756},
  {'col': 79, 'row': 0, 'value': 9.9220314430799},
  {'col': 80, 'row': 0, 'value': 10.4394240067545},
  {'col': 81, 'row': 0, 'value': 10.7050005286526},
  {'col': 82, 'row': 0, 'value': 10.7102134291794},
  {'col': 83, 'row': 0, 'value': 13.4011541088589},
  {'col': 84, 'row': 0, 'value': 9.55431277564047},
  {'col': 85, 'row': 0, 'value': 9.93320345822298},
  {'col': 86, 'row': 0, 'value': 10.0840935769721},
  {'col': 87, 'row': 0, 'value': 14.6259746688342},
  {'col': 88, 'row': 0, 'value': 13.3108119005334},
  {'col': 89, 'row': 0, 'value': 13.3784201488828},
  {'col': 90, 'row': 0, 'value': 12.2017337688336},
  {'col': 91, 'row': 0, 'value': 13.0911628329115},
  {'col': 92, 'row': 0, 'value': 13.1239577475452},
  {'col': 93, 'row': 0, 'value': 13.6612269902857},
  {'col': 94, 'row': 0, 'value': 13.4108699090057},
  {'col': 95, 'row': 0, 'value': 13.4040543918307},
  {'col': 96, 'row': 0, 'value': 13.1634051943626},
  {'col': 97, 'row': 0, 'value': 12.3638222852243},
  {'col': 98, 'row': 0, 'value': 14.5130086841624},
  {'col': 99, 'row': 0, 'value': 13.9235930558533},
  {'col': 100, 'row': 0, 'value': 13.8728724913113},
  {'col': 101, 'row': 0, 'value': 13.6917064147896},
  {'col': 102, 'row': 0, 'value': 12.257514955916},
  {'col': 103, 'row': 0, 'value': 13.6375913098284},
  {'col': 104, 'row': 0, 'value': 14.6446687092058},
  {'col': 105, 'row': 0, 'value': 14.6520827180006},
  {'col': 106, 'row': 0, 'value': 13.3594585813192},
  {'col': 107, 'row': 0, 'value': 12.1804220683582},
  {'col': 108, 'row': 0, 'value': 12.3084543962541},
  {'col': 109, 'row': 0, 'value': 13.0880788492005},
  {'col': 110, 'row': 0, 'value': 13.6411787371232},
  {'col': 111, 'row': 0, 'value': 13.6243884637951},
  {'col': 112, 'row': 0, 'value': 13.3602109077489},
  {'col': 113, 'row': 0, 'value': 12.99794156477},
  {'col': 114, 'row': 0, 'value': 13.0175659687197},
  {'col': 115, 'row': 0, 'value': 14.5062981908542},
  {'col': 116, 'row': 0, 'value': 14.4748561401981},
  {'col': 117, 'row': 0, 'value': 13.9619337375569},
  {'col': 118, 'row': 0, 'value': 13.5810168313386},
  {'col': 119, 'row': 0, 'value': 12.3723737107103},
  {'col': 120, 'row': 0, 'value': 13.6973083273534},
  {'col': 121, 'row': 0, 'value': 13.6243884637951}],
 [{'col': 0, 'row': 1, 'value': 864.328},
  {'col': 1, 'row': 1, 'value': 892.316},
  {'col': 2, 'row': 1, 'value': 1204.33},
  {'col': 3, 'row': 1, 'value': 851.607},
  {'col': 4, 'row': 1, 'value': 875.709},
  {'col': 5, 'row': 1, 'value': 674.234},
  {'col': 6, 'row': 1, 'value': 381.148},
  {'col': 7, 'row': 1, 'value': 410.24},
  {'col': 8, 'row': 1, 'value': 410.009},
  {'col': 9, 'row': 1, 'value': 537.38},
  {'col': 10, 'row': 1, 'value': 527.486},
  {'col': 11, 'row': 1, 'value': 2855.02},
  {'col': 12, 'row': 1, 'value': 2755.67},
  {'col': 13, 'row': 1, 'value': 871.778},
  {'col': 14, 'row': 1, 'value': 988.004},
  {'col': 15, 'row': 1, 'value': 985.675},
  {'col': 16, 'row': 1, 'value': 908.14},
  {'col': 17, 'row': 1, 'value': 898.058},
  {'col': 18, 'row': 1, 'value': 748.474},
  {'col': 19, 'row': 1, 'value': 359.481},
  {'col': 20, 'row': 1, 'value': 388.915},
  {'col': 21, 'row': 1, 'value': 419.198},
  {'col': 22, 'row': 1, 'value': 433.252},
  {'col': 23, 'row': 1, 'value': 530.207},
  {'col': 24, 'row': 1, 'value': 3167.41},
  {'col': 25, 'row': 1, 'value': 1346.74},
  {'col': 26, 'row': 1, 'value': 1067.83},
  {'col': 27, 'row': 1, 'value': 914.552},
  {'col': 28, 'row': 1, 'value': 0.402896},
  {'col': 29, 'row': 1, 'value': -0.496367},
  {'col': 30, 'row': 1, 'value': 2.14171},
  {'col': 31, 'row': 1, 'value': 1.41692},
  {'col': 32, 'row': 1, 'value': 2.91983},
  {'col': 33, 'row': 1, 'value': 1.75205},
  {'col': 34, 'row': 1, 'value': 1.65407},
  {'col': 35, 'row': 1, 'value': 0.629755},
  {'col': 36, 'row': 1, 'value': 1.83433},
  {'col': 37, 'row': 1, 'value': 2.19661},
  {'col': 38, 'row': 1, 'value': 0.589137},
  {'col': 39, 'row': 1, 'value': -1.20457},
  {'col': 40, 'row': 1, 'value': 14.5405211513889},
  {'col': 41, 'row': 1, 'value': 14.4755164928986},
  {'col': 42, 'row': 1, 'value': 14.5621085368645},
  {'col': 43, 'row': 1, 'value': 14.4760783426781},
  {'col': 44, 'row': 1, 'value': 14.3295825350024},
  {'col': 45, 'row': 1, 'value': 14.4419520539588},
  {'col': 46, 'row': 1, 'value': 13.7555013134898},
  {'col': 47, 'row': 1, 'value': 11.4961049865679},
  {'col': 48, 'row': 1, 'value': 12.2633440290454},
  {'col': 49, 'row': 1, 'value': 10.6956196831267},
  {'col': 50, 'row': 1, 'value': 11.5855793662712},
  {'col': 51, 'row': 1, 'value': 11.5630498098673},
  {'col': 52, 'row': 1, 'value': 10.7163397734516},
  {'col': 53, 'row': 1, 'value': 10.8655468890673},
  {'col': 54, 'row': 1, 'value': 11.1643680475884},
  {'col': 55, 'row': 1, 'value': 10.8343868085565},
  {'col': 56, 'row': 1, 'value': 11.7155976515182},
  {'col': 57, 'row': 1, 'value': 11.7127777692279},
  {'col': 58, 'row': 1, 'value': 11.9101925757306},
  {'col': 59, 'row': 1, 'value': 14.2291834234721},
  {'col': 60, 'row': 1, 'value': 10.6956196831267},
  {'col': 61, 'row': 1, 'value': 10.7956249563169},
  {'col': 62, 'row': 1, 'value': 10.8272787009327},
  {'col': 63, 'row': 1, 'value': 14.3434160884441},
  {'col': 64, 'row': 1, 'value': 14.452838293866},
  {'col': 65, 'row': 1, 'value': 14.4497768243623},
  {'col': 66, 'row': 1, 'value': 14.5681737964195},
  {'col': 67, 'row': 1, 'value': 14.3648590460782},
  {'col': 68, 'row': 1, 'value': 14.7193130137693},
  {'col': 69, 'row': 1, 'value': 14.1374910469573},
  {'col': 70, 'row': 1, 'value': 13.9910982505065},
  {'col': 71, 'row': 1, 'value': 12.4393662978739},
  {'col': 72, 'row': 1, 'value': 10.7811427996588},
  {'col': 73, 'row': 1, 'value': 10.6956196831267},
  {'col': 74, 'row': 1, 'value': 11.3384099282529},
  {'col': 75, 'row': 1, 'value': 10.6370860330724},
  {'col': 76, 'row': 1, 'value': 10.6956196831267},
  {'col': 77, 'row': 1, 'value': 11.1207916879495},
  {'col': 78, 'row': 1, 'value': 10.8542099907482},
  {'col': 79, 'row': 1, 'value': 10.6658783970378},
  {'col': 80, 'row': 1, 'value': 11.6252953825635},
  {'col': 81, 'row': 1, 'value': 12.1097660200214},
  {'col': 82, 'row': 1, 'value': 14.2362523790018},
  {'col': 83, 'row': 1, 'value': 14.1963915580646},
  {'col': 84, 'row': 1, 'value': 10.495513568846},
  {'col': 85, 'row': 1, 'value': 10.7825103803924},
  {'col': 86, 'row': 1, 'value': 10.9990194104065},
  {'col': 87, 'row': 1, 'value': 14.8433709014479},
  {'col': 88, 'row': 1, 'value': 13.1390607589549},
  {'col': 89, 'row': 1, 'value': 13.2427803594229},
  {'col': 90, 'row': 1, 'value': 11.8705904742461},
  {'col': 91, 'row': 1, 'value': 13.0015230699051},
  {'col': 92, 'row': 1, 'value': 13.0143967218247},
  {'col': 93, 'row': 1, 'value': 13.7635673988645},
  {'col': 94, 'row': 1, 'value': 13.4430273321534},
  {'col': 95, 'row': 1, 'value': 13.4575161302421},
  {'col': 96, 'row': 1, 'value': 12.9860549353965},
  {'col': 97, 'row': 1, 'value': 11.7677320387783},
  {'col': 98, 'row': 1, 'value': 14.7642192444709},
  {'col': 99, 'row': 1, 'value': 14.22301466263},
  {'col': 100, 'row': 1, 'value': 14.1636451939945},
  {'col': 101, 'row': 1, 'value': 13.7379375769337},
  {'col': 102, 'row': 1, 'value': 14.8081763340917},
  {'col': 103, 'row': 1, 'value': 14.8765615352645},
  {'col': 104, 'row': 1, 'value': 13.1576316856191},
  {'col': 105, 'row': 1, 'value': 11.909352674459},
  {'col': 106, 'row': 1, 'value': 11.9485501174067},
  {'col': 107, 'row': 1, 'value': 12.9565740980974},
  {'col': 108, 'row': 1, 'value': 13.6856439177874},
  {'col': 109, 'row': 1, 'value': 13.6958430058741},
  {'col': 110, 'row': 1, 'value': 13.4707410962044},
  {'col': 111, 'row': 1, 'value': 12.9465758340433},
  {'col': 112, 'row': 1, 'value': 12.4958960659889},
  {'col': 113, 'row': 1, 'value': 14.7464779107469},
  {'col': 114, 'row': 1, 'value': 14.7533881888109},
  {'col': 115, 'row': 1, 'value': 14.234250948783},
  {'col': 116, 'row': 1, 'value': 13.6697017094389},
  {'col': 117, 'row': 1, 'value': 11.7509430558054},
  {'col': 118, 'row': 1, 'value': 11.6666075585501},
  {'col': 119, 'row': 1, 'value': 13.4859534548997},
  {'col': 120, 'row': 1, 'value': 13.5310666334558},
  {'col': 121, 'row': 1, 'value': 13.4985422883422}],
 [{'col': 0, 'row': 2, 'value': 8441.48},
  {'col': 1, 'row': 2, 'value': 10163.0},
  {'col': 2, 'row': 2, 'value': 12477.0},
  {'col': 3, 'row': 2, 'value': 9177.41},
  {'col': 4, 'row': 2, 'value': 13680.6},
  {'col': 5, 'row': 2, 'value': 15979.3},
  {'col': 6, 'row': 2, 'value': 10659.2},
  {'col': 7, 'row': 2, 'value': 15947.1},
  {'col': 8, 'row': 2, 'value': 15789.1},
  {'col': 9, 'row': 2, 'value': 8950.6},
  {'col': 10, 'row': 2, 'value': 7344.37},
  {'col': 11, 'row': 2, 'value': 22882.9},
  {'col': 12, 'row': 2, 'value': 10385.7},
  {'col': 13, 'row': 2, 'value': 10718.2},
  {'col': 14, 'row': 2, 'value': 14045.1},
  {'col': 15, 'row': 2, 'value': 10642.8},
  {'col': 16, 'row': 2, 'value': 9456.22},
  {'col': 17, 'row': 2, 'value': 9447.5},
  {'col': 18, 'row': 2, 'value': 9358.12},
  {'col': 19, 'row': 2, 'value': 15569.4},
  {'col': 20, 'row': 2, 'value': 10556.6},
  {'col': 21, 'row': 2, 'value': 11046.1},
  {'col': 22, 'row': 2, 'value': 15406.1},
  {'col': 23, 'row': 2, 'value': 9080.24},
  {'col': 24, 'row': 2, 'value': 8946.44},
  {'col': 25, 'row': 2, 'value': 7034.7},
  {'col': 26, 'row': 2, 'value': 14485.5},
  {'col': 27, 'row': 2, 'value': 10395.9},
  {'col': 28, 'row': 2, 'value': -0.739799},
  {'col': 29, 'row': 2, 'value': -0.543811},
  {'col': 30, 'row': 2, 'value': -1.26578},
  {'col': 31, 'row': 2, 'value': -0.688438},
  {'col': 32, 'row': 2, 'value': -0.597566},
  {'col': 33, 'row': 2, 'value': -0.407043},
  {'col': 34, 'row': 2, 'value': -0.686886},
  {'col': 35, 'row': 2, 'value': -1.29482},
  {'col': 36, 'row': 2, 'value': -0.373457},
  {'col': 37, 'row': 2, 'value': -0.921366},
  {'col': 38, 'row': 2, 'value': 14.62573119367},
  {'col': 39, 'row': 2, 'value': 14.7312163047866},
  {'col': 40, 'row': 2, 'value': 15.1737339677414},
  {'col': 41, 'row': 2, 'value': 14.8849757144116},
  {'col': 42, 'row': 2, 'value': 15.1483621402449},
  {'col': 43, 'row': 2, 'value': 15.2861573917198},
  {'col': 44, 'row': 2, 'value': 14.9755915881524},
  {'col': 45, 'row': 2, 'value': 14.9131415579488},
  {'col': 46, 'row': 2, 'value': 15.1691533113857},
  {'col': 47, 'row': 2, 'value': 14.7624129838008},
  {'col': 48, 'row': 2, 'value': 14.7393148880886},
  {'col': 49, 'row': 2, 'value': 15.1543981029227},
  {'col': 50, 'row': 2, 'value': 15.293131534817},
  {'col': 51, 'row': 2, 'value': 15.290183080108},
  {'col': 52, 'row': 2, 'value': 15.1870997952338},
  {'col': 53, 'row': 2, 'value': 15.2922616668467},
  {'col': 54, 'row': 2, 'value': 15.2471085401846},
  {'col': 55, 'row': 2, 'value': 15.293361965437},
  {'col': 56, 'row': 2, 'value': 15.3171415600528},
  {'col': 57, 'row': 2, 'value': 15.2937175363001},
  {'col': 58, 'row': 2, 'value': 15.1005865199303},
  {'col': 59, 'row': 2, 'value': 15.096376056089},
  {'col': 60, 'row': 2, 'value': 14.9900042338563},
  {'col': 61, 'row': 2, 'value': 14.8555617268161},
  {'col': 62, 'row': 2, 'value': 15.240588850075},
  {'col': 63, 'row': 2, 'value': 15.247840330133},
  {'col': 64, 'row': 2, 'value': 15.3155389112093},
  {'col': 65, 'row': 2, 'value': 14.9594510288028},
  {'col': 66, 'row': 2, 'value': 15.0282020536705},
  {'col': 67, 'row': 2, 'value': 15.0203720124043},
  {'col': 68, 'row': 2, 'value': 14.8247886731378},
  {'col': 69, 'row': 2, 'value': 15.0213191556482},
  {'col': 70, 'row': 2, 'value': 15.0389053505209},
  {'col': 71, 'row': 2, 'value': 15.3432727084573},
  {'col': 72, 'row': 2, 'value': 15.1870275022297},
  {'col': 73, 'row': 2, 'value': 15.2108514377502},
  {'col': 74, 'row': 2, 'value': 15.2653548238471},
  {'col': 75, 'row': 2, 'value': 15.3102171750458},
  {'col': 76, 'row': 2, 'value': 15.3757792211681},
  {'col': 77, 'row': 2, 'value': 15.3331618881839},
  {'col': 78, 'row': 2, 'value': 15.1746832755923},
  {'col': 79, 'row': 2, 'value': 15.1739387374962},
  {'col': 80, 'row': 2, 'value': 15.184095753171},
  {'col': 81, 'row': 2, 'value': 14.9049824216955},
  {'col': 82, 'row': 2, 'value': 15.1878231272835},
  {'col': 83, 'row': 2, 'value': 15.2325554456742},
  {'col': 84, 'row': 2, 'value': 15.3482330748621},
  {'col': 85, 'row': 2, 'value': 15.202271730361},
  {'col': 86, 'row': 2, 'value': 15.0901408378359},
  {'col': 87, 'row': 2, 'value': 15.1204321713054},
  {'col': 88, 'row': 2, 'value': 14.9250863001004},
  {'col': 89, 'row': 2, 'value': 14.6362840667017},
  {'col': 90, 'row': 2, 'value': 14.6575643770163},
  {'col': 91, 'row': 2, 'value': 15.1426286753281},
  {'col': 92, 'row': 2, 'value': 15.0172228366454},
  {'col': 93, 'row': 2, 'value': 15.0455306282876},
  {'col': 94, 'row': 2, 'value': 15.1058827686014},
  {'col': 95, 'row': 2, 'value': 14.2729101905939},
  {'col': 96, 'row': 2, 'value': 14.3585197347181},
  {'col': 97, 'row': 2, 'value': 15.1429344798579},
  {'col': 98, 'row': 2, 'value': 15.1816273935928},
  {'col': 99, 'row': 2, 'value': 15.1459918657813},
  {'col': 100, 'row': 2, 'value': 14.9120960497957},
  {'col': 101, 'row': 2, 'value': 14.9418439216937},
  {'col': 102, 'row': 2, 'value': 14.6902281807943},
  {'col': 103, 'row': 2, 'value': 14.9298684444447},
  {'col': 104, 'row': 2, 'value': 15.0512196684508},
  {'col': 105, 'row': 2, 'value': 14.9990611995586},
  {'col': 106, 'row': 2, 'value': 15.1322849645899},
  {'col': 107, 'row': 2, 'value': 14.5827231180623},
  {'col': 108, 'row': 2, 'value': 14.3816519468653},
  {'col': 109, 'row': 2, 'value': 14.389843192468},
  {'col': 110, 'row': 2, 'value': 15.0158077367492},
  {'col': 111, 'row': 2, 'value': 15.1030914586582},
  {'col': 112, 'row': 2, 'value': 14.4664062337857},
  {'col': 113, 'row': 2, 'value': 14.303203763911},
  {'col': 114, 'row': 2, 'value': 14.6103238175394},
  {'col': 115, 'row': 2, 'value': 15.0327820794008},
  {'col': 116, 'row': 2, 'value': 14.4703107801472},
  {'col': 117, 'row': 2, 'value': 14.4871251509898},
  {'col': 118, 'row': 2, 'value': 14.6840412074516},
  {'col': 119, 'row': 2, 'value': 14.653436598562}],
 [{'col': 0, 'row': 3, 'value': 1032.51},
  {'col': 1, 'row': 3, 'value': 969.801},
  {'col': 2, 'row': 3, 'value': 1289.1},
  {'col': 3, 'row': 3, 'value': 853.452},
  {'col': 4, 'row': 3, 'value': 908.141},
  {'col': 5, 'row': 3, 'value': 949.017},
  {'col': 6, 'row': 3, 'value': 360.906},
  {'col': 7, 'row': 3, 'value': 398.414},
  {'col': 8, 'row': 3, 'value': 430.772},
  {'col': 9, 'row': 3, 'value': 525.792},
  {'col': 10, 'row': 3, 'value': 503.336},
  {'col': 11, 'row': 3, 'value': 2832.2},
  {'col': 12, 'row': 3, 'value': 2685.58},
  {'col': 13, 'row': 3, 'value': 1129.75},
  {'col': 14, 'row': 3, 'value': 929.478},
  {'col': 15, 'row': 3, 'value': 1241.64},
  {'col': 16, 'row': 3, 'value': 1073.65},
  {'col': 17, 'row': 3, 'value': 922.08},
  {'col': 18, 'row': 3, 'value': 1011.99},
  {'col': 19, 'row': 3, 'value': 564.081},
  {'col': 20, 'row': 3, 'value': 406.193},
  {'col': 21, 'row': 3, 'value': 410.831},
  {'col': 22, 'row': 3, 'value': 405.27},
  {'col': 23, 'row': 3, 'value': 542.085},
  {'col': 24, 'row': 3, 'value': 3132.85},
  {'col': 25, 'row': 3, 'value': 1400.01},
  {'col': 26, 'row': 3, 'value': 1264.73},
  {'col': 27, 'row': 3, 'value': 1089.99},
  {'col': 28, 'row': 3, 'value': 0.399798},
  {'col': 29, 'row': 3, 'value': -0.492987},
  {'col': 30, 'row': 3, 'value': 1.62557},
  {'col': 31, 'row': 3, 'value': 1.18764},
  {'col': 32, 'row': 3, 'value': 2.92374},
  {'col': 33, 'row': 3, 'value': 1.7065},
  {'col': 34, 'row': 3, 'value': 1.54325},
  {'col': 35, 'row': 3, 'value': 0.622234},
  {'col': 36, 'row': 3, 'value': 1.53334},
  {'col': 37, 'row': 3, 'value': 2.20832},
  {'col': 38, 'row': 3, 'value': 0.897417},
  {'col': 39, 'row': 3, 'value': -0.911105},
  {'col': 40, 'row': 3, 'value': 11.7486969140658},
  {'col': 41, 'row': 3, 'value': 11.434958165666},
  {'col': 42, 'row': 3, 'value': 11.3651483594406},
  {'col': 43, 'row': 3, 'value': 10.9048726773157},
  {'col': 44, 'row': 3, 'value': 11.2195708490158},
  {'col': 45, 'row': 3, 'value': 11.6377555262172},
  {'col': 46, 'row': 3, 'value': 10.8706568269436},
  {'col': 47, 'row': 3, 'value': 10.8841429514676},
  {'col': 48, 'row': 3, 'value': 8.34621992832311},
  {'col': 49, 'row': 3, 'value': 5.82484248934215},
  {'col': 50, 'row': 3, 'value': 5.82531391184846},
  {'col': 51, 'row': 3, 'value': 5.96282154178591},
  {'col': 52, 'row': 3, 'value': 5.65743147256468},
  {'col': 53, 'row': 3, 'value': 5.70890496243925},
  {'col': 54, 'row': 3, 'value': 5.8093237650659},
  {'col': 55, 'row': 3, 'value': 5.72754703437456},
  {'col': 56, 'row': 3, 'value': 5.82484248934215},
  {'col': 57, 'row': 3, 'value': 6.43051751344742},
  {'col': 58, 'row': 3, 'value': 6.57205164239759},
  {'col': 59, 'row': 3, 'value': 10.7444841474629},
  {'col': 60, 'row': 3, 'value': 10.018952821018},
  {'col': 61, 'row': 3, 'value': 5.81140812543894},
  {'col': 62, 'row': 3, 'value': 6.13493920043813},
  {'col': 63, 'row': 3, 'value': 5.82484248934215},
  {'col': 64, 'row': 3, 'value': 11.5221378148739},
  {'col': 65, 'row': 3, 'value': 11.5788238477493},
  {'col': 66, 'row': 3, 'value': 11.2824710754811},
  {'col': 67, 'row': 3, 'value': 11.4989259524433},
  {'col': 68, 'row': 3, 'value': 10.6509842795521},
  {'col': 69, 'row': 3, 'value': 11.1783055043196},
  {'col': 70, 'row': 3, 'value': 10.0440364299462},
  {'col': 71, 'row': 3, 'value': 6.59319281519788},
  {'col': 72, 'row': 3, 'value': 7.72938588292353},
  {'col': 73, 'row': 3, 'value': 5.72754703437456},
  {'col': 74, 'row': 3, 'value': 6.32701157421743},
  {'col': 75, 'row': 3, 'value': 6.13588890824566},
  {'col': 76, 'row': 3, 'value': 5.82484248934215},
  {'col': 77, 'row': 3, 'value': 5.72754703437456},
  {'col': 78, 'row': 3, 'value': 5.72754703437456},
  {'col': 79, 'row': 3, 'value': 5.82484248934215},
  {'col': 80, 'row': 3, 'value': 6.43903671746403},
  {'col': 81, 'row': 3, 'value': 6.13493920043813},
  {'col': 82, 'row': 3, 'value': 5.98825003377746},
  {'col': 83, 'row': 3, 'value': 10.1864929203784},
  {'col': 84, 'row': 3, 'value': 5.82484248934215},
  {'col': 85, 'row': 3, 'value': 5.94943171830464},
  {'col': 86, 'row': 3, 'value': 5.71793578172453},
  {'col': 87, 'row': 3, 'value': 15.1060204440129},
  {'col': 88, 'row': 3, 'value': 13.3590011034457},
  {'col': 89, 'row': 3, 'value': 13.3490313509454},
  {'col': 90, 'row': 3, 'value': 12.2561106110884},
  {'col': 91, 'row': 3, 'value': 13.1936153495798},
  {'col': 92, 'row': 3, 'value': 13.246616767917},
  {'col': 93, 'row': 3, 'value': 13.9340820433142},
  {'col': 94, 'row': 3, 'value': 13.645621302051},
  {'col': 95, 'row': 3, 'value': 13.7321512182067},
  {'col': 96, 'row': 3, 'value': 13.3564879139581},
  {'col': 97, 'row': 3, 'value': 11.8511196132199},
  {'col': 98, 'row': 3, 'value': 15.0588732275334},
  {'col': 99, 'row': 3, 'value': 14.5083592772589},
  {'col': 100, 'row': 3, 'value': 14.5124907465626},
  {'col': 101, 'row': 3, 'value': 13.9233746349494},
  {'col': 102, 'row': 3, 'value': 11.9945187549267},
  {'col': 103, 'row': 3, 'value': 13.6989274056345},
  {'col': 104, 'row': 3, 'value': 14.9491787207137},
  {'col': 105, 'row': 3, 'value': 14.9807443569418},
  {'col': 106, 'row': 3, 'value': 13.3496428118898},
  {'col': 107, 'row': 3, 'value': 12.2213088090254},
  {'col': 108, 'row': 3, 'value': 12.1895126754522},
  {'col': 109, 'row': 3, 'value': 13.3405778654097},
  {'col': 110, 'row': 3, 'value': 13.8037673342542},
  {'col': 111, 'row': 3, 'value': 13.9072524254844},
  {'col': 112, 'row': 3, 'value': 13.5490947182515},
  {'col': 113, 'row': 3, 'value': 13.3532496981122},
  {'col': 114, 'row': 3, 'value': 12.6056705577619},
  {'col': 115, 'row': 3, 'value': 15.0398576914503},
  {'col': 116, 'row': 3, 'value': 15.0103881163362},
  {'col': 117, 'row': 3, 'value': 14.4451776130836},
  {'col': 118, 'row': 3, 'value': 13.6963917041923},
  {'col': 119, 'row': 3, 'value': 12.5242943764293},
  {'col': 120, 'row': 3, 'value': 13.6581215226181},
  {'col': 121, 'row': 3, 'value': 13.6733926348365}],
 [{'col': 0, 'row': 4, 'value': 500.291},
  {'col': 1, 'row': 4, 'value': 644.47},
  {'col': 2, 'row': 4, 'value': 612.081},
  {'col': 3, 'row': 4, 'value': 555.167},
  {'col': 4, 'row': 4, 'value': 558.052},
  {'col': 5, 'row': 4, 'value': 177.538},
  {'col': 6, 'row': 4, 'value': 308.184},
  {'col': 7, 'row': 4, 'value': 345.27},
  {'col': 8, 'row': 4, 'value': 325.871},
  {'col': 9, 'row': 4, 'value': 471.865},
  {'col': 10, 'row': 4, 'value': 435.534},
  {'col': 11, 'row': 4, 'value': 1522.67},
  {'col': 12, 'row': 4, 'value': 1658.55},
  {'col': 13, 'row': 4, 'value': 652.18},
  {'col': 14, 'row': 4, 'value': 710.589},
  {'col': 15, 'row': 4, 'value': 447.461},
  {'col': 16, 'row': 4, 'value': 414.598},
  {'col': 17, 'row': 4, 'value': 534.134},
  {'col': 18, 'row': 4, 'value': 184.243},
  {'col': 19, 'row': 4, 'value': 144.276},
  {'col': 20, 'row': 4, 'value': 303.89},
  {'col': 21, 'row': 4, 'value': 340.346},
  {'col': 22, 'row': 4, 'value': 338.238},
  {'col': 23, 'row': 4, 'value': 441.33},
  {'col': 24, 'row': 4, 'value': 1675.96},
  {'col': 25, 'row': 4, 'value': 928.722},
  {'col': 26, 'row': 4, 'value': 766.127},
  {'col': 27, 'row': 4, 'value': 633.749},
  {'col': 28, 'row': 4, 'value': 0.490689},
  {'col': 29, 'row': 4, 'value': -0.556177},
  {'col': 30, 'row': 4, 'value': 3.04692},
  {'col': 31, 'row': 4, 'value': 1.57264},
  {'col': 32, 'row': 4, 'value': 2.3087},
  {'col': 33, 'row': 4, 'value': 1.5113},
  {'col': 34, 'row': 4, 'value': 1.30422},
  {'col': 35, 'row': 4, 'value': 0.382657},
  {'col': 36, 'row': 4, 'value': 1.39772},
  {'col': 37, 'row': 4, 'value': 1.86055},
  {'col': 38, 'row': 4, 'value': 0.354804},
  {'col': 39, 'row': 4, 'value': -1.01506},
  {'col': 40, 'row': 4, 'value': 13.7015953208703},
  {'col': 41, 'row': 4, 'value': 13.4033477031613},
  {'col': 42, 'row': 4, 'value': 13.5127984636589},
  {'col': 43, 'row': 4, 'value': 13.6572848636245},
  {'col': 44, 'row': 4, 'value': 13.6469096652644},
  {'col': 45, 'row': 4, 'value': 13.2427967048635},
  {'col': 46, 'row': 4, 'value': 13.1222150579961},
  {'col': 47, 'row': 4, 'value': 13.2623395194459},
  {'col': 48, 'row': 4, 'value': 12.6545600685311},
  {'col': 49, 'row': 4, 'value': 8.91755751907217},
  {'col': 50, 'row': 4, 'value': 10.2984667098165},
  {'col': 51, 'row': 4, 'value': 8.5665447593854},
  {'col': 52, 'row': 4, 'value': 9.1989729517728},
  {'col': 53, 'row': 4, 'value': 9.12401440666377},
  {'col': 54, 'row': 4, 'value': 8.91753009030931},
  {'col': 55, 'row': 4, 'value': 8.05452404993128},
  {'col': 56, 'row': 4, 'value': 8.91755751907217},
  {'col': 57, 'row': 4, 'value': 8.89467416195157},
  {'col': 58, 'row': 4, 'value': 9.4362219182956},
  {'col': 59, 'row': 4, 'value': 9.04515766370691},
  {'col': 60, 'row': 4, 'value': 9.18016946529716},
  {'col': 61, 'row': 4, 'value': 12.9483141507175},
  {'col': 62, 'row': 4, 'value': 8.66303618244731},
  {'col': 63, 'row': 4, 'value': 8.78446696671244},
  {'col': 64, 'row': 4, 'value': 8.96891035093045},
  {'col': 65, 'row': 4, 'value': 13.6983967817659},
  {'col': 66, 'row': 4, 'value': 13.2575883494835},
  {'col': 67, 'row': 4, 'value': 13.1887390438677},
  {'col': 68, 'row': 4, 'value': 13.4655229320479},
  {'col': 69, 'row': 4, 'value': 12.874435993494},
  {'col': 70, 'row': 4, 'value': 12.8205813085134},
  {'col': 71, 'row': 4, 'value': 10.6946787303242},
  {'col': 72, 'row': 4, 'value': 8.35700219178756},
  {'col': 73, 'row': 4, 'value': 8.53584011875399},
  {'col': 74, 'row': 4, 'value': 9.00598660928958},
  {'col': 75, 'row': 4, 'value': 8.61739975592415},
  {'col': 76, 'row': 4, 'value': 8.53584011875399},
  {'col': 77, 'row': 4, 'value': 8.4137265984172},
  {'col': 78, 'row': 4, 'value': 8.91755751907217},
  {'col': 79, 'row': 4, 'value': 8.40841885887191},
  {'col': 80, 'row': 4, 'value': 9.15340890613546},
  {'col': 81, 'row': 4, 'value': 9.56281914461084},
  {'col': 82, 'row': 4, 'value': 13.4305009764987},
  {'col': 83, 'row': 4, 'value': 13.1212902072851},
  {'col': 84, 'row': 4, 'value': 8.78317884605077},
  {'col': 85, 'row': 4, 'value': 9.27734759255929},
  {'col': 86, 'row': 4, 'value': 8.76812872636418},
  {'col': 87, 'row': 4, 'value': 14.5527518192236},
  {'col': 88, 'row': 4, 'value': 12.9556532638012},
  {'col': 89, 'row': 4, 'value': 12.8329187931707},
  {'col': 90, 'row': 4, 'value': 11.7768623442291},
  {'col': 91, 'row': 4, 'value': 12.9480826019022},
  {'col': 92, 'row': 4, 'value': 12.8072791753891},
  {'col': 93, 'row': 4, 'value': 13.4644448609481},
  {'col': 94, 'row': 4, 'value': 13.2359796737507},
  {'col': 95, 'row': 4, 'value': 13.1363498041007},
  {'col': 96, 'row': 4, 'value': 12.4256683086673},
  {'col': 97, 'row': 4, 'value': 10.7072497467802},
  {'col': 98, 'row': 4, 'value': 14.3867584713303},
  {'col': 99, 'row': 4, 'value': 13.6911825990341},
  {'col': 100, 'row': 4, 'value': 13.5735477975709},
  {'col': 101, 'row': 4, 'value': 13.2781045596659},
  {'col': 102, 'row': 4, 'value': 11.5294705929067},
  {'col': 103, 'row': 4, 'value': 13.5111490179521},
  {'col': 104, 'row': 4, 'value': 14.5002424441276},
  {'col': 105, 'row': 4, 'value': 14.5503768151331},
  {'col': 106, 'row': 4, 'value': 12.884706400654},
  {'col': 107, 'row': 4, 'value': 11.9980110415735},
  {'col': 108, 'row': 4, 'value': 11.8184821498611},
  {'col': 109, 'row': 4, 'value': 12.8798488505069},
  {'col': 110, 'row': 4, 'value': 13.5744928372611},
  {'col': 111, 'row': 4, 'value': 13.4383093247762},
  {'col': 112, 'row': 4, 'value': 13.3068118041082},
  {'col': 113, 'row': 4, 'value': 11.914078238606},
  {'col': 114, 'row': 4, 'value': 12.1890944983656},
  {'col': 115, 'row': 4, 'value': 14.3817668055912},
  {'col': 116, 'row': 4, 'value': 14.2845271638751},
  {'col': 117, 'row': 4, 'value': 13.7573783517173},
  {'col': 118, 'row': 4, 'value': 13.3754775135612},
  {'col': 119, 'row': 4, 'value': 11.1989578790269},
  {'col': 120, 'row': 4, 'value': 13.5289043326408},
  {'col': 121, 'row': 4, 'value': 13.5754295756759}]]

In [ ]: