Source code for chemicalchecker.tool.hotnet.hotnet

"""Wrapper for HotNet subnetworks search."""
import os
import subprocess
from chemicalchecker.util import logged


[docs]@logged class Hotnet(): """Hotnet class.""" def __init__(self, cpu=1): self.exec_path = os.path.join(os.path.dirname( os.path.abspath(__file__)), "hotnet-src") self.cpu = cpu
[docs] def choose_beta(self, i, o, **kwargs): """Call external python with given parameters. Args: i:Input Edge list filename o:Output data path """ # check input if not os.path.isfile(i): raise Exception("Input file not found.") executable = os.path.join(self.exec_path, "choose_beta.py") # prepare arguments args = [ "-i%s" % i, "-o%s" % o, "-c%s" % self.cpu ] # log command self.__log.info(executable + ' '.join(args)) # run process process = subprocess.Popen(["python", executable] + args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) # stream output as get generated for line in process.stdout: self.__log.info(line.decode().strip()) for line in process.stderr: self.__log.info(line.decode().strip())
[docs] def create_similarity_matrix(self, i, o, **kwargs): """Call external python with given parameters. Args: i:Input Edge list filename o:Output data path (default:'similarity_matrix.h5') b:Beta (Restart probability). Default is 128 (default:0.0) """ # check input if not os.path.isfile(i): raise Exception("Input file not found.") # get arguments or default values b = kwargs.get("b", 0.0) executable = os.path.join( self.exec_path, "create_similarity_matrix.py") # prepare arguments args = [ "-i%s" % i, "-o%s" % o, "-b%.2f" % b, "-c%s" % self.cpu ] # log command self.__log.info(' '.join(args)) # run process process = subprocess.Popen(["python", executable] + args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) for line in process.stdout: self.__log.info(line.decode().strip()) for line in process.stderr: self.__log.info(line.decode().strip())