Okay... it's been requested that I explain the growmatch implementation in
KBase. I will attempt to do so here.
So growmatch is a system for correcting false positive and false negative
predictions by models.
False positives: predictions of growth in conditions and with mutations
where growth is not observed experimentally
The "Gapgen" command is designed to fix a single false positive prediction
by automatically generating one or more hypotheses on how the model can be
modified to fix the false positive. Hypotheses gapgen will propose include:
1.) removal of a reaction entirely from the model
2.) adjustment of the GPR for a reaction (e.g. removal of an isozyme)
3.) addition of a new biomass component
4.) removal of a media component
The gapgen command is "in", although we're still in the process of fixing
it, but it will be "in" by Sunday. The command is there, it's in IRIS. You
can run it, and it will give you predictions. The way it works now is it
comes up with a prediction and automatically modifies the model accordingly
(unless you tell it not to). Of course, thorough documentation is still
needed. This will be there by Sunday as well.
False negatives: the model predicts that no growth will occur in a
condition where growth is observed
The "Gapfill" command is designed to fix a single false negative prediction
by automatically generating one or more hypotheses of how the model must be
modified to enable growth in the specified environment and with the
specified mutations. Hypotheses considered include:
1.) Addition of new reactions to model
2.) Adjustment of reaction GPR (addition of an isozyme)
3.) Removal of a biomass component
4.) Addition of a media component
The "gapfill" command is most certainly "in" and can definitely be run
right now. Again, thorough documentation is still needed. This will be
there by Sunday as well.
Now, we get to "simphenotypes". This command is "in" although we're testing
it now, but it will definitely be in by Sunday (with documentaiton). This
command accepts a table of phenotypes as input, such as:
Base Media;KO;Media Additions;Observed growth
Carbon-D-Glucose;peg.1;folate;1
Carbon-Glycine;peg.2;folate;0
This command adds three new columns to the table:
Base media;KO;Media:Additions;Observed growth;Simulated growth;Simulated
growth fraction;Class
Carbon-D-Glucose;peg.1;folate;1;0;0;False negative
OK. So that's where we stand now, or more correctly, where we will stand on
Sunday (if all goes well with the build). How is all this going to fit
together???
This is the full growmatch pipeline I am proposing:
1.) get_phenotype_data -genome shewnella -experiment "Adam D. data" >
PhenotypeData.tbl
-Still needs to be implemented, but this just dumps the appropriate
data in the appropriate format from the CDM... we can do this in 1 day
(Gavin, can you do this??)
2.) simphenotypes < PhenotypeData.tbl > SimulatedPhenotypes.tbl
-Now done.
3.) generatehypotheses < SimulatedPhenotypes.tbl > PhenotypeHypotheses.tbl
-Not yet implemented, but this command just loads the phenotype data,
identifies all false positives and false negatives, uses cluster services
to run gapfill and gapgen commands on each false positive and false
negative, gathers results, and adds the resulting hypotheses as a new
column in our phenotype table WITHOUT modifying the model
4.) testhypotheses < PhenotypeHypotheses.tbl >
PhenotypeHypothesisSensitivity.tbl
-Not yet implemented in KBase, but this command runs all phenotypes on
each individual hypothesis to determine the impact of each hypothesis on
EVERY phenotype (not just the specific phenotype the hypothesis was
generated for)
5.) integratehypotheses < PhenotypeHypothesisSensitivity.tbl >
HypothesisList.txt
-Not yet implemented, but this command merges all hypotheses together to
identify the combination of hypotheses that maximizes the fit with
experimental data. Note, it will produce multiple "combined hypotheses",
and it's up to the user to select the right one out of maybe 10-15
possibilities.
6.) implementhypothesis < HypothesisList.txt -index 5 > OptimizedFBAModel
-Not yet implemented, but this command just implements the selected
hypothesis combination (combination "5" in this case) into the model
So there you have it. Of course, one could merge all these into a single
command. I'm not doing this, because I feel it will be useful to have them
in more modular form. Now, commands 1 and 3-6 are not implemented yet. Many
of these are simple and should be done this month (gapfill and gapgen are
the real meat here), but I note, these commands are all frosting. You can
run growthmatch right now using the simphenotypes, gapfill, and gapgen
commands alone, and this is in fact what Costas Maranas calls "growmatch".
What I am aiming to give you with the pipeline described above is an
entirely automated process.
Is this clearer?
On Thu, Aug 16, 2012 at 4:35 PM, Scott Devoid <devoid(a)ci.uchicago.edu>wrote:
> So I just talked with Bill & Ben Bowen. They wanted to know when and
> in what form growmatch would get added to KBase... Do the gapgen &
> gapfill functions essentially form the "inner loop" of growmatch?
>
> ~ Scott
>