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;
        }
    }
Beispiel #2
0
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();
}