forked from mnarayan1/DDInter
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathparser.py
More file actions
59 lines (46 loc) · 1.86 KB
/
Copy pathparser.py
File metadata and controls
59 lines (46 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import glob
import pandas as pd
import os
import json
def load_data(data_folder):
ddinter_filepath = os.path.join(data_folder, "ddinter_downloads_code_*.csv")
ddinter_blob = glob.glob(ddinter_filepath)
ddinter_df = pd.concat(map(pd.read_csv, ddinter_blob), ignore_index=True)
# load file with scraped data
drug_filepath = os.path.join(data_folder, 'drug_data.json')
with open(drug_filepath) as f:
drug_data = json.load(f)['records']
drug_characteristics = ['chembl', 'pubchem', 'drugbank']
ids = set()
for index in ddinter_df.index:
drug_a_id = ddinter_df['DDInterID_A'][index]
drug_b_id = ddinter_df['DDInterID_B'][index]
level = ddinter_df['Level'][index]
_id = drug_a_id + '_' + drug_b_id + '_' + level
if _id in ids:
continue
ids.add(_id)
drug_a_name = ddinter_df['Drug_A'][index]
drug_a_index = int(drug_a_id.split('DDInter')[-1])
drug_b_name = ddinter_df['Drug_B'][index]
drug_b_index = int(drug_b_id.split('DDInter')[-1])
doc = {}
doc['_id'] = _id
doc['level'] = level
doc['drug_a'] = {
'ddinter': drug_a_id,
'name': drug_a_name,
}
for characteristic in drug_characteristics:
info = drug_data[drug_a_index-1][characteristic]
if len(info) > 0:
doc['drug_a'][characteristic] = info
doc['drug_b'] = {
'ddinter': drug_b_id,
'name': drug_b_name,
}
for characteristic in drug_characteristics:
info = drug_data[drug_b_index-1][characteristic]
if len(info) > 0:
doc['drug_b'][characteristic] = info
yield doc