001package org.biopax.paxtools.model.level3;
002
003/**
004 * Stoichiometric coefficient of a physical entity in the context of a conversion or complex. For
005 * each participating element there must be 0 or 1 stoichiometry element. A non-existing
006 * stoichiometric element is treated as unknown. This is an n-ary bridge for left, right and
007 * component properties.
008 */
009public interface Stoichiometry extends UtilityClass
010{
011
012
013        /**
014         * @return the physical entity to be annotated with stoichiometry.
015         */
016        PhysicalEntity getPhysicalEntity();
017
018        /**
019         * @param physicalEntity entity to be annotated with stoichiometry.
020         */
021        void setPhysicalEntity(PhysicalEntity physicalEntity);
022
023
024        /**
025         * Stoichiometric coefficient of the physicalEntity specified by {@link #getPhysicalEntity()} in
026         * the context of the owner interaction or complex. This value can be any rational number. Generic
027         * values such as "n" or "n+1" should not be used - polymers are currently not covered.
028         *
029         * @return Stoichiometric coefficient for one of the entities in an interaction or complex
030         */
031        float getStoichiometricCoefficient();
032
033        /**
034         * Sets the stoichiometric coefficient of the physicalEntity specified by {@link
035         * #getPhysicalEntity()} in the context of the owner interaction or complex. { can be any
036         * rational number. Generic values such as "n" or "n+1" should not be used - polymers are currently
037         * not covered.
038         *
039         * @param newStoichiometricCoefficient of the physical entity
040         */
041        void setStoichiometricCoefficient(float newStoichiometricCoefficient);
042}