//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 BLASTSEARCH_H #define BLASTSEARCH_H #include "blasthit.h" #include "blastqueries.h" #include #include #include #include #include "../program/scinot.h" //This is a class to hold all BLAST search related stuff. //An instance of it is made available to the whole program //as a global. class BlastSearch { public: BlastSearch(); ~BlastSearch(); BlastQueries m_blastQueries; QString m_blastOutput; bool m_cancelBuildBlastDatabase; bool m_cancelRunBlastSearch; QProcess * m_makeblastdb; QProcess * m_blast; QString m_tempDirectory; QList< QSharedPointer > m_allHits; void clearBlastHits(); void cleanUp(); void buildHitsFromBlastOutput(); void findQueryPaths(); static QString getNodeNameFromString(QString nodeString); bool findProgram(QString programName, QString * command); void clearSomeQueries(std::vector queriesToRemove); void emptyTempDirectory(); QString doAutoBlastSearch(); int loadBlastQueriesFromFastaFile(QString fullFileName); QString cleanQueryName(QString queryName); void blastQueryChanged(QString queryName); }; #endif // BLASTSEARCH_H