CCmdLineBlastXMLReportData::CCmdLineBlastXMLReportData (CRef<blast::CBlastQueryVector> queries, const blast::CSearchResultSet& results, const blast::CBlastOptions& opts, const string& dbname, bool db_is_aa, int qgencode, int dbgencode, bool is_remote, int dbfilt_algorithm /* = -1 */) : m_Queries(queries), m_Options(opts), m_DbName(dbname), m_QueryGeneticCode(qgencode), m_DbGeneticCode(dbgencode), m_NoHitsFound(false), m_NumSequences(0), m_NumBases(0) { _ASSERT( !m_Queries->Empty() ); x_FillScoreMatrix(m_Options.GetMatrixName()); vector<CBlastFormatUtil::SDbInfo> dbinformation; if ( !m_DbName.empty() ){ CBlastFormatUtil::GetBlastDbInfo(dbinformation, m_DbName, db_is_aa, dbfilt_algorithm, is_remote); ITERATE(vector<CBlastFormatUtil::SDbInfo>, i, dbinformation) { m_NumSequences += i->number_seqs; } ITERATE(vector<CBlastFormatUtil::SDbInfo>, i, dbinformation) { m_NumBases += i->total_length; } }
void CCmdLineBlastXML2ReportData::x_InitCommon( const CSearchResults & results, CConstRef<CBlastOptions> opts) { if(opts.Empty()) { NCBI_THROW(CException, eUnknown, "blastxml2: Empty blast options"); } if(m_Scope.Empty()) { NCBI_THROW(CException, eUnknown, "blastxml2: Empty scope"); } x_FillScoreMatrix(m_Options->GetMatrixName()); string resolved = SeqDB_ResolveDbPath("taxdb.bti"); if(!resolved.empty()) { m_TaxDBFound = true; } m_isIterative = opts->IsIterativeSearch(); }