Spaces:
Sleeping
Sleeping
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()
|