Class ComplexImpl

All Implemented Interfaces:
Serializable, Cloneable, BioPAXElement, Complex, Controller, Entity, Level3Element, Named, Observable, PhysicalEntity, XReferrable

public class ComplexImpl extends PhysicalEntityImpl implements Complex
See Also:
  • Constructor Details

    • ComplexImpl

      public ComplexImpl()
  • Method Details

    • getModelInterface

      public Class<? extends Complex> getModelInterface()
      Description copied from interface: PhysicalEntity
      Overridden to provide better downcasting
      Specified by:
      getModelInterface in interface BioPAXElement
      Specified by:
      getModelInterface in interface PhysicalEntity
      Overrides:
      getModelInterface in class PhysicalEntityImpl
      Returns:
      an interface from org.biopax.paxtools.model package corresponding to a BioPAX class.
    • getComponent

      public Set<PhysicalEntity> getComponent()
      Description copied from interface: Complex
      Defines the PhysicalEntity subunits of this complex. This property should not contain other complexes, i.e. it should always be a flat representation of the complex. For example, if two protein complexes join to form a single larger complex via a complex assembly interaction, the component of the new complex should be the individual proteins of the smaller complexes, not the two smaller complexes themselves. Exceptions are black-box complexes (i.e. complexes in which the component property is empty), which may be used as component of other complexes because their constituent parts are unknown / unspecified. The reason for keeping complexes flat is to signify that there is no information stored in the way complexes are nested, such as assembly order. Otherwise, the complex assembly order may be implicitly encoded and interpreted by some users, while others created hierarchical complexes randomly, which could lead to data loss. Additionally, the physicalEntityParticipants used in the component property are in the context of the complex, thus should not be reused between complexes. For instance, a protein may participate in two different complexes, but have different conformation in each.
      Specified by:
      getComponent in interface Complex
      Returns:
      components of this complex
    • addComponent

      public void addComponent(PhysicalEntity component)
      Description copied from interface: Complex
      Defines the PhysicalEntity subunits of this complex. This property should not contain other complexes, i.e. it should always be a flat representation of the complex. For example, if two protein complexes join to form a single larger complex via a complex assembly interaction, the component of the new complex should be the individual proteins of the smaller complexes, not the two smaller complexes themselves. Exceptions are black-box complexes (i.e. complexes in which the component property is empty), which may be used as component of other complexes because their constituent parts are unknown / unspecified. The reason for keeping complexes flat is to signify that there is no information stored in the way complexes are nested, such as assembly order. Otherwise, the complex assembly order may be implicitly encoded and interpreted by some users, while others created hierarchical complexes randomly, which could lead to data loss. Additionally, the physicalEntityParticipants used in the component property are in the context of the complex, thus should not be reused between complexes. For instance, a protein may participate in two different complexes, but have different conformation in each.
      Specified by:
      addComponent in interface Complex
      Parameters:
      component - to be added as a new member
    • removeComponent

      public void removeComponent(PhysicalEntity component)
      Description copied from interface: Complex
      Defines the PhysicalEntity subunits of this complex. This property should not contain other complexes, i.e. it should always be a flat representation of the complex. For example, if two protein complexes join to form a single larger complex via a complex assembly interaction, the component of the new complex should be the individual proteins of the smaller complexes, not the two smaller complexes themselves. Exceptions are black-box complexes (i.e. complexes in which the component property is empty), which may be used as component of other complexes because their constituent parts are unknown / unspecified. The reason for keeping complexes flat is to signify that there is no information stored in the way complexes are nested, such as assembly order. Otherwise, the complex assembly order may be implicitly encoded and interpreted by some users, while others created hierarchical complexes randomly, which could lead to data loss. Additionally, the physicalEntityParticipants used in the component property are in the context of the complex, thus should not be reused between complexes. For instance, a protein may participate in two different complexes, but have different conformation in each.
      Specified by:
      removeComponent in interface Complex
      Parameters:
      component - to be removed from members.
    • setComponent

      protected void setComponent(Set<PhysicalEntity> component)
    • getComponentStoichiometry

      public Set<Stoichiometry> getComponentStoichiometry()
      Description copied from interface: Complex
      The stoichiometry of components in a complex.
      Specified by:
      getComponentStoichiometry in interface Complex
      Returns:
      the stoichiometry of components in a complex.
    • addComponentStoichiometry

      public void addComponentStoichiometry(Stoichiometry stoichiometry)
      Description copied from interface: Complex
      The stoichiometry of components in a complex.
      Specified by:
      addComponentStoichiometry in interface Complex
      Parameters:
      stoichiometry - add a stoichiometry for the member.
    • removeComponentStoichiometry

      public void removeComponentStoichiometry(Stoichiometry stoichiometry)
      Description copied from interface: Complex
      The stoichiometry of components in a complex.
      Specified by:
      removeComponentStoichiometry in interface Complex
      Parameters:
      stoichiometry - remove a stoichiometry for the member.
    • setComponentStoichiometry

      protected void setComponentStoichiometry(Set<Stoichiometry> stoichiometry)
    • getSimpleMembers

      public Set<SimplePhysicalEntity> getSimpleMembers()
      Description copied from interface: Complex
      Gets the member physical entities which are not complex. When the complex is nested, members of inner complexes are added to the returned set recursively.
      Specified by:
      getSimpleMembers in interface Complex
      Returns:
      non-complex member physical entities
    • getSimpleMembers

      protected Set<SimplePhysicalEntity> getSimpleMembers(Set<SimplePhysicalEntity> set)
    • collectSimpleMembersRecursive

      protected void collectSimpleMembersRecursive(PhysicalEntity pe, Set<SimplePhysicalEntity> set)
    • getMemberReferences

      public Set<EntityReference> getMemberReferences()
      Description copied from interface: Complex
      Gets the EntityReferences of the member simple physical entities. When the complex is nested, contents of the member complexes are retrieved recursively.
      Specified by:
      getMemberReferences in interface Complex
      Returns:
      non-complex members' entity references
    • semanticallyEquivalent

      protected boolean semanticallyEquivalent(BioPAXElement element)
      Overrides:
      semanticallyEquivalent in class PhysicalEntityImpl