import pandas as pd | |
from collections import defaultdict | |
# load file | |
def df_mem(df): | |
return '%.1f Mb' % (df.memory_usage(index=True, deep=True).values.sum() / 1024 / 1024) | |
def load_df(file_name, nrows=1000, header='infer', names=None): | |
df = pd.read_csv(file_name, sep='|', nrows=nrows, low_memory=False, header=header, names=names) | |
# print("loaded '%s', %d rows (%s)" % (file_name, len(df), df_mem(df))) | |
return df | |
# Map Studies to Mesh | |
df_mesh_ct = load_df('asset/data/browse_conditions.txt', nrows=None) | |
df_mesh_ct = df_mesh_ct[['nct_id', 'downcase_mesh_term']] | |
## search mesh_term | |
nct_to_mesh_term = defaultdict(set) | |
for row in df_mesh_ct[['nct_id', 'downcase_mesh_term']].itertuples(): | |
nct_to_mesh_term[row[1]].add(row[2]) | |
###========================================================================================================== | |
# # Map Mesh to Keywords | |
# df_mesh_kw = load_df('data/keywords.txt', nrows=None) | |
# df_mesh_kw = df_mesh_kw[['nct_id', 'downcase_name']] | |
# ## get mesh keywords | |
# nct_to_mesh_kywd = defaultdict(set) | |
# for row in df_mesh_kw[['nct_id','downcase_name']].itertuples(): | |
# nct_to_mesh_kywd[row[1]].add(row[2]) | |
###========================================================================================================== | |
# original mesh fuction in creator py | |
###========================================================================================================== | |
# load mesh dataframe | |
df_mesh = pd.read_csv('asset/data/df_mesh.csv', encoding='unicode_escape') | |
# Map Mesh Term to ID | |
mesh_term_to_id = {} | |
for row in df_mesh[['name', 'ui']].itertuples(): | |
mesh_term_to_id[row[1]] = row[2] | |