<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel rdf:about="https://community.wolfram.com">
    <title>Community RSS Feed</title>
    <link>https://community.wolfram.com</link>
    <description>RSS Feed for Wolfram Community showing any discussions tagged with Chemistry with no replies sorted by most likes.</description>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3638297" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3094670" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2818249" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3379964" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1135393" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/908722" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/851429" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3379945" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3094660" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3095845" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3094750" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2562172" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/178634" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2669803" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3721709" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3503212" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3359290" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3278492" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2925998" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2176406" />
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3638297">
    <title>[WELP25] Simulating plastic polymer degradation</title>
    <link>https://community.wolfram.com/groups/-/m/t/3638297</link>
    <description>![Simulating Plastic Polymer Degradation][1]&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][2]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=7682image.png&amp;amp;userId=911151&#xD;
  [2]: https://www.wolframcloud.com/obj/cde0818d-a5d1-40b6-88d8-a26734298c8f</description>
    <dc:creator>Wolfram Education Programs</dc:creator>
    <dc:date>2026-02-11T16:24:46Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3094670">
    <title>[WELP23] PLAPT: Protein - Ligand Binding Affinity Prediction Using Pretrained Transformer Models</title>
    <link>https://community.wolfram.com/groups/-/m/t/3094670</link>
    <description>![machine learning][1]&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][2]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=4889image.jpeg&amp;amp;userId=911151&#xD;
  [2]: https://www.wolframcloud.com/obj/29e809c2-c42c-4491-a69e-c1ca763ab6a1</description>
    <dc:creator>Wolfram Education Programs</dc:creator>
    <dc:date>2024-01-02T17:07:26Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2818249">
    <title>[WELP22] Mathematical Modeling of Electrophysiology in Cardiac Cells</title>
    <link>https://community.wolfram.com/groups/-/m/t/2818249</link>
    <description>![molecule][1]&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][2]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=molecule.jpeg&amp;amp;userId=911151&#xD;
  [2]: https://www.wolframcloud.com/obj/edfbb4cb-2dca-4916-aa23-29cf3c6db1cf</description>
    <dc:creator>Wolfram Education Programs</dc:creator>
    <dc:date>2023-01-27T17:59:09Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3379964">
    <title>[WELP24] Established and novel methods for protein analysis in Wolfram Language</title>
    <link>https://community.wolfram.com/groups/-/m/t/3379964</link>
    <description>![Established and novel methods for protein analysis in Wolfram Language][1]&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][2]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=proj-3-cover.jpeg&amp;amp;userId=911151&#xD;
  [2]: https://www.wolframcloud.com/obj/3d49b85d-7bab-4306-b2b4-2097e5314f66</description>
    <dc:creator>Wolfram Education Programs</dc:creator>
    <dc:date>2025-02-04T15:26:07Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1135393">
    <title>[WSS17] Predicting Chemical Properties from Chemical  Structure</title>
    <link>https://community.wolfram.com/groups/-/m/t/1135393</link>
    <description>Predicting the properties of a chemical can be difficult and costly. Experiments are time consuming and expensive, and quantum mechanical simulations require a lot of computing time. It would be highly advantageous to predict properties from the structure alone. This method is known as QSPR or QSAR, and it is widely used in the pharmaceutical industry to predict properties of drugs. Here I will present a machine learning approach to QSAR.&#xD;
&#xD;
ChemicalData[] contains roughly 44,000 chemicals with a large amount of associated data. Given the sophisticated machine learning and neural network functions in Mathematica, it should be plausible to predict some of the data based on the structure. I selected chemicals containing nothing except Carbon, Hydrogen, Oxygen, and Nitrogen to get a simple subset of organic molecules. I removed compounds with insufficient data and compounds with non-standard isotopes. This created a subset of about 5500 chemicals. The properties predicted are melting point, boiling point, heat of vaporization, heat of fusion, and heat of combustion.&#xD;
&#xD;
The code used here can be found at GitHub:&#xD;
&#xD;
[https://github.com/MarcThomson/WSS2017_Project][1]&#xD;
&#xD;
# Downloading Data&#xD;
First, define the properties to get from the database.&#xD;
&#xD;
     molecularProperties = {&amp;#034;SMILES&amp;#034;,&#xD;
        					&amp;#034;BondCounts&amp;#034;,&#xD;
        					&amp;#034;VaporizationHeat&amp;#034;,&#xD;
        					&amp;#034;CombustionHeat&amp;#034;,&#xD;
        					&amp;#034;FusionHeat&amp;#034;,&#xD;
        					&amp;#034;FormalCharges&amp;#034;,&#xD;
        					&amp;#034;NetCharge&amp;#034;,&#xD;
        					&amp;#034;PartitionCoefficient&amp;#034;,&#xD;
        					&amp;#034;TopologicalPolarSurfaceArea&amp;#034;,&#xD;
        					&amp;#034;NonStandardIsotopeNumbers&amp;#034;,&#xD;
        					&amp;#034;AtomPositions&amp;#034;,&#xD;
        					&amp;#034;VertexTypes&amp;#034;,&#xD;
        					&amp;#034;BoilingPoint&amp;#034;,&#xD;
        					&amp;#034;MeltingPoint&amp;#034;,&#xD;
        					&amp;#034;MolarMass&amp;#034;,&#xD;
        					&amp;#034;AdjacencyMatrix&amp;#034;,&#xD;
        					&amp;#034;RotatableBondCount&amp;#034;,&#xD;
        					&amp;#034;HBondAcceptorCount&amp;#034;,&#xD;
        					&amp;#034;HBondDonorCount&amp;#034;,&#xD;
        					&amp;#034;BlackStructureDiagram&amp;#034;,&#xD;
        					&amp;#034;Name&amp;#034;};&#xD;
&#xD;
&#xD;
Once this is done, the data can be downloaded and formatted into an association of associations. The format is name-&amp;gt;{property-&amp;gt;value}&#xD;
   &#xD;
    totalSetRaw = &#xD;
       RandomSample[ChemicalData[], molecularProperties]; // Timing&#xD;
&#xD;
    propertiesExceptName = molecularProperties[[1 ;; -2]];&#xD;
    names = totalSetRaw[[;; , -1]];&#xD;
    totalSetBase = Association[Map[#1 -&amp;gt; propertiesExceptName &amp;amp;, names]];&#xD;
    totalSet = &#xD;
      Association[&#xD;
       Table[names[[i]] -&amp;gt; &#xD;
         Association[&#xD;
          Thread[totalSetBase[[names[[i]]]] -&amp;gt; &#xD;
            totalSetRaw[[i, ;; -2]]]], {i, 1, Length[totalSetRaw]}]];&#xD;
Finally, the set is filtered to make sure the chemicals satisfy the criteria.&#xD;
&#xD;
     requiredProperties[A_] := And[Not[MissingQ[A[&amp;#034;SMILES&amp;#034;]]],&#xD;
       							StringQ[A[&amp;#034;SMILES&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;AdjacencyMatrix&amp;#034;]]],&#xD;
       							ArrayQ[A[&amp;#034;AdjacencyMatrix&amp;#034;]],&#xD;
       							Total[Total[A[&amp;#034;AdjacencyMatrix&amp;#034;]]] &amp;gt; 0,&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;BoilingPoint&amp;#034;]]],&#xD;
       							QuantityQ[A[&amp;#034;BoilingPoint&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;MolarMass&amp;#034;]]],&#xD;
       							QuantityQ[A[&amp;#034;MolarMass&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;MeltingPoint&amp;#034;]]],&#xD;
       							QuantityQ[A[&amp;#034;MeltingPoint&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;AtomPositions&amp;#034;]]],&#xD;
       							ListQ[A[&amp;#034;AtomPositions&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;HBondDonorCount&amp;#034;]]],&#xD;
       							IntegerQ[A[&amp;#034;HBondDonorCount&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;HBondAcceptorCount&amp;#034;]]],&#xD;
       							IntegerQ[A[&amp;#034;HBondAcceptorCount&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;RotatableBondCount&amp;#034;]]],&#xD;
       							IntegerQ[A[&amp;#034;RotatableBondCount&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;TopologicalPolarSurfaceArea&amp;#034;]]],&#xD;
       							QuantityQ[A[&amp;#034;TopologicalPolarSurfaceArea&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;PartitionCoefficient&amp;#034;]]],&#xD;
       							NumberQ[A[&amp;#034;PartitionCoefficient&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;NetCharge&amp;#034;]]],&#xD;
       							NumberQ[A[&amp;#034;NetCharge&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;FormalCharges&amp;#034;]]],&#xD;
       							ListQ[A[&amp;#034;FormalCharges&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;BondCounts&amp;#034;]]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;VertexTypes&amp;#034;]]],&#xD;
       							SubsetQ[{&amp;#034;C&amp;#034;, &amp;#034;O&amp;#034;, &amp;#034;H&amp;#034;, &amp;#034;N&amp;#034;}, &#xD;
        DeleteDuplicates[A[&amp;#034;VertexTypes&amp;#034;]]],&#xD;
       							Length[DeleteDuplicates[A[&amp;#034;VertexTypes&amp;#034;]]] &amp;gt; 1,&#xD;
       							SubsetQ[A[&amp;#034;VertexTypes&amp;#034;], {&amp;#034;C&amp;#034;}],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;NonStandardIsotopeNumbers&amp;#034;]]],&#xD;
       							And @@ &#xD;
        Map[Not[IntegerQ[#]] &amp;amp;, A[&amp;#034;NonStandardIsotopeNumbers&amp;#034;]]]&#xD;
     &#xD;
     &#xD;
     totalSet = Select[totalSet, requiredProperties[#] &amp;amp;];&#xD;
&#xD;
At this point, it is useful to save this set. Downloading this data can take many hours, so it is best to do it only once. &#xD;
#Feature Extraction&#xD;
The heart of this project is selecting the proper features from each molecule.&#xD;
## Subgraphs&#xD;
The first class of features is the subgraphs, which roughly correlates to functional groups. Molecular properties are generally dependent on these functional groups. Rather than look for functional groups directly, I chose to look for unique subgraphs of the molecule. Unique subgraphs have the same non-Hydrogen atoms and all their attached Hydrogens. &#xD;
&#xD;
The required code is:&#xD;
&#xD;
    graphSize = {1, 2, 3, 4};&#xD;
    &#xD;
    heavyVertices[g_, vertexTypes_] := &#xD;
     Select[VertexList[g], vertexTypes[[#]] != &amp;#034;H&amp;#034; &amp;amp;]&#xD;
    lightVertices[g_, vertexTypes_] := &#xD;
     Select[VertexList[g], vertexTypes[[#]] == &amp;#034;H&amp;#034; &amp;amp;]&#xD;
    &#xD;
    bondsBetween[i_, j_, g_] := 0 /; Equal[i, j]&#xD;
    bondsBetween[i_, j_, g_] := With[{vList = VertexList[g]},&#xD;
       							Length[&#xD;
         							Cases[&#xD;
          							EdgeList[g], vList[[i]] &amp;lt;-&amp;gt; vList[[j]]&#xD;
          								]&#xD;
         								] +&#xD;
        							Length[&#xD;
         							Cases[&#xD;
          							EdgeList[g], vList[[j]] &amp;lt;-&amp;gt; vList[[i]]&#xD;
          								]&#xD;
         								]&#xD;
       							] /; Not[Equal[i, j]]&#xD;
    &#xD;
    &#xD;
    subgraphList[graph_, graphSize_, vertexTypes_] := Distribute[&#xD;
       												NeighborhoodGraph[&#xD;
        												graph,&#xD;
        												heavyVertices[graph, vertexTypes],&#xD;
        												graphSize&#xD;
        												],&#xD;
       												List];&#xD;
    &#xD;
    hydrogenSubgraphList[graph_, graphSize_, vertexTypes_] :=&#xD;
      														Map[&#xD;
       														Subgraph[&#xD;
         														graph,&#xD;
         														ConnectedComponents[&#xD;
           														Subgraph[&#xD;
            														graph,&#xD;
            														{VertexList[#], &#xD;
             lightVertices[graph, vertexTypes]}&#xD;
            														]&#xD;
           														][[1]]] &amp;amp;,&#xD;
       														subgraphList[graph, graphSize, vertexTypes]];&#xD;
    &#xD;
    canonicalAdjM[g_, vertexTypes_] := {&#xD;
      								With[{&#xD;
        									sortedList = SortBy[&#xD;
          												Range[Length[VertexList[g]]],&#xD;
          												-KatzCentrality[g, 0.1][[#]] &amp;amp;]},&#xD;
       									Table[&#xD;
        										bondsBetween[i, j, g],&#xD;
        										{i, sortedList},&#xD;
        										{j, sortedList}]],&#xD;
      								With[{&#xD;
        									sortedList = SortBy[&#xD;
          												Range[Length[VertexList[g]]],&#xD;
          												-KatzCentrality[g, 0.1][[#]] &amp;amp;]},&#xD;
       									vertexTypes[[&#xD;
         											VertexList[g][[sortedList]]&#xD;
         											]]&#xD;
       									]&#xD;
      								}&#xD;
    &#xD;
    subAdjMList[graph_, graphSize_, vertexTypes_] := Map[&#xD;
      												canonicalAdjM[&#xD;
        													Subgraph[graph, #],&#xD;
        													vertexTypes] &amp;amp;,&#xD;
      												DeleteDuplicatesBy[&#xD;
       													hydrogenSubgraphList[graph, graphSize, vertexTypes],&#xD;
       													{&#xD;
         													{Sort[heavyVertices[#, vertexTypes]]},&#xD;
         													Length[lightVertices[#, vertexTypes]]&#xD;
         												} &amp;amp;&#xD;
       												]&#xD;
      												]&#xD;
For example, take the molecule  2-Hydroxy-4-Methoxybenzoic Acid. &#xD;
&#xD;
![2-Hydroxy-4-Methoxybenzoic Acid][2]&#xD;
&#xD;
    g = AdjacencyGraph[&#xD;
        ChemicalData[&amp;#034;2Hydroxy4MethoxybenzoicAcid&amp;#034;, &amp;#034;AdjacencyMatrix&amp;#034;]];&#xD;
     vl = ChemicalData[&amp;#034;2Hydroxy4MethoxybenzoicAcid&amp;#034;, &amp;#034;VertexTypes&amp;#034;];&#xD;
     Graph[AdjacencyGraph[#[[1]]], &#xD;
        VertexLabels -&amp;gt; Thread[Range[Length[#[[2]]]] -&amp;gt; #[[2]]]] &amp;amp; /@ &#xD;
      subAdjMList[g, graphSize, vl]&#xD;
&#xD;
&#xD;
The unique substructures are found to be: &#xD;
![2-Hydroxy-4-Methoxybenzoic Acid Structures][3]&#xD;
&#xD;
Some of these structures are carboxylic acids, alcohols, and ethers, whereas many others are unnamed.&#xD;
&#xD;
These features must be turned into numeric values for the machine learning algorithm. To do so, the subgraphs are turned into adjacency matrices. Adjacency matrices are not unique, so it is necessary to permute them into canonical form. This is done by ranking the vertices by Katz centrality, which seems to only return duplicate values if the nodes are identical. I would be interested to hear other methods of creating a canonical adjacency matrix.&#xD;
&#xD;
Once the adjacency matrices are created, they are grouped with a sorted list of atom types in the subgraph, and hashed to an integer. The subgraph is associated with the atom list to make sure that the features includes the atoms in each position. These hashes are arbitrary, but frequency of occurrence can be compared between molecules. The most commonly occurring hashes are found. Each molecule&amp;#039;s feature list is a vector of the occurrence number of the most common hashes/functional groups.&#xD;
## Topological Features&#xD;
Topological features can give insight into the connectivity and shape of the molecular graphs. I won&amp;#039;t go into detail as to how these features are calculated, as the formula can be found at http://www.codessa-pro.com/descriptors/&#xD;
&#xD;
The code can be found in the GitHub link, in the preprocessing file.&#xD;
## Geometric Features&#xD;
&#xD;
Geometry affects how well molecules fit together and bond together. The atom positions of a molecule can be coupled with their van der Waals radii to construct a geometric mesh. For instance:&#xD;
&#xD;
     rC = 170; rO = 152; rN = 155; rH = 120;&#xD;
     chem = Entity[&amp;#034;Chemical&amp;#034;, &amp;#034;2Hydroxy4MethoxybenzoicAcid&amp;#034;];&#xD;
     &#xD;
     atomPos1 = chem[&amp;#034;AtomPositions&amp;#034;];&#xD;
     radii1 = chem[&amp;#034;VertexTypes&amp;#034;] /. {&amp;#034;C&amp;#034; -&amp;gt; rC, &amp;#034;H&amp;#034; -&amp;gt; rH, &amp;#034;N&amp;#034; -&amp;gt; rN, &#xD;
         &amp;#034;O&amp;#034; -&amp;gt; rO};&#xD;
     rgn = RegionUnion[&#xD;
        Table[Ball[atomPos1[[i]], radii1[[i]]], {i, 1, Length[atomPos1]}]];&#xD;
     mesh = DiscretizeRegion[rgn];&#xD;
     meshConvex = ConvexHullMesh[MeshCoordinates[mesh]];&#xD;
     &#xD;
     &#xD;
     vMol = Volume[rgn];&#xD;
     saMol = Area[RegionBoundary[mesh]];&#xD;
     &#xD;
     PPList = (List @@ BoundingRegion[mesh, &amp;#034;MinOrientedCuboid&amp;#034;])[[2]];&#xD;
     vBox = Dot[Cross[PPList[[1]], PPList[[2]]], PPList[[3]]];&#xD;
     saBox = 2*Total[Norm /@ (Cross @@@ Subsets[PPList, {2}])];&#xD;
     edgesBox = &#xD;
       Norm /@ ((List @@ BoundingRegion[mesh, &amp;#034;MinOrientedCuboid&amp;#034;])[[2]]);&#xD;
     &#xD;
     vConvex = Volume[meshConvex];&#xD;
     saConvex = Area[RegionBoundary[meshConvex]];&#xD;
&#xD;
This extracts the volume and surface area of the mesh, minimum bounding box, and convex hull. These three meshes can be visualized.&#xD;
&#xD;
    mesh&#xD;
&#xD;
![&amp;#034;2-Hydroxy-4-Methoxybenzoic Acid Mesh&amp;#034;][4]&#xD;
&#xD;
    Show[RegionPlot3D[mesh, PlotStyle -&amp;gt; {LightBlue}, Boxed -&amp;gt; False], &#xD;
     Graphics3D[{Opacity[0.4], Red, &#xD;
       BoundingRegion[mesh, &amp;#034;MinOrientedCuboid&amp;#034;]}]]&#xD;
&#xD;
![&amp;#034;2-Hydroxy-4-Methoxybenzoic Acid Box Mesh&amp;#034;][5]&#xD;
&#xD;
    Show[RegionPlot3D[mesh, PlotStyle -&amp;gt; {LightBlue}, Boxed -&amp;gt; False], &#xD;
     RegionPlot3D[meshConvex, PlotStyle -&amp;gt; {Red, Opacity[0.4]}]]&#xD;
&#xD;
![&amp;#034;2-Hydroxy-4-Methoxybenzoic Acid Convex Mesh&amp;#034;][6]&#xD;
## Other Features&#xD;
A number of other features are also extracted. Many of these are directly in ChemicalData[], such as molar mass, hydrogen bonding sites, rotatable bonds, bond tallies, etc. A more detailed list can be found in the preprocessing file on github.&#xD;
&#xD;
# Prediction&#xD;
&#xD;
## Melting Point&#xD;
Primarily, I used these features to predict Melting Point, with mixed success. I used the predict function with random forest. The comparison plot is below:&#xD;
&#xD;
![Melting Point Comparison][7]&#xD;
&#xD;
The mean average error is 30 K, outperforms the model of Karthikeyan &amp;amp; Glen. It is much higher than the error found by Lazzus, who used a small number of features both structural and quantum mechanical. &#xD;
## Boiling Point&#xD;
Boiling point should be easier than melting point because the geometry of a molecule is less important. However, the random forest model performed fairly poorly, as shown in the comparison plot.&#xD;
![Boiling Point Comparison][8]&#xD;
&#xD;
The data are not distributed randomly about the y=x line, indicating that there is likely another feature influencing the results. I&amp;#039;m interested to hear what features users suspect might be affecting boiling point. The MAE here is an outrageous 50 K.&#xD;
## Heat of Fusion&#xD;
Using a similar prediction algorithm as above, the following comparison plot is produced. Because few compounds have heat of fusions measured, the sample size is smaller. Much like melting point predictions, there is a clear correlation, but the model does not fully explain the observations.&#xD;
![Heat of Fusion Comparison][9]&#xD;
&#xD;
The MAE is mediocre, at around 6.18 KJ/Mol.&#xD;
## Heat of Vaporization&#xD;
As enthalpy of vaporization is closely related to boiling point (See Trouton&amp;#039;s Rule), it would be expected that the issues with boiling point would reappear in predicting heat of vaporization. However, this is not the case .&#xD;
&#xD;
Prediction is done using a random forest model. The comparison plot is below. The data is immediately marked by a very prominent outlier, N-methyl pyrrole, with an actual heat of vaporization of 407 KJ/mol. This seems to be incorrect data, as NIST lists the heat of vaporization as 40.7 KJ/mol (see sources.) Aside from this outlier, the data is fairly well correlated, but as in the previous cases, the model is insufficient to fully predict heat of vaporization.&#xD;
![Heat of Vaporization Comparison][10]&#xD;
&#xD;
The MAE is once again mediocre, at 7.224 KJ/mol.&#xD;
## Heat of Combustion&#xD;
Finally, heat of combustion is predicted using a similar model. The comparison plot resulting from the random forest algorithm shows fairly strong prediction, with a few significant outliers. Generally however, data points are very close to the perfect prediction line.&#xD;
![Heat of Combustion Comparison][11]&#xD;
&#xD;
The MAE is 557.01 KJ/mol, but the data is generally much larger in magnitude. &#xD;
&#xD;
# Conclusion&#xD;
&#xD;
Generally, it seems reasonable to approximate chemical properties from the structure alone. It would be interesting to see whether a well designed neural network is able to preform better than the random forest algorithm. To further improve the model, different features should be examined to explain the failure of prediction of boiling point. Additionally, I am curious if the model can be broadened to apply to organic molecules with other constituent elements, such as sulfur, phosphorous, and the halogens. &#xD;
&#xD;
# References&#xD;
&#xD;
 - Winter, Mark. &amp;#034;The Periodic Table of the Elements.&amp;#034; The Periodic Table of the Elements by WebElements. N.p., n.d. Web. 04 July 2017. &amp;lt;https://www.webelements.com/&amp;gt;.&#xD;
&#xD;
 - Karthikeyan, M., Robert C. Glen, and Andreas Bender. &amp;#034;General Melting Point Prediction Based on a Diverse Compound Data Set and Artificial Neural Networks.&amp;#034; Journal of Chemical Information and Modeling, vol. 45, no. 3, 2005, pp. 581-590.&#xD;
&#xD;
 - &amp;#034;Theory: QSAR+ Descriptors.&amp;#034; Accelrys, n.d. Web. 04 July 2017. &amp;lt;http://www.ifm.liu.se/compchem/msi/doc/life/cerius46/qsar/theory_descriptors.html&amp;gt;.&#xD;
&#xD;
 - Katritzky, Alan, Mati Karelson, and Ruslan Petrukhin. &amp;#034;CODESSA PRO Classes of Descriptors.&amp;#034; CODESSA PRO. N.p., n.d. Web. &amp;lt;http://www.codessa-pro.com/descriptors/index.htm&amp;gt;.&#xD;
&#xD;
 - Lazzús, Juan A.&amp;#034;Neural Network Based on Quantum Chemistry for Predicting Melting Point of Organic Compounds.&amp;#034; Chinese Journal of Chemical Physics, vol.22, no.1, 2009, pp.19 - 26.&#xD;
&#xD;
 - Rogers, David, and Mathew Hahn. &amp;#034;Extended-Connectivity Fingerprints.&amp;#034; Journal of Chemical Information and Modeling, vol. 50, no. 5, 2010, pp. 742.&#xD;
&#xD;
 - Libretexts. &amp;#034;Trouton&amp;#039;s Rule.&amp;#034; Chemistry LibreTexts. Libretexts, 09 Apr. 2017. Web. 05 July 2017. &amp;lt;https://chem.libretexts.org/Core/Physical_and_Theoretical_Chemistry/Thermodynamics/Introduction_to_Thermodynamics/Trouton&amp;#039;s_rule&amp;gt;.&#xD;
&#xD;
 - Other thank you&amp;#039;s: Peter Barendse, Mark Boyer, and Bob Nachbar&#xD;
&#xD;
&#xD;
  [1]: https://github.com/MarcThomson/WSS2017_Project&#xD;
  [2]: http://community.wolfram.com//c/portal/getImageAttachment?filename=Structure.png&amp;amp;userId=1122694&#xD;
  [3]: http://community.wolfram.com//c/portal/getImageAttachment?filename=Subgraphs.png&amp;amp;userId=1122694&#xD;
  [4]: http://community.wolfram.com//c/portal/getImageAttachment?filename=mesh.png&amp;amp;userId=1122694&#xD;
  [5]: http://community.wolfram.com//c/portal/getImageAttachment?filename=meshBox.png&amp;amp;userId=1122694&#xD;
  [6]: http://community.wolfram.com//c/portal/getImageAttachment?filename=meshConvex.png&amp;amp;userId=1122694&#xD;
  [7]: http://community.wolfram.com//c/portal/getImageAttachment?filename=MP.png&amp;amp;userId=1122694&#xD;
  [8]: http://community.wolfram.com//c/portal/getImageAttachment?filename=BP.png&amp;amp;userId=1122694&#xD;
  [9]: http://community.wolfram.com//c/portal/getImageAttachment?filename=HeatFus.png&amp;amp;userId=1122694&#xD;
  [10]: http://community.wolfram.com//c/portal/getImageAttachment?filename=HeatVap.png&amp;amp;userId=1122694&#xD;
  [11]: http://community.wolfram.com//c/portal/getImageAttachment?filename=HeatComb.png&amp;amp;userId=1122694</description>
    <dc:creator>Marc Thomson</dc:creator>
    <dc:date>2017-07-05T18:28:19Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/908722">
    <title>[WSSA16] Semantic representation of recipes on the web</title>
    <link>https://community.wolfram.com/groups/-/m/t/908722</link>
    <description>## Abstract ##&#xD;
&#xD;
Everyone needs to take care of their health and the most important thing is to be careful what you eat.You can find many interesting recipes and cook anything you want, but for health it is important to know what kind of influence it can have on you. In other words you need some nutrition information about meals.The goal of this project is to create a program which will give users such kind of information.You can import ingredients of meals and the program will give you some information such as total calories content, total sugar content etc ... &#xD;
![example][1]&#xD;
![enter image description here][2]&#xD;
&#xD;
The code of my project is &#xD;
&#xD;
    CloudDeploy[FormFunction[&#xD;
      {&amp;#034;items&amp;#034;, None} -&amp;gt; RepeatingElement[&#xD;
        CompoundElement[&amp;lt;|&#xD;
          &amp;#034;food&amp;#034; -&amp;gt; &amp;lt;|&amp;#034;Label&amp;#034; -&amp;gt; &amp;#034;Foods&amp;#034;, &amp;#034;Interpreter&amp;#034; -&amp;gt; &amp;#034;Food&amp;#034;|&amp;gt;, &#xD;
          &amp;#034;quantity&amp;#034; -&amp;gt; &amp;lt;|&amp;#034;Label&amp;#034; -&amp;gt; &amp;#034;Quantity&amp;#034;, &#xD;
            &amp;#034;Interpreter&amp;#034; -&amp;gt; &amp;#034;Quantity&amp;#034;|&amp;gt;&#xD;
          |&amp;gt;]&#xD;
              ],&#xD;
      With[{vals = &#xD;
          Values@EntityGroup[&#xD;
             EntityInstance @@@ #items][{&amp;#034;AbsoluteTotalCaloriesContent&amp;#034;, &#xD;
             &amp;#034;AbsoluteTotalCarbohydratesContent&amp;#034;, &#xD;
             &amp;#034;AbsoluteTotalSugarContent&amp;#034;, &amp;#034;AbsoluteTotalFatContent&amp;#034;, &#xD;
             &amp;#034;AbsoluteCholesterolContent&amp;#034;, &amp;#034;AbsoluteTotalProteinContent&amp;#034;},&#xD;
             &amp;#034;PropertyAssociation&amp;#034;]},&#xD;
        If[FreeQ[vals, _Missing],&#xD;
         Grid[&#xD;
          Prepend[Transpose[{{&amp;#034;Calories&amp;#034;, &amp;#034;Carbs&amp;#034;, &amp;#034;Sugar&amp;#034;, &amp;#034;Fat&amp;#034;, &#xD;
              &amp;#034;Cholesterol&amp;#034;, &amp;#034;Protein&amp;#034;}, vals}], {&amp;#034;Name&amp;#034;, &amp;#034;Content&amp;#034;}],&#xD;
          Background -&amp;gt; {None, {Lighter[Yellow, .9], {White, &#xD;
              Lighter[Blend[{Red, Red}], .6]}}}, &#xD;
          Dividers -&amp;gt; {{Darker[Gray, .6], {Lighter[Gray, .5]}, &#xD;
             Darker[Gray, .6]}, {Darker[Gray, .6], &#xD;
             Darker[Gray, .6], {False}, Darker[Gray, .6]}}, &#xD;
          ItemSize -&amp;gt; {{20, 20}}, Frame -&amp;gt; Darker[Gray, .6], &#xD;
          ItemStyle -&amp;gt; 15, Spacings -&amp;gt; {Automatic, .8}], &#xD;
         &amp;#034;Sorry, Missing data&amp;#034;]] &amp;amp;, &amp;#034;PNG&amp;#034;&#xD;
                        ], Permissions -&amp;gt; &amp;#034;Public&amp;#034;]&#xD;
&#xD;
**Steps of work**&#xD;
  &#xD;
 - Get data from Wolfram &#xD;
 - Set relations between items and their quantities &#xD;
 - Count the total quantity of contents &#xD;
 - Set condition for those items whose data are missing &#xD;
 - Design page &#xD;
 - Put it on web&#xD;
&#xD;
In Wolfram Alpha there are a lot of information about foods, including nutrition information.So I&amp;#039;ve used those ones to make my project.&#xD;
As the output of the program depends on items and their quantities, I&amp;#039;ve used `EntityInstance` function to set relations between items and their quantities &#xD;
![enter image description here][3]&#xD;
&#xD;
Then to combine all entities I&amp;#039;ve used `EntityGroup` function.&#xD;
&#xD;
&#xD;
To count total quantity of contents I&amp;#039;ve used properties such as `&amp;#034;AbsoluteTotalCaloriesContent&amp;#034;, &amp;#034;AbsoluteTotalCarbohydratesContent&amp;#034;, &#xD;
&amp;#034;AbsoluteTotalSugarContent&amp;#034;, &amp;#034;AbsoluteTotalFatContent&amp;#034;, &#xD;
&amp;#034;AbsoluteCholesterolContent&amp;#034;, &amp;#034;AbsoluteTotalProteinContent&amp;#034;` &#xD;
&#xD;
Property `&amp;#034;PropertyAssociation&amp;#034;` helped me to create association between properties and appropriate quantities.&#xD;
&#xD;
![enter image description here][4]&#xD;
&#xD;
There are some foods about which there are no information in wolfram data, so for correct working of program I&amp;#039;ve used functions `With` and `If`. So as a result, if you input item about which there is no information the program will give this &#xD;
&#xD;
&#xD;
![missing][5]&#xD;
&#xD;
For  designing outputs I&amp;#039;ve used `Grid` function &#xD;
&#xD;
    Grid[Prepend[&#xD;
      Transpose[{{&amp;#034;Calories&amp;#034;, &amp;#034;Carbs&amp;#034;, &amp;#034;Sugar&amp;#034;, &amp;#034;Fat&amp;#034;, &amp;#034;Cholesterol&amp;#034;, &#xD;
         &amp;#034;Protein&amp;#034;}, vals}], {&amp;#034;Name&amp;#034;, &amp;#034;Content&amp;#034;}],&#xD;
     Background -&amp;gt; {None, {Lighter[Yellow, .9], {White, &#xD;
         Lighter[Blend[{Red, Red}], .6]}}}, &#xD;
     Dividers -&amp;gt; {{Darker[Gray, .6], {Lighter[Gray, .5]}, &#xD;
        Darker[Gray, .6]}, {Darker[Gray, .6], Darker[Gray, .6], {False}, &#xD;
        Darker[Gray, .6]}}, ItemSize -&amp;gt; {{20, 20}}, &#xD;
     Frame -&amp;gt; Darker[Gray, .6], ItemStyle -&amp;gt; 15, &#xD;
     Spacings -&amp;gt; {Automatic, .8}]&#xD;
&#xD;
Then for creating web page I&amp;#039;ve used `CloudDeploy`&#xD;
&#xD;
![enter image description here][6]&#xD;
&#xD;
&#xD;
In Quantity field you should import not only quantity but also a unit, otherwise it will show &#xD;
&#xD;
![enter image description here][7]&#xD;
&#xD;
You can try to use this program [here][8]&#xD;
&#xD;
&#xD;
  [1]: http://community.wolfram.com//c/portal/getImageAttachment?filename=page1.PNG&amp;amp;userId=900573&#xD;
  [2]: http://community.wolfram.com//c/portal/getImageAttachment?filename=Out.PNG&amp;amp;userId=900573&#xD;
  [3]: http://community.wolfram.com//c/portal/getImageAttachment?filename=Capture.PNG&amp;amp;userId=900573&#xD;
  [4]: http://community.wolfram.com//c/portal/getImageAttachment?filename=Out.PNG&amp;amp;userId=900573&#xD;
  [5]: http://community.wolfram.com//c/portal/getImageAttachment?filename=missing.PNG&amp;amp;userId=900573&#xD;
  [6]: http://community.wolfram.com//c/portal/getImageAttachment?filename=webpage.PNG&amp;amp;userId=900573&#xD;
  [7]: http://community.wolfram.com//c/portal/getImageAttachment?filename=Capture1.PNG&amp;amp;userId=900573&#xD;
  [8]: https://www.wolframcloud.com/objects/c70049b8-e54b-4a5f-b9c7-54e041232572</description>
    <dc:creator>Astghik Saharyan</dc:creator>
    <dc:date>2016-08-19T13:44:42Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/851429">
    <title>Package for organic molecules with multiple bonds</title>
    <link>https://community.wolfram.com/groups/-/m/t/851429</link>
    <description>Are there any chemists here? I&amp;#039;ve got something for you: My [multiple bonds Demonstration][1] is now also available [as a package][2].&#xD;
&#xD;
You can plot molecules from `ChemicalData[]` or from your own MOL files. The source only needs to contain information about the positions and multiplicity of the bonds, and of course about the positions and types of the atoms.&#xD;
&#xD;
Here are a few examples of the finished result (the package itself contains more notes about the technical aspects).&#xD;
&#xD;
    Needs[&amp;#034;multiBondPlot`&amp;#034;]&#xD;
    Multicolumn[Labeled[multiBondPlot[#],#]&amp;amp;/@{&amp;#034;Benzene&amp;#034;,&amp;#034;Caffeine&amp;#034;,&amp;#034;Acetonitrile&amp;#034;,&amp;#034;TNT&amp;#034;},2]&#xD;
&#xD;
![enter image description here][3]&#xD;
&#xD;
&#xD;
&#xD;
  [1]: http://demonstrations.wolfram.com/DisplayingMoleculesWithMultipleBonds/&#xD;
  [2]: http://library.wolfram.com/infocenter/MathSource/9430/&#xD;
  [3]: http://community.wolfram.com//c/portal/getImageAttachment?filename=molecules.png&amp;amp;userId=69107</description>
    <dc:creator>Bianca Eifert</dc:creator>
    <dc:date>2016-05-04T20:21:42Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3379945">
    <title>[WELP24] Analyzing and visualizing the human protein-protein interaction network</title>
    <link>https://community.wolfram.com/groups/-/m/t/3379945</link>
    <description>![Analyzing and visualizing the human protein-protein interaction network][1]&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][2]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=group-1-cover.jpeg&amp;amp;userId=911151&#xD;
  [2]: https://www.wolframcloud.com/obj/1e321c5c-40b1-4dac-b8ef-425ca6adbb2d</description>
    <dc:creator>Wolfram Education Programs</dc:creator>
    <dc:date>2025-02-04T15:13:26Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3094660">
    <title>[WELP23] Enhancing Photosynthesis: Computational Visualizations Through Micro and Macro Scales</title>
    <link>https://community.wolfram.com/groups/-/m/t/3094660</link>
    <description>![image of glucose molecule][1]&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][2]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=image.jpeg&amp;amp;userId=911151&#xD;
  [2]: https://www.wolframcloud.com/obj/af8877e4-e217-434a-8ca6-f91935263102</description>
    <dc:creator>Wolfram Education Programs</dc:creator>
    <dc:date>2024-01-02T16:55:44Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3095845">
    <title>[WELP23] Cellular Automata Modeling of Oil Spills</title>
    <link>https://community.wolfram.com/groups/-/m/t/3095845</link>
    <description>![cellular automata oil spill][1]&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][2]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=image.png&amp;amp;userId=911151&#xD;
  [2]: https://www.wolframcloud.com/obj/6dd02fe6-7313-415d-b69c-14b25ed88af4</description>
    <dc:creator>Wolfram Education Programs</dc:creator>
    <dc:date>2024-01-03T16:48:52Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3094750">
    <title>[WELP23] Implementing Chemical Kinetics Functions to the Wolfram Language</title>
    <link>https://community.wolfram.com/groups/-/m/t/3094750</link>
    <description>&amp;amp;[Wolfram Notebook][1]&#xD;
&#xD;
&#xD;
  [1]: https://www.wolframcloud.com/obj/16a75f08-563e-4f8f-86f4-a1a4acf4354b</description>
    <dc:creator>Wolfram Education Programs</dc:creator>
    <dc:date>2024-01-02T19:31:24Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2562172">
    <title>A short study of hexose sugars</title>
    <link>https://community.wolfram.com/groups/-/m/t/2562172</link>
    <description>&amp;amp;[Wolfram Notebook][1]&#xD;
&#xD;
&#xD;
  [1]: https://www.wolframcloud.com/obj/6c93ef77-be45-4dec-860c-c14c6720af30</description>
    <dc:creator>J. M.</dc:creator>
    <dc:date>2022-07-02T14:56:03Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/178634">
    <title>Building a (rudimentary) spectrometer with Wolfram/Raspberry Pi</title>
    <link>https://community.wolfram.com/groups/-/m/t/178634</link>
    <description>[i]Note: This is an older post of mine that needed some housecleaning (I updated my website and subsequently broke the links). This project hasn&amp;#039;t been changed, but since I just got hold of a new RPi2, I may have to break out the Legos again.[/i]&#xD;
&#xD;
I describe in a [url=http://www.bobthechemist.com/interactive-chemistry/15-wolfspec-version-1-0]blog entry on my website[/url] how I went about building a basic visible spectrophotometer using the Wolfram Language, a Raspberry Pi, a few Legos and a variety of tutorials found on the web.  The spectrometer uses a white-light LED as a source. A reflective grating made out of a CD is mounted on a 512 step stepper motor to get variable wavelengths and a photoresistor is used as the detector.  The setup looks like this:&#xD;
&#xD;
[img]http://www.bobthechemist.com/images/images/rpi/oldarticles/overview.jpg[/img]&#xD;
&#xD;
As with some of my other projects discussed in the Raspberry Pi forum, I am using MathLink and the WiringPi library to handle most of my GPIO communication with the RPi.  Mathematica serves as a GUI to turn the source on/off, move the grating (and remember where the grating is positioned) and (naturally) plot and process the results:&#xD;
&#xD;
[img]http://www.bobthechemist.com/images/images/rpi/oldarticles/results.png[/img]&#xD;
&#xD;
It&amp;#039;s not a terribly sophisticated interface - merely a palette with some buttons, but it does the trick.  You&amp;#039;ll see in the above image that there is much room for improvement with respect to my &amp;#034;spectra&amp;#034;.  The primary issues here are (a) my stepper motor only allows for about 32 steps across the visible spectrum and (b) the low-budget method for measuring the detector response results in a fair amount of noise.  Still, (not shown) the reproducibility is decent given the lack of sophistication and the setup demonstrates how Wolfram/RPi can be used to make a basic instrument for learning and discovery.&#xD;
&#xD;
In addition to posting some improvements to the instrument, I&amp;#039;m hoping to show how it can be used for some DIY science experiments - it would be great to see a WolfSpec derivative in a future science fair project...</description>
    <dc:creator>BoB LeSuer</dc:creator>
    <dc:date>2014-01-04T16:26:29Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2669803">
    <title>Using MoleculePattern and PatternReaction to learn about amino acids</title>
    <link>https://community.wolfram.com/groups/-/m/t/2669803</link>
    <description>My daughter in high-school is learning about amino acids, peptides and proteins. I&amp;#039;ve been playing around with the new capability to symbolically represent molecules and reactions to see how far I get with amino acids.&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][1]&#xD;
&#xD;
&#xD;
  [1]: https://www.wolframcloud.com/obj/bd8df71c-5635-46d2-b833-0d70a3b3011c</description>
    <dc:creator>Tamas Simon</dc:creator>
    <dc:date>2022-10-24T19:00:12Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3721709">
    <title>Titration of a diprotic acid by strong base</title>
    <link>https://community.wolfram.com/groups/-/m/t/3721709</link>
    <description>&amp;amp;[Wolfram Notebook][1]&#xD;
&#xD;
&#xD;
  [1]: https://www.wolframcloud.com/obj/27f0a4ee-141f-4d58-a5d5-957436b322f1</description>
    <dc:creator>Housam Binous</dc:creator>
    <dc:date>2026-05-25T06:35:10Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3503212">
    <title>[WSRP25] Simulating surfactant-water interactions for applications in cloud seeding</title>
    <link>https://community.wolfram.com/groups/-/m/t/3503212</link>
    <description>![A visual representation of cloud seeding, where the blue molecules represent Cloud Condensation Nuclei attracting water molecules][1]   &#xD;
&#xD;
&amp;amp;[Wolfram Notebook][2]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Screenshot2025-07-10at5.16.37%E2%80%AFPM.png&amp;amp;userId=3493403&#xD;
  [2]: https://www.wolframcloud.com/obj/000cbc2e-d168-471c-8489-81b07271772b</description>
    <dc:creator>Yuti Purohit</dc:creator>
    <dc:date>2025-07-10T22:12:48Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3359290">
    <title>Ideal cycle using R134a</title>
    <link>https://community.wolfram.com/groups/-/m/t/3359290</link>
    <description>&amp;amp;[Wolfram Notebook][1]&#xD;
&#xD;
&#xD;
  [1]: https://www.wolframcloud.com/obj/6e3750f7-a745-4c1e-ab2c-ce7ca0c9411e</description>
    <dc:creator>Housam Binous</dc:creator>
    <dc:date>2025-01-18T13:54:49Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3278492">
    <title>Fatty Acid 2D and 3D molecule animation</title>
    <link>https://community.wolfram.com/groups/-/m/t/3278492</link>
    <description>![enter image description here][1]&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][2]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=6249hero.png&amp;amp;userId=20103&#xD;
  [2]: https://www.wolframcloud.com/obj/fc1f26f4-4c75-4fa8-b097-c8926551933a</description>
    <dc:creator>Arihant Gadgade</dc:creator>
    <dc:date>2024-09-20T16:36:50Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2925998">
    <title>Computation of the Bifurcation Diagram for the Three-Variable Autocatalator</title>
    <link>https://community.wolfram.com/groups/-/m/t/2925998</link>
    <description>&amp;amp;[Wolfram Notebook][1]&#xD;
&#xD;
&#xD;
  [1]: https://www.wolframcloud.com/obj/331f466f-9901-498d-9fc6-00610c892d78</description>
    <dc:creator>Housam Binous</dc:creator>
    <dc:date>2023-05-26T19:45:33Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2176406">
    <title>PSE in the classroom</title>
    <link>https://community.wolfram.com/groups/-/m/t/2176406</link>
    <description>First we set up the elements:&#xD;
&#xD;
    PSEelements[list_, col_] := &#xD;
     Map[Item[Style[#, FontFamily -&amp;gt; &amp;#034;Ink Free&amp;#034;], Background -&amp;gt; col, &#xD;
        Frame -&amp;gt; Black] &amp;amp;, list]&#xD;
    s = LightRed; p = LightYellow; d = LightBlue; f = LightGreen;&#xD;
    S1 = PSEelements[{&amp;#034;H&amp;#034;, &amp;#034;He&amp;#034;}, s];&#xD;
    S2 = PSEelements[{&amp;#034;Li&amp;#034;, &amp;#034;Be&amp;#034;}, s];&#xD;
    P2 = PSEelements[{&amp;#034;B&amp;#034;, &amp;#034;C&amp;#034;, &amp;#034;N&amp;#034;, &amp;#034;O&amp;#034;, &amp;#034;F&amp;#034;, &amp;#034;Ne&amp;#034;}, p];&#xD;
    S3 = PSEelements[{&amp;#034;Na&amp;#034;, &amp;#034;Mg&amp;#034;}, s];&#xD;
    P3 = PSEelements[{&amp;#034;Al&amp;#034;, &amp;#034;Si&amp;#034;, &amp;#034;P&amp;#034;, &amp;#034;S&amp;#034;, &amp;#034;Cl&amp;#034;, &amp;#034;Ar&amp;#034;}, p];&#xD;
    S4 = PSEelements[{&amp;#034;K&amp;#034;, &amp;#034;Ca&amp;#034;}, s];&#xD;
    P4 = PSEelements[{&amp;#034;Ga&amp;#034;, &amp;#034;Ge&amp;#034;, &amp;#034;As&amp;#034;, &amp;#034;Se&amp;#034;, &amp;#034;Br&amp;#034;, &amp;#034;Kr&amp;#034;}, p];&#xD;
    S5 = PSEelements[{&amp;#034;Rb&amp;#034;, &amp;#034;Sr&amp;#034;}, s];&#xD;
    P5 = PSEelements[{&amp;#034;In&amp;#034;, &amp;#034;Sn&amp;#034;, &amp;#034;Sb&amp;#034;, &amp;#034;Te&amp;#034;, &amp;#034;I&amp;#034;, &amp;#034;Xe&amp;#034;}, p];&#xD;
    S6 = PSEelements[{&amp;#034;Cs&amp;#034;, &amp;#034;Ba&amp;#034;}, s];&#xD;
    P6 = PSEelements[{&amp;#034;Tl&amp;#034;, &amp;#034;Pb&amp;#034;, &amp;#034;Bi&amp;#034;, &amp;#034;Po&amp;#034;, &amp;#034;At&amp;#034;, &amp;#034;Rn&amp;#034;}, p];&#xD;
    S7 = PSEelements[{&amp;#034;Fr&amp;#034;, &amp;#034;Ra&amp;#034;}, s];&#xD;
    P7 = PSEelements[{&amp;#034;Nh&amp;#034;, &amp;#034;Fl&amp;#034;, &amp;#034;Mc&amp;#034;, &amp;#034;Lv&amp;#034;, &amp;#034;Ts&amp;#034;, &amp;#034;Og&amp;#034;}, p];&#xD;
    D3 = PSEelements[{&amp;#034;Sc&amp;#034;, &amp;#034;Ti&amp;#034;, &amp;#034;V&amp;#034;, &amp;#034;Cr&amp;#034;, &amp;#034;Mn&amp;#034;, &amp;#034;Fe&amp;#034;, &amp;#034;Co&amp;#034;, &amp;#034;Ni&amp;#034;, &amp;#034;Cu&amp;#034;,&#xD;
         &amp;#034;Zn&amp;#034;}, d];&#xD;
    D4 = PSEelements[{&amp;#034;Y&amp;#034;, &amp;#034;Zr&amp;#034;, &amp;#034;Nb&amp;#034;, &amp;#034;Mo&amp;#034;, &amp;#034;Tc&amp;#034;, &amp;#034;Ru&amp;#034;, &amp;#034;Rh&amp;#034;, &amp;#034;Pd&amp;#034;, &amp;#034;Ag&amp;#034;,&#xD;
         &amp;#034;Cd&amp;#034;}, d];&#xD;
    D5 = PSEelements[{&amp;#034;La&amp;#034;, &amp;#034;Hf&amp;#034;, &amp;#034;Ta&amp;#034;, &amp;#034;W&amp;#034;, &amp;#034;Re&amp;#034;, &amp;#034;Os&amp;#034;, &amp;#034;Ir&amp;#034;, &amp;#034;Pt&amp;#034;, &amp;#034;Au&amp;#034;,&#xD;
         &amp;#034;Hg&amp;#034;}, d];&#xD;
    D6 = PSEelements[{&amp;#034;Ac&amp;#034;, &amp;#034;Rf&amp;#034;, &amp;#034;Db&amp;#034;, &amp;#034;Sg&amp;#034;, &amp;#034;Bh&amp;#034;, &amp;#034;Hs&amp;#034;, &amp;#034;Mt&amp;#034;, &amp;#034;Ds&amp;#034;, &#xD;
        &amp;#034;Rg&amp;#034;, &amp;#034;Cn&amp;#034;}, d];&#xD;
    F4 = PSEelements[{&amp;#034;Ce&amp;#034;, &amp;#034;Pr&amp;#034;, &amp;#034;Nd&amp;#034;, &amp;#034;Pm&amp;#034;, &amp;#034;Sm&amp;#034;, &amp;#034;Eu&amp;#034;, &amp;#034;Gd&amp;#034;, &amp;#034;Tb&amp;#034;, &#xD;
        &amp;#034;Dy&amp;#034;, &amp;#034;Ho&amp;#034;, &amp;#034;Er&amp;#034;, &amp;#034;Tm&amp;#034;, &amp;#034;Yb&amp;#034;, &amp;#034;Lu&amp;#034;}, f];&#xD;
    F5 = PSEelements[{&amp;#034;Th&amp;#034;, &amp;#034;Pa&amp;#034;, &amp;#034;U&amp;#034;, &amp;#034;Np&amp;#034;, &amp;#034;Pu&amp;#034;, &amp;#034;Am&amp;#034;, &amp;#034;Cm&amp;#034;, &amp;#034;Bk&amp;#034;, &amp;#034;Cf&amp;#034;,&#xD;
         &amp;#034;Es&amp;#034;, &amp;#034;Fm&amp;#034;, &amp;#034;Md&amp;#034;, &amp;#034;No&amp;#034;, &amp;#034;Lr&amp;#034;}, f];&#xD;
    all = Join[S1, S2, P2, S3, P3, S4, D3, P4, S5, D4, P5, S6, D5, F4, P6,&#xD;
        S7, D6, F5, P7];&#xD;
&#xD;
Then a simple eight column PSE is constructed (highlighting H an He):&#xD;
&#xD;
    Grid[PSE8 = {Join[{First[S1]}, Table[&amp;#034;&amp;#034;, 6], {Last[S1]}], &#xD;
       Join[S2, P2], Join[S3, P3], Join[S4, P4], Join[S5, P5], &#xD;
       Join[S6, P6]}, Spacings -&amp;gt; {1, 1}, &#xD;
     ItemStyle -&amp;gt; {Automatic, &#xD;
       Automatic, {{1, 1} -&amp;gt; Directive[Bold, Blue], {1, 8} -&amp;gt; &#xD;
         Directive[Bold, Blue]}}]&#xD;
&#xD;
Which gives:&#xD;
&#xD;
![enter image description here][1]&#xD;
&#xD;
And now highlighting the Alkaline earth elements:&#xD;
&#xD;
    Grid[PSE8, &#xD;
     ItemStyle -&amp;gt; {Automatic, Automatic, &#xD;
       Table[{i, 2} -&amp;gt; Directive[Bold, Blue], {i, 2, 7}]}]&#xD;
&#xD;
Looks like:&#xD;
&#xD;
![enter image description here][2]&#xD;
&#xD;
Here we have a standard 18 column PSE with ferromagnetic elements highlighted:&#xD;
&#xD;
    Grid[PSE18 = {Join[{S1[[1]]}, Table[&amp;#034;&amp;#034;, 6 + 10], {S1[[2]]}], &#xD;
       Join[S2, Table[&amp;#034;&amp;#034;, 10], P2], Join[S3, Table[&amp;#034;&amp;#034;, 10], P3], &#xD;
       Join[S4, D3, P4], Join[S5, D4, P5], Join[S6, D5, P6], &#xD;
       Join[S7, D6, P7]}, &#xD;
     ItemStyle -&amp;gt; {Automatic, Automatic, &#xD;
       Table[{4, i} -&amp;gt; Directive[Bold, Blue], {i, 8, 10}]}]&#xD;
&#xD;
gives:&#xD;
&#xD;
![enter image description here][3]&#xD;
&#xD;
A full PSE with still 18 columns and all elements without stable isotope marked:&#xD;
&#xD;
    Grid[PSE18full = &#xD;
      Join[PSE18, {Table[&amp;#034;&amp;#034;, 6 + 10 + 14], Join[Table[&amp;#034;&amp;#034;, 3], F4], &#xD;
        Join[Table[&amp;#034;&amp;#034;, 3], F5]}], &#xD;
     ItemStyle -&amp;gt; {Automatic, Automatic, &#xD;
       Join[{{5, 7} -&amp;gt; Directive[Red, Bold], {9, 7} -&amp;gt; &#xD;
          Directive[Red, Bold]}, &#xD;
        Table[{6, i} -&amp;gt; Directive[Red, Bold], {i, 15, 18}], &#xD;
        Table[{7, i} -&amp;gt; Directive[Red, Bold], {i, 1, 18}], &#xD;
        Table[{10, i} -&amp;gt; Directive[Red, Bold], {i, 4, 17}]]}]&#xD;
&#xD;
I never noticed before that there is no stable isotope for Pm:&#xD;
&#xD;
![enter image description here][4]&#xD;
&#xD;
alternatively:&#xD;
&#xD;
    Grid[{Join[{S1[[1]]}, Table[&amp;#034;&amp;#034;, 6 + 10], {S1[[2]]}], &#xD;
      Join[S2, Table[&amp;#034;&amp;#034;, 10], P2], Join[S3, Table[&amp;#034;&amp;#034;, 10], P3], &#xD;
      Join[S4, D3, P4], Join[S5, D4, P5], Join[S6, {&amp;#034;&amp;#034;}, Rest[D5], P6], &#xD;
      Join[S7, {&amp;#034;&amp;#034;}, Rest[D6], P7], Table[&amp;#034;&amp;#034;, 6 + 10 + 14], &#xD;
      Join[Table[&amp;#034;&amp;#034;, 2], {First[D5]}, F4], &#xD;
      Join[Table[&amp;#034;&amp;#034;, 2], {First[D6]}, F5]}, &#xD;
     ItemStyle -&amp;gt; {Automatic, Automatic, &#xD;
       Join[{{5, 7} -&amp;gt; Directive[Red, Bold], {9, 7} -&amp;gt; &#xD;
          Directive[Red, Bold]}, &#xD;
        Table[{6, i} -&amp;gt; Directive[Red, Bold], {i, 15, 18}], &#xD;
        Table[{7, i} -&amp;gt; Directive[Red, Bold], {i, 1, 18}], &#xD;
        Table[{10, i} -&amp;gt; Directive[Red, Bold], {i, 3, 17}]]}]&#xD;
&#xD;
gives:&#xD;
&#xD;
![enter image description here][5]&#xD;
&#xD;
and a 32 column layout:&#xD;
&#xD;
    Grid[PSE32 = {Join[{S1[[1]]}, Table[&amp;#034;&amp;#034;, 6 + 10 + 14], {S1[[2]]}], &#xD;
       Join[S2, Table[&amp;#034;&amp;#034;, 10 + 14], P2], Join[S3, Table[&amp;#034;&amp;#034;, 10 + 14], P3],&#xD;
        Join[S4, {First[D3]}, Table[&amp;#034;&amp;#034;, 14], Rest[D3], P4], &#xD;
       Join[S5, {First[D4]}, Table[&amp;#034;&amp;#034;, 14], Rest[D4], P5], &#xD;
       Join[S6, {First[D5]}, F4, Rest[D5], P6], &#xD;
       Join[S7, {First[D6]}, F5, Rest[D6], P7]}, Spacings -&amp;gt; {0.5, 0.5}, &#xD;
     ItemStyle -&amp;gt; {Automatic, Automatic, &#xD;
       Join[{{5, 21} -&amp;gt; Directive[Red, Bold], {6, 7} -&amp;gt; &#xD;
          Directive[Red, Bold]}, &#xD;
        Table[{6, i} -&amp;gt; Directive[Red, Bold], {i, 29, 32}], &#xD;
        Table[{7, i} -&amp;gt; Directive[Red, Bold], {i, 1, 32}], &#xD;
        Table[{10, i} -&amp;gt; Directive[Red, Bold], {i, 4, 17}]]}]&#xD;
&#xD;
&#xD;
gives:&#xD;
&#xD;
![enter image description here][6]&#xD;
&#xD;
and finally a more artistic PSE view:&#xD;
&#xD;
    r = 0.3; Graphics[{&#xD;
      (*n=1*)&#xD;
      Circle[{0, 0}, 1], &#xD;
      shell = CirclePoints[2]; {LightRed, EdgeForm[Black], &#xD;
       Map[Disk[#, r] &amp;amp;, shell]}, {MapIndexed[Text[all[[#2[[1]]]], #1] &amp;amp;, &#xD;
        shell]},&#xD;
      (*n=2*)&#xD;
      Circle[{0, 0}, 2], &#xD;
      shell = CirclePoints[{2, 0 \[Degree]}, 8]; {LightRed, &#xD;
       EdgeForm[Black], Map[Disk[#, r] &amp;amp;, Take[shell, 2]], LightYellow, &#xD;
       Map[Disk[#, r] &amp;amp;, Take[shell, -6]]}, {MapIndexed[&#xD;
        Text[all[[#2[[1]] + 2]], #1] &amp;amp;, shell]},&#xD;
      (*n=3*)&#xD;
      Circle[{0, 0}, 3], &#xD;
      shell = CirclePoints[{3, 0 \[Degree]}, 8]; {LightRed, &#xD;
       EdgeForm[Black], Map[Disk[#, r] &amp;amp;, Take[shell, 2]], LightYellow, &#xD;
       Map[Disk[#, r] &amp;amp;, Take[shell, -6]]}, {MapIndexed[&#xD;
        Text[all[[#2[[1]] + 2 + 8]], #1] &amp;amp;, shell]},&#xD;
      (*n=4*)&#xD;
      Circle[{0, 0}, 4], &#xD;
      shell = CirclePoints[{4, 0 \[Degree]}, 18]; {LightRed, &#xD;
       EdgeForm[Black], Map[Disk[#, r] &amp;amp;, Take[shell, 2]], LightYellow, &#xD;
       Map[Disk[#, r] &amp;amp;, Take[shell, {3, 8}]], LightBlue, &#xD;
       Map[Disk[#, r] &amp;amp;, Take[shell, -10]]}, {MapIndexed[&#xD;
        Text[all[[#2[[1]] + 2 + 2 8]], #1] &amp;amp;, shell]},&#xD;
      (*n=5*)&#xD;
      Circle[{0, 0}, 5], &#xD;
      shell = CirclePoints[{5, 0 \[Degree]}, 18]; {LightRed, &#xD;
       EdgeForm[Black], Map[Disk[#, r] &amp;amp;, Take[shell, 2]], LightYellow, &#xD;
       Map[Disk[#, r] &amp;amp;, Take[shell, {3, 8}]], LightBlue, &#xD;
       Map[Disk[#, r] &amp;amp;, Take[shell, -10]]}, {MapIndexed[&#xD;
        Text[all[[#2[[1]] + 2 + 2 8 + 18]], #1] &amp;amp;, shell]},&#xD;
      (*n=6*)&#xD;
      Circle[{0, 0}, 6], &#xD;
      shell = CirclePoints[{6, 0 \[Degree]}, 32]; {LightRed, &#xD;
       EdgeForm[Black], Map[Disk[#, r] &amp;amp;, Take[shell, 2]], LightYellow, &#xD;
       Map[Disk[#, r] &amp;amp;, Take[shell, {3, 8}]], LightBlue, &#xD;
       Map[Disk[#, r] &amp;amp;, Take[shell, {9, 18}]], LightGreen, &#xD;
       Map[Disk[#, r] &amp;amp;, Take[shell, -14]]}, {MapIndexed[&#xD;
        Text[all[[#2[[1]] + 2 + 2 8 + 2 18]], #1] &amp;amp;, shell]},&#xD;
      (*n=7*)&#xD;
      Circle[{0, 0}, 7], &#xD;
      shell = CirclePoints[{7, 0 \[Degree]}, 32]; {LightRed, &#xD;
       EdgeForm[Black], Map[Disk[#, r] &amp;amp;, Take[shell, 2]], LightYellow, &#xD;
       Map[Disk[#, r] &amp;amp;, Take[shell, {3, 8}]], LightBlue, &#xD;
       Map[Disk[#, r] &amp;amp;, Take[shell, {9, 18}]], LightGreen, &#xD;
       Map[Disk[#, r] &amp;amp;, Take[shell, -14]]}, {MapIndexed[&#xD;
        Text[all[[#2[[1]] + 2 + 2 8 + 2 18 + 32]], #1] &amp;amp;, shell]}}]&#xD;
&#xD;
PSE in circles:&#xD;
&#xD;
![enter image description here][7]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=PSE8.png&amp;amp;userId=1094216&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=PSE8b.png&amp;amp;userId=1094216&#xD;
  [3]: https://community.wolfram.com//c/portal/getImageAttachment?filename=PSE18.png&amp;amp;userId=1094216&#xD;
  [4]: https://community.wolfram.com//c/portal/getImageAttachment?filename=PSE18full.png&amp;amp;userId=1094216&#xD;
  [5]: https://community.wolfram.com//c/portal/getImageAttachment?filename=PSE18full2.png&amp;amp;userId=1094216&#xD;
  [6]: https://community.wolfram.com//c/portal/getImageAttachment?filename=PSE32.png&amp;amp;userId=1094216&#xD;
  [7]: https://community.wolfram.com//c/portal/getImageAttachment?filename=pse.png&amp;amp;userId=1094216</description>
    <dc:creator>Oliver Seipel</dc:creator>
    <dc:date>2021-01-27T13:49:52Z</dc:date>
  </item>
</rdf:RDF>

