Overview

Namespaces

  • AnalyseModule
    • Models
  • BaseModule
    • Exceptions
    • Models
    • Repository
    • Services
  • DispatchModule
    • Helpers
    • Models
    • Tools
  • PredictModule
  • SearchModule

Classes

  • AnalyseModule\AnalysePresenter
  • AnalyseModule\ConservancyPresenter
  • AnalyseModule\Models\BaseTool
  • AnalyseModule\Models\ConservancyComparator
  • BaseModule\BasePresenter
  • BaseModule\DiscoveredViewReflection
  • BaseModule\ErrorPresenter
  • BaseModule\Form
  • BaseModule\HomepagePresenter
  • BaseModule\Models\BaseModel
  • BaseModule\Models\FileModel
  • BaseModule\PesekPresenter
  • BaseModule\Repository\BaseRepository
  • BaseModule\Repository\TestRepository
  • BaseModule\RouterFactory
  • BaseModule\RssPresenter
  • BaseModule\Services\Authenticator
  • BaseModule\Services\BaseService
  • BaseModule\Services\DbService
  • DispatchModule\BaseMatch
  • DispatchModule\BaseParser
  • DispatchModule\BlastMatch
  • DispatchModule\BlatMatch
  • DispatchModule\Helpers\RnaplotHelper
  • DispatchModule\Helpers\TravelerHelper
  • DispatchModule\Models\BaseModel
  • DispatchModule\Models\BlastModel
  • DispatchModule\Models\BlastXMLParser
  • DispatchModule\Models\BlatModel
  • DispatchModule\Models\Cppredict2Model
  • DispatchModule\Models\CppredictModel
  • DispatchModule\Models\FastaModel
  • DispatchModule\Models\FileModel
  • DispatchModule\PredictParser
  • DispatchModule\ResultSet
  • DispatchModule\SearchParser
  • DispatchModule\Sequence
  • DispatchModule\Tools\AnnotationDbTool
  • DispatchModule\Tools\BaseTool
  • DispatchModule\Tools\Cppredict2Tool
  • DispatchModule\Tools\DbTool
  • DispatchModule\Tools\SimilarityTool
  • DispatchModule\Tools\TaxonomyDbTool
  • PredictModule\PredictPresenter
  • SearchModule\SearchPresenter

Interfaces

  • DispatchModule\Tools\ToolInterface

Exceptions

  • BaseModule\Exceptions\BaseException
  • BaseModule\Exceptions\NotFoundException
  • BaseModule\Exceptions\ToolException
  • Overview
  • Namespace
  • Class
 1:  2:  3:  4:  5:  6:  7:  8:  9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 
<?php

namespace DispatchModule\Helpers;

/**
 * TravelerHelper handles generation of svg visualizations of predicted structures using Traveler
 */
class TravelerHelper {

    /**
     * Deletes all traveler svg files - if there's more than maximum limit (see maxTravelerSvgStored in config)
     *
     * @param string $travelerTemp path to traveler temporary dir
     * @param int $maxfiles maximum ammount of files to keep or -1 for infinity
     */
    public static function deleteTravelerFiles($travelerTemp, $maxfiles) {
        if ($maxfiles != -1) {
            $files = \Nette\Utils\Finder::findFiles('*.svg')->in($travelerTemp);
            if (count($files) > $maxfiles) {
                foreach ($files as $key => $file) {
                    $deleteFile = new \BaseModule\Models\FileModel($key);
                    $deleteFile->deleteFile();
                }
            }
        }
    }

    /**
     * Genereates Traveler svg file
     *
     * @param string $travelerTemp path to traveler temporary dir
     * @param string $idString svg name
     * @param string $sequence whole sequence
     * @param string $prediction predicted structure in dot-parent notation
     * @param int $maxfiles max svg files to keep in temporary storage (-1 for infinity)
     * @throws \BaseModule\Exceptions\BaseException
     */
    public static function generateTraveler($travelerTemp, $idString, $sequence, $prediction, $maxfiles = 200) {
        // delete all files, if there's too many saved
        self::deleteTravelerFiles($travelerTemp, $maxfiles);

        $resultPath = $travelerTemp . $idString . '_ss.svg';
        $timestamp = microtime(true);
        $tempFilePath = $travelerTemp . $timestamp . '.in';

        // create input file nad put content in it (proper format for Traveler: >file_name\n sequence\n prediction)
        $inputFile = new \BaseModule\Models\FileModel($tempFilePath);
        $inputFile->createFile();
        $inputFile->appendContent(">$idString\n" . \DispatchModule\Sequence::makeSimplePrediction($sequence) . "\n" . $prediction);

        // run Traveler
        exec("cd $travelerTemp && " . TRAVELER_PATH . " -o svg < $tempFilePath", $out);

        // delete input temporary file
        $inputFile->deleteFile();

        if (!file_exists($resultPath)) {
            throw new \BaseModule\Exceptions\BaseException('Something went wrong in the visualization factory');
        }
    }

}
API documentation generated by ApiGen