Skip to main content

Chemicals as colored graphs

The interface between maths and chemistry can be tricky when it comes to terminology - sets (maths) have elements, chemistry has a different kind of element; graphs have colors which are usually just numbers, diagrams of chemicals have colors which usually relate to the element type of the atom, and so on.

So, for maximum confusion, here are two pictures of graphs (that could represent chemical connectivity) colored by equivalence class (determined by signature). The signature trees are also drawn with graphical colors, but these represent the integer colors in the signature, which are not the same as the colors used to indicate equivalence class. Firstly, a structure that the smiles algorithm is meant to have trouble with (but may not exist):


It looks quite strained, so I expect that it may not be possible to synthesise. Another multi-ring system is this one:



I don't even know what this one would be called, even if it did exist. Annoyingly, this structure triggers a bug if the two dark blue atoms are connected. This makes the graph 3-regular, but the yellow equivalence class is split, which shouldn't happen.

Comments

This comment has been removed by the author.
Gilleain, in the first graph, I do not see the equivalence of all four cyan nodes... the top two are not really equivalent to the bottom two, or are they? If so, why? To me, they seem to have different environments...
gilleain said…
Ah top marks for spatial awareness, but only half for colour comparison :)

The upper two are what Rasmol used to call "Sea green", while the lower two are cyan. The trees on the right (which are the signatures) are arranged in the same layer order as the graph.
Oh, wow... those are two different colors! Hahaha... :)

R has nice methods to create a list of colors where you pick the number of colors and it optimizes for contrast :)

Popular posts from this blog

chalky

I wanted to show something that hints at the things that the new architecture can afford us: This is using a Java2D graphics Paint object to make it look like chalk...kindof. It's a very simplistic way of doing it by making a small image with a random number of white, gray, lightgray, and black pixels. edit: it doesn't look so good at small scales some tweaking of stroke widths and so on is essential.

1,2-dichlorocyclopropane and a spiran

As I am reading a book called "Symmetry in Chemistry" (H. H. Jaffé and M. Orchin) I thought I would try out a couple of examples that they use. One is 1,2-dichlorocylopropane : which is, apparently, dissymmetric because it has a symmetry element (a C2 axis) but is optically active. Incidentally, wedges can look horrible in small structures - this is why: The box around the hydrogen is shaded in grey, to show the effect of overlap. A possible fix might be to shorten the wedge, but sadly this would require working out the bounds of the text when calculating the wedge, which has to be done at render time. Oh well. Another interesting example is this 'spiran', which I can't find on ChEBI or ChemSpider: Image again courtesy of JChempaint . I guess the problem marker (the red line) on the N suggests that it is not a real compound? In any case, some simple code to determine potential chiral centres (using signatures) finds 2 in the cyclopropane structure, and 4 in the ...

The Gale-Ryser Theorem

This is a small aside. While reading a paper by Grüner, Laue, and Meringer on generation by homomorphism they mentioned the Gale-Ryser (GR) theorem. As it turns out, this is a nice small theorem closely related to the better known Erdős-Gallai  (EG). So, GR says that given two partitions of an integer ( p and q)  there exists a (0, 1) matrix   A  iff p*   dominates q such that the row sum vector r(A)  = p  and the column sum vector c(A) = q . As with most mathematics, that's quite terse and full of terminology like 'dominates' : but it's relatively simple. Here is an example: The partitions p  and q  are at the top left, they both sum to 10. Next, p is transposed to get p*  = [5, 4, 1] and this is compared to q at the bottom left. Since the sum at each point in the sequence is greater (or equal) for p*  than q , the former dominates. One possible matrix is at the top left with the row sum vector to the right, and th...