mirror of
https://github.com/rdkit/rdkit.git
synced 2026-06-03 21:44:30 +08:00
Contributions from Markus Kossner Descriptions: #------------------------------- Frames.py: Basically what the code does is a walk from every Atom that is the neighbor of a ring away from that ring. If we can not reach another ring on the way, the atom chain will be deleted. However, as soon as we reach another ring, the chain will become a connecting chain in the scaffold. Ring Atoms [found by GetRingInfo()] as well as connecting non-ring chains are stored in a Chem.EditableMol-Object representing the Scaffold of the molecule. There is a function, that can return this scaffold in two forms that differ in the interpretation of what a 'Scaffold' is: - with mode='RedScaff' a Scaffold will be the pure molecular core ignoring bond or atom types! this is done by running over the Scaffold (...the editable mol from above) and changing any atom to carbon and any bond to a single bond - with mode='Scaff' a Scaffold will be sensitive of element and bond type. With mode='Scaff' Cyclohexyl-, phenyl or pyridyl- mojeties will be different ring species. mode='RedScaff' will interpret them as six-membered rings and make all of them become a cyclohexane in the scaffold representation. Usage of the script: - simply supply a .sdf file after the script name. - The program will generate a .sdf file called frames.sdf containing the cluster ID of the frame it belongs to as a property tag. - Additionally the raw frames are output to 'frames.smi'. This is a simple enumeration of the frames detected. Please note, that the data is preliminary stored in memory. This means, that very large input files may cause the consumption of large amounts of memory at runtime! #------------------------------- BaseFeatures_DIP2_NoMicrospecies.fdef After I talked to Nik at the Sheffield Conference about the difficulty of defining Positive/Negative ionizable features by SMARTS he asked me to to send my approach towards the problem. Attached you will find the .fdef file I use. Hopefully there is something in there that might help in setting up robust feature definitions.