Looking at the Chemicals Inside Sephora Makeup Foundations For Any Toxic Alerts

Sulstice
4 min readApr 5, 2024

--

My lawyer was telling me about the sephora makeup brands and how their website lists all the ingredients as you scroll through. I had a look at the Luminous Silk Perfect Glow, Flawless Oil-Free Foundation.

As you scroll to the bottom, you’ll see the an ingredient list:

Looking at the ingredients you can see things like Hexyl Cinnamal which comes from the oils of chamomile.

Which looks like this.

A common question is whether this ingredient is Toxic. Even if it comes from a flower. Well as it so turns out, some people have sensitive reactions to this common fragrance used in perfumes or makeup. It wouldn’t be toxic however it can damage some sensitive skin.

The question that gets asked is how do I know if it works for me? Do I have to test the product first and see how my body reacts or can I do it an automated fashion.

Dimethicone is a common one you will see on a lot of cosmetic ingredients because it is an industrial lubricant used in condoms, silly putty clay, and on your face.

Let’s see if we can do a toxicity search on the cosmetic ingredients.

Code Tutorial

This is pretty interesting ingredients and I’ve seen some of these before. I wonder how many are “toxic”. Let’s convert to a list of SMILES.

First install our software package:

pip install cirpy

Then let’s write the python code:

import cirpy 

sephora_foundation_chemicals = [
'Cyclopentasiloxane',
'Glycerin',
'Isododecane',
'Polyglyceryl-4 Isostearate',
'Cetyl Peg/Ppg-10/1 Dimethicone',
'Hexyl Laurate',
'Aluminum Starch Octenylsuccinate',
'Disteardimonium Hectorite',
'Phenoxyethanol',
'Acetylated Glycol Stearate',
'Magnesium Sulfate',
'Peg-10 Dimethicone',
'Trihydroxystearin',
'Cellulose Gum',
'Nylon-12',
'Limonene',
'Benzyl Salicylate',
'Benzyl Alcohol',
'Linalool',
'Pentaerythrityl Tetra-Di-T-Butyl Hydroxyhydrocinnamate',
'Isobutane',
'Diphenyl Dimethicone',
'Acrylonitrile',
'Fragrance',
'Disodium Stearoyl Glutamate',
'Methylparaben',
'Butylphenyl Methylpropional',
'Aluminum Hydroxide',
'Hexyl Cinnamal'
]

chemical_list = {}

for name in sephora_foundation_chemicals:
smiles = cirpy.resolve(name, 'smiles')
chemical_list[name] = smiles

print (chemical_list)

As we go through the chemical data you can see names like “Parfum” which is a standard but not an actual ingredient so it’s chemical structure is unknown to me. It could be anything. It’s hard to depict what the SMILES for that exactly. I have tried.

{
'Cyclopentasiloxane': 'O1[SiH2]O[SiH2]O[SiH2]O[SiH2]O[SiH2]1',
'Glycerin': 'OCC(O)CO',
'Isododecane': 'CCCCCCCCCC(C)C',
'Polyglyceryl-4 Isostearate': None,
'Cetyl Peg-10 Dimethicone': None,
'Hexyl Laurate': 'CCCCCCCCCCCC(=O)OCCCCCC',
'Aluminum Starch Octenylsuccinate': None,
'Disteardimonium Hectorite': None,
'Phenoxyethanol': 'CC(O)Oc1ccccc1',
'Acetylated Glycol Stearate': None,
'Magnesium Sulfate': '[Mg++].[O-][S]([O-])(=O)=O',
'Peg-10 Dimethicone': None,
'Trihydroxystearin': None,
'Cellulose Gum': '[Na].CC(O)=O.OCC(O)C(O)C(O)C(O)C=O',
'Nylon-12': 'O=C1CCCCCCCCCCCN1',
'Limonene': 'CC(=C)C1CCC(=CC1)C',
'Benzyl Salicylate': 'Oc1ccccc1C(=O)OCc2ccccc2',
'Benzyl Alcohol': 'OCc1ccccc1',
'Linalool': 'CC(C)=CCCC(C)(O)C=C',
'Pentaerythrityl Tetra-Di-T-Butyl Hydroxyhydrocinnamate': None,
'Isobutane': 'CC(C)C',
'Diphenyl Dimethicone': 'C[Si](C)(C)O[Si](C)(C)O[Si](C)(C)O[Si](C)(C)O[Si](C)(C)O[Si](C)(C)O[Si](C)(C)O[Si](C)(C)O[Si](C)(C)O[Si](C)(C)O[Si](C)(C)O[Si](C)(C)O[Si](C)(C)O[Si](C)(C)C',
'Acrylonitrile': 'C=CC#N',
'Fragrance': None,
'Disodium Stearoyl Glutamate': '[Na+].[Na+].CCCCCCCCCCCCCCCCCC(=O)OC(=O)[C@@H](N)CCC([O-])=O.CCCCCCCCCCCCCCCCCC(=O)OC(=O)[C@@H](N)CCC([O-])=O',
'Methylparaben': 'COC(=O)c1ccc(O)cc1',
'Butylphenyl Methylpropional': None,
'Aluminum Hydroxide': '[OH-].[OH-].[OH-].[Al+3]',
'Hexyl Cinnamal': r'O=C\C(=C\c1ccccc1)CCCCCC'
}

So now that we have our list of SMILES, we can analyze for any toxic alerts. I didn’t expect we would automatically retrieve all of them but I do think we could get a good start.

Here we can upload the structures and start a more massive search on the flags.

So let’s go ahead and screen our molecules:

Here we can see the Acrylonitrile ingredient in the brand is regarded as a high potency category chemical which can be how toxic a chemical could be:

I hope this helps some folk in analyzing their chemicals. Doing it on mass scale will take work but here we can get an idea as to how to perform our toxicity search for cosmetics.

Happy Cheminformatics!

--

--

Sulstice
Sulstice

No responses yet