def generate_report(model, scanned_par1, scanned_par2, outputdir, sim_plots_folder): """ The third pipeline step: report generation. :param model: the model name :param scanned_par1: the first scanned parameter :param scanned_par2: the second scanned parameter :param outputdir: the directory containing the report :param sim_plots_folder: the folder containing the plots. :return: no output """ if not os.path.exists(os.path.join(outputdir, sim_plots_folder)): logger.error("input_dir " + os.path.join(outputdir, sim_plots_folder) + " does not exist. Analyse the data first.") return logger.info("Generating a LaTeX report") logger.info(model) filename_prefix = "report__double_param_scan_" latex_report_double_param_scan(outputdir, sim_plots_folder, filename_prefix, model, scanned_par1, scanned_par2) pdflatex = which("pdflatex") if pdflatex is None: logger.error("pdflatex not found! pdflatex must be installed for pdf reports.") return logger.info("Generating PDF report") pdf_report(outputdir, filename_prefix + model + ".tex")
def main(argv=None): # logging settings home = os.path.expanduser("~") if not os.path.exists(os.path.join(home, '.sb_pipe', 'logs')): os.makedirs(os.path.join(home, '.sb_pipe', 'logs')) # disable_existing_loggers=False to enable logging for Python third-party packages fileConfig(os.path.join(SB_PIPE, 'logging_config.ini'), defaults={'logfilename': os.path.join(home, '.sb_pipe', 'logs', 'sb_pipe_pydeps.log')}, disable_existing_loggers=False) logger = logging.getLogger('sbpipe') if which("CopasiSE") == None: logger.error("CopasiSE not found. Please install Copasi as explained on the sb_pipe website.") if which("R") == None: logger.error("R not found. Skipping installation of R dependencies." "sb_pipe will be severely affected due to this.") python_deps(logger)
def python_deps(logger): logger.info("Installing Python dependencies...") if which("pip") == None: logger.warn("pip not found. Skipping installation of Python dependencies." "Please, install `python-dev` and `python-pip` packages.") else: out = install_python_deps(os.path.join(SB_PIPE, 'requirements.txt')) logger.debug(out) if (' ERROR:' in out or ' Error:' in out): logger.error("Some error occurred when installing Python dependencies." "Please check log files in logs/") else: logger.info("Python dependencies should have been installed correctly.")
def generate_report(model, outputdir, sim_plots_folder): if not os.path.exists(os.path.join(outputdir, sim_plots_folder)): logger.error("input_dir " + os.path.join(outputdir, sim_plots_folder) + " does not exist. Analyse the data first.") return logger.info("Generating a LaTeX report") filename_prefix="report__sensitivity_" latex_report_simulate(outputdir, sim_plots_folder, model, filename_prefix) pdflatex = which("pdflatex") if pdflatex is None: logger.error("pdflatex not found! pdflatex must be installed for pdf reports.") return logger.info("Generating PDF report") pdf_report(outputdir, filename_prefix + model + ".tex")
def pdf_report(outputdir, filename): """ Generate a PDF report from LaTeX code :param outputdir: the output directory :param filename: the LaTeX file name :return: no output """ pdflatex = which("pdflatex") if pdflatex is None: logger.error("pdflatex not found! pdflatex must be installed for pdf reports.") return currdir = os.getcwd() os.chdir(outputdir) logger.info(pdflatex + " -halt-on-error " + filename + " ... ") p = subprocess.Popen([pdflatex, "-halt-on-error", filename], stdout=subprocess.PIPE) p.communicate()[0] p = subprocess.Popen([pdflatex, "-halt-on-error", filename], stdout=subprocess.PIPE) p.communicate()[0] os.chdir(currdir)