if read_edge_len: sys.exit("Expected only one -e per invocation") curr_list = [] reading_edge_len = True if reading_freq: sys.exit("Expected 3 base frequencies") elif reading_rmat: sys.exit("Expected 5 relative rate parameters") elif reading_edge_len: sys.exit("Expected an edge length parameter") # Arguments have been parsed. Do the calculation... model = RevDiscStateContTimeModel(state_freq=freq, r_upper=r_mat) mat = model.calc_prob_matrices(edge_length)[0] # returns a list of matrices, but we are not # using rate het, so we just want # the first. # format the output max_len = 0 mat_str = [list(' ACGT')] for from_base, mat_row in izip('ACGT', mat): mat_str_row = [from_base] for cell in mat_row: s = str(cell) if len(s) > max_len: max_len = len(s) mat_str_row.append(s)