Thanks for your help. My next step was to run it in a debugger but I don't have a visual studio license. I hate to do it but I guess I'll have to give Microsoft more money.I'll post the results if I figure it out. Bill
On Oct 6, 8:44 am, Brendan <brend...@proteinms.net> wrote: > Hi Bill, > I think you are going to have to build it yourself, and do some printf > debugging to get yourself through this one. I looked over what you > wrote, and the only issue I can see is that next_score appears to be > 221 and not 210, but that only makes the final value further from what > is reported. > > At this point I'd start having the code print out values for me to > check my assumptions. I am afraid I can't help you with that, though. > > By the way, I can't take any credit for the k-score discriminant > function. It is the same function created for the original Keller > OMICS paper where the score was introduced, and mimics Comet > discriminant score. I created the discriminant score for X! Tandem > native scoring. > > The expect_wt_ and len_wt_ values are initialize to zero in the > TandemDiscrimFunction base class. > > --Brendan > > On Oct 5, 12:19 pm, bill <nelson...@gmail.com> wrote: > > > > > Thanks again for the feedback! We compared plain old expect values to > > those with the Brendan's discriminant scoring and our samples > > performed better with Brendan's scoring. So, now I'm back to figuring > > out how fval is calculated. > > > I'm trying to maually work through calculating the fval for an xtandem > > (k-score) result. > > > My stripped down pep.xml entry looks like this: > > > <spectrum_query spectrum="010319_f16.00923.00923.1" > > <search_result> > > <search_hit hit_rank="1" peptide="AISDAMFANPK" > > > <search_score name="hyperscore" value="253"/> > > <search_score name="nextscore" value="221"/> > > <search_score name="expect" value="0.79"/> > > <analysis_result analysis="peptideprophet"> > > <peptideprophet_result probability="0.1732" > > all_ntt_prob="(0.0000,0.0000,0.1732)"> > > <search_score_summary> > > <parameter name="fval" value="1.0108"/> > > > I'm plugging the values into the getDiscriminantScore method in > > TandemDiscrimFunction: > > > double TandemDiscrimFunction::getDiscriminantScore(SearchResult* > > result) > > { > > TandemResult* tresult = (TandemResult*)(result); > > double tot = const_; > > double disc = score_wt_ * log((double)tresult->hyper_) + expect_wt_ > > * (0-log((double)tresult->expect_)) + delta_wt_ * (1.0 - (tresult->next_ / > > tresult->hyper_)); > > > if (len_wt_) > > disc /= len_wt_ * sqrt((double)strlen(tresult->peptide_)); > > tot += disc; > > if (use_expect_) { > > tot = 3 * tot - 8; > > } > > return tot; > > > } > > > I'm initailizing through TandemKscoreDF.cxx with TandemKscoreDF(1, > > false) > > > static double consts[] = {-13.287, -28.708, -31.083, -31.083, > > -31.083}; > > static double score_wts[] = {2.256, 4.91, 4.983, 4.983, 4.983}; > > static double delta_wts[] = {14.346, 10.882, 18.091, 18.091, 18.091}; > > > if (!use_expect) > > { > > const_ = consts[charge]; > > score_wt_ = score_wts[charge]; > > delta_wt_ = delta_wts[charge]; > > > } > > > So my manual calculation looks like this: > > tot = -28.708 > > disc = 4.91 * ln(253) + 0 * (0 - ln(0.79)) + 10.882 * (1.0 - > > (210/253)) = > > 4.91 * 5.533 + 0 * 0.236 + 10.882 * 0.169 = > > 27.169 + 0 + 1.8495 = > > 29.185 > > > tot = -28.708 + 29.185 = 0.311 > > > But, I'm trying to reproduce the fval of 1.0108. I'm not an > > experienced C++ programmer. Am I missing where expect_wt_ and len_wt_ > > are initaillized? Is ther another step to the calculation? > > > Thanks, > > Bill > > > On Sep 17, 1:05 pm, David Shteynberg <dshteynb...@systemsbiology.org> > > wrote: > > > > The EXPECTSCORE option was something that was added after f-val at > > > Alexey request. I believe the reason for the inclusion of this option > > > is in the usage statement: > > > > E [only use Expect Score as the Discriminant(applies only to X!Tandem > > > data, > > > helpful for data with homologous top hits e.g. phospho or glyco)] > > > > -David > > > > On Thu, Sep 17, 2009 at 4:54 AM, Brendan <brend...@proteinms.net> wrote: > > > > > Hi Jimmy and Bill, > > > > I am sure using EXPECTSCORE in place of the fval has received less > > > > testing for the veracity of its probabilities, something Alexei was > > > > adamant about when I developed the fval for the X! Tandem native > > > > score. You have to run searches with decoys and look at q-q plots for > > > > this. Also, Alexei was initially dubious whether PeptideProphet would > > > > work at all on X! Tandem native, because the expect scoring > > > > distribution has a significant left skew, and is far from normal, > > > > which I believe I was able to mitigate somewhat with the variables I > > > > added in the fval. And, finally, my own ROC plots showed this fval > > > > doing a better job at discriminating between true- and false-positive > > > > hits. > > > > > So, go cautiously into throwing that switch, and make your own > > > > estimations of benefit v. cost. > > > > > --Brendan > > > > > On Sep 16, 9:36 am, Jimmy Eng <jke...@gmail.com> wrote: > > > >> Bill, > > > > >> If you're interested in Tandem's E-value , there is an option that > > > >> David added in a long time ago that allows the Tandem's E-value to be > > > >> used in place of the discriminant function. The xinteract option to > > > >> invoke this is "-OE". Looks like this adds "EXPECTSCORE" to the > > > >> PeptideProphetParser command line. > > > > >> On Wed, Sep 16, 2009 at 5:52 AM, Brendan <brend...@proteinms.net> > > > >> wrote: > > > > >> > Hi Bill, > > > >> > I am the one who wrote it several years back. I derived the fval > > > >> > somewhat by voodoo, using analysis tools I created in CPAS. It > > > >> > tested > > > >> > quite well, and if anything produces slightly conservative > > > >> > probabilities, where I felt the k-score fval was slightly optimistic > > > >> > in its estimates (but only slightly). Note that the k-score fval was > > > >> > derived for the scoring function originally published by Keller, et > > > >> > al, before the score was incorporated into X! Tandem, and therefore > > > >> > makes no use of X! Tandem's expect value. > > > > >> > These fval calculations can be found in <tpproot>/src/Validation/ > > > >> > DiscriminateFunction/Tandem (for native scoring) and Comet (for k- > > > >> > score). > > > > >> > I remember that a peptide length correction (I think sqrt(length) > > > >> > actually) was important in the final native fval. Because of how > > > >> > aggressively X! Tandem weights the presence of matching ions, a > > > >> > larger > > > >> > peptide is more likely to produce a wider spread between its best and > > > >> > second best score, the key factor in the expectation value. > > > > >> > Hope that helps. > > > > >> > --Brendan > > > > >> > On Sep 15, 2:30 pm, bill <nelson...@gmail.com> wrote: > > > >> >> If this is not easily available can you direct me to the > > > >> >> class/script/ > > > >> >> method that creates the xtandem fval? > > > >> >> Thanks, > > > >> >> Bill > > > > >> >> On Sep 14, 4:16 pm, Bill Nelson <nelson...@gmail.com> wrote: > > > > >> >> > Can you please explain how ProteinProphet calculates the fval > > > >> >> > from the > > > >> >> > xtandem output? > > > >> >> > It doesn't seem to be tracking the xtandem E-value, what else is > > > >> >> > included? > > > >> >> > Thanks, > > > >> >> > Bill --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "spctools-discuss" group. To post to this group, send email to spctools-discuss@googlegroups.com To unsubscribe from this group, send email to spctools-discuss+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/spctools-discuss?hl=en -~----------~----~----~----~------~----~------~--~---