diff --git a/eu_basynthec/source/core-plugins/basynthec/1/as/webapps/basynthec/browser/basynthec-browser.js b/eu_basynthec/source/core-plugins/basynthec/1/as/webapps/basynthec/browser/basynthec-browser.js
index 6fcaf0e7e7e2f5a022c5b17c51e301999ca454f5..f5817fc003cc016bc8440d6be46ebfd59b66e8e7 100644
--- a/eu_basynthec/source/core-plugins/basynthec/1/as/webapps/basynthec/browser/basynthec-browser.js
+++ b/eu_basynthec/source/core-plugins/basynthec/1/as/webapps/basynthec/browser/basynthec-browser.js
@@ -542,9 +542,19 @@ AppModel.prototype.initializeOd600WithPhenotypesAndPredictionsModel = function(c
 		    	return "OD600" == dataset.dataSetTypeCode;
 		    });
 			
-			if(hasPhenotypesOrPredictions && hasOd600Datasets){
-				strainData.isKnown = true;
-				strainsKnownToOpenbisWithPhenotypesOrPredictions.push(strainData);
+			if (hasOd600Datasets) { 
+			  if(hasPhenotypesOrPredictions){
+				  strainData.isKnown = true;
+				  strainsKnownToOpenbisWithPhenotypesOrPredictions.push(strainData);
+			  } else {
+				  strainData.isKnown = true;
+				  strainsKnownToOpenbisWithPhenotypesOrPredictions.push(strainData);
+			  }
+			} else {
+				if (strainDatasets && strainDatasets.dataSets.length > 0) {
+				  strainData.isKnown = true;
+				  strainsKnownToOpenbisWithPhenotypesOrPredictions.push(strainData);
+				}
 			}
 		}
 		
@@ -577,8 +587,8 @@ AppModel.prototype.initializeOd600WithPhenotypesAndPredictionsModel = function(c
 }
 
 AppModel.prototype.od600DataSets = function() {
-    var ds = this.dataSetsByType["OD600"];
-    return ds ? ds : [];
+	var ds = this.dataSetsByType["OD600"];
+        return ds ? ds : [];
 }
 
 /**
@@ -814,8 +824,10 @@ Od600StrainWithPhenotypesAndPredictionsView.prototype.updateView = function(dura
 					return "green";
 				}else if(d.data.hasPhenotypes){
 					return "blue";
-				}else if(d.data.hasPredictions){
+				} else if(d.data.hasPredictions){
 					return "red";
+				} else {
+				  return "black"
 				}
 			})
 	tds.attr("class", function(d){
@@ -837,6 +849,7 @@ Od600StrainWithPhenotypesAndPredictionsView.prototype.updateView = function(dura
 	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");
+	legendList.append("li").append("span").text("strain with no phenotypes or predictions").style("color","black");	
 }
 
 /**
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
index f11c6f68aab2220bcc62a21ff3128e6c53e7f7c4..39bda74d153acbd1e2e5fcae5285b2c103a4b6bd 100644
--- 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
@@ -1,6 +1,10 @@
 #! /usr/bin/env python
 
 import csv
+from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto import SearchCriteria
+from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria import MatchClause
+from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria import MatchClauseAttribute
+
 
 FIELD_STRAIN = 'strain'
 
@@ -21,13 +25,55 @@ def loadDataFromFile(filePath):
     if file != None:
       file.close()
 
+def indexDataByStrainId(data):
+  dataById = {}
+  for strainData in data:
+    tokens = strainData.strip("{}  \n").split(',')
+    theIds = [token for token in tokens if token.startswith('"id"')]
+    if (len(theIds) < 1):
+       continue
+    theId = theIds[0].split(':')[1].strip('"  \n')
+    dataById[theId] = strainData
+    
+  return dataById
+
 def addDataToTable(dataList, table):
   table.addHeader(FIELD_STRAIN)
   
   for dataItem in dataList:
     row = table.addRow()
     row.setCell(FIELD_STRAIN, dataItem)
+    
+def addStrainsNotInChicagoDb(strainsNotInChicagoDb, table):
+  for strain in strainsNotInChicagoDb:
+    row = table.addRow()
+    dataItem = '{"id": "' + strain + '"}'
+    row.setCell(FIELD_STRAIN, dataItem)
+    
+def allDataSets():
+  searchCriteria = SearchCriteria()
+  searchCriteria.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.CODE, '*'))
+  return searchService.searchForDataSets(searchCriteria)
+  
+def filterToUnknownStrains(dataSets, dataById):
+  unknownStrains = set()
+  for dataSet in dataSets:
+    strainNames = dataSet.getPropertyValue('STRAIN_NAMES')
+    if (strainNames is None):
+      continue
+    strains = strainNames.split(",")
+    for strain in strains:
+      if dataById.get(strain) is None:
+        unknownStrains.add(strain)
+  print unknownStrains
+  return unknownStrains
 
 def aggregate(parameters, table):
     data = loadDataFromFile('TODO_PATH_TO_FILE_WITH_SERVER_DATA')
     addDataToTable(data, table)
+    
+    # Now get the strains in out db. We want to find the ones that might not be in their system
+    dataById = indexDataByStrainId(data)    
+    dataSets = allDataSets()
+    strainsNotInChicagoDb = filterToUnknownStrains(dataSets, dataById)
+    addStrainsNotInChicagoDb(strainsNotInChicagoDb, table)
\ No newline at end of file