diff --git a/eu_basynthec/source/core-plugins/basynthec/1/dss/reporting-plugins/chicago/data-from-server.csv b/eu_basynthec/source/core-plugins/basynthec/1/dss/reporting-plugins/chicago/data-from-server.csv
new file mode 100644
index 0000000000000000000000000000000000000000..ed2713a61ec52c577807ba50504483b63fce26c8
--- /dev/null
+++ b/eu_basynthec/source/core-plugins/basynthec/1/dss/reporting-plugins/chicago/data-from-server.csv
@@ -0,0 +1,520 @@
+id,hasPredictions,hasPhenotypes
+JJS-MGP009,False,True
+JJS-DIN262,False,False
+JJS-DIN112,True,True
+JJS-DIN237,True,True
+JJS-DIN039,True,True
+JJS-MGP028,False,True
+JJS-DIN224,True,True
+JJS-MGP109,False,True
+JJS-MGP074,False,True
+JJS-DIN257,False,False
+JJS-DIN208,True,True
+JJS-MGP209,False,True
+JJS-DIN146,True,True
+JJS-DIN214,True,True
+JJS-MGP229,False,True
+JJS-MGP062,False,True
+JJS-DIN108,True,True
+JJS-MGP120,False,True
+JJS-DIN090,True,True
+JJS-DIN029,True,True
+JJS-MGP122,False,True
+JJS-DIN198,True,True
+JJS-MGP098,False,True
+JJS-DIN048,True,True
+JJS-MGP082,False,True
+JJS-MGP050,False,True
+JJS-MGP173,False,True
+JJS-MGP182,False,True
+JJS-MGP160,False,True
+JJS-DIN097,True,True
+JJS-DIN243,True,True
+JJS-DIN098,True,True
+JJS-DIN188,True,True
+JJS-DIN173,True,True
+JJS-MGP065,False,True
+JJS-MGP032,False,True
+JJS-MGP129,False,True
+JJS-DIN203,True,True
+JJS-MGP113,False,True
+JJS-MGP095,False,True
+JJS-MGP033,False,True
+JJS-MGP002,False,True
+JJS-DIN047,True,True
+JJS-MGP136,False,True
+JJS-DIN282,True,True
+JJS-MGP179,False,True
+JJS-DIN005,True,True
+JJS-MGP011,False,True
+JJS-MGP168,False,True
+JJS-MGP202,False,True
+JJS-DIN182,True,True
+JJS-MGP134,False,True
+JJS-MGP213,False,True
+JJS-DIN197,True,True
+JJS-DIN217,True,True
+JJS-DIN052,True,True
+JJS-DIN084,True,True
+JJS-MGP101,False,True
+JJS-DIN215,True,True
+JJS-DIN135,True,True
+JJS-DIN236,True,True
+JJS-DIN158,True,True
+JJS-MGP169,False,True
+JJS-DIN209,True,True
+JJS-DIN080,True,True
+JJS-MGP135,False,True
+JJS-MGP171,False,True
+JJS-DIN263,False,False
+JJS-DIN216,True,True
+JJS-DIN138,True,True
+JJS-MGP061,False,True
+JJS-DIN168,True,True
+JJS-MGP203,False,True
+JJS-DIN070,True,True
+JJS-MGP195,False,True
+JJS-MGP106,False,True
+JJS-MGP042,False,True
+JJS-DIN036,True,True
+JJS-DIN101,True,True
+JJS-DIN185,True,True
+JJS-DIN219,True,True
+JJS-DIN179,True,True
+JJS-MGP029,False,True
+JJS-DIN230,True,True
+JJS-MGP066,False,True
+JJS-DIN038,True,True
+JJS-MGP123,False,True
+JJS-MGP049,False,True
+JJS-DIN169,True,True
+JJS-DIN026,True,True
+JJS-DIN087,True,True
+JJS-MGP081,False,True
+JJS-DIN115,True,True
+JJS-DIN042,True,True
+JJS-DIN249,False,False
+JJS-DIN190,True,True
+JJS-DIN264,False,False
+JJS-DIN060,True,True
+JJS-MGP172,False,True
+JJS-MGP031,False,True
+JJS-DIN049,True,True
+JJS-MGP014,False,True
+JJS-DIN250,False,False
+JJS-DIN253,False,False
+JJS-DIN017,True,True
+JJS-DIN129,True,True
+JJS-DIN231,True,True
+JJS-MGP220,False,True
+JJS-MGP192,False,True
+JJS-DIN109,True,True
+JJS-DIN063,True,True
+JJS-DIN281,True,True
+JJS-MGP001,False,True
+JJS-DIN018,True,True
+JJS-DIN046,True,True
+JJS-DIN024,True,True
+JJS-MGP020,False,True
+JJS-MGP110,False,True
+JJS-MGP012,False,True
+JJS-MGP118,False,True
+JJS-DIN154,True,True
+JJS-DIN176,True,True
+JJS-MGP158,False,True
+JJS-DIN053,True,True
+JJS-MGP059,False,True
+JJS-DIN276,True,True
+JJS-DIN019,True,True
+JJS-DIN027,True,True
+JJS-DIN148,True,True
+JJS-MGP094,False,True
+JJS-DIN265,False,False
+JJS-MGP145,False,True
+JJS-MGP048,False,True
+JJS-DIN212,True,True
+JJS-DIN007,True,True
+JJS-DIN235,True,True
+JJS-MGP027,False,True
+JJS-DIN245,True,True
+JJS-MGP184,False,True
+JJS-MGP146,False,True
+JJS-DIN220,True,True
+JJS-DIN003,True,True
+JJS-DIN128,True,True
+JJS-DIN205,True,True
+JJS-MGP104,False,True
+JJS-MGP155,False,True
+JJS-DIN123,True,True
+JJS-DIN073,True,True
+JJS-DIN078,True,True
+JJS-MGP166,False,True
+JJS-DIN016,True,True
+JJS-MGP107,False,True
+JJS-DIN199,True,True
+JJS-DIN131,True,True
+JJS-MGP051,False,True
+JJS-DIN226,True,True
+JJS-DIN196,True,True
+JJS-MGP096,False,True
+JJS-DIN145,True,True
+JJS-MGP204,False,True
+JJS-MGP177,False,True
+JJS-DIN175,True,True
+JJS-DIN284,True,True
+JJS-DIN259,False,False
+JJS-MGP035,False,True
+JJS-DIN099,True,True
+JJS-MGP198,False,True
+JJS-MGP063,False,True
+JJS-DIN130,True,True
+JJS-MGP132,False,True
+JJS-MGP222,False,True
+JJS-DIN071,True,True
+JJS-MGP121,False,True
+JJS-DIN119,True,True
+JJS-MGP215,False,True
+JJS-MGP175,False,True
+JJS-DIN137,True,True
+JJS-MGP073,False,True
+JJS-MGP130,False,True
+JJS-MGP083,False,True
+JJS-DIN025,True,True
+JJS-DIN062,True,True
+JJS-DIN082,True,True
+JJS-MGP054,False,True
+JJS-MGP127,False,True
+JJS-MGP019,False,True
+JJS-DIN106,True,True
+JJS-MGP167,False,True
+JJS-DIN006,True,True
+JJS-DIN022,True,True
+JJS-MGP052,False,True
+JJS-MGP047,False,True
+JJS-DIN092,True,True
+JJS-DIN242,True,True
+JJS-MGP154,False,True
+JJS-MGP017,False,True
+JJS-DIN167,True,True
+JJS-MGP197,False,True
+JJS-MGP004,False,True
+JJS-DIN066,True,True
+JJS-MGP144,False,True
+JJS-DIN234,True,True
+JJS-DIN251,False,False
+JJS-DIN015,True,True
+JJS-DIN079,True,True
+JJS-DIN256,False,False
+JJS-MGP216,False,True
+JJS-MGP164,False,True
+JJS-DIN142,True,True
+JJS-DIN225,True,True
+JJS-DIN266,False,False
+JJS-DIN076,True,True
+JJS-DIN187,True,True
+JJS-MGP230,False,True
+JJS-MGP112,False,True
+JJS-DIN127,True,True
+JJS-DIN118,True,True
+JJS-DIN283,True,True
+JJS-MGP128,False,True
+JJS-MGP178,False,True
+JJS-MGP194,False,True
+JJS-MGP071,False,True
+JJS-DIN100,True,True
+JJS-DIN004,True,True
+JJS-MGP034,False,True
+JJS-DIN275,True,True
+JJS-DIN031,True,True
+JJS-DIN113,True,True
+JJS-MGP079,False,True
+JJS-DIN202,True,True
+JJS-DIN107,True,True
+JJS-MGP174,False,True
+JJS-MGP053,False,True
+JJS-MGP185,False,True
+JJS-DIN091,True,True
+JJS-DIN085,True,True
+JJS-DIN164,True,True
+JJS-DIN124,True,True
+JJS-DIN104,True,True
+JJS-DIN051,True,True
+JJS-MGP152,False,True
+JJS-DIN159,True,True
+JJS-MGP133,False,True
+JJS-DIN059,True,True
+JJS-MGP196,False,True
+JJS-DIN077,True,True
+JJS-MGP025,False,True
+JJS-DIN156,True,True
+JJS-DIN093,True,True
+JJS-DIN067,True,True
+JJS-DIN139,True,True
+JJS-DIN035,True,True
+JJS-DIN057,True,True
+JJS-DIN149,True,True
+JJS-MGP046,False,True
+JJS-MGP131,False,True
+JJS-MGP210,False,True
+JJS-DIN177,True,True
+JJS-MGP078,False,True
+JJS-MGP089,False,True
+JJS-DIN194,True,True
+JJS-MGP165,False,True
+JJS-DIN166,True,True
+JJS-MGP199,False,True
+JJS-MGP114,False,True
+JJS-DIN286,True,True
+JJS-DIN183,True,True
+JJS-MGP148,False,True
+JJS-DIN267,False,False
+JJS-DIN009,True,True
+JJS-DIN030,True,True
+JJS-MGP091,False,True
+JJS-DIN233,True,True
+JJS-DIN014,True,True
+JJS-DIN089,True,True
+JJS-MGP105,False,True
+JJS-MGP176,False,True
+JJS-MGP231,False,True
+JJS-MGP038,False,True
+JJS-MGP016,False,True
+JJS-MGP186,False,True
+JJS-MGP224,False,True
+JJS-DIN040,True,True
+JJS-MGP226,False,True
+JJS-MGP072,False,True
+JJS-DIN045,True,True
+JJS-MGP085,False,True
+JJS-DIN105,True,True
+JJS-DIN152,True,True
+JJS-MGP116,False,True
+JJS-DIN064,True,True
+JJS-DIN132,True,True
+JJS-MGP056,False,True
+JJS-DIN012,True,True
+JJS-DIN121,True,True
+JJS-MGP205,False,True
+JJS-DIN280,True,True
+JJS-MGP139,False,True
+JJS-MGP153,False,True
+JJS-DIN192,True,True
+JJS-DIN117,True,True
+JJS-MGP064,False,True
+JJS-DIN163,True,True
+JJS-DIN222,True,True
+JJS-MGP069,False,True
+JJS-MGP157,False,True
+JJS-DIN254,False,False
+JJS-DIN274,True,True
+JJS-MGP040,False,True
+JJS-MGP102,False,True
+JJS-DIN023,True,True
+JJS-DIN228,True,True
+JJS-DIN126,True,True
+JJS-MGP126,False,True
+JJS-DIN050,True,True
+JJS-DIN033,True,True
+JJS-MGP045,False,True
+JJS-DIN204,True,True
+JJS-DIN144,True,True
+JJS-DIN269,False,False
+JJS-MGP026,False,True
+JJS-DIN034,True,True
+JJS-MGP103,False,True
+JJS-DIN020,True,True
+JJS-DIN186,True,True
+JJS-DIN058,True,True
+JJS-DIN244,True,True
+JJS-DIN178,True,True
+JJS-MGP141,False,True
+JJS-DIN116,True,True
+JJS-DIN002,True,True
+JJS-DIN125,True,True
+JJS-MGP055,False,True
+JJS-DIN195,True,True
+JJS-DIN170,True,True
+JJS-DIN227,True,True
+JJS-MGP115,False,True
+JJS-DIN213,True,True
+JJS-DIN151,True,True
+JJS-DIN056,True,True
+JJS-MGP147,False,True
+JJS-DIN285,True,True
+JJS-DIN270,False,False
+JJS-MGP084,False,True
+JJS-MGP217,False,True
+JJS-DIN111,True,True
+JJS-DIN155,True,True
+JJS-MGP211,False,True
+JJS-DIN165,True,True
+JJS-MGP181,False,True
+JJS-MGP077,False,True
+JJS-MGP092,False,True
+JJS-MGP150,False,True
+JJS-DIN083,True,True
+JJS-DIN180,True,True
+JJS-MGP006,False,True
+JJS-MGP206,False,True
+JJS-DIN122,True,True
+JJS-DIN140,True,True
+JJS-DIN273,True,True
+JJS-MGP187,False,True
+JJS-DIN207,True,True
+JJS-DIN246,True,True
+JJS-MGP117,False,True
+JJS-DIN258,False,False
+JJS-MGP232,False,True
+JJS-DIN041,True,True
+JJS-DIN013,True,True
+JJS-DIN162,True,True
+JJS-DIN141,True,True
+JJS-DIN277,True,True
+JJS-DIN068,True,True
+JJS-MGP037,False,True
+PROTO-4,False,False
+JJS-DIN191,True,True
+PROTO-3,False,False
+JJS-MGP015,False,True
+JJS-MGP225,False,True
+JJS-MGP036,False,True
+JJS-DIN065,True,True
+JJS-DIN094,True,True
+JJS-DIN172,True,True
+JJS-MGP223,False,True
+JJS-DIN074,True,True
+JJS-MGP003,False,True
+JJS-MGP093,False,True
+JJS-DIN221,True,True
+JJS-MGP018,False,True
+JJS-DIN133,True,True
+JJS-DIN081,True,True
+JJS-DIN021,True,True
+JJS-DIN110,True,True
+JJS-MGP162,False,True
+JJS-DIN120,True,True
+JJS-DIN229,True,True
+JJS-DIN032,True,True
+JJS-MGP218,False,True
+JJS-MGP007,False,True
+JJS-DIN161,True,True
+JJS-MGP156,False,True
+JJS-DIN157,True,True
+JJS-MGP119,False,True
+JJS-DIN011,True,True
+JJS-DIN248,False,False
+JJS-MGP041,False,True
+JJS-DIN055,True,True
+JJS-MGP170,False,True
+JJS-MGP191,False,True
+JJS-DIN069,True,True
+JJS-MGP023,False,True
+JJS-MGP188,False,True
+JJS-DIN252,False,False
+JJS-MGP137,False,True
+JJS-MGP080,False,True
+JJS-MGP087,False,True
+JJS-MGP180,False,True
+JJS-MGP058,False,True
+JJS-MGP227,False,True
+JJS-DIN102,True,True
+JJS-MGP076,False,True
+JJS-MGP060,False,True
+JJS-MGP030,False,True
+JJS-DIN232,True,True
+JJS-DIN272,False,False
+JJS-DIN095,True,True
+JJS-MGP149,False,True
+JJS-DIN240,True,True
+JJS-DIN150,True,True
+JJS-DIN043,True,True
+JJS-MGP161,False,True
+JJS-DIN189,True,True
+JJS-MGP233,False,True
+JJS-MGP200,False,True
+JJS-MGP086,False,True
+JJS-DIN181,True,True
+JJS-DIN086,True,True
+JJS-DIN001,True,True
+JJS-MGP221,False,True
+JJS-MGP090,False,True
+JJS-DIN134,True,True
+JJS-MGP228,False,True
+JJS-MGP124,False,True
+JJS-MGP207,False,True
+JJS-DIN160,True,True
+JJS-MGP142,False,True
+JJS-MGP159,False,True
+JJS-DIN260,False,False
+JJS-DIN278,True,True
+JJS-MGP021,False,True
+JJS-DIN200,True,True
+JJS-MGP044,False,True
+JJS-MGP067,False,True
+JJS-DIN193,True,True
+JJS-MGP013,False,True
+JJS-MGP151,False,True
+JJS-DIN075,True,True
+PROTO-2,True,False
+JJS-DIN239,True,True
+JJS-MGP111,False,True
+JJS-MGP140,False,True
+JJS-MGP070,False,True
+JJS-DIN238,True,True
+JJS-DIN054,True,True
+JJS-DIN218,True,True
+JJS-DIN171,True,True
+JJS-DIN147,True,True
+JJS-DIN261,False,False
+JJS-MGP024,False,True
+JJS-DIN206,True,True
+JJS-DIN010,True,True
+JJS-MGP219,False,True
+JJS-DIN153,True,True
+JJS-MGP068,False,True
+JJS-DIN028,True,True
+JJS-DIN072,True,True
+JJS-DIN088,True,True
+JJS-DIN174,True,True
+JJS-DIN008,True,True
+JJS-DIN184,True,True
+JJS-DIN096,True,True
+JJS-MGP138,False,True
+JJS-DIN103,True,True
+JJS-MGP057,False,True
+JJS-MGP088,False,True
+JJS-DIN247,True,True
+JJS-MGP075,False,True
+JJS-MGP008,False,True
+JJS-MGP125,False,True
+JJS-MGP208,False,True
+JJS-MGP190,False,True
+JJS-MGP193,False,True
+JJS-MGP189,False,True
+JJS-DIN241,True,True
+JJS-MGP183,False,True
+JJS-MGP234,False,True
+JJS-DIN037,True,True
+JJS-DIN279,True,True
+JJS-DIN061,True,True
+JJS-DIN201,True,True
+JJS-DIN044,True,True
+JJS-MGP099,False,True
+JJS-MGP100,False,True
+JJS-DIN114,True,True
+JJS-MGP039,False,True
+JJS-DIN271,True,True
+JJS-MGP212,False,True
+JJS-DIN255,False,False
+JJS-MGP005,False,True
+PROTO-1,False,False
+JJS-MGP022,False,True
+JJS-DIN136,True,True
+JJS-MGP010,False,True
+JJS-DIN143,True,True
+JJS-DIN268,False,False
+JJS-MGP201,False,True
+JJS-MGP163,False,True
+JJS-MGP108,False,True
+JJS-MGP043,False,True
+JJS-MGP999,False,True
diff --git a/eu_basynthec/source/core-plugins/basynthec/1/dss/reporting-plugins/chicago/load-data-from-file-and-put-to-table.py b/eu_basynthec/source/core-plugins/basynthec/1/dss/reporting-plugins/chicago/load-data-from-file-and-put-to-table.py
new file mode 100644
index 0000000000000000000000000000000000000000..80b8ff973f6be4d599a8eebd9708435d3db68c2a
--- /dev/null
+++ b/eu_basynthec/source/core-plugins/basynthec/1/dss/reporting-plugins/chicago/load-data-from-file-and-put-to-table.py
@@ -0,0 +1,44 @@
+#! /usr/bin/env python
+
+import csv
+
+FIELD_ID = 'id'
+FIELD_HAS_PREDICTIONS = 'hasPredictions'
+FIELD_HAS_PHENOTYPES = 'hasPhenotypes'
+
+def loadDataFromFile(filePath):
+  file = None
+  try:
+    file = open(filePath, 'r')
+    reader = csv.DictReader(file)
+    dataList = []
+    
+    for row in reader:
+      dataList.append(row)
+      
+    return dataList
+  except IOError, err:
+    print 'Could not read the data from a file: ' + str(filePath)
+    raise
+  finally:
+    if file != None:
+      file.close()
+
+def addDataToTable(dataList, table):
+  table.addHeader(FIELD_ID)
+  table.addHeader(FIELD_HAS_PREDICTIONS)
+  table.addHeader(FIELD_HAS_PHENOTYPES)
+  
+  for dataItem in dataList:
+    id = dataItem[FIELD_ID]
+    hasPredictions = dataItem[FIELD_HAS_PREDICTIONS]
+    hasPhenotypes = dataItem[FIELD_HAS_PHENOTYPES]
+    
+    row = table.addRow()
+    row.setCell(FIELD_ID, id)
+    row.setCell(FIELD_HAS_PREDICTIONS, hasPredictions)
+    row.setCell(FIELD_HAS_PHENOTYPES, hasPhenotypes)
+
+def aggregate(parameters, table):
+    data = loadDataFromFile('TODO_FILE_TO_FILE_WITH_SERVER_DATA')
+    addDataToTable(data, table)
diff --git a/eu_basynthec/source/core-plugins/basynthec/1/dss/reporting-plugins/chicago/load-data-from-server-and-save-in-file.py b/eu_basynthec/source/core-plugins/basynthec/1/dss/reporting-plugins/chicago/load-data-from-server-and-save-in-file.py
new file mode 100644
index 0000000000000000000000000000000000000000..ed7382b3ea65c68fb7d1b086bd364600bcfd836c
--- /dev/null
+++ b/eu_basynthec/source/core-plugins/basynthec/1/dss/reporting-plugins/chicago/load-data-from-server-and-save-in-file.py
@@ -0,0 +1,52 @@
+#! /usr/bin/env python
+
+import urllib
+import json
+import csv
+
+FIELD_ID = 'id'
+FIELD_PREDICTIONS = 'predictions'
+FIELD_PHENOTYPES = 'phenotypes'
+FIELD_HAS_PREDICTIONS = 'hasPredictions'
+FIELD_HAS_PHENOTYPES = 'hasPhenotypes'
+
+def loadDataFromServer(serverUrl):
+  url = urllib.urlopen(serverUrl)
+  return url.read().decode('utf8')
+
+def convertData(dataString):
+  jsonList = json.loads(dataString)
+  dataList = []
+
+  for jsonItem in jsonList:
+    id = jsonItem[FIELD_ID].upper() 
+    hasPredictions = jsonItem[FIELD_PREDICTIONS] != None and len(jsonItem[FIELD_PREDICTIONS]) > 0
+    hasPhenotypes = jsonItem[FIELD_PHENOTYPES] != None and len(jsonItem[FIELD_PHENOTYPES]) > 0
+    dataList.append({FIELD_ID: id, FIELD_HAS_PREDICTIONS: hasPredictions, FIELD_HAS_PHENOTYPES: hasPhenotypes})
+
+  return dataList
+
+def writeDataToFile(filePath, dataList):
+  file = None
+  try:
+
+    file = open(filePath,'w')
+    writer = csv.writer(file)
+    writer.writerow([FIELD_ID, FIELD_HAS_PREDICTIONS, FIELD_HAS_PHENOTYPES]);
+
+    for dataItem in dataList:
+      id = dataItem[FIELD_ID]
+      hasPredictions = dataItem[FIELD_HAS_PREDICTIONS]
+      hasPhenotypes = dataItem[FIELD_HAS_PHENOTYPES]
+      writer.writerow([id, hasPredictions, hasPhenotypes])
+
+  except IOError as err:
+    print 'Could not write the data to a file: ' + str(filePath)
+    raise
+  finally:
+    if file != None:
+      file.close()
+
+data = loadDataFromServer('http://pubseed.theseed.org/model-prod/StrainServer.cgi?user=reviewer&pass=reviewer&method=getAllPhenotypesAndPredictions&encoding=json')
+writeDataToFile('data-from-server.csv', convertData(data))
+
diff --git a/eu_basynthec/source/core-plugins/basynthec/1/dss/reporting-plugins/chicago/plugin.properties b/eu_basynthec/source/core-plugins/basynthec/1/dss/reporting-plugins/chicago/plugin.properties
new file mode 100644
index 0000000000000000000000000000000000000000..666e00845bf9b229a7620241188b56bf4b27f581
--- /dev/null
+++ b/eu_basynthec/source/core-plugins/basynthec/1/dss/reporting-plugins/chicago/plugin.properties
@@ -0,0 +1,4 @@
+label = Load data from UChicago DB
+class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.jython.JythonAggregationService 
+script-path = load-data-from-file-and-put-to-table.py
+dataset-types = .*
diff --git a/eu_basynthec/source/html/browser/basynthec-browser.js b/eu_basynthec/source/html/browser/basynthec-browser.js
index 58a14caab61ac1497eef21fde2eb995c9c62f76c..b59a15e34fd63ae8d627fb038dd750b9fb8c74c3 100644
--- a/eu_basynthec/source/html/browser/basynthec-browser.js
+++ b/eu_basynthec/source/html/browser/basynthec-browser.js
@@ -5,7 +5,6 @@ var curveColors = d3.scale.category10().domain([0, 9]);
 
 /**
  * Abstract superclass for the wrapper classes.
- *
  * @constructor
  */
 function AbstractThingWrapper() {
@@ -108,12 +107,29 @@ AppPresenter.prototype.switchToOD600View = function()
 	od600InspectorView.updateView();
 }
 
+/** This view is very similar to the OD600 view, but the data is also divided into two main groups:
+ * - strains for which there are phenotypes, predictions, and data in the openBIS database
+ * - strains for which there are phenotypes or predictions, but no data in the openBIS database
+ *   (in this group strains with phenotypes and predictions should be marked green; strains with 
+ *   phenotypes only should be marked blue; strains with predictions only should be yellow) 
+ * Information about the phenotypes and predictions is retrieved from UChicago strain database
+ * (http://pubseed.theseed.org/model-prod/StrainServer.cgi) and cached at the server-side in OpenBIS.
+ */
+AppPresenter.prototype.switchToOD600WithPhenotypesAndPredictionsView = function()
+{
+	this.presenterMode = presenterModeTypeStrain;
+	this.hideExplanation();
+	this.toggleDisplayedVisualizations(od600StrainWithPhenotypesAndPredictionsVis);
+	dataSetInspectorView.removeAll(250);
+	od600InspectorView.updateView();
+}
+
 /** Utility function to gracefully switch from one visualization to another */
 AppPresenter.prototype.toggleDisplayedVisualizations = function(visToShow)
 {
 	this.visualizationContainers.forEach(function(vis) {
 		if (vis == visToShow) {
-			if (od600StrainVis == vis) {
+			if (od600StrainVis == vis || od600StrainWithPhenotypesAndPredictionsVis == vis) {
 				// So that scrolling works
 				vis.style("display", "block");
 			} else {
@@ -152,12 +168,13 @@ AppPresenter.prototype.showDataSets = function(bisDataSets) {
 	};
 	
 	basynthec.dataSetList.sort(sortByTypeAndRegistration);
-	
-	model.initialize();
-	
-	this.refreshDataSetTypeTables();
-	this.refreshStrainTables();
-	this.refreshOd600StrainTables();
+
+	model.initialize(function(){
+		presenter.refreshDataSetTypeTables();
+		presenter.refreshStrainTables();
+		presenter.refreshOd600StrainTables();
+		presenter.refreshOd600StrainWithPhenotypesAndPredictionsTables();
+	});
 }
 
 AppPresenter.prototype.refreshStrainTables = function() {
@@ -180,6 +197,12 @@ AppPresenter.prototype.refreshOd600StrainTables = function() {
  	od600StrainView.updateView(1000);
 }
 
+AppPresenter.prototype.refreshOd600StrainWithPhenotypesAndPredictionsTables = function() {
+  this.createVis();
+  od600StrainWithPhenotypesAndPredictionsView.updateView(1000);
+}
+
+
 AppPresenter.prototype.createVis = function()
 {
 	if (this.didCreateVis) return;
@@ -216,7 +239,13 @@ AppPresenter.prototype.createVis = function()
 	od600StrainVis.style("overflow-y", "scroll");	
 	od600StrainView = new Od600StrainView();
 	
-	this.visualizationContainers = [dataSetTypeVis, strainVis, od600StrainVis];
+	od600StrainWithPhenotypesAndPredictionsVis = tableRoot.append("div").style("display", "none");
+	od600StrainWithPhenotypesAndPredictionsVis.style("width", w + "px");
+	od600StrainWithPhenotypesAndPredictionsVis.style("height",w + "px");
+	od600StrainWithPhenotypesAndPredictionsVis.style("overflow-y", "scroll");	
+	od600StrainWithPhenotypesAndPredictionsView = new Od600StrainWithPhenotypesAndPredictionsView();
+	
+	this.visualizationContainers = [dataSetTypeVis, strainVis, od600StrainVis, od600StrainWithPhenotypesAndPredictionsVis];
 	
 	dataSetInspectorView = new DataSetInspectorView();
 	od600InspectorView = new Od600InspectorView();
@@ -406,11 +435,12 @@ function AppModel() {
 	this.dataSetsByType = { };
 }
 
-AppModel.prototype.initialize = function() {
+AppModel.prototype.initialize = function(callback) {
 	this.initializeDataSetsByType();
 	this.initializeDataSetsByStrain();
 	this.initializeStrainGroups();
-	this.initializeOd600Model();	
+	this.initializeOd600Model();
+	this.initializeOd600WithPhenotypesAndPredictionsModel(callback);
 }
 
 /** Compute the dataSetsByType variable */
@@ -448,7 +478,7 @@ AppModel.prototype.initializeDataSetsByStrain = function() {
 AppModel.prototype.initializeStrainGroups = function() {
 	var strains = []
 	for (strainName in this.dataSetsByStrain) {
-		strains.push(strainName)
+		strains.push({name: strainName});
 	}
 	this.strainGroups = createStrainGroups(strains);
 }
@@ -477,6 +507,57 @@ AppModel.prototype.initializeOd600Model= function() {
 	});
 }
 
+AppModel.prototype.initializeOd600WithPhenotypesAndPredictionsModel = function(callback){
+	var model = this;
+	
+	basynthec.getStrainsPhenotypesAndPredictions(function(strainDataMap){
+		
+		var strainsKnownToOpenbisWithPhenotypesAndPredictions = [];
+		var strainsUnknownToOpenbisWithPhenotypesOrPredictions = [];
+		
+		for(strainName in model.dataSetsByStrain){
+			var strainData = strainDataMap[strainName];
+			var strainDatasets = model.dataSetsByStrain[strainName];
+			
+			var hasPhenotypesAndPredictions = strainData && strainData.hasPhenotypes && strainData.hasPredictions;
+		    var hasOd600Datasets = strainDatasets && strainDatasets.dataSets.some(function(dataset){
+		    	return "OD600" == dataset.dataSetTypeCode;
+		    });
+			
+			if(hasPhenotypesAndPredictions && hasOd600Datasets){
+				strainData.isKnown = true;
+				strainsKnownToOpenbisWithPhenotypesAndPredictions.push(strainData);
+			}
+		}
+		
+		for(strainName in strainDataMap){
+			var strainData = strainDataMap[strainName];
+			var strainDatasets = model.dataSetsByStrain[strainName];
+			
+			var hasPhenotypesOrPredictions = strainData && (strainData.hasPhenotypes || strainData.hasPredictions);
+			var hasDatasets = strainDatasets && strainDatasets.dataSets.length > 0;
+			
+			if(hasPhenotypesOrPredictions && !hasDatasets){
+				strainData.isKnown = false;
+				strainsUnknownToOpenbisWithPhenotypesOrPredictions.push(strainData);
+			}
+		}
+		
+		model.od600StrainsWithPhenotypesAndPredictionsGroups = [];
+		model.od600StrainsWithPhenotypesAndPredictionsGroups.push({
+			"mainGroupName" : "Known strains with phenotypes and predictions",
+			"groups" : createStrainGroups(strainsKnownToOpenbisWithPhenotypesAndPredictions)
+		});
+		model.od600StrainsWithPhenotypesAndPredictionsGroups.push({
+			"mainGroupName" : "Unknown strains with phenotypes or predictions",
+			"groups" : createStrainGroups(strainsUnknownToOpenbisWithPhenotypesOrPredictions)
+		});
+		
+		callback();
+	});
+	
+}
+
 AppModel.prototype.od600DataSets = function() {
 	return this.dataSetsByType["OD600"];
 }
@@ -485,6 +566,10 @@ AppModel.prototype.od600DataSets = function() {
  * A utility function that groups strains together based on strain name
  */ 
 function createStrainGroups(strains) {
+	if(!strains || strains.length == 0){
+		return [];
+	}
+	
 	// prefixes of strain names to be grouped togehter
 	var STRAIN_GROUP_PREFIXES = [ "JJS-DIN", "JJS-MGP" ];
 
@@ -494,19 +579,19 @@ function createStrainGroups(strains) {
 	var groups = STRAIN_GROUP_PREFIXES.map(
 			function(strainPrefix) {
 				var filtered = strains.filter(function(strain) { 
-			    return strain.indexOf(strainPrefix) >= 0
+			    return strain.name.indexOf(strainPrefix) >= 0
 			  });
 				var groupStrains = filtered.map(function(strain) {
-					return { name : strain, label : strain.substring(strainPrefix.length)};
+					return { name : strain.name, label : strain.name.substring(strainPrefix.length), data: strain};
 			  });
 				
 				return {groupName : STRAIN_GROUP_PREFIXES_DISPLAY_NAME[strainPrefix], strains : groupStrains};
 	});
 	
 	var otherStrains = strains.filter(function(strain) {
-      return false == STRAIN_GROUP_PREFIXES.some(function(prefix) { return strain.indexOf(prefix) >=0; } );
+      return false == STRAIN_GROUP_PREFIXES.some(function(prefix) { return strain.name.indexOf(prefix) >=0; } );
 	});
-	otherStrains = otherStrains.map(function(strain) { return {name:strain, label:strain}});
+	otherStrains = otherStrains.map(function(strain) { return {name:strain.name, label:strain.name, data: strain}});
 	groups.push({groupName : "Other strains", strains : otherStrains});
 	
 	var sortFunction = sortByProp("name")
@@ -647,6 +732,72 @@ Od600StrainView.prototype.updateView = function(duration)
 			.text(function(d) { return d.label });
 }
 
+/**
+ * The view for the OD600 strains with phenotypes and predictions
+ *
+ * @constructor
+ */
+function Od600StrainWithPhenotypesAndPredictionsView(){
+}
+
+Od600StrainWithPhenotypesAndPredictionsView.prototype.updateView = function(duration)
+{
+	var mainGroupDiv = od600StrainWithPhenotypesAndPredictionsVis.selectAll("div.strainsMainGroup").data(model.od600StrainsWithPhenotypesAndPredictionsGroups)
+		.enter().append("div").attr("class", "strainsMainGroup");
+	
+	mainGroupDiv.append("h2").text(function(d) { return d.mainGroupName });	
+	
+	var strainDiv = mainGroupDiv.selectAll("div.strains").data(function(d){ return d.groups; })
+		.enter().append("div").attr("class", "strains");
+	
+	strainDiv.append("h3").text(function(d) { return d.groupName });
+	strainDiv.append("table").selectAll("tr").data(function(d) {
+					// Group the different sets of strains differently
+					if (d.groupName.indexOf("Other") == 0) return d.strains.reduce(groupBy(3), []);
+					if (d.groupName.indexOf("JJS-MGP") == 0) return d.strains.reduce(groupBy(10), []);
+				
+					// Group the JJS-DIn strains by runs
+					return d.strains.reduce(groupByRuns(10), []) })
+				.enter()
+			.append("tr")
+			.selectAll("td").data(function(d) { return d })
+				.enter()
+			.append("td")
+			.attr("class", function(d){
+				if(d.data.isKnown){
+					return "known";
+				}else{
+					return "unknown";
+				}
+			})
+			.on("click", function(d){
+				if(d.data.isKnown){
+					return toggleOd600Inspected.call(this, d);
+				}
+			})
+			.text(function(d) { return d.label })
+			.style("color", function(d){
+				if(d.data.isKnown){
+					return "black";
+				}else{
+					if(d.data.hasPhenotypes && d.data.hasPredictions){
+						return "green";
+					}else if(d.data.hasPhenotypes){
+						return "blue";
+					}else if(d.data.hasPredictions){
+						return "red";
+					}
+				}
+			});
+	
+	var legend = od600StrainWithPhenotypesAndPredictionsVis.append("div");
+	legend.append("h3").style("font-style","italic").text("Legend");
+	var legendList = legend.append("ul");
+	legendList.append("li").append("span").text("strain with phenotypes and predictions").style("color","green");
+	legendList.append("li").append("span").text("strain with phenotypes only").style("color","blue");
+	legendList.append("li").append("span").text("strain with predictions only").style("color","red");
+}
+
 /**
  * The view that shows data sets.
  *
@@ -932,6 +1083,9 @@ function props_to_pairs(d)
 	var pairs = [];
 	
 	var dataSetStrains = basynthec.getStrains({properties:d});
+	dataSetStrains = dataSetStrains.map(function(strain){
+		return { name : strain };
+	});
 	var strainGroups = createStrainGroups(dataSetStrains);
 	
 	strainGroups.forEach(function(group) {
diff --git a/eu_basynthec/source/html/browser/basynthec-style.css b/eu_basynthec/source/html/browser/basynthec-style.css
index d4c9d209a40f2d8871353b03c4b58b4fcbd9b0a9..ee552870b0a4812edcc9a577f5c2ce072475e884 100644
--- a/eu_basynthec/source/html/browser/basynthec-style.css
+++ b/eu_basynthec/source/html/browser/basynthec-style.css
@@ -1,6 +1,10 @@
 body { font: 14px "Trebuchet MS", sans-serif; }
 
 h1 { font: 16px; }
+h2 {
+  font-family: "Verdana", sans-serif;
+  color: #222;
+}
 h3 { font: 12px; }
 
 .strains { padding-bottom: 10px; }
@@ -9,11 +13,6 @@ h3 { font: 12px; }
 	border-collapse: collapse;
 }
 
-.strains h2 {
-	font-family: "Verdana", sans-serif;
-	color: #222;
-}
-
 .strains td {
 	font-family: "Verdana", sans-serif;
 	font-size: 12px;
@@ -29,6 +28,10 @@ h3 { font: 12px; }
 	cursor: pointer;
 }
 
+.strains td.unknown:hover {
+	cursor: auto;
+}
+
 .datasetsummarytable {
 	font-family: "Verdana", sans-serif;
 }
diff --git a/eu_basynthec/source/html/browser/index.html b/eu_basynthec/source/html/browser/index.html
index 70a3421411dff301e4bc6174ae905785d7b750fb..780de5d2ad41035ba108f9f6f0063e7c6a13edef 100644
--- a/eu_basynthec/source/html/browser/index.html
+++ b/eu_basynthec/source/html/browser/index.html
@@ -54,6 +54,9 @@ $(document).ready(function() {
 	$("#groupradio3").change(function(event){
 		presenter.switchToOD600View();
 	});
+	$("#groupradio4").change(function(event){
+	  presenter.switchToOD600WithPhenotypesAndPredictionsView();
+  });
 	
 	$('#login-form').submit(function() {
 		$("#login-failed").hide();
@@ -106,10 +109,11 @@ $(document).ready(function() {
 		<input type="radio" name="groupgroup" id="groupradio1" checked> <label for="groupradio1">Data Set Type</label>
 		<input type="radio" name="groupgroup" id="groupradio2"> <label for="groupradio2">Strains</label>
 		<input type="radio" name="groupgroup" id="groupradio3"> <label for="groupradio3">OD600</label>
+		<input type="radio" name="groupgroup" id="groupradio4"> <label for="groupradio4">OD600 with phenotypes and predictions</label>
 	</div>
 </div>
 
 </div>
 
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/eu_basynthec/source/html/browser/openbis-basynthec.js b/eu_basynthec/source/html/browser/openbis-basynthec.js
index 943efa54e12637cc28572a07c82e6545644b8ee7..6ba6f51ca10cfd3d126882befc46834cf28c6077 100644
--- a/eu_basynthec/source/html/browser/openbis-basynthec.js
+++ b/eu_basynthec/source/html/browser/openbis-basynthec.js
@@ -60,4 +60,22 @@ openbis_basynthec.prototype.getStrains = function(dataSet)
 	{
 		return [];
 	}
-}
\ No newline at end of file
+}
+
+openbis_basynthec.prototype.getStrainsPhenotypesAndPredictions = function(action){
+	this.server.createReportFromAggregationService("DSS1","chicago", null, function(response){
+		var result = [];
+		
+		if(response.result && response.result.rows){
+			$.each(response.result.rows, function(index, row){
+				result[row[0].value] = {
+					"name" : row[0].value,
+					"hasPhenotypes" : row[1].value && row[1].value.toUpperCase() == "TRUE",
+					"hasPredictions" : row[2].value && row[2].value.toUpperCase() == "TRUE"
+				}
+			});
+		}
+		
+		action(result);
+	});
+}
diff --git a/eu_basynthec/source/html/browser/openbis.js b/eu_basynthec/source/html/browser/openbis.js
index e35025bfb4377979b4dfef992b07bb0153ace058..3039e3488be7a3d357d1d448a8318f134393cb67 100644
--- a/eu_basynthec/source/html/browser/openbis.js
+++ b/eu_basynthec/source/html/browser/openbis.js
@@ -310,6 +310,20 @@ openbis.prototype.executeQuery = function(queryId, parameterBindings, action) {
 	});
 }
 
+/**
+ * See ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.IQueryApiServer.createReportFromAggregationService(String, String, String, Map<String, String>)
+ * 
+ * @method
+ */
+openbis.prototype.createReportFromAggregationService = function(dataStoreCode, serviceKey, parameters, action) {
+	ajaxRequest({
+		url: this.queryServiceUrl,
+		data: { "method" : "createReportFromAggregationService",
+				"params" : [ this.sessionToken, dataStoreCode, serviceKey, parameters ] },
+		success: action
+	});
+}
+
 /**
  * A utility class for deferring an action until all of some kind of action has completed
  *