diff --git a/.gitignore b/.gitignore index 39aa9026..f9bf9c80 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,5 @@ temp_testing/* build dist Issues/rule_keywords/test_DeleteMolecules_changed.bngl +.jules/ +__pycache__/ diff --git a/bionetgen/atomizer/writer/bnglWriter.py b/bionetgen/atomizer/writer/bnglWriter.py index d6a446e7..aa06211d 100644 --- a/bionetgen/atomizer/writer/bnglWriter.py +++ b/bionetgen/atomizer/writer/bnglWriter.py @@ -116,16 +116,19 @@ def balanceTranslator(reactant, product, translator): for rMolecule in rMolecules: for pMolecule in pMolecules: if rMolecule.name == pMolecule.name: + pMolecule_component_names = {y.name for y in pMolecule.components} + rMolecule_component_names = {y.name for y in rMolecule.components} + overFlowingComponents = [ x for x in rMolecule.components - if x.name not in [y.name for y in pMolecule.components] + if x.name not in pMolecule_component_names ] overFlowingComponents.extend( [ x for x in pMolecule.components - if x.name not in [y.name for y in rMolecule.components] + if x.name not in rMolecule_component_names ] ) rMolecule.removeComponents(overFlowingComponents)