emmas96 commited on
Commit
d2ef912
·
1 Parent(s): ce77ac5

change layout of about page

Browse files
Files changed (1) hide show
  1. app.py +47 -53
app.py CHANGED
@@ -78,63 +78,48 @@ def retrieval():
78
 
79
  with col2:
80
  selected_encoder = st.selectbox(
81
- 'Select target encoder',('SeqVec', 'None')
82
  )
83
  if sequence:
84
- if selected_encoder == 'SeqVec':
85
- st.image('figures/protein_encoder_done.png')
86
- with st.spinner('Encoding in progress...'):
87
-
88
- with open(os.path.join(data_path, f'Lenselink/processed/SeqVec_encoding_test.pickle'), 'rb') as handle:
89
- test_set = pickle.load(handle)
90
-
91
- if sequence in list(test_set.keys()):
92
- query_embedding = test_set[sequence]
93
- else:
94
- from bio_embeddings.embed import SeqVecEmbedder
95
- encoder = SeqVecEmbedder()
96
- embeddings = encoder.embed_batch([sequence])
97
- for emb in embeddings:
98
- query_embedding = encoder.reduce_per_protein(emb)
99
- break
100
-
101
- st.success('Encoding complete.')
102
- else:
103
- query_embedding = None
104
- st.image('figures/protein_encoder.png')
105
- st.warning('Choose encoder above...')
106
 
107
  with col3:
108
  selected_database = st.selectbox(
109
- 'Select database',('Lenselink', 'None')
110
  )
111
- if selected_database == 'Lenselink':
112
- c1, c2 = st.columns(2)
113
- with c2:
114
- st.image('figures/multi_molecules.png', use_column_width='always') #, width=125)
115
- with st.spinner('Loading data...'):
116
- batch_size = 2048
117
- dataset = DrugRetrieval(os.path.join(data_path, selected_database), sequence, query_embedding)
118
- dataloader = DataLoader(dataset, num_workers=2, batch_size=batch_size, shuffle=False, collate_fn=collate_target)
119
- st.success('Data loaded.')
120
- else:
121
- dataset = None
122
- dataloader = None
123
- st.warning('Choose database above...')
124
 
125
  with col4:
126
  selected_encoder = st.selectbox(
127
- 'Select drug encoder',('CDDD', 'None')
128
  )
129
- if selected_database:
130
- if selected_encoder == 'CDDD':
131
- st.image('figures/molecule_encoder_done.png')
132
- st.success('Encoding complete.')
133
- else:
134
- st.image('figures/molecule_encoder.png')
135
- st.warning('Choose encoder above...')
136
 
137
- if sequence == ex_target:
138
  st.markdown('### Inference')
139
 
140
  progress_text = "HyperPCM is predicting the QSAR model for the query protein target. Please wait."
@@ -144,7 +129,7 @@ def retrieval():
144
  st.markdown('### Retrieval')
145
 
146
  selected_k = st.slider(f'Top-k most active drug compounds {selected_database} predicted by HyperPCM are, for k = ', 5, 20, 5, 5)
147
-
148
  results = pd.read_csv('data/Lenselink/processed/ex_results.csv')
149
 
150
  cols = st.columns(5)
@@ -155,7 +140,7 @@ def retrieval():
155
  mol_img = Chem.Draw.MolToImage(mol)
156
  st.image(mol_img, caption=f"{results.loc[j + 5*i, 'Prediction']:.2f}")
157
 
158
- st.download_button('Download retrieved drug compounds.', results.head(selected_k).to_csv(index=False).encode('utf-8'), file_name='retrieved_drugs.csv')
159
 
160
  elif query_embedding is not None:
161
  st.markdown('### Inference')
@@ -205,14 +190,23 @@ def retrieval():
205
  mol_img = Chem.Draw.MolToImage(mol)
206
  st.image(mol_img, caption=f"{results.loc[j + 5*i, 'Prediction']:.2f}")
207
 
208
- st.download_button('Download retrieved drug compounds.', results.head(selected_k).to_csv(index=False).encode('utf-8'), file_name='retrieved_drugs.csv')
209
-
 
 
210
  page_names_to_func = {
211
  'Retrieval': retrieval,
212
  'About': about_page
213
  }
214
 
215
- selected_page = st.sidebar.selectbox('Choose function', page_names_to_func.keys())
216
- st.sidebar.markdown('')
217
- page_names_to_func[selected_page]()
 
 
 
 
 
218
 
 
 
 
78
 
79
  with col2:
80
  selected_encoder = st.selectbox(
81
+ 'Select target encoder',('SeqVec')
82
  )
83
  if sequence:
84
+ st.image('figures/protein_encoder_done.png')
85
+ with st.spinner('Encoding in progress...'):
86
+
87
+ with open(os.path.join(data_path, f'Lenselink/processed/SeqVec_encoding_test.pickle'), 'rb') as handle:
88
+ test_set = pickle.load(handle)
89
+
90
+ if sequence in list(test_set.keys()):
91
+ query_embedding = test_set[sequence]
92
+ else:
93
+ from bio_embeddings.embed import SeqVecEmbedder
94
+ encoder = SeqVecEmbedder()
95
+ embeddings = encoder.embed_batch([sequence])
96
+ for emb in embeddings:
97
+ query_embedding = encoder.reduce_per_protein(emb)
98
+ break
99
+
100
+ st.success('Encoding complete.')
 
 
 
 
 
101
 
102
  with col3:
103
  selected_database = st.selectbox(
104
+ 'Select database',('Lenselink', 'Davis', 'DUD-E')
105
  )
106
+ c1, c2 = st.columns(2)
107
+ with c2:
108
+ st.image('figures/multi_molecules.png', use_column_width='always') #, width=125)
109
+ with st.spinner('Loading data...'):
110
+ batch_size = 2048
111
+ dataset = DrugRetrieval(os.path.join(data_path, selected_database), sequence, query_embedding)
112
+ dataloader = DataLoader(dataset, num_workers=2, batch_size=batch_size, shuffle=False, collate_fn=collate_target)
113
+ st.success('Data loaded.')
 
 
 
 
 
114
 
115
  with col4:
116
  selected_encoder = st.selectbox(
117
+ 'Select drug encoder',('CDDD')
118
  )
119
+ st.image('figures/molecule_encoder_done.png')
120
+ st.success('Encoding complete.')
 
 
 
 
 
121
 
122
+ if sequence == ex_target and selected_database == 'Lenselink':
123
  st.markdown('### Inference')
124
 
125
  progress_text = "HyperPCM is predicting the QSAR model for the query protein target. Please wait."
 
129
  st.markdown('### Retrieval')
130
 
131
  selected_k = st.slider(f'Top-k most active drug compounds {selected_database} predicted by HyperPCM are, for k = ', 5, 20, 5, 5)
132
+
133
  results = pd.read_csv('data/Lenselink/processed/ex_results.csv')
134
 
135
  cols = st.columns(5)
 
140
  mol_img = Chem.Draw.MolToImage(mol)
141
  st.image(mol_img, caption=f"{results.loc[j + 5*i, 'Prediction']:.2f}")
142
 
143
+ st.download_button(f'Download retrieved drug compounds from the {selected_database} database.', results.head(selected_k).to_csv(index=False).encode('utf-8'), file_name='retrieved_drugs.csv')
144
 
145
  elif query_embedding is not None:
146
  st.markdown('### Inference')
 
190
  mol_img = Chem.Draw.MolToImage(mol)
191
  st.image(mol_img, caption=f"{results.loc[j + 5*i, 'Prediction']:.2f}")
192
 
193
+ st.download_button(f'Download retrieved drug compounds from the {selected_database} database.', results.head(selected_k).to_csv(index=False).encode('utf-8'), file_name='retrieved_drugs.csv')
194
+
195
+
196
+
197
  page_names_to_func = {
198
  'Retrieval': retrieval,
199
  'About': about_page
200
  }
201
 
202
+ #selected_page = st.sidebar.selectbox('Choose function', page_names_to_func.keys())
203
+ #st.sidebar.markdown('')
204
+ #page_names_to_func[selected_page]()
205
+
206
+ tab1, tab2 = st.tabs(page_names_to_func.keys())
207
+
208
+ with tab1:
209
+ page_names_to_func['Retrieval']()
210
 
211
+ with tab2:
212
+ page_names_to_func['About']()