def test_minimize_depths_complex(self): self.complexSetUp() seqs = map(sub.parse_alignment, self.raw_reads) expected_matrix = [[seqs[0], seqs[1], seqs[3]], [seqs[4]], [seqs[6], seqs[7]]] expected_list = [seqs[0], seqs[1], seqs[3], seqs[4], seqs[6], seqs[7]] for seq in expected_list: seq.pick() expected_depths = np.array([3, 4, 6, 4, 3, 2, 2, 1]) self.matrix.min_depth = 3 self.matrix.minimize_depths() actual_matrix = self.matrix.seq_matrix for row in actual_matrix: for seq in row: if not seq.picked: row.remove(seq) self.assertEquals(expected_matrix, actual_matrix) assert_equal(expected_depths, self.matrix.depth_array) self.assertEquals([seq.string for seq in expected_list], sub.flatten_and_filter_matrix( self.matrix.seq_matrix))
def test_minimize_depths_complex_more_random(self, func): #TODO: Refactor this so as not to duplicate code with non-random ecoli test self.complexSetUp() seqs = map(sub.parse_alignment, self.raw_reads) expected_matrix = [[seqs[0], seqs[1], seqs[2], seqs[3]], [seqs[4], seqs[5]], [seqs[6], seqs[7]]] expected_list = seqs for seq in expected_list: seq.pick() expected_depths = np.array([4, 6, 7, 4, 3, 2, 2, 1]) self.matrix.min_depth = 3 self.matrix.more_random = True self.matrix.minimize_depths() actual_matrix = self.matrix.seq_matrix for row in actual_matrix: for seq in row: if not seq.picked: row.remove(seq) self.assertEquals(expected_matrix, actual_matrix) assert_equal(expected_depths, self.matrix.depth_array) self.assertEquals([seq.string for seq in expected_list], sub.flatten_and_filter_matrix( self.matrix.seq_matrix))
def test_minimize_depths_complex(self): self.complexSetUp() seqs = map(sub.parse_alignment, self.raw_reads) expected_matrix = [ [seqs[0], seqs[1], seqs[3]], [seqs[4]], [seqs[6], seqs[7]] ] expected_list = [ seqs[0], seqs[1], seqs[3], seqs[4], seqs[6], seqs[7] ] for seq in expected_list: seq.pick() expected_depths = np.array([3, 4, 6, 4, 3, 2, 2, 1]) self.matrix.min_depth = 3 self.matrix.minimize_depths() actual_matrix = self.matrix.seq_matrix for row in actual_matrix: for seq in row: if not seq.picked: row.remove(seq) self.assertEquals(expected_matrix, actual_matrix) assert_equal(expected_depths, self.matrix.depth_array) self.assertEquals([seq.string for seq in expected_list], sub.flatten_and_filter_matrix(self.matrix.seq_matrix))
def test_minimize_depths_complex_more_random(self, func): #TODO: Refactor this so as not to duplicate code with non-random ecoli test self.complexSetUp() seqs = map(sub.parse_alignment, self.raw_reads) expected_matrix = [ [seqs[0], seqs[1], seqs[2], seqs[3]], [seqs[4], seqs[5]], [seqs[6], seqs[7]] ] expected_list = seqs for seq in expected_list: seq.pick() expected_depths = np.array([4, 6, 7, 4, 3, 2, 2, 1]) self.matrix.min_depth = 3 self.matrix.more_random = True self.matrix.minimize_depths() actual_matrix = self.matrix.seq_matrix for row in actual_matrix: for seq in row: if not seq.picked: row.remove(seq) self.assertEquals(expected_matrix, actual_matrix) assert_equal(expected_depths, self.matrix.depth_array) self.assertEquals([seq.string for seq in expected_list], sub.flatten_and_filter_matrix(self.matrix.seq_matrix))