Source code for

# This file is part of the GEMtractor
# Copyright (C) 2019 Martin Scharm <>
# The GEMtractor is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# The GEMtractor is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <>.

[docs]class Gene: """ a gene (or gene product, or enzyme) in a network :param identifier: the gene's id """ def __init__(self, identifier): self.identifier = identifier self.reactions = [] self.links = {"g":set (), "gc":set()}
[docs] def contains_one_of (self, genes = []): """ is this one of the genes? basically just to be compliant with the gene-complex :param genes: list of genes to test :type genes: list of str :return: true, if this identifier in in genes-list :rtype: bool """ return self.identifier in genes
[docs] def to_sbml_string (self): """ serialize this to an SBML compatible notes' string :return: the notes string :rtype: str """ return "(" + self.identifier + ")"
[docs] def to_string (self): """ return this as a string basically for debugging :return: this object as a string :rtype: string """ return self.identifier + "[#reactions="+str (len (self.reactions))+" #links="+str (len (self.links))+"]"
[docs] def serialize (self): """ serialize to a JSON-dumpable object the object will contain the following information: - id: the gene's identifier - reactions: which reactions does the gene catalyze? - cplx: in which complexes does the gene participate? :return: JSON-dumpable object :rtype: dict """ return { "id" : self.identifier, "reactions": self.reactions, "cplx": [] }