//Copyright 2017 Ryan Wick
//This file is part of Bandage
//Bandage is free software: you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation, either version 3 of the License, or
//(at your option) any later version.
//Bandage is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//GNU General Public License for more details.
//You should have received a copy of the GNU General Public License
//along with Bandage. If not, see .
#ifndef BLASTSEARCHDIALOG_H
#define BLASTSEARCHDIALOG_H
#include
#include
#include
#include
#include "../program/globals.h"
class DeBruijnNode;
class BlastQuery;
class QueryPathsDialog;
namespace Ui {
class BlastSearchDialog;
}
class BlastSearchDialog : public QDialog
{
Q_OBJECT
public:
explicit BlastSearchDialog(QWidget *parent = 0, QString autoQuery = "");
~BlastSearchDialog();
private:
Ui::BlastSearchDialog *ui;
QMap * m_deBruijnGraphNodes;
QString m_makeblastdbCommand;
QString m_blastnCommand;
QString m_tblastnCommand;
QThread * m_buildBlastDatabaseThread;
QThread * m_blastSearchThread;
QueryPathsDialog * m_queryPathsDialog;
void setUiStep(BlastUiState blastUiState);
void clearBlastHits();
void setInfoTexts();
void loadBlastQueriesFromFastaFile(QString fullFileName);
void buildBlastDatabase(bool separateThread);
void runBlastSearches(bool separateThread);
void makeQueryRow(int row);
void deleteQueryPathsDialog();
void setFilterText();
private slots:
void afterWindowShow();
void buildBlastDatabaseInThread();
void loadBlastQueriesFromFastaFileButtonClicked();
void enterQueryManually();
void clearAllQueries();
void clearSelectedQueries();
void runBlastSearchesInThread();
void fillTablesAfterBlastSearch();
void fillQueriesTable();
void fillHitsTable();
void blastDatabaseBuildFinished(QString error);
void runBlastSearchFinished(QString error);
void buildBlastDatabaseCancelled();
void runBlastSearchCancelled();
void queryCellChanged(int row, int column);
void queryTableSelectionChanged();
void queryShownChanged();
void showPathsDialog(BlastQuery * query);
void queryPathSelectionChangedSlot();
void openFiltersDialog();
signals:
void blastChanged();
void queryPathSelectionChanged();
};
#endif // BLASTSEARCHDIALOG_H