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.
reactants =
EntityGroup[{EntityInstance[Entity["Chemical", "SalicylicAcid"],
Quantity[0.1, "Moles"]],
EntityInstance[Entity["Chemical", "AceticAnhydride"],
Quantity[0.1, "Moles"]]}]
Calculez la masse totale de ce lot en utilisant une forme « curryfiée » d'une requête entité-propriété.
mass = reactants["AbsoluteMass"]
L'anhydride acétique étant un liquide, il serait pratique de connaître exactement la quantité nécessaire.
UnitConvert[
EntityInstance[Entity["Chemical", "AceticAnhydride"],
Quantity[0.1, "Moles"]]["AbsoluteVolume"], "Milliliter"]
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 %.
EntityInstance[Entity["Chemical", "Aspirin"],
0.9*Quantity[0.1, "Moles"]]["AbsoluteMass"]
Comptez les atomes constitutifs de la molécule d'aspirine.
elem = Entity["Chemical", "Aspirin"]["ElementCounts"]
Assemblez les nombres appropriés de ces atomes dans une expression d'entité groupée.
atomAssemble =
EntityGroup[
MapThread[EntityCopies[#1, #2] &, {Keys[elem], Values[elem]}]]
atomicmass = atomAssemble["AtomicMass"]
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.
molarmass =
Entity["Chemical", "Aspirin"][
EntityProperty["Chemical", "MolarMass"]]
Equal @@ QuantityMagnitude /@ {atomicmass, molarmass}
Cependant, il existe d'autres combinaisons isotopiques possibles, chacune d'entre elles ayant une masse totale légèrement différente.
stableIsotopes = #[EntityProperty["Element", "StableIsotopes"]] & /@
Keys[elem]
Ce groupe se compose uniquement des isotopes standard (que l'on appelle l'« ion principal »).
EntityGroup[{EntityCopies[Entity["Isotope", "C12"], 9],
EntityCopies[Entity["Isotope", "H1"], 8],
EntityCopies[Entity["Isotope", "O16"], 4]}]["AtomicMass"]
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.
Times @@ MapThread[(QuantityMagnitude[#1[
EntityProperty["Isotope", "IsotopeAbundance"]],
"PureUnities"])^#2 &, {stableIsotopes[[All, 1]], Values[elem]}]