SynBioDex / pySBOL2

A pure Python implementation of the SBOL standard.
Apache License 2.0
20 stars 6 forks source link

Adding Interaction to ComponentDefinition #437

Open manulera opened 5 months ago

manulera commented 5 months ago

Related to the converter issue https://github.com/SynBioDex/SBOL-utilities/issues/248

How do you add an interaction to a componentdefinition in pySBOL2? I don't see a property or method to do so, and I did not find info in the mapping documentation of the spec.

jakebeal commented 5 months ago

In SBOL2, a ComponentDefinition contains only structural information (features, constraints, and sequences) and a ModuleDefinition contains only functional information (modules, interactions, and models).

As a consequence, an Interaction can only be added to a ModuleDefinition - there is no such property in ComponentDefinition.

Combining sbol2.ComponentDefinition and sbol2.ModuleDefinition into sbol3.Component was one of the key simplifying innovations for SBOL3, but does make like more difficult when converting SBOL3 into SBOL2, since a single sbol3.Component may need to be split into two or more SBOL2 objects.