Team:Groningen/Brainstorm/Modelling

From 2009.igem.org

(Difference between revisions)
m (Template header.)
(Demo of interactive plots)
Line 59: Line 59:
Other potentially interesting software tools:
Other potentially interesting software tools:
*[https://2008.igem.org/Team:UC_Berkeley_Tools UC Berkeley's Clotho]
*[https://2008.igem.org/Team:UC_Berkeley_Tools UC Berkeley's Clotho]
-
*SBML? (language to specify models)
+
*[http://sbml.org/ SBML], a standard to define models.
*[https://2008.igem.org/Team:KULeuven/Software/Simbiology2LaTeX KU Leuven's Simbiology2LaTeX]
*[https://2008.igem.org/Team:KULeuven/Software/Simbiology2LaTeX KU Leuven's Simbiology2LaTeX]
 +
 +
==Interactive Graphs?==
 +
It might be interesting to use JavaScript to present simulation results. This would allow for some degree of interaction (like resizing graphs, linked views, etc.) and may even make it somewhat easier to use graphs, we'd simply have some on-line repository of simulation results (a spreadsheet for example) and we could select which graphs to use on the Wiki.
 +
 +
Below an example of a JavaScript generated graph is shown. Note that the two views of the data are linked (although at this time both the kind of graph and the link is not optimal) and that it would be possible to create templates for creating these linked graphs. The current demo is based on Google technology, but it looks like [http://www.dojotoolkit.org/ the Dojo Toolkit] has more advanced charting capabilities at this moment (although I don't know how well they're supported in different browsers).
 +
 +
<html>
 +
<div>
 +
<span id="chart1"></span>
 +
<span id="chart2"></span>
 +
</div>
 +
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
 +
<script type="text/javascript">
 +
 +
// Load the Visualization API and the scatterchart package.
 +
google.load('visualization', '1', {'packages':['scatterchart']});
 +
 +
// Set a callback to run when the API is loaded.
 +
google.setOnLoadCallback(initialize);
 +
 +
var data, chart = [], view = [];
 +
 +
function initialize() {
 +
  // Initialize some global variables
 +
  chart[0] = new google.visualization.ScatterChart(document.getElementById('chart1'));
 +
  chart[1] = new google.visualization.ScatterChart(document.getElementById('chart2'));
 +
  google.visualization.events.addListener(chart[0], 'select', handleSelect );
 +
  //google.visualization.events.addListener(chart[1], 'select', function() { handleSelect(1); } );
 +
 +
  // Query spreadsheet and let result be drawn
 +
  var query = new google.visualization.Query('http://spreadsheets.google.com/pub?key=rRnyFyi-bgqsjT3SdJBdKKw');
 +
  query.send(drawChart);
 +
}
 +
 +
function drawChart(response) {
 +
  if (response.isError()) {
 +
    alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
 +
    return;
 +
  }
 +
 +
  data = response.getDataTable();
 +
  view[0] = new google.visualization.DataView(data);
 +
  view[1] = new google.visualization.DataView(data);
 +
  view[1].hideColumns([0]);
 +
 +
  chart[0].draw(view[0], {width: 400, height: 240, lineSize: 1});
 +
  chart[1].draw(view[1], {width: 400, height: 240, lineSize: 1});
 +
}
 +
 +
function handleSelect() {
 +
  var chartIndex = 0;
 +
  var selection_org = chart[chartIndex].getSelection();
 +
  var view_org = view[chartIndex];
 +
  for(var c=0; c<chart.length; c++) {
 +
    if (c==chartIndex) continue;
 +
    var selection_new = [];
 +
    var view_new = view[c];
 +
    for(var i=0; i<selection_org.length; i++) {
 +
      var item_org = selection_org[i];
 +
      var item = {'row': (item_org.row!=null ? view_org.getTableRowIndex(item_org.row) : null),
 +
                  'column': (item_org.column!=null ? view_org.getTableColumnIndex(item_org.column) : null)}
 +
      var item_new = {'row': (item.row!=null ? view_new.getViewRowIndex(item.row) : null),
 +
                      'column': (item.column!=null ? view_new.getViewColumnIndex(item.column) : null)}
 +
      if (item_new.row==-1) continue; // Skip items that are not represented in this view
 +
      if (item_new.column==-1) continue;
 +
      selection_new.push(item_new);
 +
    }
 +
    chart[c].setSelection(selection_new);
 +
  }
 +
}
 +
 +
</script>
 +
</html>
 +
 +
Taking this idea (much) further it would even be possible to run simulations using JavaScript (and charting the results), based on SBML models. However, this would involve much, much more effort than just showing a few interactive plots.
==Literature==
==Literature==
See our [[Team:Groningen/Literature/Modelling|literature list]]. For our team members that are looking for books on the subject, have a look under code [http://opc.ub.rug.nl/DB=1/SET=2/TTL=1/CLK?IKT=8110&TRM=605B 605B] (Bernoulliborg library, lower floor), as well as 605C/D/E (A and Z also exist but seem to be less interesting) and 610A (and possibly 625, 715).
See our [[Team:Groningen/Literature/Modelling|literature list]]. For our team members that are looking for books on the subject, have a look under code [http://opc.ub.rug.nl/DB=1/SET=2/TTL=1/CLK?IKT=8110&TRM=605B 605B] (Bernoulliborg library, lower floor), as well as 605C/D/E (A and Z also exist but seem to be less interesting) and 610A (and possibly 625, 715).

Revision as of 14:29, 28 April 2009

Igemhomelogo.png


Software tools from previous years

Other potentially interesting software tools:

Interactive Graphs?

It might be interesting to use JavaScript to present simulation results. This would allow for some degree of interaction (like resizing graphs, linked views, etc.) and may even make it somewhat easier to use graphs, we'd simply have some on-line repository of simulation results (a spreadsheet for example) and we could select which graphs to use on the Wiki.

Below an example of a JavaScript generated graph is shown. Note that the two views of the data are linked (although at this time both the kind of graph and the link is not optimal) and that it would be possible to create templates for creating these linked graphs. The current demo is based on Google technology, but it looks like the Dojo Toolkit has more advanced charting capabilities at this moment (although I don't know how well they're supported in different browsers).

Taking this idea (much) further it would even be possible to run simulations using JavaScript (and charting the results), based on SBML models. However, this would involve much, much more effort than just showing a few interactive plots.

Literature

See our literature list. For our team members that are looking for books on the subject, have a look under code 605B (Bernoulliborg library, lower floor), as well as 605C/D/E (A and Z also exist but seem to be less interesting) and 610A (and possibly 625, 715).