Wolfram 언어

풍부한 Knowledgebase 액세스

아스피린의 조합

아스피린은 통증, 열, 염증에 가장 많이 사용되는 약물 중 하나입니다. 아스피린은 등몰 양의 살리실산과 무수 초산을 혼합하여 합성할 수 있습니다. 여기에서는 아스피린의 화학 조합의 탐구를 위해 Wolfram Knowledgebase의 화학 데이터와 수량 프레임워크, 엔티티 그룹, 복사, 인스턴스를 함께 사용하였습니다.

EntityGroup을 사용하여 일반적으로 실험실에서 행해지는 한 번에 100 밀리몰라 아스피린 화학 조제 모습을 나타냅니다.

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]=

엔티티-특성 쿼리의 "커링" (curried) 형식을 사용하여 이 실험의 총 질량을 계산합니다.

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

무수 초산은 액체이기 때문에 정확히 얼마나 필요한지 알면 편리합니다.

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

화학량적인, 즉 (이론적) 정량 반응을 가정하면 100 밀리몰라의 아스피린의 산출할 수 있어야 합니다. 그러나, 실제로 얻을 수 있는 것은 90% 정도일 것입니다.

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

아스피린 분자의 구성 원자를 계산합니다.

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

적절한 수의 이러한 원자를 그룹화된 엔티티 식으로 정리합니다.

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]=

예상한 바와 같이, 이 엔티티 그룹의 전반적인 원자 질량은 분자 전체의 몰 질량과 일치합니다.

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]=

하지만, 그 밖의 가능한 동위 원소의 조합의 각각의 총 질량은 미묘한 차이를 보입니다.

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

이 그룹은 표준 동위 원소 (소위 말하는 "주 이온")만으로 구성되어 있습니다.

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]=

이러한 구성 분자가 출현할 확률은 90% 미만입니다. 그러나 질량 스펙트럼에서 이것은 가장 눈에 띄는 분자의 피크입니다.

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

관련 예제

de en es fr ja pt-br ru zh