Skip to content
Snippets Groups Projects
Commit 5a107be2 authored by cramakri's avatar cramakri
Browse files

CCS-33 SP-587 : Add display of parent and intervals to the strain browser.

SVN: 29172
parent 8a57ec8f
No related branches found
No related tags found
No related merge requests found
...@@ -411,7 +411,7 @@ AppPresenter.prototype.retrieveOd600DataForDataSet = function(ds) ...@@ -411,7 +411,7 @@ AppPresenter.prototype.retrieveOd600DataForDataSet = function(ds)
var tsvPathInDataSet = ""; var tsvPathInDataSet = "";
ds.files.forEach(function (file) { if (endsWith(file.pathInDataSet, "xls.tsv")) tsvPathInDataSet = file.pathInDataSet}); ds.files.forEach(function (file) { if (endsWith(file.pathInDataSet, "xls.tsv")) tsvPathInDataSet = file.pathInDataSet});
var tsvUrl = dssUrl + "/" + ds.bis.code + "/" + tsvPathInDataSet + "?sessionID=" + basynthec.server.getSession(); var tsvUrl = dssUrl + "/" + ds.bis.code + "/" + tsvPathInDataSet + "?sessionID=" + basynthec.server.sessionToken;
var lexicalParent = this; var lexicalParent = this;
...@@ -1040,6 +1040,8 @@ Od600InspectorView.prototype.updateView = function(duration) ...@@ -1040,6 +1040,8 @@ Od600InspectorView.prototype.updateView = function(duration)
}); });
appendGrowthSection(inspectorEnter); appendGrowthSection(inspectorEnter);
appendParentSection(inspectorEnter);
appendIntervalsSection(inspectorEnter);
appendObjectSection({ appendObjectSection({
getSectionContainer: function(){ getSectionContainer: function(){
...@@ -1182,6 +1184,32 @@ Od600InspectorView.prototype.updateView = function(duration) ...@@ -1182,6 +1184,32 @@ Od600InspectorView.prototype.updateView = function(duration)
.remove(); .remove();
} }
function appendParentSection(inspectorEnter) {
var parentSection = inspectorEnter.append("div");
var parents = parentSection.selectAll("div.parent")
.data(function(d) { return [d.data.parent]; });
parents.enter().append("div")
.attr("class", "parent")
.text("Parent: ");
parents.selectAll("span")
.data(function(d) { return [d] })
.enter().append("span")
.text(function (d) { return (d) ? d : "None" });
}
function appendIntervalsSection(inspectorEnter) {
var intervalsSection = inspectorEnter.append("div");
var intervals = intervalsSection.selectAll("div.intervals")
.data(function(d) { return [d.data.intervals]; });
intervals.enter().append("div")
.attr("class", "intervals")
.text("Intervals: ");
intervals.selectAll("span")
.data(function(d) { return d; })
.enter().append("span")
.text(function (d) { return d + " " });
}
function appendGrowthSection(inspectorEnter) { function appendGrowthSection(inspectorEnter) {
var growthMediaSection = inspectorEnter.append("div"); var growthMediaSection = inspectorEnter.append("div");
var growsSection = growthMediaSection.selectAll("div.growth") var growsSection = growthMediaSection.selectAll("div.growth")
......
...@@ -64,7 +64,7 @@ openbis_basynthec.prototype.getStrains = function(dataSet) ...@@ -64,7 +64,7 @@ openbis_basynthec.prototype.getStrains = function(dataSet)
openbis_basynthec.prototype.getStrainsPhenotypesAndPredictions = function(action){ openbis_basynthec.prototype.getStrainsPhenotypesAndPredictions = function(action){
this.server.createReportFromAggregationService("DSS1","chicago", null, function(response){ this.server.createReportFromAggregationService("DSS1","chicago", null, function(response){
var result = []; var result = {};
if(response.result && response.result.rows){ if(response.result && response.result.rows){
$.each(response.result.rows, function(index, row){ $.each(response.result.rows, function(index, row){
...@@ -72,6 +72,8 @@ openbis_basynthec.prototype.getStrainsPhenotypesAndPredictions = function(action ...@@ -72,6 +72,8 @@ openbis_basynthec.prototype.getStrainsPhenotypesAndPredictions = function(action
strain.name = strain.id; strain.name = strain.id;
strain.hasPredictions = strain.predictions != null && strain.predictions.length > 0; strain.hasPredictions = strain.predictions != null && strain.predictions.length > 0;
strain.hasPhenotypes = strain.phenotypes != null && strain.phenotypes.length > 0; strain.hasPhenotypes = strain.phenotypes != null && strain.phenotypes.length > 0;
strain.hasParent = strain.parent != null;
strain.hasIntervals = strain.intervals != null;
result[strain.id] = strain; result[strain.id] = strain;
}); });
} }
......
...@@ -29,7 +29,7 @@ def indexDataByStrainId(data): ...@@ -29,7 +29,7 @@ def indexDataByStrainId(data):
dataById = {} dataById = {}
for strainData in data: for strainData in data:
tokens = strainData.strip("{} \n").split(',') tokens = strainData.strip("{} \n").split(',')
theIds = [token for token in tokens if token.startswith('"id"')] theIds = [token for token in tokens if token.strip().startswith('"id"')]
if (len(theIds) < 1): if (len(theIds) < 1):
continue continue
theId = theIds[0].split(':')[1].strip('" \n') theId = theIds[0].split(':')[1].strip('" \n')
...@@ -65,7 +65,6 @@ def filterToUnknownStrains(dataSets, dataById): ...@@ -65,7 +65,6 @@ def filterToUnknownStrains(dataSets, dataById):
for strain in strains: for strain in strains:
if dataById.get(strain) is None: if dataById.get(strain) is None:
unknownStrains.add(strain) unknownStrains.add(strain)
print unknownStrains
return unknownStrains return unknownStrains
def aggregate(parameters, table): def aggregate(parameters, table):
......
...@@ -8,11 +8,19 @@ import shutil ...@@ -8,11 +8,19 @@ import shutil
FIELD_ID = 'id' FIELD_ID = 'id'
FIELD_PREDICTIONS = 'predictions' FIELD_PREDICTIONS = 'predictions'
FIELD_PHENOTYPES = 'phenotypes' FIELD_PHENOTYPES = 'phenotypes'
FIELD_PARENT = 'parent'
FIELD_INTERVALS = 'intervals'
def loadDataFromServer(serverUrl): def loadDataFromServer(serverUrl):
url = urllib.urlopen(serverUrl) url = urllib.urlopen(serverUrl)
return url.read().decode('utf8') return url.read().decode('utf8')
def loadDataFromFile(filePath):
dataFile = open(filePath, 'r')
data = file.read(dataFile)
dataFile.close()
return data
def convertData(dataString): def convertData(dataString):
jsonList = json.loads(dataString) jsonList = json.loads(dataString)
dataList = [] dataList = []
...@@ -21,7 +29,9 @@ def convertData(dataString): ...@@ -21,7 +29,9 @@ def convertData(dataString):
id = jsonItem[FIELD_ID].upper() id = jsonItem[FIELD_ID].upper()
predictions = jsonItem[FIELD_PREDICTIONS] predictions = jsonItem[FIELD_PREDICTIONS]
phenotypes = jsonItem[FIELD_PHENOTYPES] phenotypes = jsonItem[FIELD_PHENOTYPES]
dataList.append({FIELD_ID: id, FIELD_PREDICTIONS: predictions, FIELD_PHENOTYPES: phenotypes}) parent = jsonItem[FIELD_PARENT]
intervals = jsonItem[FIELD_INTERVALS]
dataList.append({FIELD_ID: id, FIELD_PREDICTIONS: predictions, FIELD_PHENOTYPES: phenotypes, FIELD_PARENT: parent, FIELD_INTERVALS: intervals})
return dataList return dataList
...@@ -42,6 +52,7 @@ def writeDataToFile(filePath, dataList): ...@@ -42,6 +52,7 @@ def writeDataToFile(filePath, dataList):
file.close() file.close()
data = loadDataFromServer('http://pubseed.theseed.org/model-prod/StrainServer.cgi?user=reviewer&pass=reviewer&method=getAllPhenotypesAndPredictions&encoding=json') data = loadDataFromServer('http://pubseed.theseed.org/model-prod/StrainServer.cgi?user=reviewer&pass=reviewer&method=getAllPhenotypesAndPredictions&encoding=json')
#data = loadDataFromFile('original-data-from-server.json')
writeDataToFile('data-from-server.csv.tmp', convertData(data)) writeDataToFile('data-from-server.csv.tmp', convertData(data))
shutil.move('data-from-server.csv.tmp', 'data-from-server.csv') shutil.move('data-from-server.csv.tmp', 'data-from-server.csv')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment