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: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 
<?php

namespace AnalyseModule;

/**
 * Handles displaying of conservancy comparison results
 */
class ConservancyPresenter extends \BaseModule\BasePresenter {

    /**
     * @var \AnalyseModule\Models\ConservancyComparator
     * @Inject
     */
    protected $conservancyComparator;

    /**
     * Render page displaying all the results (svg pictures) along with form for
     * resubmitting with different window size
     */
    public function renderDefault() {
        if (isset($this->request->getPost()['analyse']) && count($this->request->getPost()['analyse']) > 1) {
            if (isset($this->request->getPost()['winsize'])) {
                $winsize = $this->request->getPost()['winsize'];
            } else {
                $winsize = null;
            }
            $accessions = $this->request->getPost()['analyse'];
            $sequences = $this->conservancyComparator->execute($accessions, $winsize);
            $this->template->sequences = $sequences;
            $this->template->tmpDir = $this->conservancyComparator->getTmpDir();
            $this->template->winSize = $this->conservancyComparator->getWinSize();
        } else {
            $this->template->noAccessions = true;
        }
    }

    /**
     * Full svg picture display
     *
     * @param string $tmpdir rawurldecode-d path to temporary directory used (note that "/" in file are replaced by "++")
     * @param int $winsize window size used for comparison
     * @param string $accession accession number of the sequence to display
     */
    public function renderDetail($tmpdir, $winsize, $accession) {
        $this->template->path = $this->template->basePath . "/" . str_replace('++', '/', rawurldecode($tmpdir)) . "/" . $accession . "_win" . $winsize . "_ss_compare.svg";
        $this->template->accession = $accession;
    }

    /**
     * Export comparison result into zip archive and offers to download it
     *
     * @param string $tmpdir path to directory with comparison results
     * @param int $winsize window size
     */
    public function actionExport($tmpdir, $winsize) {
        $tmpPath = str_replace('++', '/', rawurldecode($tmpdir)) . DIRECTORY_SEPARATOR;
        $svgs = json_decode($this->getHttpRequest()->getPost('svgs'), true);
        $zipPath = $this->conservancyComparator->export($tmpPath, $svgs, $winsize);

        $this->sendResponse(new \Nette\Application\Responses\FileResponse($zipPath));
    }

    /**
     * Creates form for resubmitting picked sequences for conservation comparison
     * with different window size
     *
     * @return \BaseModule\Form
     */
    protected function createComponentAnalyseForm() {
        $form = new \BaseModule\Form;
        $form->addSelect('winsize', 'Set window size', array(20 => '20', 40 => '40', 60 => '60'))->setDefaultValue($this->conservancyComparator->getWinSize());
        $form->addSubmit('compare', 'Rerun comparison');
        return $form;
    }

}
API documentation generated by ApiGen