INDRA Statements (indra.statements
)¶
Statements represent mechanistic relationships between biological agents.
Statement classes follow an inheritance hierarchy, with all Statement types
inheriting from the parent class Statement
. At
the next level in the hierarchy are the following classes:
Complex
Modification
SelfModification
RegulateActivity
RegulateAmount
ActiveForm
Translocation
Gef
Gap
Conversion
There are several types of Statements representing post-translational
modifications that further inherit from
Modification
:
Phosphorylation
Dephosphorylation
Ubiquitination
Debiquitination
Sumoylation
Desumoylation
Hydroxylation
Dehydroxylation
Acetylation
Deacetylation
Glycosylation
Deglycosylation
Farnesylation
Defarnesylation
Geranylgeranylation
Degeranylgeranylation
Palmitoylation
Depalmitoylation
Myristoylation
Demyristoylation
Ribosylation
Deribosylation
Methylation
Demethylation
There are additional subtypes of SelfModification
:
Interactions between proteins are often described simply in terms of their
effect on a protein’s “activity”, e.g., “Active MEK activates ERK”, or “DUSP6
inactives ERK”. These types of relationships are indicated by the
RegulateActivity
abstract base class which has subtypes
while the RegulateAmount
abstract base class has subtypes
Statements involve one or more biological Agents, typically proteins,
represented by the class Agent
. Agents can have several types
of context specified on them including
- a specific post-translational modification state (indicated by one or
more instances of
ModCondition
), - other bound Agents (
BoundCondition
), - mutations (
MutCondition
), - an activity state (
ActivityCondition
), and - cellular location
The active form of an agent (in terms of its post-translational modifications
or bound state) is indicated by an instance of the class
ActiveForm
.
Agents also carry grounding information which links them to database entries. These database references are represented as a dictionary in the db_refs attribute of each Agent. The dictionary can have multiple entries. For instance, INDRA’s input Processors produce genes and proteins that carry both UniProt and HGNC IDs in db_refs, whenever possible. Bioentities provides a name space for protein families that are typically used in the literature. More information about Bioentities can be found here: https://github.com/sorgerlab/bioentities
Type | Database | Example |
---|---|---|
Gene/Protein | HGNC | {‘HGNC’: ‘11998’} |
Gene/Protein | UniProt | {‘UP’: ‘P04637’} |
Gene/Protein family | Bioentities | {‘BE’: ‘ERK’} |
Gene/Protein family | InterPro | {‘IP’: ‘IPR000308’} |
Gene/Protein family | Pfam | {‘PF’: ‘PF00071’} |
Gene/Protein family | NextProt family | {‘NXPFAM’: ‘03114’} |
Chemical | ChEBI | {‘CHEBI’: ‘CHEBI:63637’} |
Chemical | PubChem | {‘PUBCHEM’: ‘42611257’} |
Metabolite | HMDB | {‘HMDB’: ‘HMDB00122’} |
Process, location, etc. | GO | {‘GO’: ‘GO:0006915‘} |
Process, disease, etc. | MeSH | {‘MESH’: ‘D008113’} |
General terms | NCIT | {‘NCIT’: ‘C28597’} |
Raw text | TEXT | {‘TEXT’: ‘Nf-kappaB’} |
The evidence for a given Statement, which could include relevant citations,
database identifiers, and passages of text from the scientific literature, is
contained in one or more Evidence
objects associated with the
Statement.
-
class
indra.statements.
Acetylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.AddModification
Acetylation modification.
-
class
indra.statements.
Activation
(subj, obj, obj_activity='activity', evidence=None)[source]¶ Bases:
indra.statements.RegulateActivity
Indicates that a protein activates another protein.
This statement is intended to be used for physical interactions where the mechanism of activation is not explicitly specified, which is often the case for descriptions of mechanisms extracted from the literature.
Parameters: - subj (
Agent
) – The agent responsible for the change in activity, i.e., the “upstream” node. - obj (
Agent
) – The agent whose activity is influenced by the subject, i.e., the “downstream” node. - obj_activity (Optional[str]) – The activity of the obj Agent that is affected, e.g., its “kinase” activity.
- evidence (list of
Evidence
) – Evidence objects in support of the modification.
Examples
MEK (MAP2K1) activates the kinase activity of ERK (MAPK1):
>>> mek = Agent('MAP2K1') >>> erk = Agent('MAPK1') >>> act = Activation(mek, erk, 'kinase')
- subj (
-
class
indra.statements.
ActiveForm
(agent, activity, is_active, evidence=None)[source]¶ Bases:
indra.statements.Statement
Specifies conditions causing an Agent to be active or inactive.
Types of conditions influencing a specific type of biochemical activity can include modifications, bound Agents, and mutations.
Parameters: - agent (
Agent
) – The Agent in a particular active or inactive state. The sets of ModConditions, BoundConditions, and MutConditions on the given Agent instance indicate the relevant conditions. - activity (str) – The type of activity influenced by the given set of conditions, e.g., “kinase”.
- is_active (bool) – Whether the conditions are activating (True) or inactivating (False).
- agent (
-
class
indra.statements.
ActivityCondition
(activity_type, is_active)[source]¶ Bases:
object
An active or inactive state of a protein.
Examples
Kinase-active MAP2K1:
>>> mek_active = Agent('MAP2K1', ... activity=ActivityCondition('kinase', True))
Transcriptionally inactive FOXO3:
>>> foxo_inactive = Agent('FOXO3', ... activity=ActivityCondition('transcription', False))
Parameters: - activity_type (str) – The type of activity, e.g. ‘kinase’. The basic, unspecified molecular activity is represented as ‘activity’. Examples of other activity types are ‘kinase’, ‘phosphatase’, ‘catalytic’, ‘transcription’, etc.
- is_active (bool) – Specifies whether the given activity type is present or absent.
-
class
indra.statements.
Agent
(name, mods=None, activity=None, bound_conditions=None, mutations=None, location=None, db_refs=None)[source]¶ Bases:
object
A molecular entity, e.g., a protein.
Parameters: - name (str) – The name of the agent, preferably a canonicalized name such as an HGNC gene name.
- mods (list of
ModCondition
) – Modification state of the agent. - bound_conditions (list of
BoundCondition
) – Other agents bound to the agent in this context. - mutations (list of
MutCondition
) – Amino acid mutations of the agent. - activity (
ActivityCondition
) – Activity of the agent. - location (str) – Cellular location of the agent. Must be a valid name (e.g. “nucleus”) or identifier (e.g. “GO:0005634”)for a GO cellular compartment.
- db_refs (dict) – Dictionary of database identifiers associated with this agent.
-
class
indra.statements.
Autophosphorylation
(enz, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.SelfModification
Intramolecular autophosphorylation, i.e., in cis.
Examples
p38 bound to TAB1 cis-autophosphorylates itself (see PMID:19155529).
>>> tab1 = Agent('TAB1') >>> p38_tab1 = Agent('P38', bound_conditions=[BoundCondition(tab1)]) >>> autophos = Autophosphorylation(p38_tab1)
-
class
indra.statements.
BoundCondition
(agent, is_bound=True)[source]¶ Bases:
object
Identify Agents bound (or not bound) to a given Agent in a given context.
Parameters: - agent (
Agent
) – Instance of Agent. - is_bound (bool) – Specifies whether the given Agent is bound or unbound in the current context. Default is True.
Examples
EGFR bound to EGF:
>>> egf = Agent('EGF') >>> egfr = Agent('EGFR', bound_conditions=[BoundCondition(egf)])
BRAF not bound to a 14-3-3 protein (YWHAB):
>>> ywhab = Agent('YWHAB') >>> braf = Agent('BRAF', bound_conditions=[BoundCondition(ywhab, False)])
- agent (
-
class
indra.statements.
Complex
(members, evidence=None)[source]¶ Bases:
indra.statements.Statement
A set of proteins observed to be in a complex.
Parameters: members (list of Agent
) – The set of proteins in the complex.Examples
BRAF is observed to be in a complex with RAF1:
>>> braf = Agent('BRAF') >>> raf1 = Agent('RAF1') >>> cplx = Complex([braf, raf1])
-
class
indra.statements.
Conversion
(subj, obj_from=None, obj_to=None, evidence=None)[source]¶ Bases:
indra.statements.Statement
Conversion of molecular species mediated by a controller protein.
Parameters: - subj (:py:class`indra.statement.Agent`) – The protein mediating the conversion.
- obj_from (list of
indra.statement.Agent
) – The list of molecular species being consumed by the conversion. - obj_to (list of
indra.statement.Agent
) – The list of molecular species being created by the conversion. - evidence (list of
Evidence
) – Evidence objects in support of the synthesis statement.
-
class
indra.statements.
Deacetylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.RemoveModification
Deacetylation modification.
-
class
indra.statements.
DecreaseAmount
(subj, obj, evidence=None)[source]¶ Bases:
indra.statements.RegulateAmount
Degradation of a protein, possibly mediated by another protein.
Note that this statement can also be used to represent inhibitors of synthesis (e.g., cycloheximide).
Parameters: - subj (:py:class`indra.statement.Agent`) – The protein mediating the degradation.
- obj (
indra.statement.Agent
) – The protein that is degraded. - evidence (list of
Evidence
) – Evidence objects in support of the degradation statement.
-
class
indra.statements.
Defarnesylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.RemoveModification
Defarnesylation modification.
-
class
indra.statements.
Degeranylgeranylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.RemoveModification
Degeranylgeranylation modification.
-
class
indra.statements.
Deglycosylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.RemoveModification
Deglycosylation modification.
-
class
indra.statements.
Dehydroxylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.RemoveModification
Dehydroxylation modification.
-
class
indra.statements.
Demethylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.RemoveModification
Demethylation modification.
-
class
indra.statements.
Demyristoylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.RemoveModification
Demyristoylation modification.
-
class
indra.statements.
Depalmitoylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.RemoveModification
Depalmitoylation modification.
-
class
indra.statements.
Dephosphorylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.RemoveModification
Dephosphorylation modification.
Examples
DUSP6 dephosphorylates ERK (MAPK1) at T185:
>>> dusp6 = Agent('DUSP6') >>> erk = Agent('MAPK1') >>> dephos = Dephosphorylation(dusp6, erk, 'T', '185')
-
class
indra.statements.
Deribosylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.RemoveModification
Deribosylation modification.
-
class
indra.statements.
Desumoylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.RemoveModification
Desumoylation modification.
-
class
indra.statements.
Deubiquitination
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.RemoveModification
Deubiquitination modification.
-
class
indra.statements.
Evidence
(source_api=None, source_id=None, pmid=None, text=None, annotations=None, epistemics=None)[source]¶ Bases:
object
Container for evidence supporting a given statement.
Parameters: - source_api (str or None) – String identifying the INDRA API used to capture the statement, e.g., ‘trips’, ‘biopax’, ‘bel’.
- source_id (str or None) – For statements drawn from databases, ID of the database entity corresponding to the statement.
- pmid (str or None) – String indicating the Pubmed ID of the source of the statement.
- text (str) – Natural language text supporting the statement.
- annotations (dict) – Dictionary containing additional information on the context of the statement, e.g., species, cell line, tissue type, etc. The entries may vary depending on the source of the information.
- epistemics (dict) – A dictionary describing various forms of epistemic certainty associated with the statement.
-
class
indra.statements.
Farnesylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.AddModification
Farnesylation modification.
-
class
indra.statements.
Gap
(gap, ras, evidence=None)[source]¶ Bases:
indra.statements.Statement
Acceleration of a GTPase protein’s GTP hydrolysis rate by a GAP.
Represents the generic process by which a GTPase activating protein (GAP) catalyzes GTP hydrolysis by a particular small GTPase protein.
Parameters: Examples
RASA1 catalyzes GTP hydrolysis on KRAS:
>>> rasa1 = Agent('RASA1') >>> kras = Agent('KRAS') >>> gap = Gap(rasa1, kras)
-
class
indra.statements.
Gef
(gef, ras, evidence=None)[source]¶ Bases:
indra.statements.Statement
Exchange of GTP for GDP on a small GTPase protein mediated by a GEF.
Represents the generic process by which a guanosine exchange factor (GEF) catalyzes nucleotide exchange on a GTPase protein.
Parameters: Examples
SOS1 catalyzes nucleotide exchange on KRAS:
>>> sos = Agent('SOS1') >>> kras = Agent('KRAS') >>> gef = Gef(sos, kras)
-
class
indra.statements.
Geranylgeranylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.AddModification
Geranylgeranylation modification.
-
class
indra.statements.
Glycosylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.AddModification
Glycosylation modification.
-
class
indra.statements.
HasActivity
(agent, activity, has_activity, evidence=None)[source]¶ Bases:
indra.statements.Statement
States that an Agent has or doesn’t have a given activity type.
With this Statement, one cane express that a given protein is a kinase, or, for instance, that it is a transcription factor. It is also possible to construct negative statements with which one epxresses, for instance, that a given protein is not a kinase.
Parameters: - agent (
Agent
) – The Agent that that statement is about. Note that the detailed state of the Agent is not relevant for this type of statement. - activity (str) – The type of activity, e.g., “kinase”.
- has_activity (bool) – Whether the given Agent has the given activity (True) or not (False).
- agent (
-
class
indra.statements.
Hydroxylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.AddModification
Hydroxylation modification.
-
class
indra.statements.
IncreaseAmount
(subj, obj, evidence=None)[source]¶ Bases:
indra.statements.RegulateAmount
Synthesis of a protein, possibly mediated by another protein.
Parameters: - subj (:py:class`indra.statement.Agent`) – The protein mediating the synthesis.
- obj (
indra.statement.Agent
) – The protein that is synthesized. - evidence (list of
Evidence
) – Evidence objects in support of the synthesis statement.
-
class
indra.statements.
Inhibition
(subj, obj, obj_activity='activity', evidence=None)[source]¶ Bases:
indra.statements.RegulateActivity
Indicates that a protein inhibits or deactivates another protein.
This statement is intended to be used for physical interactions where the mechanism of inhibition is not explicitly specified, which is often the case for descriptions of mechanisms extracted from the literature.
Parameters: - subj (
Agent
) – The agent responsible for the change in activity, i.e., the “upstream” node. - obj (
Agent
) – The agent whose activity is influenced by the subject, i.e., the “downstream” node. - obj_activity (Optional[str]) – The activity of the obj Agent that is affected, e.g., its “kinase” activity.
- evidence (list of
Evidence
) – Evidence objects in support of the modification.
- subj (
-
exception
indra.statements.
InvalidLocationError
(name)[source]¶ Bases:
ValueError
Invalid cellular component name.
-
exception
indra.statements.
InvalidResidueError
(name)[source]¶ Bases:
ValueError
Invalid residue (amino acid) name.
-
class
indra.statements.
Methylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.AddModification
Methylation modification.
-
class
indra.statements.
ModCondition
(mod_type, residue=None, position=None, is_modified=True)[source]¶ Bases:
object
Post-translational modification state at an amino acid position.
Parameters: - mod_type (str) – The type of post-translational modification, e.g., ‘phosphorylation’. Valid modification types currently include: ‘phosphorylation’, ‘ubiquitination’, ‘sumoylation’, ‘hydroxylation’, and ‘acetylation’. If an invalid modification type is passed an InvalidModTypeError is raised.
- residue (str or None) – String indicating the modified amino acid, e.g., ‘Y’ or ‘tyrosine’. If None, indicates that the residue at the modification site is unknown or unspecified.
- position (str or None) – String indicating the position of the modified amino acid, e.g., ‘202’. If None, indicates that the position is unknown or unspecified.
- is_modified (bool) – Specifies whether the modification is present or absent. Setting the flag specifies that the Agent with the ModCondition is unmodified at the site.
Examples
Doubly-phosphorylated MEK (MAP2K1):
>>> phospho_mek = Agent('MAP2K1', mods=( ... ModCondition('phosphorylation', 'S', '202'), ... ModCondition('phosphorylation', 'S', '204')))
ERK (MAPK1) unphosphorylated at tyrosine 187:
>>> unphos_erk = Agent('MAPK1', mods=( ... ModCondition('phosphorylation', 'Y', '187', is_modified=False)))
-
class
indra.statements.
Modification
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.Statement
Generic statement representing the modification of a protein.
Parameters: - enz (:py:class`indra.statement.Agent`) – The enzyme involved in the modification.
- sub (
indra.statement.Agent
) – The substrate of the modification. - residue (str or None) – The amino acid residue being modified, or None if it is unknown or unspecified.
- position (str or None) – The position of the modified amino acid, or None if it is unknown or unspecified.
- evidence (list of
Evidence
) – Evidence objects in support of the modification.
-
class
indra.statements.
MutCondition
(position, residue_from, residue_to=None)[source]¶ Bases:
object
Mutation state of an amino acid position of an Agent.
Parameters: - position (str) – Residue position of the mutation in the protein sequence.
- residue_from (str) – Wild-type (unmodified) amino acid residue at the given position.
- residue_to (str) – Amino acid at the position resulting from the mutation.
Examples
Represent EGFR with a L858R mutation:
>>> egfr_mutant = Agent('EGFR', mutations=(MutCondition('858', 'L', 'R')))
-
class
indra.statements.
Myristoylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.AddModification
Myristoylation modification.
-
class
indra.statements.
Palmitoylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.AddModification
Palmitoylation modification.
-
class
indra.statements.
Phosphorylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.AddModification
Phosphorylation modification.
Examples
MEK (MAP2K1) phosphorylates ERK (MAPK1) at threonine 185:
>>> mek = Agent('MAP2K1') >>> erk = Agent('MAPK1') >>> phos = Phosphorylation(mek, erk, 'T', '185')
-
class
indra.statements.
RegulateActivity
[source]¶ Bases:
indra.statements.Statement
Regulation of activity.
This class implements shared functionality of Activation and Inhibition statements and it should not be instantiated directly.
-
class
indra.statements.
RegulateAmount
(subj, obj, evidence=None)[source]¶ Bases:
indra.statements.Statement
Superclass handling operations on directed, two-element interactions.
-
class
indra.statements.
Ribosylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.AddModification
Ribosylation modification.
-
class
indra.statements.
SelfModification
(enz, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.Statement
Generic statement representing the self-modification of a protein.
Parameters: - enz (:py:class`indra.statement.Agent`) – The enzyme involved in the modification, which is also the substrate.
- residue (str or None) – The amino acid residue being modified, or None if it is unknown or unspecified.
- position (str or None) – The position of the modified amino acid, or None if it is unknown or unspecified.
- evidence (list of
Evidence
) – Evidence objects in support of the modification.
-
class
indra.statements.
Statement
(evidence=None, supports=None, supported_by=None)[source]¶ Bases:
object
The parent class of all statements.
Parameters: - evidence (list of
Evidence
) – If a list of Evidence objects is passed to the constructor, the value is set to this list. If a bare Evidence object is passed, it is enclosed in a list. If no evidence is passed (the default), the value is set to an empty list. - supports (list of
Statement
) – Statements that this Statement supports. - supported_by (list of
Statement
) – Statements supported by this statement.
- evidence (list of
-
class
indra.statements.
Sumoylation
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.AddModification
Sumoylation modification.
-
class
indra.statements.
Translocation
(agent, from_location=None, to_location=None, evidence=None)[source]¶ Bases:
indra.statements.Statement
The translocation of a molecular agent from one location to another.
Parameters: - agent (
Agent
) – The agent which translocates. - from_location (Optional[str]) – The location from which the agent translocates. This must be a valid GO cellular component name (e.g. “cytoplasm”) or ID (e.g. “GO:0005737”).
- to_location (Optional[str]) – The location to which the agent translocates. This must be a valid GO cellular component name or ID.
- agent (
-
class
indra.statements.
Transphosphorylation
(enz, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.SelfModification
Autophosphorylation in trans.
Transphosphorylation assumes that a kinase is already bound to a substrate (usually of the same molecular species), and phosphorylates it in an intra-molecular fashion. The enz property of the statement must have exactly one bound_conditions entry, and we assume that enz phosphorylates this molecule. The bound_neg property is ignored here.
-
class
indra.statements.
Ubiquitination
(enz, sub, residue=None, position=None, evidence=None)[source]¶ Bases:
indra.statements.AddModification
Ubiquitination modification.