Open Source Molecular Symmetry Perception Tools
3
6
Entering edit mode
13.0 years ago

Hi,

I am looking for a tool that can perceive the molecular symmetry of a given structure without having to specify/generate the 3D coordinates. With molecular symmetry i mean the external symmetry number of chemical species.

Do you know a tool that does this?

regards,

Nick

molecular structure • 5.3k views
ADD COMMENT
0
Entering edit mode

I'm not sure what you mean by "external symmetry number" - could you give a short example?

ADD REPLY
0
Entering edit mode

Do you mean graph (aka topological) symmetry? The term molecular symmetry usually refers to the arrangement of the 3D atoms in space.

ADD REPLY
0
Entering edit mode

Ah. After some googling, it appears to be something like the order (size) of the subgroup of rigid (automorphic?) permutations of the atoms. The only paper I can find is this : linkinghub.elsevier.com/retrieve/pii/009784859180020M

ADD REPLY
0
Entering edit mode

i mean topological symmetry. E.g. benzene has symmetry number 12. Gilleain's description is kinda spot on. It is a contribution in the entropy of a molecular species. There are indeed not a lot of papers about it...

ADD REPLY
2
Entering edit mode
13.0 years ago

The Chemistry Development Kit has algorithm implementations to do this. I am no expert on this, but symmetry detection is an old but still hot topic and I recommend browsing Gilleain's blog on involved matters (search for SMSD and signatures). Developers of OpenBabel are also looking into relevant algorithms, and Tim's blog contains a few interesting posts.

ADD COMMENT
2
Entering edit mode
13.0 years ago
Noel O'Boyle ▴ 40

You can find the number of automorphic permutations using the Open Babel library. See FindAutomorphisms in the Open Babel API. You'll have to write a small C++ program or else you can access it from Python: [?][?]import pybel mol = pybel.readstring("smi", "c1ccccc1Br") mappings = pybel.ob.vvpairUIntUInt() success = pybel.ob.FindAutomorphisms(mol.OBMol, mappings) print "Number of mappings is %d" % len(mappings) for mapping in mappings: print mapping [?][?] Output is: [?][?]Number of mappings is 2 ((0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)) ((0, 4), (1, 3), (2, 2), (3, 1), (4, 0), (5, 5), (6, 6))[?][?]

ADD COMMENT
0
Entering edit mode

Noel,

thanks for the tip. the automorphism group of a graph is the concept that I was looking for, I think.

ADD REPLY
1
Entering edit mode
13.0 years ago

I found Gilleain's document on Graphs, Groups, Symmetry in CDK, which explains a lot of the things I am looking for.

So, I know that CDK is able to generate symmetry classes for atoms in a molecule (using the MoleculeSignature.calculateOrbits() method). So, this gives me the partitioned sets of atoms that are topologically equivalent.

However, this is not the automorphism group of the molecule, which I am looking for. From Gilleain's document, automorphism group generation is already done through the InChI-c library but not available in CDK as a method as such.

Am I right in saying that CDK currently does not have an automorphism discovery algorithm (e.g. ported from nauty) implemented as such?

btw: maybe this question ought to be posted in cdk-user mailing list or so...

ADD COMMENT
0
Entering edit mode

I'm a little embarrassed about the unfinished nature of that document, but I hope it's useful :)

So, no there is not a way that I know of to get the automorphism group from the inchi. It can give you the canonical labelling (from the AuxInfo) but that's not what's required here.

There is code here : https://github.com/gilleain/cdk_signature/tree/master/src/org/openscience/cdk/group that is a not-yet integrated cdk module. It has an SSPermutationGroup class and a DiscretePartitionRefiner. If the refiner is given an initial partition based on signatures, it should give the correct aut group.

ADD REPLY

Login before adding your answer.

Traffic: 1507 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6