jibsn commited on
Commit
9ef87fa
·
verified ·
1 Parent(s): 4cbc041

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -4
app.py CHANGED
@@ -5,10 +5,19 @@ from ONNX0630 import main as predict_smiles
5
  import tempfile
6
  import logging
7
 
8
- # 设置日志
9
  logging.basicConfig(level=logging.INFO)
10
  logger = logging.getLogger(__name__)
11
 
 
 
 
 
 
 
 
 
 
 
12
 
13
  def gradio_predict(image):
14
  try:
@@ -37,7 +46,7 @@ def gradio_predict(image):
37
  # 调用模型的 main 函数
38
  logger.info(f"传递给 main 的路径: {temp_path}")
39
  smiles = predict_smiles([temp_path])
40
-
41
  # 清理临时文件
42
  try:
43
  os.remove(temp_path)
@@ -45,7 +54,11 @@ def gradio_predict(image):
45
  except Exception as e:
46
  logger.warning(f"删除临时文件失败: {e}")
47
 
48
- return smiles
 
 
 
 
49
  except FileNotFoundError as e:
50
  logger.error(f"文件路径错误: {e}")
51
  return f"错误: 文件路径问题 - {str(e)}"
@@ -63,7 +76,11 @@ def gradio_predict(image):
63
  iface = gr.Interface(
64
  fn=gradio_predict,
65
  inputs=gr.Image(type="pil"),
66
- outputs=gr.Textbox(),
 
 
 
 
67
  title="化学结构转 SMILES",
68
  description="上传化学结构图片以获取其 SMILES 字符串"
69
  )
 
5
  import tempfile
6
  import logging
7
 
 
8
  logging.basicConfig(level=logging.INFO)
9
  logger = logging.getLogger(__name__)
10
 
11
+ def visualize_molecule(smiles):
12
+
13
+ try:
14
+ mol = Chem.MolFromSmiles(smiles)
15
+ if mol is None:
16
+ return None
17
+ img = Draw.MolToImage(mol)
18
+ return img
19
+ except:
20
+ return None
21
 
22
  def gradio_predict(image):
23
  try:
 
46
  # 调用模型的 main 函数
47
  logger.info(f"传递给 main 的路径: {temp_path}")
48
  smiles = predict_smiles([temp_path])
49
+ mol_image = visualize_molecule(smiles)
50
  # 清理临时文件
51
  try:
52
  os.remove(temp_path)
 
54
  except Exception as e:
55
  logger.warning(f"删除临时文件失败: {e}")
56
 
57
+ if mol_image is None:
58
+ return None, smiles
59
+
60
+ return mol_image, smiles
61
+
62
  except FileNotFoundError as e:
63
  logger.error(f"文件路径错误: {e}")
64
  return f"错误: 文件路径问题 - {str(e)}"
 
76
  iface = gr.Interface(
77
  fn=gradio_predict,
78
  inputs=gr.Image(type="pil"),
79
+ # outputs=gr.Textbox(),
80
+ outputs=[
81
+ gr.Image(label="Prediction"),
82
+ gr.Text(label="SMILES"),
83
+ ],
84
  title="化学结构转 SMILES",
85
  description="上传化学结构图片以获取其 SMILES 字符串"
86
  )