Example #1
0
def compareRandom(num_trials, tensor_dimensions, matrix_data, cluster_dimensions,
                  maxit_ebc, jitter_max_ebc, objective_tolerance):
    deltas = []
    iterations_M = []
    iterations_Mr = []
    noconverge_M = 0
    noconverge_Mr = 0
    for j in range(num_trials):
        print "Trial ", j

        M = SparseMatrix(tensor_dimensions)
        M.read_data(matrix_data)
        Mr = M.shuffle()  # could also be M.shuffle_old()

        M.normalize()

        ebc_M = EBC(M, cluster_dimensions, maxit_ebc, jitter_max_ebc, objective_tolerance)
        cXY_M, objective_M, it_M = ebc_M.run()
        if it_M == maxit_ebc:
            noconverge_M += 1
        else:
            iterations_M.append(it_M)

        Mr.normalize()

        ebc_Mr = EBC(Mr, cluster_dimensions, maxit_ebc, jitter_max_ebc, objective_tolerance)
        cXY_Mr, objective_Mr, it_Mr = ebc_Mr.run()
        if it_Mr == maxit_ebc:
            noconverge_Mr += 1
        else:
            iterations_Mr.append(it_Mr)

        deltas.append(objective_M - objective_Mr)
    return deltas, iterations_M, iterations_Mr, noconverge_M, noconverge_Mr
Example #2
0
class TestMatrix(unittest.TestCase):
    def setUp(self):
        self.data = [l.split('\t') for l in open('tests/sample-matrix-file.txt', 'r').readlines()]
        self.matrix = SparseMatrix([2, 4, 9])
        self.matrix.read_data(self.data)

    def testMatrixInit(self):
        self.assertEquals(self.matrix.nonzero_elements[(1, 3, 7)], 2.0)
        self.assertEquals(self.matrix.nonzero_elements[(0, 0, 0)], 2.0)
        self.assertEquals(self.matrix.nonzero_elements[(0, 0, 2)], 2.0)
        self.assertEquals(self.matrix.nonzero_elements[(1, 1, 5)], 7.0)
        self.assertEquals(self.matrix.nonzero_elements[(1, 1, 3)], 3.0)
        self.assertEquals(self.matrix.nonzero_elements[(1, 3, 6)], 2.0)
        self.assertEquals(self.matrix.nonzero_elements[(1, 3, 8)], 2.0)
        self.assertEquals(self.matrix.nonzero_elements[(0, 0, 1)], 2.0)
        self.assertEquals(self.matrix.nonzero_elements[(1, 1, 4)], 2.0)
        self.assertEquals(self.matrix.nonzero_elements[(1, 2, 5)], 2.0)
        self.assertEquals(len(self.matrix.nonzero_elements), 10)
        self.assertEquals(self.matrix.feature_ids[0], {'mice': 1, 'patient': 0})
        self.assertEquals(self.matrix.feature_ids[1], {'R92Q': 1, 'R91W': 2, 'Val30Met': 0, 'R90W': 3})
        self.assertEquals(self.matrix.feature_ids[2], {'START_ENTITY|nmod|END_ENTITY': 1,
                                                       'START_ENTITY|nummod|END_ENTITY': 5,
                                                       'FAP|compound|END_ENTITY': 2,
                                                       'expression|nmod|END_ENTITY': 8,
                                                       '+|compound|END_ENTITY': 7,
                                                       'mice|nummod|END_ENTITY': 3,
                                                       'homozygous|nsubj|START_ENTITY': 6,
                                                       'mutation|appos|END_ENTITY': 4,
                                                       'START_ENTITY|nmod|FAP': 0})

    def testShuffle(self):
        shuffled_matrix = self.matrix.shuffle()
        self.assertEquals(len(shuffled_matrix.nonzero_elements), len(self.matrix.nonzero_elements))
        self.assertEquals(set(shuffled_matrix.nonzero_elements.values()), set(self.matrix.nonzero_elements.values()))
        print("shuffled matrix elements: ", shuffled_matrix.nonzero_elements)