def checkFDR(self, pi0_method): result = Stats.doFDR(self.mPvalues, fdr_level=0.05, pi0_method=pi0_method) R("""require ('qvalue')""") qvalues = R.qvalue(ro.FloatVector(self.mPvalues), fdr_level=0.05, pi0_method=pi0_method) assert qvalues.names[1] == "pi0" assert qvalues.names[2] == "qvalues" assert qvalues.names[5] == "significant" assert qvalues.names[6] == "lambda" r_qvalues = qvalues[2] r_pi0 = qvalues[1][0] self.assertEqual(len(result.mQValues), len(qvalues[2])) self.assertEqual(len(result.mLambda), len(qvalues[6])) self.assertEqual(result.mPi0, r_pi0) for a, b in zip(result.mQValues, r_qvalues): self.assertAlmostEqual(a, b, 2, "unequal: %f != %f" % (a, b)) for a, b in zip(result.mPassed, qvalues[5]): self.assertEqual( a, b, "threshold-passed flag not equal: %s != %s" % (a, b))
def checkFDR(self, pi0_method): result = Stats.doFDR( self.mPvalues, fdr_level=0.05, pi0_method=pi0_method) R("""require ('qvalue')""") qvalues = R.qvalue(ro.FloatVector(self.mPvalues), fdr_level=0.05, pi0_method=pi0_method) assert qvalues.names[1] == "pi0" assert qvalues.names[2] == "qvalues" assert qvalues.names[5] == "significant" assert qvalues.names[6] == "lambda" r_qvalues = qvalues[2] r_pi0 = qvalues[1][0] self.assertEqual(len(result.mQValues), len(qvalues[2])) self.assertEqual(len(result.mLambda), len(qvalues[6])) self.assertEqual(result.mPi0, r_pi0) for a, b in zip(result.mQValues, r_qvalues): self.assertAlmostEqual(a, b, 2, "unequal: %f != %f" % (a, b)) for a, b in zip(result.mPassed, qvalues[5]): self.assertEqual( a, b, "threshold-passed flag not equal: %s != %s" % (a, b))
def q_value_analysis(p_values): logging.info('q-value analysis on %d p-values', len(p_values)) from rpy2.robjects import r, FloatVector r.library('qvalue') ps = FloatVector(p_values) qobj = r.qvalue(ps) return qobj
def q_value_analysis(p_values): logging.info("q-value analysis on %d p-values", len(p_values)) from rpy2.robjects import r, FloatVector r.library("qvalue") ps = FloatVector(p_values) qobj = r.qvalue(ps) return qobj