The Miller-Urey experiment is a famous experiment that was conducted in 1953 by Stanley Miller and Harold Urey at the University of Chicago (now the University of California), San Diego and published the following year. The experiment used water, methane, ammonia and hydrogen. The chemicals were sealed inside a sterile array of glass flasks connected in a loop, with one flask half-full of liquid water and another flask containing a pair of electrodes. The liquid water was heated to induce evaporation, sparks were fired between the electrodes to simulate lightning through the atmosphere and water vapor, and then the atmosphere was cooled again so that the water could condense and trickle back into the first flask in a continuous cycle.

Within a day, the mixture has turned pink in color, and at the end of two weeks of continuous operation, Miller and Urey observed that as much as 10–15% of the carbon within the system was now in the form of organic compounds. Two percent of the carbon had formed amino acids that are used to make proteins in living cells, with glycine as the most abundant. Sugars were also formed. Nucleic acids were not formed within the reaction. 18% of the methane-molecules became bio-molecules. The rest turned into hydrocarbons like bitumen. The experiment was seen by some as a proof of how life on Earth was synthesized from inorganic compounds — the so-called primordial soup. A process called abiogenesis.

Miller Urey experiment
Schematic setup of the Miller-Urey experiment.

Assignment

In this exercise, both molecules and mixtures are represented as dictionaries whose keys are formed by the symbolic names of the atoms that occur in it and the corresponding values indicate the number of contained atoms. You are asked to:

Example

In the following interactive session we assume that the text file molecules.txt1 is located in the current directory.

>>> soup = {'N':2, 'Na':2, 'O':5, 'H':3}
>>> abiogenesis({'Si': 1, 'O': 2}, soup)
False
>>> abiogenesis({'H': 3, 'N': 1}, soup)
True

>>> molecules = readMolecules('molecules.txt')
>>> molecules['sand']
{'Si': 1, 'O': 2}
>>> molecules['ammonia']
{'H': 3, 'N': 1}

>>> experiment1(molecules, soup)
['ammonia', 'lye']

>>> molecules1 = {'ammonia': {'H': 3, 'N': 1}, 'lye': {'Na': 1, 'O': 1, 'H': 1}}
>>> experiment2(molecules1, soup)
True
>>> molecules = {'sand': {'Si': 1, 'O': 2}, 'ammonia': {'H': 3, 'N': 1}}
>>> experiment2(molecules, soup)
False

Resources