Insight for Excel: How can a protocol return multiple structures per row to Insight for Excel?

Sometimes you might want to return multiple structure columns to Insight for Excel from a protocol. For example, you have a column with structures and want to use a protocol to enumerate their tautomers. Each tautomer should then be placed in an individual cell on the same row to the right of each input molecule.

The Insight for Excel Data Writer does not support writing multiple chemistry columns so you will need to do some tricks to place additional chemistry in the same row as the original chemistry but it can be done.

What you need to do is to return the molecules in the PP Chemistry format as a compressed Base64 encoded string. Then you also need to tell the Insight for Excel client which column(s) has the chemistry data so that it can be rendered. This is done by passing the column name in a special "hidden" property named "__ixl_ChemistryPropertyName".

The attached protocol (EnumerateTautomers.ppxml) shows how this can be done. Since the "Enumerate Tautomers" component creates new data rows, It first indexes the original rows so that it can later merge the data on this property to eventually output the tautomers on the same row as the original structure. It also uses two sub-protocols set to "Run to Completion" so that the original structures and each generated tautomer can be processed separately.

​​​​​​​