From: Kathryn Iverson Date: Wed, 16 May 2012 17:52:24 +0000 (-0400) Subject: replaced p-value with zscore for lookup in ztable. X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=74ee6242ea65e88074c2b1df85c0f4428b79333b;p=mothur.git replaced p-value with zscore for lookup in ztable. --- diff --git a/cooccurrencecommand.cpp b/cooccurrencecommand.cpp index 75b87fa..6363f2a 100644 --- a/cooccurrencecommand.cpp +++ b/cooccurrencecommand.cpp @@ -180,7 +180,7 @@ int CooccurrenceCommand::execute(){ m->openOutputFile(outputFileName, out); outputNames.push_back(outputFileName); outputTypes["summary"].push_back(outputFileName); out.setf(ios::fixed, ios::floatfield); out.setf(ios::showpoint); - out << "metric\tlabel\tScore\tpValue\n"; + out << "metric\tlabel\tScore\tzScore\n"; //as long as you are not at the end of the file or done wih the lines you want while((lookup[0] != NULL) && ((allLines == 1) || (userLabels.size() != 0))) { @@ -530,12 +530,20 @@ int CooccurrenceCommand::getCooccurrence(vector& thisLookUp m->mothurOutEndLine(); m->mothurOut("average metric score: " + toString(nullMean)); m->mothurOutEndLine(); + //calc_p_value is not a statistical p-value, it's just the average that are either > or < the initscore. + //All it does is show what is expected in a competitively structured community + //zscore is output so p-value can be looked up in a ztable double pvalue = 0.0; if (metric == "cscore" || metric == "checker") { pvalue = trial.calc_pvalue_greaterthan (stats, initscore); } else{ pvalue = trial.calc_pvalue_lessthan (stats, initscore); } + + double sd = trial.getSD(runs, stats, nullMean); + + double zscore = trial.get_zscore(sd, nullMean, initscore); - m->mothurOut("pvalue: " + toString(pvalue)); m->mothurOutEndLine(); - out << metric << '\t' << thisLookUp[0]->getLabel() << '\t' << nullMean << '\t' << pvalue << endl; + m->mothurOut("zscore: " + toString(zscore)); m->mothurOutEndLine(); + m->mothurOut("standard deviation: " + toString(sd)); m->mothurOutEndLine(); + out << metric << '\t' << thisLookUp[0]->getLabel() << '\t' << nullMean << '\t' << zscore << endl; return 0; } diff --git a/trialSwap2.cpp b/trialSwap2.cpp index 1524890..71c3027 100644 --- a/trialSwap2.cpp +++ b/trialSwap2.cpp @@ -293,26 +293,30 @@ double TrialSwap2::t_test (double initialscore, int runs, double nullMean, vecto /**************************************************************************************************/ double TrialSwap2::getSD (int runs, vector scorevec, double nullMean) { - double sum = 0; - for(int i=0;icontrol_pressed) { return 0; } - sum += pow((scorevec[i] - nullMean),2); - } - return sqrt( (1/runs) * sum ); + try{ + double sum = 0; + for(int i=0;icontrol_pressed) { return 0; } + sum += pow((scorevec[i] - nullMean),2); + } + return sqrt( (1/double(runs)) * sum ); + } + catch(exception& e) { + m->errorOut(e, "TrialSwap2", "getSD"); + exit(1); + } } /**************************************************************************************************/ double TrialSwap2::get_zscore (double sd, double nullMean, double initscore) { - map ztable; - - ztable["0.00"] = 0.5; - - double z; - - z = (initscore - nullMean) / sd; - - return z; + try { + return (initscore - nullMean) / sd; + } + catch(exception& e) { + m->errorOut(e, "TrialSwap2", "get_zscore"); + exit(1); + } } /**************************************************************************************************/ int TrialSwap2::print_matrix(vector > &matrix, int nrows, int ncols)