CellNOpt homepage|cellnopt 0.1.3 documentation

Source code for cno.io.sif2asp

# -*- python -*-
#
#  This file is part of the cellnopt package
#
#  Copyright (c) 2012-2014 - EMBL-EBI
#
#  File author(s): Thomas Cokelaer (cokelaer@ebi.ac.uk)
#       <cokelaer at gmail dot com>
#
#  Distributed under the GLPv3 License.
#  See accompanying file LICENSE.txt or copy at
#      http://www.gnu.org/licenses/gpl-3.0.html
#
#  website: www.cellnopt.org
#
##############################################################################
""":Topic: **convert SIF format to ASP sign consistency**"""
from __future__ import print_function

from cno.io.sif import SIF

__all__ = ["SIF2ASP"]


[docs]class SIF2ASP(SIF): """Class to convert a SIF file into a ASP sign consistency format :: >>> from cno import SIF2ASP >>> from cno import cnodata >>> filename = cnodata("PKN-ToyMMB.sif") >>> s = SIF2ASP(filename) >>> s.to_net("PKN-ToyMMB.net") This module provides tools to convert a SIF file into a format appropriate to check sign consistency with ASP tools:: A 1 B A -1 C converted to :: A -> B + A -> C - .. seealso:: This class inherits from :class:`cno.io.sif.SIF`. """ def __init__(self, filename=None): """.. rubric:: Constructor :param str filename: the SIF filename """ super(SIF2ASP, self).__init__(filename) def _get_signs(self): signs = ["+" if e=="1" else "-" for e in self.edges] return signs signs = property(_get_signs, doc="get the signs of the reactions")
[docs] def to_net(self, filename): """Write nodes and signs into a NET format If the SIF input format is :: A 1 B A -1 C the NET format should be:: A -> B + A -> C - """ if len(self.nodes1)>0: h = open(filename, "w") for n1,n2,s in zip(self.nodes1, self.nodes2, self.signs): h.write("%s -> %s %s\n" % (n1, n2, s)) h.close()
def __str__(self): txt = "" for n1,n2,s in zip(self.nodes1, self.nodes2, self.signs): txt += "%s -> %s %s" % (n1, n2, s) return txt