def acc(input_data, k, lag, phyche_list, alphabet, extra_index_file=None, all_prop=False, theta_type=1): """This is a complete acc in PseKNC. :param k: int, the value of k-tuple. :param phyche_list: list, the input physicochemical properties list. :param extra_index_file: a file path includes the user-defined phyche_index. :param all_prop: bool, choose all physicochemical properties or not. :param theta_type: the value 1, 2 and 3 for ac, cc or acc. """ phyche_list = get_phyche_list(k, phyche_list, extra_index_file=extra_index_file, alphabet=alphabet, all_prop=all_prop) # print(phyche_list) # Get phyche_vals. if alphabet == index_list.DNA or alphabet == index_list.RNA: if extra_index_file is not None: extra_phyche_index = get_extra_index(extra_index_file) from util import normalize_index phyche_vals = get_phyche_value( k, phyche_list, alphabet, normalize_index(extra_phyche_index, alphabet, is_convert_dict=True)) else: phyche_vals = get_phyche_value(k, phyche_list, alphabet) elif alphabet == index_list.PROTEIN: phyche_vals = get_aaindex(phyche_list) # print(phyche_vals) if extra_index_file is not None: phyche_vals.extend(extend_aaindex(extra_index_file)) seqs = get_data(input_data, alphabet) if alphabet == index_list.PROTEIN: # Transform the data format to dict {acid: [phyche_vals]}. phyche_keys = phyche_vals[0].index_dict.keys() phyche_vals = [e.index_dict.values() for e in phyche_vals] new_phyche_vals = zip(*[e for e in phyche_vals]) phyche_vals = { key: list(val) for key, val in zip(phyche_keys, new_phyche_vals) } if theta_type == 1: return make_ac_vec(seqs, lag, phyche_vals, k) elif theta_type == 2: return make_cc_vec(seqs, lag, phyche_vals, k) elif theta_type == 3: return make_acc_vec(seqs, lag, phyche_vals, k)
def acc(input_data, k, lag, phyche_list, alphabet, extra_index_file=None, all_prop=False, theta_type=1): """This is a complete acc in PseKNC. :param k: int, the value of k-tuple. :param phyche_list: list, the input physicochemical properties list. :param extra_index_file: a file path includes the user-defined phyche_index. :param all_prop: bool, choose all physicochemical properties or not. :param theta_type: the value 1, 2 and 3 for ac, cc or acc. """ phyche_list = get_phyche_list( k, phyche_list, extra_index_file=extra_index_file, alphabet=alphabet, all_prop=all_prop ) # print(phyche_list) # Get phyche_vals. if alphabet == index_list.DNA or alphabet == index_list.RNA: if extra_index_file is not None: extra_phyche_index = get_extra_index(extra_index_file) from util import normalize_index phyche_vals = get_phyche_value( k, phyche_list, alphabet, normalize_index(extra_phyche_index, alphabet, is_convert_dict=True) ) else: phyche_vals = get_phyche_value(k, phyche_list, alphabet) elif alphabet == index_list.PROTEIN: phyche_vals = get_aaindex(phyche_list) # print(phyche_vals) if extra_index_file is not None: phyche_vals.extend(extend_aaindex(extra_index_file)) seqs = get_data(input_data, alphabet) if alphabet == index_list.PROTEIN: # Transform the data format to dict {acid: [phyche_vals]}. phyche_keys = phyche_vals[0].index_dict.keys() phyche_vals = [e.index_dict.values() for e in phyche_vals] new_phyche_vals = zip(*[e for e in phyche_vals]) phyche_vals = {key: list(val) for key, val in zip(phyche_keys, new_phyche_vals)} if theta_type == 1: return make_ac_vec(seqs, lag, phyche_vals, k) elif theta_type == 2: return make_cc_vec(seqs, lag, phyche_vals, k) elif theta_type == 3: return make_acc_vec(seqs, lag, phyche_vals, k)