def test_node_T_N0(self): # T = self.lungcancer.P('T|N=0') # P = self.lungcancer.compute_marginals(['T'], {'N': '0'}) bn = oobn.read(self.get_OOBN_path()) P = bn.compute_marginals(['T'], {'N': '0'}) T = P['T'] self.assertAlmostEquals(T['1A'], 0.1917, places=self.places) self.assertAlmostEquals(T['1B'], 0.1339, places=self.places) self.assertAlmostEquals(T['2A'], 0.2503, places=self.places) self.assertAlmostEquals(T['2B'], 0.0777, places=self.places) self.assertAlmostEquals(T['3'], 0.1511, places=self.places) self.assertAlmostEquals(T['4'], 0.1409, places=self.places) self.assertAlmostEquals(T['X'], 0.0544, places=self.places)
def test_node_cTNM_TNM1A(self): # cTNM = self.lungcancer.P('cTNM|TNM=1A') # P = self.lungcancer.compute_marginals(['cTNM'], {'TNM': '1A'}) bn = oobn.read(self.get_OOBN_path()) P = bn.compute_marginals(['cTNM'], {'TNM': '1A'}) cTNM = P['cTNM'] self.assertAlmostEquals(cTNM['1A'], 0.8402, places=self.places) self.assertAlmostEquals(cTNM['1B'], 0.0153, places=self.places) self.assertAlmostEquals(cTNM['2A'], 0.0130, places=self.places) self.assertAlmostEquals(cTNM['2B'], 0.0156, places=self.places) self.assertAlmostEquals(cTNM['3A'], 0.0118, places=self.places) self.assertAlmostEquals(cTNM['3B'], 0.0401, places=self.places) self.assertAlmostEquals(cTNM['4'], 0.0151, places=self.places) self.assertAlmostEquals(cTNM['X'], 0.0490, places=self.places)
def test_node_cTNM(self): # cTNM = self.lungcancer.P('cTNM') # P = self.lungcancer.compute_marginals(['cTNM']) bn = oobn.read(self.get_OOBN_path()) P = bn.compute_marginals(['cTNM']) cTNM = P['cTNM'] self.assertAlmostEquals(cTNM['1A'], 0.0966, places=self.places) self.assertAlmostEquals(cTNM['1B'], 0.1058, places=self.places) self.assertAlmostEquals(cTNM['2A'], 0.0172, places=self.places) self.assertAlmostEquals(cTNM['2B'], 0.0400, places=self.places) self.assertAlmostEquals(cTNM['3A'], 0.1261, places=self.places) self.assertAlmostEquals(cTNM['3B'], 0.1467, places=self.places) self.assertAlmostEquals(cTNM['4'], 0.4462, places=self.places) self.assertAlmostEquals(cTNM['X'], 0.0214, places=self.places)
def test_net_reader(self): filename = thomas.core.get_pkg_filename('lungcancer.net') bn_net = net.read(filename) filename = thomas.core.get_pkg_filename('lungcancer.oobn') bn_oobn = oobn.read(filename) self.assertTrue(isinstance(bn_net, BayesianNetwork)) self.assertTrue(isinstance(bn_oobn, BayesianNetwork)) P1 = bn_net.compute_marginals(['T']) P2 = bn_oobn.compute_marginals(['T']) self.assertAlmostEqual(P1['T']['1A'], P2['T']['1A'], places=self.places)
def test_node_cT_T1A_TNM1A(self): # cT = self.lungcancer.P('cT|T=1A,TNM=1A') # P = self.lungcancer.compute_marginals(['cT'], {'T': '1A', 'TNM': '1A'}) bn = oobn.read(self.get_OOBN_path()) P = bn.compute_marginals(['cT'], {'T': '1A', 'TNM': '1A'}) cT = P['cT'] self.assertAlmostEquals(cT['1'], 0.5589, places=self.places) self.assertAlmostEquals(cT['1A'], 0.3195, places=self.places) self.assertAlmostEquals(cT['1B'], 0.0031, places=self.places) self.assertAlmostEquals(cT['2'], 0.0150, places=self.places) self.assertAlmostEquals(cT['2A'], 0.0012, places=self.places) self.assertAlmostEquals(cT['2B'], 0.0009, places=self.places) self.assertAlmostEquals(cT['3'], 0.0178, places=self.places) self.assertAlmostEquals(cT['4'], 0.0317, places=self.places) self.assertAlmostEquals(cT['X'], 0.0520, places=self.places)
def test_oobn_reader(self): filename = thomas.core.get_pkg_filename('prostatecancer.oobn') bn = oobn.read(filename) self.assertTrue(isinstance(bn, BayesianNetwork)) grade = bn['grade'].cpt self.assertAlmostEqual(grade['g2'], 0.0185338) self.assertAlmostEqual(grade['g3'], 0.981466) cT = bn['cT'].cpt.reorder_scope(['grade', 'cT']) self.assertAlmostEqual(cT['g2', 'T2'], 0.0) self.assertAlmostEqual(cT['g2', 'T3'], 0.0) self.assertAlmostEqual(cT['g2', 'T4'], 1.0) self.assertAlmostEqual(cT['g3', 'T2'], 0.521457, places=5) self.assertAlmostEqual(cT['g3', 'T3'], 0.442157, places=5) self.assertAlmostEqual(cT['g3', 'T4'], 0.0363858, places=6) cN = bn['cN'].cpt.reorder_scope(['edition', 'cT']) self.assertAlmostEqual(cN['TNM 6', 'T2', 'NX'], 0.284264) self.assertAlmostEqual(cN['TNM 6', 'T2', 'N0'], 0.680203) self.assertAlmostEqual(cN['TNM 6', 'T2', 'N1'], 0.035533) cTNM = bn['cTNM'].cpt.reorder_scope(['cN', 'cT', 'edition', 'cTNM']) self.assertAlmostEqual(cTNM['NX', 'T2', 'TNM 6', 'I'], 0.0) self.assertAlmostEqual(cTNM['NX', 'T2', 'TNM 6', 'II'], 1.0) self.assertAlmostEqual(cTNM['NX', 'T2', 'TNM 6', 'III'], 0.0) self.assertAlmostEqual(cTNM['NX', 'T2', 'TNM 6', 'IV'], 0.0) self.assertAlmostEqual(cTNM['NX', 'T2', 'TNM 7', 'I'], 0.522727, places=6) self.assertAlmostEqual(cTNM['NX', 'T2', 'TNM 7', 'II'], 0.454545, places=6) self.assertAlmostEqual(cTNM['NX', 'T2', 'TNM 7', 'III'], 0.0, places=6) self.assertAlmostEqual(cTNM['NX', 'T2', 'TNM 7', 'IV'], 0.0227273, places=6)