Chemical Forums

Chemistry Forums for Students => Organic Chemistry Forum => Topic started by: arvind1990 on May 26, 2006, 10:44:27 PM

Title: Is there any specific formula to calculate the number of isomers of a compound.
Post by: arvind1990 on May 26, 2006, 10:44:27 PM
   
               Is there any specific formula to calculate the number  of isomers of a compound.
For eg,how many isomers are possible for heptane(excluding optical isomers)
Title: Re: isomers
Post by: Donaldson Tan on May 26, 2006, 10:55:30 PM
I don't think so. However, you can always draw the various structures.
Title: Re: isomers
Post by: Albert on May 27, 2006, 06:29:54 AM
I agree with geodome. I firmly believe the only way to find out all the possible isomers, given the name of a compound, is drawing them.

It's a time-consuming procedure but, listening to music, you may even enjoy it (I did).
Title: Re: isomers
Post by: FeLiXe on May 27, 2006, 02:58:27 PM
if you are just substituting atoms Burnside's Lemma works

for example you can get all the dibromopentanes that way, including optical entantiomers

but Burnside's Lemma doesn't work anymore when you are varying the carbon chain. at least I don't know how it would.
Title: Re: isomers
Post by: mir on May 28, 2006, 09:53:53 AM
   
               Is there any specific formula to calculate the number  of isomers of a compound.
For eg,how many isomers are possible for heptane(excluding optical isomers)

I have made a program that created all the isomers to any substituted benzene  :)
I guess this problem you present is possible to solve. The trick is to translate the structure into number code.
And than to find an algorithm that treats the numbers correctly.
Title: Re: isomers
Post by: arvind1990 on May 28, 2006, 10:02:12 AM
What is the program.Is it in C++.I didn't get you.How does it work.
Title: Re: isomers
Post by: mir on May 28, 2006, 10:13:02 AM
What is the program.Is it in C++.I didn't get you.How does it work.


Not C++, I made it on a TI-83 calculator. I will translate it into matlab-code soon.
But it only works with benzenes.
It treats the benzene ring as a linear numbercode.
The algorithm can eliminate the stereoisomers by rotating and make the mirrorimage of the code.
But it never change the order of the substituents, and thereby preserve the chemistry.

You might make a program that randomize many molecules. Run it for a while (one hour or so) to get some million molecules. Then you run a routine that eliminates the molecules that are the same.
What you ahve in the end is your final isomers. It is statistical impossible to miss any isomers, and with todays hardware, the only timeconsuming step is to make the program.
Title: Re: isomers
Post by: arvind1990 on May 28, 2006, 10:16:28 AM
No, Ididn't get you. What is your idea about making a program that calculates the number of isomers(including positional isomers).If you give me an idea, I think we can make a program.
Title: Re: isomers
Post by: Borek on May 28, 2006, 10:31:12 AM
You might make a program that randomize many molecules. Run it for a while (one hour or so) to get some million molecules. Then you run a routine that eliminates the molecules that are the same.
What you ahve in the end is your final isomers. It is statistical impossible to miss any isomers, and with todays hardware, the only timeconsuming step is to make the program.

I wonder if you have to use random approach. I suppose you can find a systematic way of generating all possible molecules for a given formula, just like you can generate all possible permutations. I think I have an idea about how to do it for molecule without cycles, adding cycles shouldn't be that hard.
Title: Re: isomers
Post by: mir on May 28, 2006, 10:37:47 AM
No, Ididn't get you. What is your idea about making a program that calculates the number of isomers(including positional isomers).If you give me an idea, I think we can make a program.

This is only a suggestion for you to solve your problem. It works well with benzenes.
Attached you see a flowchart of my program.

First, you have to translate the structure into a linear code. This is important, because computers only works linearly in one dimension.

An example of a code: 310203, which is 2,4,4-trimethyl-hexane
Where the 0's is a methylene unit CH2. The 1's is a the CH(CH3) unit, the 2's is a C(CH3)2 unit. 3's are methyl.

In this algorithm there is many ways of interpreting a formula, perhaps thousands of ways. The program might start from any carbon, and translate 2,4,4-trimethyl hexane as 0107 for example, where 7 is C(CH3)2CH2CH3.

There is no doubt that this will be a challenge.

Attached you see a flowchart of my program.