From 5d31c298f46cfeca8c20d51c4ac3b5b339f8d655 Mon Sep 17 00:00:00 2001 From: nojhan <nojhan@nojhan.net> Date: Fri, 7 Apr 2023 17:45:44 +0200 Subject: [PATCH] fix(score): set alpha to be zero by default Comment out SSR and T logging (too large). --- app/frictionlesser.cpp | 2 +- src/score.cpp | 6 +++--- tests/evals_t.cpp | 4 ++-- tests/frictionless_t.cpp | 20 ++++++++++---------- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/app/frictionlesser.cpp b/app/frictionlesser.cpp index 86fcfb7..cb9046c 100644 --- a/app/frictionlesser.cpp +++ b/app/frictionlesser.cpp @@ -75,7 +75,7 @@ int main(int argc, char* argv[]) // const bool permute = argparser.createParam<bool>(false, "permute", // "Randomly permute the data to get rid of the signal", 'R', "Data").value(); // TODO - const double alpha = argparser.createParam<double>(1, "alpha", + const double alpha = argparser.createParam<double>(0, "alpha", "Score adjustment exponent on the number of genes", 'a', "Parameters").value(); // const double beta = argparser.createParam<double>(2, "beta", diff --git a/src/score.cpp b/src/score.cpp index dff2673..8a9ca13 100644 --- a/src/score.cpp +++ b/src/score.cpp @@ -19,7 +19,7 @@ FriedmanScore::FriedmanScore( const Transcriptome& rt, const double a) : ASSERT(_transcriptome.genes_nb() > 0); ASSERT(_transcriptome.samples_nb() > 0); ASSERT(_transcriptome.cells_nb(0) > 0); - ASSERT(alpha > 0); + ASSERT(alpha >= 0); const size_t samples_nb = _transcriptome.samples_nb(); @@ -105,10 +105,10 @@ void FriedmanScore::new_transcriptome(const bool print_progress) CLUTCHCODE(xdebug, std::ostringstream ssr; for(double s : SSR_j) { ssr << " " << s; } - CLUTCHLOGD(xdebug, "SSR={" << ssr.str() << "}", 2); + // CLUTCHLOGD(xdebug, "SSR={" << ssr.str() << "}", 2); std::ostringstream ts; for(double t : T_j ) { ts << " " << t; } - CLUTCHLOGD(xdebug, "T={" << ts.str() << "}", 2); + // CLUTCHLOGD(xdebug, "T={" << ts.str() << "}", 2); ); } // for i in samples diff --git a/tests/evals_t.cpp b/tests/evals_t.cpp index 97ed87f..902abd9 100644 --- a/tests/evals_t.cpp +++ b/tests/evals_t.cpp @@ -17,9 +17,9 @@ SCENARIO( "Evaluators are consistent" ) { std::istringstream iss(ssv); frictionless::CommonRankParser parser(/*max_errors*/0); frictionless::Transcriptome rk = parser(iss); - frictionless::FriedmanScore ffrs(rk, /*alpha*/2); + frictionless::FriedmanScore ffrs(rk, /*alpha*/0); ffrs.new_transcriptome(false); - frictionless::FriedmanScore pfrs(rk, /*alpha*/2); + frictionless::FriedmanScore pfrs(rk, /*alpha*/0); pfrs.new_transcriptome(false); frictionless::EvalFull feval(ffrs); frictionless::EvalSwap peval(pfrs); diff --git a/tests/frictionless_t.cpp b/tests/frictionless_t.cpp index 34194f2..c1477e4 100644 --- a/tests/frictionless_t.cpp +++ b/tests/frictionless_t.cpp @@ -18,7 +18,7 @@ SCENARIO("Test pgamma ~ chi^2") { const double f = std::sqrt(-1 * R::pgamma(/*x*/5, /*alph*/(m-1)/2, /*scale*/2, /*lower_tail*/0, /*log_p*/1)); THEN("should be equal to manually computed p-value of chi^2") { - // Correct way to do floating point comparison in Catch2. + // Correct way to do floating point comparison in recent Catch2. REQUIRE_THAT(f, Catch::Matchers::WithinAbs(0.4256199342, 1e-9)); } } @@ -257,7 +257,7 @@ SCENARIO( "Friedman cache" ) { frictionless::Transcriptome rk = parser(iss); WHEN( "Computing transcriptome cache" ) { - frictionless::FriedmanScore frs(rk, /*alpha*/2); + frictionless::FriedmanScore frs(rk, /*alpha*/0); frs.new_transcriptome(false); THEN( "Transcriptome cache for cells number is consistent" ) { @@ -293,7 +293,7 @@ SCENARIO( "Friedman cache" ) { } } WHEN( "Computing a two-geneset cache" ) { - frictionless::FriedmanScore frs(rk, /*alpha*/2); + frictionless::FriedmanScore frs(rk, /*alpha*/0); frs.new_transcriptome(false); frs.new_signature_size(2); @@ -305,7 +305,7 @@ SCENARIO( "Friedman cache" ) { } } WHEN( "Computing a three-geneset cache" ) { - frictionless::FriedmanScore frs(rk, /*alpha*/2); + frictionless::FriedmanScore frs(rk, /*alpha*/0); frs.new_transcriptome(false); frs.new_signature_size(3); @@ -317,7 +317,7 @@ SCENARIO( "Friedman cache" ) { } } WHEN( "Computing two-geneset signature cache from scratch") { - frictionless::FriedmanScore frs(rk, /*alpha*/2); + frictionless::FriedmanScore frs(rk, /*alpha*/0); frs.new_transcriptome(false); frictionless::Signature geneset(4); // 4 genes. // Selects two geneset. @@ -361,7 +361,7 @@ SCENARIO( "Friedman score" ) { std::istringstream iss(ssv); frictionless::CommonRankParser parser(/*max_errors*/0); frictionless::Transcriptome rk = parser(iss); - frictionless::FriedmanScore frs(rk, /*alpha*/2); + frictionless::FriedmanScore frs(rk, /*alpha*/0); frs.new_transcriptome(false); WHEN( "Considering a new signature" ) { @@ -428,8 +428,8 @@ SCENARIO("Score cache save/reload is consistent on fake data and low-level API") std::istringstream iss(ssv.str()); frictionless::CommonRankParser parser(/*max_errors*/0); frictionless::Transcriptome rk = parser(iss); - frictionless::FriedmanScore frs1(rk, /*alpha*/2); - frictionless::FriedmanScore frs2(rk, /*alpha*/2); + frictionless::FriedmanScore frs1(rk, /*alpha*/0); + frictionless::FriedmanScore frs2(rk, /*alpha*/0); frs1.new_transcriptome(false); WHEN("Saving and reload transcriptome cache") { @@ -530,8 +530,8 @@ SCENARIO("Score cache save/reload is consistent on realistic data and high-level std::istringstream iss(ssv.str()); frictionless::CommonRankParser parser(/*max_errors*/0); frictionless::Transcriptome rk = parser(iss); - frictionless::FriedmanScore frs1(rk, /*alpha*/2); - frictionless::FriedmanScore frs2(rk, /*alpha*/2); + frictionless::FriedmanScore frs1(rk, /*alpha*/0); + frictionless::FriedmanScore frs2(rk, /*alpha*/0); frs1.new_transcriptome(false); WHEN("Saving and reload transcriptome cache") { -- GitLab