62 : m_Pssm(pssm), m_Query(0), m_Subject(
subject), m_OptsHandle(options),
66 x_ExtractQueryFromPssm();
67 x_CreatePssmScoresFromFrequencyRatios();
73 : m_Pssm(0), m_Query(
query), m_Subject(
subject), m_OptsHandle(options),
100 "Missing database or subject sequences");
107 if ( !
m_Pssm->GetPssm().CanGetFinalData() ||
108 !
m_Pssm->GetPssm().GetFinalData().CanGetScores() ||
109 m_Pssm->GetPssm().GetFinalData().GetScores().empty() ) {
157 (core_data->
m_ScoreBlk->GetPointer()->kbp_gap_psi[0]->Lambda);
159 (core_data->
m_ScoreBlk->GetPointer()->kbp_gap_psi[0]->K);
161 (core_data->
m_ScoreBlk->GetPointer()->kbp_gap_psi[0]->H);
163 (core_data->
m_ScoreBlk->GetPointer()->kbp_psi[0]->Lambda);
165 (core_data->
m_ScoreBlk->GetPointer()->kbp_psi[0]->K);
167 (core_data->
m_ScoreBlk->GetPointer()->kbp_psi[0]->H);
177 "Setting empty reference for pssm");
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
Declares the BLAST exception class.
Defines interface for retrieving sequence identifiers.
EResultType
Specifies the style of Seq-aligns that should be built from the internal BLAST data structures.
@ eDatabaseSearch
Seq-aligns in the style of a database search.
Defines BLAST error codes (user errors included)
Encapsulates ALL the BLAST algorithm's options.
Search class to perform the preliminary stage of the BLAST search.
Interface to create a BlastSeqSrc suitable for use in CORE BLAST from a a variety of BLAST database/s...
NCBI C++ Object Manager free implementation of IQueryFactory.
Handle to the protein-protein options to the BLAST algorithm.
Implementation class for PSI-BLAST (database search and 2 sequences).
void SetHUngapped(double val)
void SetLambdaUngapped(double val)
void SetKappa(double val)
void SetKappaUngapped(double val)
void SetLambda(double val)
typedef for the messages for an entire BLAST search, which could be comprised of multiple query seque...
static void QueryFactory(CRef< IQueryFactory > query_factory, const CBlastOptionsHandle &opts_handle, EQueryFactoryType query_factory_type=eQFT_Query)
Function to perform sanity checks on the query factory.
CPsiBlastImpl(CRef< objects::CPssmWithParameters > pssm, CRef< CLocalDbAdapter > subject, CConstRef< CPSIBlastOptionsHandle > options)
Constructor for restarting PSI-BLAST iterations with a previously generated PSSM.
size_t GetNumberOfThreads(void) const
Accessor for the number of threads to use.
virtual void SetNumberOfThreads(size_t nthreads)
Mutator for the number of threads.
void SetResultType(EResultType type)
Set the desired result type.
CRef< SInternalData > Run()
Borrow the internal data and results results.
void x_ExtractQueryFromPssm()
Auxiliary function to get the query sequence data from the ASN.1 PSSM Post-condition: (m_Query....
CRef< CSearchResultSet > Run()
Run the traceback search.
BlastSeqSrc * MakeSeqSrc()
Retrieves or constructs the BlastSeqSrc.
CConstRef< CBlastOptionsHandle > m_OptsHandle
Options to use.
void SetResultType(EResultType type)
Specifies how the Seq-align-set returned as part of the results is formatted.
virtual void SetNumberOfThreads(size_t nthreads)
@inheritDoc
void x_Validate()
Perform sanity checks on input parameters.
CRef< TBlastScoreBlk > m_ScoreBlk
BLAST score block structure.
EResultType m_ResultType
Specifies how the results should be produced.
CRef< IQueryFactory > m_Query
Query sequence (either extracted from PSSM or provided in constructor)
CConstRef< objects::CPssmWithParameters > GetPssm() const
Accessor for the most recently used PSSM.
const CBlastOptions & GetOptions() const
Return the object which this object is a handle for.
IBlastSeqInfoSrc * MakeSeqInfoSrc()
Retrieves or constructs the IBlastSeqInfoSrc.
void PsiBlastComputePssmScores(CRef< objects::CPssmWithParameters > pssm, const CBlastOptions &opts)
Given a PSSM with frequency ratios and options, invoke the PSSM engine to compute the scores.
void ResetBlastSeqSrcIteration()
This method should be called so that if the implementation has an internal "bookmark" of the chunks o...
bool Validate() const
Validate the options contained in this object.
static void Pssm(const objects::CPssmWithParameters &pssm, bool require_scores=false)
Perform validation on the PSSM.
CRef< CSearchResultSet > m_Results
Holds a reference to the results.
void x_CreatePssmScoresFromFrequencyRatios()
Computes the PSSM scores in case these are not available in the PSSM.
void SetPssm(CConstRef< objects::CPssmWithParameters > pssm)
This method allows the same object to be reused when performing multiple iterations.
CRef< CLocalDbAdapter > m_Subject
PSI-BLAST subject abstraction.
CRef< CSearchResultSet > Run()
Run the PSI-BLAST engine for one iteration.
TSearchMessages GetSearchMessages() const
Retrieve any error/warning messages that occurred during the search.
CRef< objects::CPssmWithParameters > m_Pssm
PSSM to be used as query.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
bool Empty(void) const THROWS_NONE
Check if CConstRef is empty – not pointing to any object which means having a null value.
void Reset(void)
Reset reference object.
bool NotEmpty(void) const THROWS_NONE
Check if CRef is not empty – pointing to an object and has a non-null value.
bool Empty(void) const THROWS_NONE
Check if CRef is empty – not pointing to any object, which means having a null value.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define USING_SCOPE(ns)
Use the specified namespace.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define BEGIN_SCOPE(ns)
Define a new scope.
NOTE: This file contains work in progress and the APIs are likely to change, please do not rely on th...
NOTE: This file contains work in progress and the APIs are likely to change, please do not rely on th...
Declarations of auxiliary functions/classes for PSI-BLAST.
Defines implementation class for PSI-BLAST and PSI-BLAST 2 Sequences.
Declares the CPSIBlastOptionsHandle class.
NOTE: This file contains work in progress and the APIs are likely to change, please do not rely on th...
NOTE: This file contains work in progress and the APIs are likely to change, please do not rely on th...