ddi-fw 0.0.5__tar.gz → 0.0.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/PKG-INFO +1 -1
  2. ddi_fw-0.0.6/ddi_fw/datasets/custom/__init__.py +1 -0
  3. ddi_fw-0.0.6/ddi_fw/datasets/custom/base.py +148 -0
  4. ddi_fw-0.0.6/ddi_fw/datasets/ddi_mdl/base.py +63 -0
  5. ddi_fw-0.0.6/ddi_fw/datasets/mdf_sa_ddi/__init__.py +3 -0
  6. ddi_fw-0.0.6/ddi_fw/datasets/mdf_sa_ddi/base.py +138 -0
  7. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw.egg-info/PKG-INFO +1 -1
  8. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw.egg-info/SOURCES.txt +5 -0
  9. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw.egg-info/top_level.txt +3 -0
  10. ddi_fw-0.0.6/setup.py +17 -0
  11. ddi_fw-0.0.5/setup.py +0 -16
  12. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/README.md +0 -0
  13. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/datasets/__init__.py +0 -0
  14. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/datasets/core.py +0 -0
  15. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/datasets/db_utils.py +0 -0
  16. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/datasets/embedding_generator.py +0 -0
  17. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/datasets/embedding_generator_new.py +0 -0
  18. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/datasets/feature_vector_generation.py +0 -0
  19. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/datasets/idf_helper.py +0 -0
  20. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/drugbank/__init__.py +0 -0
  21. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/drugbank/drugbank_parser.py +0 -0
  22. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/drugbank/drugbank_processor.py +0 -0
  23. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/drugbank/drugbank_processor_org.py +0 -0
  24. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/drugbank/event_extractor.py +0 -0
  25. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/experiments/__init__.py +0 -0
  26. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/experiments/custom_torch_model.py +0 -0
  27. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/experiments/evaluation_helper.py +0 -0
  28. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/experiments/tensorflow_helper.py +0 -0
  29. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/experiments/test.py +0 -0
  30. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/ner/__init__.py +0 -0
  31. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/ner/mmlrestclient.py +0 -0
  32. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/ner/ner.py +0 -0
  33. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/utils/__init__.py +0 -0
  34. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/utils/enums.py +0 -0
  35. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/utils/utils.py +0 -0
  36. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw/utils/zip_helper.py +0 -0
  37. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/ddi_fw.egg-info/dependency_links.txt +0 -0
  38. {ddi_fw-0.0.5 → ddi_fw-0.0.6}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: ddi_fw
3
- Version: 0.0.5
3
+ Version: 0.0.6
4
4
  Summary: Do not use :)
5
5
  Home-page: UNKNOWN
6
6
  Author: Kıvanç Bayraktar
@@ -0,0 +1 @@
1
+ from .base import CustomDataset
@@ -0,0 +1,148 @@
1
+ import pathlib
2
+ import numpy as np
3
+
4
+ import pandas as pd
5
+ from ..idf_helper import IDF
6
+
7
+ from ddi_fw.utils.zip_helper import ZipHelper
8
+ from .. import BaseDataset
9
+ from ..db_utils import create_connection
10
+
11
+ HERE = pathlib.Path(__file__).resolve().parent
12
+
13
+ '''
14
+ uses drugbank_db.zip
15
+ '''
16
+
17
+
18
+ class CustomDataset(BaseDataset):
19
+ def __init__(self, index_path, chemical_property_columns=['enzyme',
20
+ 'target',
21
+ 'pathway',
22
+ 'smile'],
23
+ drugbank_ids=[],
24
+ embedding_columns=['indication'],
25
+ # ner_columns = ['tui_description','cui_description', 'entities_description'],
26
+ ner_columns = ['tui','cui', 'entities'],
27
+ threshold_method='idf',
28
+ threshold_val=0
29
+ ):
30
+ super().__init__(chemical_property_columns, embedding_columns, ner_columns, threshold_method, threshold_val)
31
+
32
+ # self.embedding_columns = embedding_columns
33
+ # self.columns = columns
34
+
35
+ self.drugbank_ids = drugbank_ids
36
+
37
+ zip_helper = ZipHelper()
38
+ # zip_helper.extract(input_path=str(HERE.joinpath('drugbank_db.zip')), output_path=str(HERE))
39
+ zip_helper.extract(input_path=str(HERE), output_path=str(HERE))
40
+ # kwargs = {'index_path': str(HERE.joinpath('indexes'))}
41
+
42
+ # db = HERE.joinpath('event.db')
43
+ db = HERE.joinpath('drugbank.db')
44
+ conn = create_connection(db)
45
+ self.drugs_df = self.__select_all_drugs_as_dataframe__(conn)
46
+ # dataframe'de olan ilaçlar arasındaki etkileşimleri bulmak için
47
+ # self.drugbank_ids = self.drugs_df['id'].to_list() ???
48
+ self.ddis_df = self.__select_all_events__(conn)
49
+
50
+ # self.index_path = kwargs.get('index_path')
51
+ self.index_path = index_path
52
+
53
+ def __select_all_events__(self, conn):
54
+ param = tuple(self.drugbank_ids)
55
+ cur = conn.cursor()
56
+ query = f'''
57
+ select
58
+ _Interactions."index",
59
+ drug_1_id,
60
+ drug_1,
61
+ drug_2_id,
62
+ drug_2,
63
+ mechanism_action,
64
+ interaction,
65
+ masked_interaction
66
+ from _Interactions '''
67
+ if len(self.drugbank_ids) > 0:
68
+ query = query + \
69
+ (f''' where drug_1_id in {format(param)} and drug_2_id in {format(param)}''')
70
+
71
+ cur.execute(query)
72
+
73
+ rows = cur.fetchall()
74
+
75
+ headers = ['index', 'id1', 'name1', 'id2', 'name2',
76
+ 'event_category', 'interaction', 'masked_interaction']
77
+ df = pd.DataFrame(columns=headers, data=rows)
78
+ return df
79
+
80
+ # TODO tuis_description, entities_description, belli bir eşik değeri altında olanı ignore etmek lazım
81
+ def __select_all_drugs_as_dataframe__(self, conn):
82
+ param = tuple(self.drugbank_ids)
83
+ query = f'''
84
+ select
85
+ _Drugs."index",
86
+ drugbank_id,
87
+ _Drugs.name,
88
+ description,
89
+ synthesis_reference,
90
+ indication,
91
+ pharmacodynamics,
92
+ mechanism_of_action,
93
+ toxicity,
94
+ metabolism,
95
+ absorption,
96
+ half_life,
97
+ protein_binding,
98
+ route_of_elimination,
99
+ volume_of_distribution,
100
+ clearance,
101
+ smiles,
102
+ smiles_morgan_fingerprint,
103
+ enzymes_polypeptides,
104
+ targets_polypeptides,
105
+ pathways,
106
+ tuis_description,
107
+ cuis_description,
108
+ entities_description
109
+
110
+ from _Drugs '''
111
+
112
+ if len(self.drugbank_ids) > 0:
113
+ query = query + f'''where
114
+ drugbank_id in {format(param)} and
115
+ targets_polypeptides is not null and
116
+ enzymes_polypeptides is not null and
117
+ pathways is not null and
118
+ smiles_morgan_fingerprint is not null'''
119
+ cur = conn.cursor()
120
+ cur.execute(query)
121
+
122
+ # pathway is absent
123
+
124
+ rows = cur.fetchall()
125
+ headers = ['index', 'id', 'name', 'description', 'synthesis_reference', 'indication', 'pharmacodynamics', 'mechanism_of_action', 'toxicity', 'metabolism', 'absorption', 'half_life',
126
+ 'protein_binding', 'route_of_elimination', 'volume_of_distribution', 'clearance', 'smiles_notation', 'smile', 'enzyme', 'target', 'pathway',
127
+ 'tui_description', 'cui_description', 'entities_description']
128
+ df = pd.DataFrame(columns=headers, data=rows)
129
+ df['smile'] = df['smile'].apply(lambda x:
130
+ np.fromstring(
131
+ x.replace(
132
+ '\n', '')
133
+ .replace('[', '')
134
+ .replace(']', '')
135
+ .replace(' ', ' '), sep=','))
136
+ df['enzyme'] = df['enzyme'].apply(
137
+ lambda x: x.split('|') if x is not None else [])
138
+ df['target'] = df['target'].apply(
139
+ lambda x: x.split('|') if x is not None else [])
140
+ df['pathway'] = df['pathway'].apply(
141
+ lambda x: x.split('|') if x is not None else [])
142
+ df['tui_description'] = df['tui_description'].apply(
143
+ lambda x: x.split('|') if x is not None else [])
144
+ df['cui_description'] = df['cui_description'].apply(
145
+ lambda x: x.split('|') if x is not None else [])
146
+ df['entities_description'] = df['entities_description'].apply(
147
+ lambda x: x.split('|') if x is not None else [])
148
+ return df
@@ -0,0 +1,63 @@
1
+ import pathlib
2
+
3
+ import pandas as pd
4
+ from .. import BaseDataset
5
+ from ..db_utils import create_connection
6
+
7
+ HERE = pathlib.Path(__file__).resolve().parent
8
+
9
+
10
+ class DDIMDLDataset(BaseDataset):
11
+ def __init__(self, chemical_property_columns=['enzyme',
12
+ 'target',
13
+ 'pathway',
14
+ 'smile'],
15
+ embedding_columns=[],
16
+ ner_columns=[],
17
+ **kwargs):
18
+
19
+ super().__init__(chemical_property_columns, embedding_columns,
20
+ ner_columns, **kwargs)
21
+
22
+ # kwargs = {'index_path': str(HERE.joinpath('indexes'))}
23
+ kwargs['index_path']= str(HERE.joinpath('indexes'))
24
+
25
+ db = HERE.joinpath('event.db')
26
+ conn = create_connection(db)
27
+ print("db prep")
28
+ self.drugs_df = self.__select_all_drugs_as_dataframe__(conn)
29
+ self.ddis_df = self.__select_all_events__(conn)
30
+ print("db bitti")
31
+ self.index_path = kwargs.get('index_path')
32
+
33
+ def __select_all_drugs_as_dataframe__(self, conn):
34
+ headers = ['index', 'id', 'name',
35
+ 'target', 'enzyme', 'pathway', 'smile']
36
+ cur = conn.cursor()
37
+ cur.execute(
38
+ '''select "index", id, name, target, enzyme, pathway, smile from drug''')
39
+ rows = cur.fetchall()
40
+ df = pd.DataFrame(columns=headers, data=rows)
41
+ df['enzyme'] = df['enzyme'].apply(lambda x: x.split('|'))
42
+ df['target'] = df['target'].apply(lambda x: x.split('|'))
43
+ df['pathway'] = df['pathway'].apply(lambda x: x.split('|'))
44
+ df['smile'] = df['smile'].apply(lambda x: x.split('|'))
45
+ return df
46
+
47
+ def __select_all_events__(self, conn):
48
+ """
49
+ Query all rows in the event table
50
+ :param conn: the Connection object
51
+ :return:
52
+ """
53
+ cur = conn.cursor()
54
+ cur.execute('''
55
+ select ex."index", d1.id, d1.name, d2.id, d2.name, mechanism || ' ' ||action from extraction ex
56
+ join drug d1 on d1.name = ex.drugA
57
+ join drug d2 on d2.name = ex.drugB
58
+ ''')
59
+
60
+ rows = cur.fetchall()
61
+
62
+ headers = ["index", "id1", "name1", "id2", "name2", "event_category"]
63
+ return pd.DataFrame(columns=headers, data=rows)
@@ -0,0 +1,3 @@
1
+ from .base import MDFSADDIDataset
2
+
3
+ __all__ = ['MDFSADDIDataset']
@@ -0,0 +1,138 @@
1
+ import os
2
+ import pathlib
3
+ import sqlite3
4
+ from sqlite3 import Error
5
+ import pandas as pd
6
+
7
+ from ddi_fw.utils import ZipHelper
8
+
9
+ from ..core import BaseDataset
10
+ # from ..db_utils import create_connection, select_all_drugs_as_dataframe, select_events_with_category
11
+
12
+ HERE = pathlib.Path(__file__).resolve().parent
13
+
14
+
15
+ class MDFSADDIDataset(BaseDataset):
16
+ def __init__(self, chemical_property_columns=['enzyme',
17
+ 'target',
18
+ 'smile'],
19
+ embedding_columns=[],
20
+ ner_columns=[],
21
+ **kwargs):
22
+
23
+ super().__init__(chemical_property_columns, embedding_columns,
24
+ ner_columns, **kwargs)
25
+
26
+ db_zip_path = HERE.joinpath('mdf-sa-ddi.zip')
27
+ db_path = HERE.joinpath('mdf-sa-ddi.db')
28
+ if not os.path.exists(db_zip_path):
29
+ self.__to_db__(db_path)
30
+ else:
31
+ ZipHelper().extract(
32
+ input_path=str(HERE), output_path=str(HERE))
33
+ conn = create_connection(db_path)
34
+ self.drugs_df = select_all_drugs_as_dataframe(conn)
35
+ self.ddis_df = select_all_events_as_dataframe(conn)
36
+ kwargs = {'index_path': str(HERE.joinpath('indexes'))}
37
+
38
+ self.index_path = kwargs.get('index_path')
39
+
40
+ def __to_db__(self, db_path):
41
+ conn = create_connection(db_path)
42
+ drugs_path = HERE.joinpath('drug_information_del_noDDIxiaoyu50.csv')
43
+ ddis_path = HERE.joinpath('df_extraction_cleanxiaoyu50.csv')
44
+ self.drugs_df = pd.read_csv(drugs_path)
45
+ self.ddis_df = pd.read_csv(ddis_path)
46
+ self.drugs_df.drop(columns="Unnamed: 0", inplace=True)
47
+ self.ddis_df.drop(columns="Unnamed: 0", inplace=True)
48
+
49
+ self.ddis_df.rename(
50
+ columns={"drugA": "name1", "drugB": "name2"}, inplace=True)
51
+ self.ddis_df['event_category'] = self.ddis_df['mechanism'] + \
52
+ ' ' + self.ddis_df['action']
53
+
54
+ reverse_ddis_df = pd.DataFrame()
55
+ reverse_ddis_df['id1'] = self.ddis_df['id2']
56
+ reverse_ddis_df['name1'] = self.ddis_df['name2']
57
+ reverse_ddis_df['id2'] = self.ddis_df['id1']
58
+ reverse_ddis_df['name2'] = self.ddis_df['name1']
59
+ reverse_ddis_df['event_category'] = self.ddis_df['event_category']
60
+
61
+ self.ddis_df = pd.concat(
62
+ [self.ddis_df, reverse_ddis_df], ignore_index=True)
63
+
64
+ drug_name_id_pairs = {}
65
+ for idx, row in self.drugs_df.iterrows():
66
+ drug_name_id_pairs[row['name']] = row['id']
67
+
68
+ # id1,id2
69
+
70
+ def lambda_fnc1(column):
71
+ return drug_name_id_pairs[column]
72
+ # def lambda_fnc2(row):
73
+ # x = self.drugs_df[self.drugs_df['name'] == row['name2']]
74
+ # return x['id']
75
+
76
+ self.ddis_df['id1'] = self.ddis_df['name1'].apply(
77
+ lambda_fnc1) # , axis=1
78
+ self.ddis_df['id2'] = self.ddis_df['name2'].apply(
79
+ lambda_fnc1) # , axis=1
80
+ self.drugs_df.to_sql('drug', conn, if_exists='replace', index=False)
81
+ self.ddis_df.to_sql('event', conn, if_exists='replace', index=False)
82
+ ZipHelper().zip_single_file(
83
+ file_path=db_path, output_path=HERE, name='mdf-sa-ddi')
84
+
85
+
86
+ def create_connection(db_file=r"mdf-sa-ddi.db"):
87
+ """ create a database connection to the SQLite database
88
+ specified by db_file
89
+ :param db_file: database file
90
+ :return: Connection object or None
91
+ """
92
+ conn = None
93
+ try:
94
+ conn = sqlite3.connect(db_file)
95
+ except Error as e:
96
+ print(e)
97
+
98
+ return conn
99
+
100
+
101
+ def select_all_drugs(conn):
102
+ cur = conn.cursor()
103
+ cur.execute(
104
+ '''select "index", id, name, target, enzyme, smile from drug''')
105
+ rows = cur.fetchall()
106
+ return rows
107
+
108
+
109
+ def select_all_drugs_as_dataframe(conn):
110
+ headers = ['index', 'id', 'name', 'target', 'enzyme', 'smile']
111
+ rows = select_all_drugs(conn)
112
+ df = pd.DataFrame(columns=headers, data=rows)
113
+ df['enzyme'] = df['enzyme'].apply(lambda x: x.split('|'))
114
+ df['target'] = df['target'].apply(lambda x: x.split('|'))
115
+ df['smile'] = df['smile'].apply(lambda x: x.split('|'))
116
+ return df
117
+
118
+
119
+ def select_all_events(conn):
120
+ """
121
+ Query all rows in the event table
122
+ :param conn: the Connection object
123
+ :return:
124
+ """
125
+ cur = conn.cursor()
126
+ cur.execute('''
127
+ select event."index", id1, name1, id2, name2, mechanism, action, event_category from event
128
+ ''')
129
+
130
+ rows = cur.fetchall()
131
+ return rows
132
+
133
+
134
+ def select_all_events_as_dataframe(conn):
135
+ headers = ["index", "id1", "name1", "id2",
136
+ "name2", "mechanism", "action", "event_category"]
137
+ rows = select_all_events(conn)
138
+ return pd.DataFrame(columns=headers, data=rows)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: ddi-fw
3
- Version: 0.0.5
3
+ Version: 0.0.6
4
4
  Summary: Do not use :)
5
5
  Home-page: UNKNOWN
6
6
  Author: Kıvanç Bayraktar
@@ -11,6 +11,11 @@ ddi_fw/datasets/embedding_generator.py
11
11
  ddi_fw/datasets/embedding_generator_new.py
12
12
  ddi_fw/datasets/feature_vector_generation.py
13
13
  ddi_fw/datasets/idf_helper.py
14
+ ddi_fw/datasets/custom/__init__.py
15
+ ddi_fw/datasets/custom/base.py
16
+ ddi_fw/datasets/ddi_mdl/base.py
17
+ ddi_fw/datasets/mdf_sa_ddi/__init__.py
18
+ ddi_fw/datasets/mdf_sa_ddi/base.py
14
19
  ddi_fw/drugbank/__init__.py
15
20
  ddi_fw/drugbank/drugbank_parser.py
16
21
  ddi_fw/drugbank/drugbank_processor.py
@@ -1,4 +1,7 @@
1
1
  ddi_fw/datasets
2
+ ddi_fw/datasets/custom
3
+ ddi_fw/datasets/ddi_mdl
4
+ ddi_fw/datasets/mdf_sa_ddi
2
5
  ddi_fw/drugbank
3
6
  ddi_fw/experiments
4
7
  ddi_fw/ner
ddi_fw-0.0.6/setup.py ADDED
@@ -0,0 +1,17 @@
1
+ from setuptools import setup, find_packages
2
+ setup(
3
+ name='ddi_fw',
4
+ version='0.0.6',
5
+ author='Kıvanç Bayraktar',
6
+ author_email='bayraktarkivanc@gmail.com',
7
+ description='Do not use :)',
8
+ # packages=find_packages(),
9
+ packages=['ddi_fw/datasets', 'ddi_fw/datasets/mdf_sa_ddi', 'ddi_fw/datasets/ddi_mdl',
10
+ 'ddi_fw/datasets/custom', 'ddi_fw/drugbank', 'ddi_fw/experiments', 'ddi_fw/ner', 'ddi_fw/utils'],
11
+ classifiers=[
12
+ 'Programming Language :: Python :: 3',
13
+ 'License :: OSI Approved :: MIT License',
14
+ 'Operating System :: OS Independent',
15
+ ],
16
+ python_requires='>=3.6',
17
+ )
ddi_fw-0.0.5/setup.py DELETED
@@ -1,16 +0,0 @@
1
- from setuptools import setup, find_packages
2
- setup(
3
- name='ddi_fw',
4
- version='0.0.5',
5
- author='Kıvanç Bayraktar',
6
- author_email='bayraktarkivanc@gmail.com',
7
- description='Do not use :)',
8
- # packages=find_packages(),
9
- packages=['ddi_fw/datasets','ddi_fw/drugbank','ddi_fw/experiments','ddi_fw/ner','ddi_fw/utils'],
10
- classifiers=[
11
- 'Programming Language :: Python :: 3',
12
- 'License :: OSI Approved :: MIT License',
13
- 'Operating System :: OS Independent',
14
- ],
15
- python_requires='>=3.6',
16
- )
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes