|
|
|
|
|
""" |
|
|
Test script for molecular structure image generation. |
|
|
""" |
|
|
|
|
|
from rdkit import Chem |
|
|
from rdkit.Chem import Draw |
|
|
|
|
|
def generate_molecule_image(smiles): |
|
|
"""Generate a molecular structure image from SMILES string.""" |
|
|
mol = Chem.MolFromSmiles(smiles) |
|
|
if not mol: |
|
|
return None |
|
|
|
|
|
|
|
|
img = Draw.MolToImage(mol, size=(300, 300), kekulize=True) |
|
|
return img |
|
|
|
|
|
def test_molecule_images(): |
|
|
"""Test molecular structure generation for various molecules.""" |
|
|
|
|
|
test_molecules = [ |
|
|
("CC", "Ethane"), |
|
|
("C[C@H](N)C(=O)O", "Alanine"), |
|
|
("CC(=O)OC1=CC=CC=C1C(=O)O", "Aspirin"), |
|
|
("CC1=CC=C(C=C1)C(C)NC(=O)C2=CC=C(C=C2)Cl", "Ibuprofen"), |
|
|
("invalid_smiles", "Invalid SMILES") |
|
|
] |
|
|
|
|
|
print("𧬠Testing Molecular Structure Generation") |
|
|
print("=" * 50) |
|
|
|
|
|
for smiles, name in test_molecules: |
|
|
print(f"\nπ Testing: {name}") |
|
|
print(f"SMILES: {smiles}") |
|
|
|
|
|
img = generate_molecule_image(smiles) |
|
|
if img: |
|
|
print(f"β
Successfully generated {img.size[0]}x{img.size[1]} image") |
|
|
|
|
|
img.save(f"test_{name.replace(' ', '_').lower()}.png") |
|
|
print(f"πΎ Saved as test_{name.replace(' ', '_').lower()}.png") |
|
|
else: |
|
|
print("β Failed to generate image") |
|
|
print("-" * 30) |
|
|
|
|
|
if __name__ == "__main__": |
|
|
test_molecule_images() |
|
|
|