legend1234 commited on
Commit
52b8e70
1 Parent(s): 7016419

Add working demo version 0

Browse files
Files changed (5) hide show
  1. .streamlit/config.toml +2 -0
  2. app.py +166 -0
  3. requirements.txt +7 -0
  4. test_SMILES.csv +7 -0
  5. test_input_sdf.sdf +387 -0
.streamlit/config.toml ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [theme]
2
+ base="light"
app.py ADDED
@@ -0,0 +1,166 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import tempfile
3
+ from io import StringIO
4
+
5
+ import joblib
6
+ import numpy as np
7
+ import pandas as pd
8
+ import streamlit as st
9
+ from b3clf.descriptor_padel import compute_descriptors
10
+ from b3clf.geometry_opt import geometry_optimize
11
+ from b3clf.utils import (get_descriptors, predict_permeability,
12
+ scale_descriptors, select_descriptors)
13
+ from streamlit_ketcher import st_ketcher
14
+
15
+ # from geometry_opt import geometry_optimize
16
+
17
+ # Load the pre-trained model and feature scaler
18
+ model = joblib.load(
19
+ "/home/legend/Desktop/work/BBB_database/bbb_imbalanced_github/B3clf/b3clf/pre_trained/b3clf_knn_kmeans_SMOTE.joblib"
20
+ )
21
+ scaler = joblib.load(
22
+ "/home/legend/Desktop/work/BBB_database/bbb_imbalanced_github/B3clf/b3clf/pre_trained/b3clf_scaler.joblib"
23
+ )
24
+
25
+
26
+ # Define a function to generate predictions
27
+ # def generate_predictions(file):
28
+ # # Read the input file
29
+ # if file.type == "text/csv":
30
+ # df = pd.read_csv(file)
31
+ # elif file.type == "chemical/x-mdl-sdfile":
32
+ # df = pd.read_sdf(file)
33
+ # else:
34
+ # st.error("Invalid file type. Please upload a CSV or SDF file.")
35
+ # return
36
+
37
+ # # Compute the molecular geometry, calculate the features, and perform the predictions
38
+ # X = df.drop("ID", axis=1)
39
+ # X_scaled = scaler.transform(X)
40
+ # y_pred_proba = model.predict_proba(X_scaled)[:, 1]
41
+ # y_pred = model.predict(X_scaled)
42
+
43
+ # # Create a DataFrame with the predictions
44
+ # results = pd.DataFrame({"ID": df["ID"], "B3clf_predicted_probability": y_pred_proba, "B3clf_predicted_label": y_pred})
45
+
46
+ # return results
47
+
48
+ keep_features = "no"
49
+ keep_sdf = "no"
50
+
51
+
52
+ def generate_predictions(
53
+ uploaded_file: st.file_uploader,
54
+ sep: str = "\s+|\t+",
55
+ clf: str = "xgb",
56
+ sampling: str = "classic_ADASYN",
57
+ time_per_mol: int = 120,
58
+ ):
59
+ """
60
+ Generate predictions for a given input file.
61
+ """
62
+ # mol_tag = os.path.splitext(uploaded_file.name)[0]
63
+ # uploaded_file = uploaded_file.read().decode("utf-8")
64
+ mol_tag = os.path.basename(uploaded_file).split(".")[0]
65
+ internal_sdf = f"{mol_tag}_optimized_3d.sdf"
66
+
67
+ # Geometry optimization
68
+ # Input:
69
+ # * Either an SDF file with molecular geometries or a text file with SMILES strings
70
+
71
+ geometry_optimize(input_fname=uploaded_file, output_sdf=internal_sdf, sep=sep)
72
+
73
+ df_features = compute_descriptors(
74
+ sdf_file=internal_sdf,
75
+ excel_out=None,
76
+ output_csv=None,
77
+ timeout=None,
78
+ time_per_molecule=time_per_mol,
79
+ )
80
+ # st.write(df_features)
81
+
82
+ # Get computed descriptors
83
+ X_features, info_df = get_descriptors(df=df_features)
84
+
85
+
86
+ # Select descriptors
87
+ X_features = select_descriptors(df=X_features)
88
+
89
+ # Scale descriptors
90
+ X_features = scale_descriptors(df=X_features)
91
+
92
+ # Get classifier
93
+ # clf = get_clf(clf_str=clf, sampling_str=sampling)
94
+
95
+ # Get classifier
96
+ result_df = predict_permeability(
97
+ clf_str=clf,
98
+ sampling_str=sampling,
99
+ features_df=X_features,
100
+ info_df=info_df,
101
+ threshold="none",
102
+ )
103
+
104
+ # Get classifier
105
+ display_cols = [
106
+ "ID",
107
+ "SMILES",
108
+ "B3clf_predicted_probability",
109
+ "B3clf_predicted_label",
110
+ ]
111
+
112
+ result_df = result_df[
113
+ [col for col in result_df.columns.to_list() if col in display_cols]
114
+ ]
115
+
116
+ os.remove(internal_sdf)
117
+
118
+ return X_features, result_df
119
+
120
+
121
+ # Create the Streamlit app
122
+ st.title("BBB Permeability Prediction with Imbalanced Learning")
123
+
124
+ # Create a file uploader
125
+
126
+ st.subheader("Input Data")
127
+ file = st.file_uploader("Upload a CSV or SDF file",
128
+ type=["csv", "sdf", "txt"],
129
+ # accept_multiple_files=False,
130
+ )
131
+ # st.write("The content of the file will be displayed below once uploaded.")
132
+ if file:
133
+ # if "csv" in file.name or "txt" in file.name:
134
+ # st.write(file.read().decode("utf-8"))
135
+ st.write(file)
136
+
137
+
138
+ # Generate predictions when the user uploads a file
139
+ if file:
140
+ temp_dir = tempfile.mkdtemp()
141
+ # Create a temporary file path for the uploaded file
142
+ temp_file_path = os.path.join(temp_dir, file.name)
143
+ # Save the uploaded file to the temporary file path
144
+ with open(temp_file_path, 'wb') as temp_file:
145
+ temp_file.write(file.read())
146
+ X_features, results = generate_predictions(temp_file_path)
147
+
148
+ feature_column, prediction_column = st.columns(2)
149
+
150
+ # feture table
151
+ with feature_column:
152
+ st.subheader("Features")
153
+ st.dataframe(X_features)
154
+
155
+ # prediction table
156
+ with prediction_column:
157
+ st.subheader("Predictions")
158
+ if results is not None:
159
+ # Display the predictions in a table
160
+ st.dataframe(results)
161
+ # Add a button to download the predictions as a CSV file
162
+ predictions_csv = results.to_csv(index=False)
163
+ results_file_name = file.name.split(".")[0] + "_b3clf_predictions.csv"
164
+ st.download_button(
165
+ "Download predictions as CSV", data=predictions_csv, file_name=results_file_name
166
+ )
requirements.txt CHANGED
@@ -7,3 +7,10 @@ openpyxl>=3.0.9
7
  # rdkit-pypi>=2020.09.1.0
8
  xgboost==1.4.2
9
  padelpy>=0.1.11
 
 
 
 
 
 
 
 
7
  # rdkit-pypi>=2020.09.1.0
8
  xgboost==1.4.2
9
  padelpy>=0.1.11
10
+ rdkit
11
+
12
+ # for visualization
13
+ streamlit-ketcher
14
+ # for single molecule
15
+ # py3Dmol==2.0.0.post2
16
+ # stmol==0.0.9
test_SMILES.csv ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ [H]OC(=O)C([H])([H])C([H])([H])C([H])([H])N1C([H])([H])C([H])([H])C([H])(OC([H])(c2nc([H])c([H])c([H])c2[H])c2c([H])c([H])c(Cl)c([H])c2[H])C([H])([H])C1([H])[H]
2
+ [H]OC(c1c([H])c([H])c([H])c([H])c1[H])(c1c([H])c([H])c([H])c([H])c1[H])C1([H])C([H])([H])N2C([H])([H])C([H])([H])C1([H])C([H])([H])C2([H])[H]
3
+ [H]c1nc2c(c([H])c1[H])C([H])([H])C([H])([H])c1c([H])c(Cl)c([H])c([H])c1C2=C1C([H])([H])C([H])([H])N(C([H])([H])c2c([H])nc([H])c(C([H])([H])[H])c2[H])C([H])([H])C1([H])[H]
4
+ CCC
5
+ CCCC
6
+ CC(=O)OC1=CC=CC=C1C(=O)O
7
+ CC(=O)OC1=C(C=C(C=C1)Cl)C(=O)OC(=O)C2=C(C=CC(=C2)Cl)OC(=O)C
test_input_sdf.sdf ADDED
@@ -0,0 +1,387 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ H1_Bepotastine
2
+ RDKit 3D
3
+
4
+ 52 54 0 0 1 0 0 0 0 0999 V2000
5
+ 6.2601 3.8627 -0.7580 Cl 0 0 0 0 0 0 0 0 0 0 0 0
6
+ 0.7350 0.2169 -0.1032 O 0 0 0 0 0 0 0 0 0 0 0 0
7
+ -7.2627 2.0029 -1.7812 O 0 0 0 0 0 0 0 0 0 0 0 0
8
+ -7.8739 -0.0429 -1.1421 O 0 0 0 0 0 0 0 0 0 0 0 0
9
+ -3.2826 0.1387 1.0997 N 0 0 0 0 0 0 0 0 0 0 0 0
10
+ 2.0420 -2.0119 -1.2138 N 0 0 0 0 0 0 0 0 0 0 0 0
11
+ -0.4341 -0.2713 0.5552 C 0 0 0 0 0 0 0 0 0 0 0 0
12
+ -1.5088 -0.5144 -0.4974 C 0 0 0 0 0 0 0 0 0 0 0 0
13
+ -0.9255 0.7694 1.5572 C 0 0 0 0 0 0 0 0 0 0 0 0
14
+ -2.8345 -0.8975 0.1550 C 0 0 0 0 0 0 0 0 0 0 0 0
15
+ -2.2740 0.3674 2.1479 C 0 0 0 0 0 0 0 0 0 0 0 0
16
+ -4.5811 -0.1850 1.7144 C 0 0 0 0 0 0 0 0 0 0 0 0
17
+ -5.7574 -0.2607 0.7330 C 0 0 0 0 0 0 0 0 0 0 0 0
18
+ 1.9672 -0.2099 0.5040 C 0 0 2 0 0 0 0 0 0 0 0 0
19
+ -5.9298 1.0111 -0.0974 C 0 0 0 0 0 0 0 0 0 0 0 0
20
+ 3.0410 0.8232 0.1855 C 0 0 0 0 0 0 0 0 0 0 0 0
21
+ 2.3687 -1.6155 0.0463 C 0 0 0 0 0 0 0 0 0 0 0 0
22
+ 3.9935 1.1819 1.1545 C 0 0 0 0 0 0 0 0 0 0 0 0
23
+ 3.1185 1.4155 -1.0867 C 0 0 0 0 0 0 0 0 0 0 0 0
24
+ -7.1061 0.8976 -1.0266 C 0 0 0 0 0 0 0 0 0 0 0 0
25
+ 3.0746 -2.4482 0.9176 C 0 0 0 0 0 0 0 0 0 0 0 0
26
+ 4.9873 2.1194 0.8610 C 0 0 0 0 0 0 0 0 0 0 0 0
27
+ 4.1084 2.3564 -1.3784 C 0 0 0 0 0 0 0 0 0 0 0 0
28
+ 3.4496 -3.7187 0.4871 C 0 0 0 0 0 0 0 0 0 0 0 0
29
+ 5.0380 2.7045 -0.4026 C 0 0 0 0 0 0 0 0 0 0 0 0
30
+ 2.4252 -3.2455 -1.6060 C 0 0 0 0 0 0 0 0 0 0 0 0
31
+ 3.1214 -4.1271 -0.7990 C 0 0 0 0 0 0 0 0 0 0 0 0
32
+ -0.2263 -1.2199 1.0679 H 0 0 0 0 0 0 0 0 0 0 0 0
33
+ -1.6364 0.3807 -1.1209 H 0 0 0 0 0 0 0 0 0 0 0 0
34
+ -1.1831 -1.3082 -1.1808 H 0 0 0 0 0 0 0 0 0 0 0 0
35
+ -0.1894 0.8975 2.3595 H 0 0 0 0 0 0 0 0 0 0 0 0
36
+ -1.0042 1.7496 1.0680 H 0 0 0 0 0 0 0 0 0 0 0 0
37
+ -3.5642 -1.0250 -0.6514 H 0 0 0 0 0 0 0 0 0 0 0 0
38
+ -2.7343 -1.8665 0.6611 H 0 0 0 0 0 0 0 0 0 0 0 0
39
+ -2.1498 -0.5299 2.7684 H 0 0 0 0 0 0 0 0 0 0 0 0
40
+ -2.6054 1.1766 2.8103 H 0 0 0 0 0 0 0 0 0 0 0 0
41
+ -4.5185 -1.1314 2.2673 H 0 0 0 0 0 0 0 0 0 0 0 0
42
+ -4.8272 0.5917 2.4507 H 0 0 0 0 0 0 0 0 0 0 0 0
43
+ -5.6514 -1.1306 0.0739 H 0 0 0 0 0 0 0 0 0 0 0 0
44
+ -6.6737 -0.4399 1.3108 H 0 0 0 0 0 0 0 0 0 0 0 0
45
+ 1.8204 -0.2159 1.5927 H 0 0 0 0 0 0 0 0 0 0 0 0
46
+ -6.0945 1.8686 0.5639 H 0 0 0 0 0 0 0 0 0 0 0 0
47
+ -5.0396 1.1941 -0.7083 H 0 0 0 0 0 0 0 0 0 0 0 0
48
+ 3.9687 0.7355 2.1458 H 0 0 0 0 0 0 0 0 0 0 0 0
49
+ 2.3964 1.1402 -1.8552 H 0 0 0 0 0 0 0 0 0 0 0 0
50
+ 3.3355 -2.1177 1.9176 H 0 0 0 0 0 0 0 0 0 0 0 0
51
+ 5.7167 2.3889 1.6199 H 0 0 0 0 0 0 0 0 0 0 0 0
52
+ 4.1451 2.8085 -2.3655 H 0 0 0 0 0 0 0 0 0 0 0 0
53
+ 3.9993 -4.3824 1.1485 H 0 0 0 0 0 0 0 0 0 0 0 0
54
+ 2.1492 -3.5132 -2.6219 H 0 0 0 0 0 0 0 0 0 0 0 0
55
+ 3.4047 -5.1069 -1.1664 H 0 0 0 0 0 0 0 0 0 0 0 0
56
+ -8.0410 1.8004 -2.3409 H 0 0 0 0 0 0 0 0 0 0 0 0
57
+ 1 25 1 0
58
+ 2 7 1 0
59
+ 2 14 1 0
60
+ 3 20 1 0
61
+ 3 52 1 0
62
+ 4 20 2 0
63
+ 5 10 1 0
64
+ 5 11 1 0
65
+ 5 12 1 0
66
+ 6 17 2 0
67
+ 6 26 1 0
68
+ 7 8 1 0
69
+ 7 9 1 0
70
+ 7 28 1 0
71
+ 8 10 1 0
72
+ 8 29 1 0
73
+ 8 30 1 0
74
+ 9 11 1 0
75
+ 9 31 1 0
76
+ 9 32 1 0
77
+ 10 33 1 0
78
+ 10 34 1 0
79
+ 11 35 1 0
80
+ 11 36 1 0
81
+ 12 13 1 0
82
+ 12 37 1 0
83
+ 12 38 1 0
84
+ 13 15 1 0
85
+ 13 39 1 0
86
+ 13 40 1 0
87
+ 14 16 1 0
88
+ 14 17 1 0
89
+ 14 41 1 1
90
+ 15 20 1 0
91
+ 15 42 1 0
92
+ 15 43 1 0
93
+ 16 18 2 0
94
+ 16 19 1 0
95
+ 17 21 1 0
96
+ 18 22 1 0
97
+ 18 44 1 0
98
+ 19 23 2 0
99
+ 19 45 1 0
100
+ 21 24 2 0
101
+ 21 46 1 0
102
+ 22 25 2 0
103
+ 22 47 1 0
104
+ 23 25 1 0
105
+ 23 48 1 0
106
+ 24 27 1 0
107
+ 24 49 1 0
108
+ 26 27 2 0
109
+ 26 50 1 0
110
+ 27 51 1 0
111
+ M END
112
+ > <compoud_name> (1)
113
+ H1_Bepotastine
114
+
115
+ > <SMILES> (1)
116
+ [H]OC(=O)C([H])([H])C([H])([H])C([H])([H])N1C([H])([H])C([H])([H])C([H])(OC([H])(c2nc([H])c([H])c([H])c2[H])c2c([H])c([H])c(Cl)c([H])c2[H])C([H])([H])C1([H])[H]
117
+
118
+ > <cid> (1)
119
+ 2350
120
+
121
+ > <category> (1)
122
+ N
123
+
124
+ > <inchi> (1)
125
+ InChI=1S/C21H25ClN2O3/c22-17-8-6-16(7-9-17)21(19-4-1-2-12-23-19)27-18-10-14-24(15-11-18)13-3-5-20(25)26/h1-2,4,6-9,12,18,21H,3,5,10-11,13-15H2,(H,25,26)/t21-/m1/s1
126
+
127
+ > <Energy> (1)
128
+ 49.1758
129
+
130
+ $$$$
131
+ H1_Quifenadine
132
+ RDKit 3D
133
+
134
+ 45 48 0 0 1 0 0 0 0 0999 V2000
135
+ 0.1106 0.2102 -1.7897 O 0 0 0 0 0 0 0 0 0 0 0 0
136
+ 3.4646 1.0770 -0.0854 N 0 0 0 0 0 0 0 0 0 0 0 0
137
+ 2.0931 -1.1209 0.1252 C 0 0 0 0 0 0 0 0 0 0 0 0
138
+ 1.1729 0.1166 0.3820 C 0 0 1 0 0 0 0 0 0 0 0 0
139
+ 2.0299 1.3864 0.1159 C 0 0 0 0 0 0 0 0 0 0 0 0
140
+ 2.7971 -1.0339 -1.2379 C 0 0 0 0 0 0 0 0 0 0 0 0
141
+ 3.2148 -1.0584 1.1848 C 0 0 0 0 0 0 0 0 0 0 0 0
142
+ 3.5902 0.2772 -1.3240 C 0 0 0 0 0 0 0 0 0 0 0 0
143
+ 3.9592 0.2796 1.0561 C 0 0 0 0 0 0 0 0 0 0 0 0
144
+ -0.2029 0.1255 -0.3860 C 0 0 0 0 0 0 0 0 0 0 0 0
145
+ -1.1272 1.3230 -0.0602 C 0 0 0 0 0 0 0 0 0 0 0 0
146
+ -0.9736 -1.1857 -0.1269 C 0 0 0 0 0 0 0 0 0 0 0 0
147
+ -1.0387 2.0636 1.1310 C 0 0 0 0 0 0 0 0 0 0 0 0
148
+ -1.3454 -2.0428 -1.1782 C 0 0 0 0 0 0 0 0 0 0 0 0
149
+ -2.1533 1.6708 -0.9653 C 0 0 0 0 0 0 0 0 0 0 0 0
150
+ -1.3459 -1.5543 1.1811 C 0 0 0 0 0 0 0 0 0 0 0 0
151
+ -1.9065 3.1310 1.3840 C 0 0 0 0 0 0 0 0 0 0 0 0
152
+ -2.0526 -3.2227 -0.9327 C 0 0 0 0 0 0 0 0 0 0 0 0
153
+ -3.0179 2.7377 -0.7134 C 0 0 0 0 0 0 0 0 0 0 0 0
154
+ -2.0493 -2.7364 1.4259 C 0 0 0 0 0 0 0 0 0 0 0 0
155
+ -2.8897 3.4721 0.4604 C 0 0 0 0 0 0 0 0 0 0 0 0
156
+ -2.4022 -3.5700 0.3691 C 0 0 0 0 0 0 0 0 0 0 0 0
157
+ 1.5541 -2.0675 0.2237 H 0 0 0 0 0 0 0 0 0 0 0 0
158
+ 0.9532 0.0967 1.4588 H 0 0 0 0 0 0 0 0 0 0 0 0
159
+ 1.6691 1.9630 -0.7430 H 0 0 0 0 0 0 0 0 0 0 0 0
160
+ 1.9423 2.0685 0.9712 H 0 0 0 0 0 0 0 0 0 0 0 0
161
+ 2.0851 -1.1104 -2.0638 H 0 0 0 0 0 0 0 0 0 0 0 0
162
+ 3.4846 -1.8820 -1.3506 H 0 0 0 0 0 0 0 0 0 0 0 0
163
+ 3.9137 -1.8918 1.0436 H 0 0 0 0 0 0 0 0 0 0 0 0
164
+ 2.7942 -1.1596 2.1923 H 0 0 0 0 0 0 0 0 0 0 0 0
165
+ 4.6485 0.0638 -1.5199 H 0 0 0 0 0 0 0 0 0 0 0 0
166
+ 3.2467 0.8670 -2.1831 H 0 0 0 0 0 0 0 0 0 0 0 0
167
+ 3.8541 0.8576 1.9828 H 0 0 0 0 0 0 0 0 0 0 0 0
168
+ 5.0353 0.0986 0.9430 H 0 0 0 0 0 0 0 0 0 0 0 0
169
+ 0.1304 1.1516 -2.0295 H 0 0 0 0 0 0 0 0 0 0 0 0
170
+ -0.3059 1.8245 1.8958 H 0 0 0 0 0 0 0 0 0 0 0 0
171
+ -1.0856 -1.7976 -2.2061 H 0 0 0 0 0 0 0 0 0 0 0 0
172
+ -2.2926 1.0941 -1.8795 H 0 0 0 0 0 0 0 0 0 0 0 0
173
+ -1.0974 -0.9178 2.0267 H 0 0 0 0 0 0 0 0 0 0 0 0
174
+ -1.8179 3.6927 2.3110 H 0 0 0 0 0 0 0 0 0 0 0 0
175
+ -2.3308 -3.8683 -1.7614 H 0 0 0 0 0 0 0 0 0 0 0 0
176
+ -3.7962 2.9864 -1.4300 H 0 0 0 0 0 0 0 0 0 0 0 0
177
+ -2.3260 -3.0022 2.4429 H 0 0 0 0 0 0 0 0 0 0 0 0
178
+ -3.5643 4.2999 0.6616 H 0 0 0 0 0 0 0 0 0 0 0 0
179
+ -2.9530 -4.4872 0.5586 H 0 0 0 0 0 0 0 0 0 0 0 0
180
+ 1 10 1 0
181
+ 1 35 1 0
182
+ 2 5 1 0
183
+ 2 8 1 0
184
+ 2 9 1 0
185
+ 3 4 1 0
186
+ 3 6 1 0
187
+ 3 7 1 0
188
+ 3 23 1 0
189
+ 4 5 1 0
190
+ 4 10 1 0
191
+ 4 24 1 1
192
+ 5 25 1 0
193
+ 5 26 1 0
194
+ 6 8 1 0
195
+ 6 27 1 0
196
+ 6 28 1 0
197
+ 7 9 1 0
198
+ 7 29 1 0
199
+ 7 30 1 0
200
+ 8 31 1 0
201
+ 8 32 1 0
202
+ 9 33 1 0
203
+ 9 34 1 0
204
+ 10 11 1 0
205
+ 10 12 1 0
206
+ 11 13 2 0
207
+ 11 15 1 0
208
+ 12 14 2 0
209
+ 12 16 1 0
210
+ 13 17 1 0
211
+ 13 36 1 0
212
+ 14 18 1 0
213
+ 14 37 1 0
214
+ 15 19 2 0
215
+ 15 38 1 0
216
+ 16 20 2 0
217
+ 16 39 1 0
218
+ 17 21 2 0
219
+ 17 40 1 0
220
+ 18 22 2 0
221
+ 18 41 1 0
222
+ 19 21 1 0
223
+ 19 42 1 0
224
+ 20 22 1 0
225
+ 20 43 1 0
226
+ 21 44 1 0
227
+ 22 45 1 0
228
+ M END
229
+ > <compoud_name> (2)
230
+ H1_Quifenadine
231
+
232
+ > <SMILES> (2)
233
+ [H]OC(c1c([H])c([H])c([H])c([H])c1[H])(c1c([H])c([H])c([H])c([H])c1[H])C1([H])C([H])([H])N2C([H])([H])C([H])([H])C1([H])C([H])([H])C2([H])[H]
234
+
235
+ > <cid> (2)
236
+ 65600
237
+
238
+ > <category> (2)
239
+ N
240
+
241
+ > <inchi> (2)
242
+ InChI=1S/C20H23NO/c22-20(17-7-3-1-4-8-17,18-9-5-2-6-10-18)19-15-21-13-11-16(19)12-14-21/h1-10,16,19,22H,11-15H2/t19-/m1/s1
243
+
244
+ > <Energy> (2)
245
+ 84.891
246
+
247
+ $$$$
248
+ H1_Rupatadine
249
+ RDKit 3D
250
+
251
+ 56 60 0 0 0 0 0 0 0 0999 V2000
252
+ 6.5298 3.3080 0.0562 Cl 0 0 0 0 0 0 0 0 0 0 0 0
253
+ -2.1780 1.1440 -0.1081 N 0 0 0 0 0 0 0 0 0 0 0 0
254
+ 1.8055 -2.5028 1.6263 N 0 0 0 0 0 0 0 0 0 0 0 0
255
+ -6.5347 -0.2932 -1.5666 N 0 0 0 0 0 0 0 0 0 0 0 0
256
+ 0.4984 0.2017 0.7391 C 0 0 0 0 0 0 0 0 0 0 0 0
257
+ -0.7596 -0.6401 0.9176 C 0 0 0 0 0 0 0 0 0 0 0 0
258
+ 0.1325 1.6779 0.6992 C 0 0 0 0 0 0 0 0 0 0 0 0
259
+ -1.8276 -0.2907 -0.1321 C 0 0 0 0 0 0 0 0 0 0 0 0
260
+ -0.9697 1.9571 -0.3378 C 0 0 0 0 0 0 0 0 0 0 0 0
261
+ 1.7535 -0.3064 0.5966 C 0 0 0 0 0 0 0 0 0 0 0 0
262
+ -3.2065 1.4670 -1.1132 C 0 0 0 0 0 0 0 0 0 0 0 0
263
+ 2.9347 0.5760 0.4016 C 0 0 0 0 0 0 0 0 0 0 0 0
264
+ 1.9383 -1.7730 0.4937 C 0 0 0 0 0 0 0 0 0 0 0 0
265
+ 3.7669 0.4917 -0.7359 C 0 0 0 0 0 0 0 0 0 0 0 0
266
+ 3.6248 -0.5108 -1.8705 C 0 0 0 0 0 0 0 0 0 0 0 0
267
+ 2.3939 -1.4219 -1.9523 C 0 0 0 0 0 0 0 0 0 0 0 0
268
+ 2.2514 -2.3194 -0.7533 C 0 0 0 0 0 0 0 0 0 0 0 0
269
+ -4.5656 0.8945 -0.7963 C 0 0 0 0 0 0 0 0 0 0 0 0
270
+ 3.2715 1.4705 1.4385 C 0 0 0 0 0 0 0 0 0 0 0 0
271
+ 4.8769 1.3617 -0.8210 C 0 0 0 0 0 0 0 0 0 0 0 0
272
+ 2.4290 -3.7014 -0.8308 C 0 0 0 0 0 0 0 0 0 0 0 0
273
+ 4.3729 2.3200 1.3344 C 0 0 0 0 0 0 0 0 0 0 0 0
274
+ 5.1670 2.2679 0.1982 C 0 0 0 0 0 0 0 0 0 0 0 0
275
+ -5.1566 1.0467 0.4633 C 0 0 0 0 0 0 0 0 0 0 0 0
276
+ -5.3042 0.2290 -1.7686 C 0 0 0 0 0 0 0 0 0 0 0 0
277
+ 2.2947 -4.4730 0.3198 C 0 0 0 0 0 0 0 0 0 0 0 0
278
+ 1.9875 -3.8347 1.5112 C 0 0 0 0 0 0 0 0 0 0 0 0
279
+ -6.4311 0.5316 0.7094 C 0 0 0 0 0 0 0 0 0 0 0 0
280
+ -7.0633 -0.1364 -0.3325 C 0 0 0 0 0 0 0 0 0 0 0 0
281
+ -7.0626 0.6338 2.0605 C 0 0 0 0 0 0 0 0 0 0 0 0
282
+ -0.5731 -1.7154 0.8560 H 0 0 0 0 0 0 0 0 0 0 0 0
283
+ -1.1596 -0.4557 1.9235 H 0 0 0 0 0 0 0 0 0 0 0 0
284
+ -0.2119 1.9818 1.6961 H 0 0 0 0 0 0 0 0 0 0 0 0
285
+ 0.9793 2.3217 0.4489 H 0 0 0 0 0 0 0 0 0 0 0 0
286
+ -1.4699 -0.5848 -1.1284 H 0 0 0 0 0 0 0 0 0 0 0 0
287
+ -2.7127 -0.8992 0.0866 H 0 0 0 0 0 0 0 0 0 0 0 0
288
+ -1.2287 3.0211 -0.2712 H 0 0 0 0 0 0 0 0 0 0 0 0
289
+ -0.5727 1.7824 -1.3473 H 0 0 0 0 0 0 0 0 0 0 0 0
290
+ -2.8776 1.1445 -2.1102 H 0 0 0 0 0 0 0 0 0 0 0 0
291
+ -3.3405 2.5558 -1.1674 H 0 0 0 0 0 0 0 0 0 0 0 0
292
+ 3.6660 0.0536 -2.8120 H 0 0 0 0 0 0 0 0 0 0 0 0
293
+ 4.5182 -1.1506 -1.8447 H 0 0 0 0 0 0 0 0 0 0 0 0
294
+ 2.4771 -2.0361 -2.8582 H 0 0 0 0 0 0 0 0 0 0 0 0
295
+ 1.4795 -0.8292 -2.0837 H 0 0 0 0 0 0 0 0 0 0 0 0
296
+ 2.6674 1.5029 2.3444 H 0 0 0 0 0 0 0 0 0 0 0 0
297
+ 5.5326 1.3154 -1.6888 H 0 0 0 0 0 0 0 0 0 0 0 0
298
+ 2.6741 -4.1805 -1.7747 H 0 0 0 0 0 0 0 0 0 0 0 0
299
+ 4.6043 3.0064 2.1437 H 0 0 0 0 0 0 0 0 0 0 0 0
300
+ -4.6110 1.5606 1.2526 H 0 0 0 0 0 0 0 0 0 0 0 0
301
+ -4.9162 0.0859 -2.7735 H 0 0 0 0 0 0 0 0 0 0 0 0
302
+ 2.4295 -5.5486 0.2902 H 0 0 0 0 0 0 0 0 0 0 0 0
303
+ 1.8762 -4.3969 2.4339 H 0 0 0 0 0 0 0 0 0 0 0 0
304
+ -8.0471 -0.5796 -0.2022 H 0 0 0 0 0 0 0 0 0 0 0 0
305
+ -8.1536 0.6818 1.9793 H 0 0 0 0 0 0 0 0 0 0 0 0
306
+ -6.7913 -0.2348 2.6683 H 0 0 0 0 0 0 0 0 0 0 0 0
307
+ -6.7355 1.5422 2.5773 H 0 0 0 0 0 0 0 0 0 0 0 0
308
+ 1 23 1 0
309
+ 2 8 1 0
310
+ 2 9 1 0
311
+ 2 11 1 0
312
+ 3 13 2 0
313
+ 3 27 1 0
314
+ 4 25 2 0
315
+ 4 29 1 0
316
+ 5 6 1 0
317
+ 5 7 1 0
318
+ 5 10 2 3
319
+ 6 8 1 0
320
+ 6 31 1 0
321
+ 6 32 1 0
322
+ 7 9 1 0
323
+ 7 33 1 0
324
+ 7 34 1 0
325
+ 8 35 1 0
326
+ 8 36 1 0
327
+ 9 37 1 0
328
+ 9 38 1 0
329
+ 10 12 1 0
330
+ 10 13 1 0
331
+ 11 18 1 0
332
+ 11 39 1 0
333
+ 11 40 1 0
334
+ 12 14 2 0
335
+ 12 19 1 0
336
+ 13 17 1 0
337
+ 14 15 1 0
338
+ 14 20 1 0
339
+ 15 16 1 0
340
+ 15 41 1 0
341
+ 15 42 1 0
342
+ 16 17 1 0
343
+ 16 43 1 0
344
+ 16 44 1 0
345
+ 17 21 2 0
346
+ 18 24 2 0
347
+ 18 25 1 0
348
+ 19 22 2 0
349
+ 19 45 1 0
350
+ 20 23 2 0
351
+ 20 46 1 0
352
+ 21 26 1 0
353
+ 21 47 1 0
354
+ 22 23 1 0
355
+ 22 48 1 0
356
+ 24 28 1 0
357
+ 24 49 1 0
358
+ 25 50 1 0
359
+ 26 27 2 0
360
+ 26 51 1 0
361
+ 27 52 1 0
362
+ 28 29 2 0
363
+ 28 30 1 0
364
+ 29 53 1 0
365
+ 30 54 1 0
366
+ 30 55 1 0
367
+ 30 56 1 0
368
+ M END
369
+ > <compoud_name> (3)
370
+ H1_Rupatadine
371
+
372
+ > <SMILES> (3)
373
+ [H]c1nc2c(c([H])c1[H])C([H])([H])C([H])([H])c1c([H])c(Cl)c([H])c([H])c1C2=C1C([H])([H])C([H])([H])N(C([H])([H])c2c([H])nc([H])c(C([H])([H])[H])c2[H])C([H])([H])C1([H])[H]
374
+
375
+ > <cid> (3)
376
+ 133017
377
+
378
+ > <category> (3)
379
+ N
380
+
381
+ > <inchi> (3)
382
+ InChI=1S/C26H26ClN3/c1-18-13-19(16-28-15-18)17-30-11-8-20(9-12-30)25-24-7-6-23(27)14-22(24)5-4-21-3-2-10-29-26(21)25/h2-3,6-7,10,13-16H,4-5,8-9,11-12,17H2,1H3
383
+
384
+ > <Energy> (3)
385
+ 119.976
386
+
387
+ $$$$