Request for code for SMILES string operators

Does anyone have any code, pseudocode, or Pipeline Pilot components (or literature references) that can perform GA-type operations on SMILES strings i.e., mutations, crossovers (can be the same string), replications, deletions, insertions, etc.

If code exists, I am hoping that the code will preserve and not break apart existing ring structures e.g., benzene.

Thank you.

Regards,
Jim Metz

Abbott Laboratories