|
1 | | -# RuleVis |
| 1 | +# RuleVis: Constructing Patterns and Rules for Rule-based Models |
2 | 2 |
|
3 | | -## Generating Expressive Visual Representations of Biochemical Patterns |
| 3 | +We introduce *RuleVis*, a web-based application for defining and editing "correct-by-construction" executable rules that model biochemical functionality, and which can be used to simulate the behavior of protein-protein interaction networks and other complex systems. Our application bridges the graph rewriting and systems biology research communities by providing an external visual representation of salient patterns that experts can use to determine the appropriate level of detail in a particular modeling context. |
4 | 4 |
|
5 | | -This project is an implementation of dynamically generated pattern site graphs in the context of modeling biological rules, such as molecular and protein interactions. This tool uses the same syntax from the [Kappa Language](https://kappalanguage.org/), a rule-based language for modeling interacting networks, as shown below in the example from the [Kappa Language Documentation](https://kappalanguage.org/documentation). |
| 5 | +This project is a collaboration between the UCSC Creative Coding Lab and the Walter Fontana Group at Harvard Medical School. Our short paper has been submitted for review to IEEE VIS 2019. The tool uses the same syntax from the [Kappa Language](https://kappalanguage.org/), a rule-based language for modeling interacting networks. The application is available online [here](https://creativecodinglab.github.io/RuleVis/). |
6 | 6 |
|
7 | | - |
| 7 | + |
8 | 8 |
|
9 | | -[Run in browser](https://creativecodinglab.github.io/RuleVis/) |
| 9 | +Above we see a screenshot of the *RuleVis* interface, depicting a user in the process of building a rule, consisting of two patterns representing the 'before' and 'after' states of the system (separated by an arrow). The editor panel (left) enables users to manually add, name, and delete agents, sites, and links to the visualization in the display panel (right). A user can also directly modify the text representation of the rule (the text string and visualization are mirrored, such that changes made to one are immediately reflected in the other). |
10 | 10 |
|
11 | | -## API |
| 11 | +*RuleVis* is a lightweight web application written in Javascript that runs in any browser. [D3.js](https://d3js.org/) handles interaction with the dynamic SVG canvas while the [Cola.js library](https://ialab.it.monash.edu/webcola/) is used to for the constraint-based layout of our visualization. We used [Yurii Lahodiuk's implementation](https://github.com/lagodiuk/earley-parser-js) of an Earley parser in Javascript to implement the context-free grammar (CFG) specified by Kappa documentation. |
12 | 12 |
|
13 | | -### KappaRule |
| 13 | +## Authors & Contact Information |
14 | 14 |
|
15 | | -KappaRule (lhs, rhs=undefined): **constructor** |
| 15 | +David Abramov, Jasmine Otto, Mahika Dubey, Cassia Artanegara, Angus Forbes |
| 16 | +Department of Computational Media, University of California Santa Cruz |
| 17 | +{dabramov, jtotto, mahika, cartaneg, angus}@ucsc.edu |
16 | 18 |
|
17 | | - |
18 | | -lhs and (optional) rhs are strings each representing a valid Kappa expression. |
19 | | - |
20 | | -**TODO:** Or, lhs (and rhs) are objects each representing a RuleVis expression. |
21 | | - |
22 | | -#### TODO: |
23 | | -KappaRule.addAgent(name, symmetry=BOTH): Adds an agent to the lhs. |
24 | | - |
25 | | -etcetera |
| 19 | +Pierre Boutillier, Walter Fontana |
| 20 | +Department of Systems Biology, Harvard Medical School |
| 21 | +{pierre_boutillier, walter_fontana}@hms.harvard.edu |
0 commit comments