Procedures for adding to or editing the PPAPs table.

Which situation applies?
I want to add a new compound to the PPAPs table.
I want to correct the structure of a previously described compound.
I want to add a new reference to a compound's record because it has been rediscovered and assigned a different name.


We have structured the database as follows. We store the database in the text file, ../data.js. All of the compound information (except the MOL representations) is stored in an array (level 0) of level 1 arrays.

  1. Each level 1 array contains two or more level 2 arrays.
    1. The first level 2 array contains an indeterminate number of strings: the first string is the name of the ChemDraw and PNG documents that contain the drawing of a singleton or generic structure, and subsequent strings contain search terms that describe the structure.
    2. All subsequent level 2 arrays consist of five-membered arrays, each of which represents a single compound.
      1. The first member of the level 2 array contains the list of groups (Me, prenyl, CH<sub>2</sub>CH<sub>2</sub>CHMe=CH<sub>2</sub>, etc.) that one substitutes for R and X groups in the generic structure to acquire the compound's structure; the member is either an empty string, a string, or an array of strings, depending on whether the named structure has no, one, or more than one R or X group associated with it.
      2. The second member of the level 2 array is either a string representing the name of the compound, or a two-string array representing the name of the compound and its associated footnotes.
      3. The third member of the level 2 array is a string containing the name of the source (usually a plant) from which this compound was first isolated. Occasionally, more than one source is cited.
      4. The fourth member of the level 2 array is a string containing the compound's specific rotation and, in parentheses, the concentration at which the specific rotation was measured and an abbreviation for the solvent (m for methanol and nothing for chloroform) in which it was measured.
      5. The fifth member of the level 2 array is either a two-string array or an array of two-string arrays. The first string in each two-string array is the name of the first author and the publication year of the article describing this compound; the second is a hyperlink to the article's DOI. An array of two-string arrays is needed when a compound's structure is corrected or the compound is rediscovered and given a different name.

Here are three representative level 1 arrays describing, respectively, one, two, and five compounds associated with single structures. We show the structures associated with the level 1 array for clarity, but the structures do not appear in ../data.js. Mouse over the brown areas for commentary.

[ ['hyperfirin', 'A', 'noC7', 'uncaged', 'bicyclononanes'], [ '', 'hyperfirin', 'H. perforatum', 'NR', ['Tatsis 2007', 'doi.org/10.1016/j.phytochem.2006.11.026'] ] ],
[ ['kiiacylphnolA', 'exo', 'A', 'uncaged', 'bicyclononanes'], [ 'i-Pr', ['kiiacylphnol A', 'c'], // footnote c 'H. przewalskii Maxim', '+13 (0.1, m)', ['Y. Duan 2022a', 'doi.org/10.1016/j.phytochem.2022.113166'] ], [ 's-Bu', ['kiiacylphnol B', 'c,e'], // footnote c footnote e 'H. przewalskii Maxim', '+22 (0.6, m)', ['Y. Duan 2022a', 'doi.org/10.1016/j.phytochem.2022.113166'] ] ],
[ 'plukenetioneF', 'endo', 'A', 'uncaged', 'bicyclononanes'], [ [ 'prenyl', 'H' ], 'plukenetione F', 'C. plukenetii', '−53.6 (0.03)', ['Henry 1999', 'doi.org/10.1016/S0040-4020(98)01203-4'] ], [ 'prenyl', 'prenyl' ], 'hypersampsone F', 'H. sampsonii', '+30 (0.2)', [ ['Y.-L. Lin 2003', 'doi.org/10.1002/hlca.200390173'], ['Ciochina 2006', 'doi.org/10.1021/cr0500582'] ] ], [ [ '<a href="https://en.wikipedia.org/wiki/Lavandulyl_acetate">lavandulyl</a>', 'H' ], ['garcimultine A', 'e', '<br/>(equilibrates rapidly with regioisomer <a href="#garcimultine B">garcimultine B</a>)'], // footnote e 'G. multiflora', 'mixture with garcimultine B: +79.4 (0.336, m)', ['H. Liu 2017', 'doi.org/10.1039/C7RA04208F'] ], [ [ '(S)-CH<sub>2</sub>CH(CMe<sub>2</sub>OH)CH<sub>2</sub>CH=CMe<sub>2</sub>', 'H' ], ['garcimultinone H', 'd'], // footnote d 'G. multiflora', '+35.0 (0.02, m)', ['Teng 2021', 'doi.org/10.3389/fchem.2021.756452'] ], [ [ '(2R,3E)-CH<sub>2</sub>CH(CMe=CH<sub>2</sub>)CH=CHCMe<sub>2</sub>OH', 'H' ], ['garcimultiflorone K', 'c,t,u,x', '(one of two by that name)'], // footnote c footnote t footnote u footnote x 'G. multiflora', '−1.1 (0.090, m)', ['Z.-Q. Wang 2018', 'doi.org/10.1016/j.phytochem.2018.04.019'] ] ]

We also define footnotes in ../data.js as an array of strings. Do not change the order of the strings. If you no longer need an existing footnote, you may delete the text of the footnote, but leave an empty string to hold its place. You can use the linkToRef() method to insert references into the footnotes; see the existing examples in ../data.js.