Prepare aspirina
La aspirina es el medicamento más utilizado para tratar el dolor, la fiebre y la inflamación. Esta puede ser sintetizada combinando cantidades equimolares de ácido salicílico y anhídrido acético. Aquí, los datos químicos de Wolfram Knowledgebase son utilizados junto con el marco de cantidades y grupos de entidades, copias e instancias, para estudiar la preparación química de la aspirina.
Represente un lote típico de laboratorio para la preparación de 100 milimolar de aspirina usando EntityGroup.
reactants =
EntityGroup[{EntityInstance[Entity["Chemical", "SalicylicAcid"],
Quantity[0.1, "Moles"]],
EntityInstance[Entity["Chemical", "AceticAnhydride"],
Quantity[0.1, "Moles"]]}]
Calcule el total de masa para este lote usando una forma "currificada" de una consulta de entidades y propiedades.
mass = reactants["AbsoluteMass"]
Debido a que el anhídrido acético es un líquido, sería conveniente saber exactamente cuánto se necesita.
UnitConvert[
EntityInstance[Entity["Chemical", "AceticAnhydride"],
Quantity[0.1, "Moles"]]["AbsoluteVolume"], "Milliliter"]
Suponiendo un estequiométrico, ej. una reacción cuantitativa (teórica), esto produce 100 milimoles de aspirina. Sin embargo, en la práctica produce alrededor del 90%.
EntityInstance[Entity["Chemical", "Aspirin"],
0.9*Quantity[0.1, "Moles"]]["AbsoluteMass"]
Cuente los átomos que constituyen la molécula de aspirina.
elem = Entity["Chemical", "Aspirin"]["ElementCounts"]
Reúna los números adecuados de estos átomos en una expresión de entidades agrupadas.
atomAssemble =
EntityGroup[
MapThread[EntityCopies[#1, #2] &, {Keys[elem], Values[elem]}]]
atomicmass = atomAssemble["AtomicMass"]
Como se espera, la masa atómica total de este grupo de entidades coincide con la masa molar de la molécula completa.
molarmass =
Entity["Chemical", "Aspirin"][
EntityProperty["Chemical", "MolarMass"]]
Equal @@ QuantityMagnitude /@ {atomicmass, molarmass}
Sin embargo, existen otras combinaciones isotópicas posibles, cada una de ellas con una masa total ligeramente diferente.
stableIsotopes = #[EntityProperty["Element", "StableIsotopes"]] & /@
Keys[elem]
Este grupo consiste solamente de isótopos estándar (el llamado "de iones principales").
EntityGroup[{EntityCopies[Entity["Isotope", "C12"], 9],
EntityCopies[Entity["Isotope", "H1"], 8],
EntityCopies[Entity["Isotope", "O16"], 4]}]["AtomicMass"]
La probabilidad de ocurrencia de una molécula con tal composición es menor al 90%. Sin embargo, en un espectro de masas sería el pico molecular más prominente.
Times @@ MapThread[(QuantityMagnitude[#1[
EntityProperty["Isotope", "IsotopeAbundance"]],
"PureUnities"])^#2 &, {stableIsotopes[[All, 1]], Values[elem]}]