1
/*****************************************************************
2
* Unipro UGENE - Integrated Bioinformatics Suite
3
* Copyright (C) 2008 Unipro, Russia (http://ugene.unipro.ru)
6
* This source code is distributed under the terms of the
7
* GNU General Public License. See the files COPYING and LICENSE
9
*****************************************************************/
11
#ifndef _GB2_HMMSEARCH_TASK_H_
12
#define _GB2_HMMSEARCH_TASK_H_
14
#include "uhmmsearch.h"
16
#include <core_api/LRegion.h>
17
#include <core_api/Task.h>
18
#include <datatype/DNASequence.h>
19
#include <datatype/AnnotationData.h>
20
#include <util_tasks/SequenceWalkerTask.h>
28
class HMMSearchTaskResult {
30
HMMSearchTaskResult() : evalue(0), score(0), onCompl(false), onAmino(false){}
39
class HMMSearchTaskCachedResult : public HMMSearchTaskResult {
41
HMMSearchTaskCachedResult() {}
46
class HMMSearchTask: public Task, SequenceWalkerCallback {
49
HMMSearchTask(plan7_s* hmm, const DNASequence& seq, const UHMMSearchSettings& s);
51
virtual void prepare();
53
const QList<HMMSearchTaskResult>& getResults() const {return results;}
55
virtual void onRegion(SequenceWalkerSubtask* t, TaskStateInfo& stateInfo);
57
Task::ReportResult report();
59
QList<SharedAnnotationData> getResultsAsAnnotations(const QString& name) const;
62
bool checkAlphabets(int hmmAl, DNAAlphabet* seqAl, DNATranslation*& complTrans, DNATranslation*& aminoTrans);
66
UHMMSearchSettings settings;
67
DNATranslation* complTrans;
68
DNATranslation* aminoTrans;
69
QList<HMMSearchTaskResult> results;
70
QList<HMMSearchTaskResult> resultsCompl;
71
QList<HMMSearchTaskCachedResult> cacheDirect;
72
QList<HMMSearchTaskCachedResult> cacheCompl;