Skip to content
This repository was archived by the owner on Aug 27, 2018. It is now read-only.

Commit 4ebe92d

Browse files
author
Travis Jacobs
committedMay 19, 2015
Add validation and optimization pages. Fixes #30.
1 parent 30bf1e4 commit 4ebe92d

File tree

4 files changed

+83
-9
lines changed

4 files changed

+83
-9
lines changed
 

‎docs/digitization.md

+6-9
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
Digitization
22
============
33

4-
Digitized figures from papers in the literature will be used to validate and refine the ion channel models of ChannelWorm.
4+
Digitized figures from papers in the literature will be used to validate the ion channel models of ChannelWorm.
55

66
For example, a study which conducts [patch clamp recordings](https://en.wikipedia.org/wiki/Patch_clamp) will produce data that describe electrical properties of ion channels.
77
This data is valuable to anyone modeling these ion channels; we can use actual ion channel data to guide our efforts toward biological realism, and incorporate it in [confirming that we are modeling what we are intending to](validation/).
88

9-
If you want to help digitize some figures for this part of the OpenWorm project, check out the [detailed walkthrough](#Walkthrough-of-the-process) below.
10-
119
## So why digitization?
1210

1311
In a published paper, data is included in an expressive form, such as a visual plot, rather than as raw numerical data. This is not to say that we cannot *extract* the information and make use of it, however.
@@ -30,12 +28,9 @@ These image files can then be processed by [digitization software](http://arohat
3028

3129
## Walkthrough of the process
3230

33-
1. Select a paper.
34-
* For example, let's use [this Jospin et al. article](http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2173050/).
35-
* [Here](https://drive.google.com/folderview?id=0B4qffTA1q81rfmhoZzBva2xKRTJIVTlhR2plYTF2S2JCNXBLODJWN09KUHU4X09FN0hEQlE&usp=sharing) is a list of papers *you* can choose from
36-
2. Select the figures that describe ion channel properties.
37-
* In our example, [figure 2B](http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2173050/figure/fig2/) is looking promising.
38-
* There will likely be a number of relevant figures in each paper you process.
31+
1. Select a paper and a figure from the list.
32+
* For example, let's use [figure 2B](http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2173050/figure/fig2/) from [this Jospin et al. article](http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2173050/).
33+
* [Here](https://docs.google.com/spreadsheets/d/1jTXDHsLsdK-T_d-RwCb4gmQgMhjumvZE7C_2PEXFYAk/edit#gid=0) is a Google sheet you can choose from
3934
3. Download the image, and crop the relevant portion using image editing software.
4035
* In our example case we just right-click on the image, save it, and crop out 2B.
4136
* [The result](https://cloud.githubusercontent.com/assets/7369273/7684968/e5d974c4-fd64-11e4-9cf0-fae6656bc4eb.png)
@@ -46,8 +41,10 @@ These image files can then be processed by [digitization software](http://arohat
4641
6. Now enter the values you selected on the axes.
4742
* In our case, the values [looked like this](https://cloud.githubusercontent.com/assets/7369273/7684983/03f827fc-fd65-11e4-8dc0-f433000a24ed.png)
4843
7. Now add a data point for each data point on the graph.
44+
* Again, be sure to use the magnifying glass to place the points accurately.
4945
* Your plot should look something like [this](https://cloud.githubusercontent.com/assets/6655104/6027361/b509831c-abf6-11e4-95a4-372b911533fb.png) by now.
5046
8. Finally, you can click "view data > graph in Plotly" to get something easily sharable with the community.
47+
* Paste the link to your Plotly graph back into the Google sheet
5148
* **Tada!**
5249

5350
<div>

‎docs/optimization.md

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
Optimization
2+
============
3+
4+
As described in the [general OpenWorm documentation](http://docs.openworm.org/en/latest/Projects/optimization/), optimization is being employed at several levels of the project. By tuning the parameters of the models to experimental data, a high degree of biological realism can be attained.
5+
6+
## How ChannelWorm uses optimization
7+
8+
[![](https://docs.google.com/drawings/d/13JvpUktlTXN2GKH9fXzacXQWudm5MQUMXXY94cr6S50/pub?w=778&h=370)](https://docs.google.com/drawings/d/13JvpUktlTXN2GKH9fXzacXQWudm5MQUMXXY94cr6S50/edit)
9+
10+
At a high level, the modeling-validation-optimization loop relies on the optimization process to consume inaccurate models and return more accurate models, given some experimental objective data.
11+
12+
A model is chosen for optimization if it fails the [validation stage](validation/) of this loop. Inside the optimization process, the model's parameters are then tuned to minimize their difference with the experimental data used for validation.
13+
14+
A new model with slightly different parameters is produced, and is pulled into the validation stage once again. This loop continues until the validation stage is passed, and the model is finally [stored](information-management/#data-management).
15+
16+
## The process in detail
17+
18+
*Note:*Steps that are not yet streamlined will be tagged with their relevant Github issues. The details of these steps will be added as the issues are resolved.
19+
20+
### Inputs
21+
22+
* A hook must be established to import models that fail [validation](validation/)
23+
* Will the optimization itself take place locally or on a remote machine?
24+
25+
### Optimization
26+
27+
* Selection of free parameters
28+
* Selection of training data from simulated data
29+
* What type of optimization algorithm will be used? There is material [here](https://drive.google.com/open?id=0B_t3mQaA-HaMbXA1M0s1a25KSTA&authuser=0) about genetic algorithms, and information [here](https://optimal-neuron.readthedocs.org/en/latest/architecture.html) on NeuroTune
30+
* Scripts to perform the optimization will differ depending on the above choice
31+
32+
### Outputs
33+
34+
* Update the model's parameters with the results of the optimization
35+
* Save the new model in a form that can be simulated again, to continue the loop

‎docs/validation.md

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
Validation
2+
==========
3+
4+
The process of validation is *central* to OpenWorm's tenet of modeling with biological realism.
5+
Only through comparing data produced by our simulations with data from the actual organism can we make the claim that we are modeling what we say we are.
6+
7+
This is as true for small-scale components of the worm as it is for the worm itself, and is thus important for ChannelWorm's goal of modeling *C. elegans* ion channels.
8+
9+
## The process - High level
10+
11+
[![](https://docs.google.com/drawings/d/13JvpUktlTXN2GKH9fXzacXQWudm5MQUMXXY94cr6S50/pub?w=778&h=370)](https://docs.google.com/drawings/d/13JvpUktlTXN2GKH9fXzacXQWudm5MQUMXXY94cr6S50/edit)
12+
13+
The modeling-validation-optimization loop is outlined in the diagram above, but the focus of this article is the validation step (green in the diagram).
14+
15+
At its core, the validation process relies on **comparing two sets of data**, one being the output of our [*simulated* ion channel experiments](simulation/), the other from *actual* ion channel experiments (ex: [digitized I/V plots](digitization/)).
16+
17+
Using the [SciUnit](https://github.com/scidash/sciunit) framework, tests are constructed to judge whether simulations of our models are close enough, on various parameters, to the observed data.
18+
19+
Depending on the results of these validation tests, the model will either be accepted or rejected. If the model is accepted, we [store it in a database](information-management/#data-management) with the supporting experimental evidence. If the model is rejected, we subject it to [further optimization](optimization/) and another round of simulation/validation testing. This loop continues until validation is passed, and the model is kept.
20+
21+
## Implementation
22+
23+
*Note:*Steps that are not yet streamlined will be tagged with their relevant Github issues. The details of these steps will be added as the issues are resolved.
24+
25+
### Inputs
26+
27+
* [Ion channel model data must be comparable to experimental data](https://github.com/VahidGh/ChannelWorm/issues/28)
28+
* Model and experimental data should be pulled from the database (PyOpenWorm)
29+
30+
### Tests
31+
32+
* [A list of tests that can be run on the collection of models](https://github.com/VahidGh/ChannelWorm/issues/32)
33+
* [A validation test template including testing (CI) environment](https://github.com/VahidGh/ChannelWorm/issues/27)
34+
* Comparison of two sets of data using statistical tests, with numerical output
35+
36+
### Outputs
37+
38+
* Comparison of test output with "acceptable range", to determine whether the model is a good fit
39+
* Ability to export data to database
40+
* Ability to export data to optimization process

‎mkdocs.yml

+2
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ pages:
55
- [index.md, Introduction]
66
- [information-management.md, Information Management]
77
- [digitization.md, Digitization]
8+
- [validation.md, Validation]
9+
- [optimization.md, Optimization]

0 commit comments

Comments
 (0)
This repository has been archived.