def main(argv): u = Utils() iterations = 25 idx = int(argv[1]) drugs = u.load_np('drugs') drugID = drugs[idx] status = u.read_status(drugID) if status == 'no': try: u.write_status(drugID, 'working') drug = Drug(drugID) for itr in range(1, iterations + 1): drug.match() drug.count_adr() drug.assign_abcd(itr) drug.do_chi_square() drug.calc_logROR() drug.reset_for_next_itr() x = drug.save_results(iterations) if x: u.write_status(drugID, 'yes') else: u.write_status(drugID, 'no') except: info = str(sys.exc_info()[1]) u.write_status(drugID, 'error ' + info)
def main(argv): i = int(argv[1]) u = Utils() db = Database('Mimir from Munnin') np.random.seed(u.RANDOM_STATE) df_patients = u.load_df('df_patients') sex_adr = db.get_list('select meddra_pt_id from gender_terms') drugs = db.get_list('select atc_5_id from atc_5_name') test = [(x, y) for x, y in u.load_np('prr_test')] df_test = pd.DataFrame(test, columns=['drug', 'adr']).sort_values(by='drug')[i:] PID_M = set(df_patients.query('Sex=="M"').get('PID').values) PID_F = set(df_patients.query('Sex=="F"').get('PID').values) for drugID, data in df_test.groupby('drug'): filename = 'Post_PRR/' + str(drugID) pth = u.DATA_PATH + filename + '.feather' if os.path.exists(pth): print(drugID) continue prr_counts = [] q = 'select PID from atc_5_patient where atc_5_id = ' + str(drugID) takes_drug = set(db.get_list(q)) try: drug = Drug(drugID) drug.match() except NameError: df = pd.DataFrame( columns=['drug', 'adr', 'sex', 'a_post', 'c_post']) u.save_df(df, filename) if drug.match_m is None or drug.match_f is None: df = pd.DataFrame( columns=['drug', 'adr', 'sex', 'a_post', 'c_post']) u.save_df(df, filename) db = Database('Mimir from Munnin') continue for adrID in data.adr.values: q = 'select PID from pt_patient where meddra_concept_id = ' + str( adrID) has_adr = set(db.get_list(q)) for sex in ['M', 'F']: if sex == 'M': PSM = drug.match_m else: PSM = drug.match_f a_post = len([1 for x in PSM if x in (has_adr & takes_drug)]) c_post = len([1 for x in PSM if x in (takes_drug - has_adr)]) res = { 'drug': drugID, 'adr': adrID, 'sex': sex, 'a_post': a_post, 'c_post': c_post } prr_counts.append(res) df = pd.DataFrame(prr_counts) u.save_df(df, filename) break