Update app.py
Browse files
app.py
CHANGED
@@ -307,18 +307,31 @@ def visualize_molecule_2d_3d(smiles: str, name: str):
|
|
307 |
if not mol: return f"<p>Invalid SMILES for {name}</p>", f"❌ Invalid SMILES for {name}"
|
308 |
|
309 |
drawer = Draw.rdMolDraw2D.MolDraw2DSVG(400, 300)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
310 |
drawer.DrawMolecule(mol)
|
311 |
drawer.FinishDrawing()
|
312 |
svg_2d = drawer.GetDrawingText().replace('svg:', '')
|
313 |
|
|
|
|
|
|
|
314 |
mol_3d = Chem.AddHs(mol)
|
315 |
AllChem.EmbedMolecule(mol_3d, randomSeed=42)
|
316 |
AllChem.MMFFOptimizeMolecule(mol_3d)
|
317 |
sdf_data = Chem.MolToMolBlock(mol_3d)
|
318 |
|
319 |
viewer = py3Dmol.view(width=400, height=300)
|
320 |
-
#
|
321 |
-
viewer.setBackgroundColor('#1C1C1C')
|
322 |
viewer.addModel(sdf_data, "sdf")
|
323 |
viewer.setStyle({'stick': {}, 'sphere': {'scale': 0.25}})
|
324 |
viewer.zoomTo()
|
|
|
307 |
if not mol: return f"<p>Invalid SMILES for {name}</p>", f"❌ Invalid SMILES for {name}"
|
308 |
|
309 |
drawer = Draw.rdMolDraw2D.MolDraw2DSVG(400, 300)
|
310 |
+
# Set dark theme colors for 2D drawing
|
311 |
+
drawer.drawOptions().clearBackground = False # Keep background transparent initially
|
312 |
+
drawer.drawOptions().addStereoAnnotation = True
|
313 |
+
drawer.drawOptions().baseFontSize = 0.8
|
314 |
+
drawer.drawOptions().circleAtoms = False
|
315 |
+
drawer.drawOptions().highlightColour = (1, 0.5, 0) # Orange for highlights
|
316 |
+
drawer.drawOptions().carbonColour = (0.8, 0.8, 0.8) # Light grey for carbons
|
317 |
+
drawer.drawOptions().activeAtomColour = (0.2, 0.6, 1.0) # Blue for active atoms
|
318 |
+
drawer.drawOptions().bondColour = (0.8, 0.8, 0.8) # Light grey for bonds
|
319 |
+
drawer.drawOptions().defaultColour = (0.8, 0.8, 0.8) # Light grey for other atoms
|
320 |
+
|
321 |
drawer.DrawMolecule(mol)
|
322 |
drawer.FinishDrawing()
|
323 |
svg_2d = drawer.GetDrawingText().replace('svg:', '')
|
324 |
|
325 |
+
# Embed the SVG within a div with a dark background for consistency
|
326 |
+
svg_2d = f'<div style="background-color: #1C1C1C; padding: 10px; border-radius: 5px;">{svg_2d}</div>'
|
327 |
+
|
328 |
mol_3d = Chem.AddHs(mol)
|
329 |
AllChem.EmbedMolecule(mol_3d, randomSeed=42)
|
330 |
AllChem.MMFFOptimizeMolecule(mol_3d)
|
331 |
sdf_data = Chem.MolToMolBlock(mol_3d)
|
332 |
|
333 |
viewer = py3Dmol.view(width=400, height=300)
|
334 |
+
viewer.setBackgroundColor('#1C1C1C')
|
|
|
335 |
viewer.addModel(sdf_data, "sdf")
|
336 |
viewer.setStyle({'stick': {}, 'sphere': {'scale': 0.25}})
|
337 |
viewer.zoomTo()
|