Wolfram Language

Un accès plus riche à la base de connaissances

Préparez de l'aspirine

L'aspirine est l'un des médicaments les plus couramment utilisés pour traiter la douleur, la fièvre et l'inflammation. Elle peut être synthétisée en combinant des quantités équimolaires d'acide salicylique et d'anhydride acétique. Ici, les données chimiques de la base de connaissances de Wolfram sont utilisées avec le cadre quantitatif et les groupes d'entités, les copies et les instances pour étudier la préparation chimique de l'aspirine.

Représentez un lot de laboratoire typique pour une préparation de 100 millimoles d'aspirine à l'aide d'EntityGroup.

In[1]:=
Click for copyable input
reactants = EntityGroup[{EntityInstance[Entity["Chemical", "SalicylicAcid"], Quantity[0.1, "Moles"]], EntityInstance[Entity["Chemical", "AceticAnhydride"], Quantity[0.1, "Moles"]]}]
Out[1]=

Calculez la masse totale de ce lot en utilisant une forme « curryfiée » d'une requête entité-propriété.

In[2]:=
Click for copyable input
mass = reactants["AbsoluteMass"]
Out[2]=

L'anhydride acétique étant un liquide, il serait pratique de connaître exactement la quantité nécessaire.

In[3]:=
Click for copyable input
UnitConvert[ EntityInstance[Entity["Chemical", "AceticAnhydride"], Quantity[0.1, "Moles"]]["AbsoluteVolume"], "Milliliter"]
Out[3]=

En supposant une réaction stœchiométrique, c'est-à-dire une réaction quantitative (théorique), on obtient 100 millimoles d'aspirine. Toutefois, dans la pratique, on obtient des rendements de l'ordre de 90 %.

In[4]:=
Click for copyable input
EntityInstance[Entity["Chemical", "Aspirin"], 0.9*Quantity[0.1, "Moles"]]["AbsoluteMass"]
Out[4]=

Comptez les atomes constitutifs de la molécule d'aspirine.

In[5]:=
Click for copyable input
elem = Entity["Chemical", "Aspirin"]["ElementCounts"]
Out[5]=

Assemblez les nombres appropriés de ces atomes dans une expression d'entité groupée.

In[6]:=
Click for copyable input
atomAssemble = EntityGroup[ MapThread[EntityCopies[#1, #2] &, {Keys[elem], Values[elem]}]]
Out[6]=
In[7]:=
Click for copyable input
atomicmass = atomAssemble["AtomicMass"]
Out[7]=

Comme prévu, la masse atomique totale de ce groupe d'entités coïncide avec la masse molaire de la molécule entière.

In[8]:=
Click for copyable input
molarmass = Entity["Chemical", "Aspirin"][ EntityProperty["Chemical", "MolarMass"]]
Out[8]=
In[9]:=
Click for copyable input
Equal @@ QuantityMagnitude /@ {atomicmass, molarmass}
Out[9]=

Cependant, il existe d'autres combinaisons isotopiques possibles, chacune d'entre elles ayant une masse totale légèrement différente.

In[10]:=
Click for copyable input
stableIsotopes = #[EntityProperty["Element", "StableIsotopes"]] & /@ Keys[elem]
Out[10]=

Ce groupe se compose uniquement des isotopes standard (que l'on appelle l'« ion principal »).

In[11]:=
Click for copyable input
EntityGroup[{EntityCopies[Entity["Isotope", "C12"], 9], EntityCopies[Entity["Isotope", "H1"], 8], EntityCopies[Entity["Isotope", "O16"], 4]}]["AtomicMass"]
Out[11]=

La probabilité d'apparition d'une molécule ayant une telle composition est inférieure à 90 %. Néanmoins, dans un spectre de masse, il s'agirait du pic moléculaire le plus important.

In[12]:=
Click for copyable input
Times @@ MapThread[(QuantityMagnitude[#1[ EntityProperty["Isotope", "IsotopeAbundance"]], "PureUnities"])^#2 &, {stableIsotopes[[All, 1]], Values[elem]}]
Out[12]=

Exemples connexes

de en es ja ko pt-br ru zh