34 #ifndef ALGO_BLAST_API___BLAST_AUX__HPP
35 #define ALGO_BLAST_API___BLAST_AUX__HPP
89 #define TYPEDEF_AUTOPTR_CDELETER(type) \
90 typedef AutoPtr<type, CDeleter<type> > TAuto ## type ## Ptr
93 #define TYPEDEF_AUTOPTR_ARRAYDELETER(type) \
94 typedef AutoPtr<type, ArrayDeleter<type> > TAuto ## type ## ArrayPtr
96 #ifndef SKIP_DOXYGEN_PROCESSING
148 if (seqlocinfo.
Empty()) {
150 "Empty CRef<CSeqLocInfo>!");
162 bool IsLocalId(
const objects::CSeq_id* seqid);
177 bool assume_both_strands =
false);
189 if (
a.Empty() &&
b.NotEmpty()) {
191 }
else if (
a.NotEmpty() &&
b.Empty()) {
193 }
else if (
a.Empty() &&
b.Empty()) {
220 const objects::CPacked_seqint& queries,
258 void ResetMessages(
void);
260 void DoNotSaveMessages(
void);
262 list<CRef<objects::CBlast4_error> > &
GetMessages(
void) {
return m_messages;}
274 #define DECLARE_AUTO_CLASS_WRAPPER(struct_name, free_func) \
277 class NCBI_XBLAST_EXPORT C##struct_name : public CObject \
280 C##struct_name() : m_Ptr(NULL) {} \
281 C##struct_name(struct_name* p) : m_Ptr(p) {} \
282 virtual ~C##struct_name() { Reset(); } \
283 void Reset(struct_name* p = NULL) { \
289 struct_name* Release() { \
290 struct_name* retval = m_Ptr; \
294 struct_name* Get() const { return m_Ptr; } \
295 operator struct_name *() { return m_Ptr; } \
296 operator struct_name *() const { return m_Ptr; } \
297 struct_name* operator->() { return m_Ptr; } \
298 struct_name* operator->() const { return m_Ptr; } \
299 struct_name** operator&() { return &m_Ptr; } \
300 virtual void DebugDump(CDebugDumpContext ddc, unsigned int depth) const;\
302 struct_name* m_Ptr; \
305 #ifndef SKIP_DOXYGEN_PROCESSING
User-defined methods of the data storage class.
SBlastProgress * SBlastProgressFree(SBlastProgress *progress_info)
Deallocates a SBlastProgress structure.
Declares the BLAST exception class.
#define NCBI_XBLAST_EXPORT
NULL operations for other cases.
Ungapped extension structures that are common to nucleotide and protein extension routines.
Blast_ExtendWord * BlastExtendWordFree(Blast_ExtendWord *ewp)
Deallocate memory for the word extension structure.
BLAST filtering functions.
BlastMaskLoc * BlastMaskLocFree(BlastMaskLoc *mask_loc)
Deallocate memory for a BlastMaskLoc structure as well as the BlastSeqLoc's pointed to.
BlastSeqLoc * BlastSeqLocFree(BlastSeqLoc *loc)
Deallocate all BlastSeqLoc objects in a chain.
Structures and functions prototypes used for BLAST gapped extension.
BlastGapAlignStruct * BLAST_GapAlignStructFree(BlastGapAlignStruct *gap_align)
Deallocates memory in the BlastGapAlignStruct structure.
Structures and API used for saving BLAST hits.
BlastHSPResults * Blast_HSPResultsFree(BlastHSPResults *results)
Deallocate memory for BLAST results.
Declaration of ADT to save and retrieve lists of HSPs in the BLAST engine.
BlastHSPStream * BlastHSPStreamFree(BlastHSPStream *hsp_stream)
Frees the BlastHSPStream structure by invoking the destructor function set by the user-defined constr...
Blast_Message * Blast_MessageFree(Blast_Message *blast_msg)
Deallocates message memory.
The structures and functions in blast_options.
PSIBlastOptions * PSIBlastOptionsFree(PSIBlastOptions *psi_options)
Deallocate PSI BLAST options.
BlastHitSavingOptions * BlastHitSavingOptionsFree(BlastHitSavingOptions *options)
Deallocate memory for BlastHitSavingOptions.
BlastInitialWordOptions * BlastInitialWordOptionsFree(BlastInitialWordOptions *options)
Deallocate memory for BlastInitialWordOptions.
BlastEffectiveLengthsOptions * BlastEffectiveLengthsOptionsFree(BlastEffectiveLengthsOptions *options)
Deallocate memory for BlastEffectiveLengthsOptions*.
BlastExtensionOptions * BlastExtensionOptionsFree(BlastExtensionOptions *options)
Deallocate memory for BlastExtensionOptions.
BlastDatabaseOptions * BlastDatabaseOptionsFree(BlastDatabaseOptions *db_options)
Deallocate database options.
BlastScoringOptions * BlastScoringOptionsFree(BlastScoringOptions *options)
Deallocate memory for BlastScoringOptions.
LookupTableOptions * LookupTableOptionsFree(LookupTableOptions *options)
Deallocates memory for LookupTableOptions*.
QuerySetUpOptions * BlastQuerySetUpOptionsFree(QuerySetUpOptions *options)
Deallocate memory for QuerySetUpOptions.
BlastHitSavingParameters * BlastHitSavingParametersFree(BlastHitSavingParameters *parameters)
Deallocate memory for BlastHitSavingOptions*.
BlastEffectiveLengthsParameters * BlastEffectiveLengthsParametersFree(BlastEffectiveLengthsParameters *parameters)
Deallocate memory for BlastEffectiveLengthsParameters*.
BlastInitialWordParameters * BlastInitialWordParametersFree(BlastInitialWordParameters *parameters)
Deallocate memory for BlastInitialWordParameters.
BlastExtensionParameters * BlastExtensionParametersFree(BlastExtensionParameters *parameters)
Deallocate memory for BlastExtensionParameters.
BlastScoringParameters * BlastScoringParametersFree(BlastScoringParameters *parameters)
Deallocate memory for BlastScoringParameters.
EBlastProgramType
Defines the engine's notion of the different applications of the BLAST algorithm.
High level definitions and declarations for the PSSM engine of PSI-BLAST.
PSIDiagnosticsResponse * PSIDiagnosticsResponseFree(PSIDiagnosticsResponse *diags)
Deallocates the PSIDiagnosticsResponse structure passed in.
PSIMatrix * PSIMatrixFree(PSIMatrix *matrix)
Deallocates the PSIMatrix structure passed in.
PSIMsa * PSIMsaFree(PSIMsa *msa)
Deallocates the PSIMsa structure.
PSIDiagnosticsRequest * PSIDiagnosticsRequestFree(PSIDiagnosticsRequest *diags_request)
Deallocates the PSIDiagnosticsRequest structure passed in.
Definitions and functions associated with the BlastQueryInfo structure.
BlastQueryInfo * BlastQueryInfoFree(BlastQueryInfo *query_info)
Deallocate memory for query information structure.
BlastSeqSrcIterator * BlastSeqSrcIteratorFree(BlastSeqSrcIterator *itr)
Frees the BlastSeqSrcIterator structure.
BlastSeqSrc * BlastSeqSrcFree(BlastSeqSrc *seq_src)
Frees the BlastSeqSrc structure by invoking the destructor function set by the user-defined construct...
BlastScoreBlk * BlastScoreBlkFree(BlastScoreBlk *sbp)
Deallocates BlastScoreBlk as well as all associated structures.
Definitions of special type used in BLAST.
Various auxiliary BLAST utility functions.
BLAST_SequenceBlk * BlastSequenceBlkFree(BLAST_SequenceBlk *seq_blk)
Deallocate memory for a sequence block.
Initializes and uninitializes the genetic code singleton as if it was an automatic variable (to facil...
Class to capture message from diag handler.
Defines BLAST error codes (user errors included)
Function object to assist in finding all CSeqLocInfo objects which corresponds to a given frame.
Collection of masked regions for a single query sequence.
Include a standard set of the NCBI C++ Toolkit most basic headers.
void Blast_GetSeqLocInfoVector(EBlastProgramType program, const objects::CPacked_seqint &queries, const BlastMaskLoc *mask, TSeqLocInfoVector &mask_v)
Converts a BlastMaskLoc internal structure into an object returned by the C++ API.
CBlastAppDiagHandler()
Constructor.
BlastSeqLoc * CSeqLoc2BlastSeqLoc(const objects::CSeq_loc *slp)
Converts a CSeq_loc into a BlastSeqLoc structure used in NewBlast.
TMaskedQueryRegions PackedSeqLocToMaskedQueryRegions(CConstRef< objects::CSeq_loc > sloc, EBlastProgramType program, bool assume_both_strands=false)
Auxiliary function to convert a Seq-loc describing masked query regions to a TMaskedQueryRegions obje...
#define DECLARE_AUTO_CLASS_WRAPPER(struct_name, free_func)
Declares class to handle deallocating of the structure using the appropriate function.
result_type operator()(argument_type &seqlocinfo) const
Returns true if its argument's frame corresponds to the one used to create this object.
TAutoUint1ArrayPtr FindGeneticCode(int genetic_code)
Retrieves the requested genetic code in Ncbistdaa format.
static Uint4 m_RefCounter
const CRef< CSeqLocInfo > argument_type
ETranslationFrame m_Frame
Frame to look for.
#define TYPEDEF_AUTOPTR_ARRAYDELETER(type)
Uses delete [] operator - for C++ arrays.
bool IsLocalId(const objects::CSeq_id *seqid)
Returns true if the CSeq_id is a local id.
#define TYPEDEF_AUTOPTR_CDELETER(type)
Uses C Deleter (free) - used in functions that deal with CORE BLAST.
CFrameFinder(ETranslationFrame frame)
ctor
CRef< objects::CSeq_loc > MaskedQueryRegionsToPackedSeqLoc(const TMaskedQueryRegions &sloc)
Interface to build a CSeq-loc from a TMaskedQueryRegion; note that conversion conversion in this dire...
CSeqLocInfo::ETranslationFrame ETranslationFrame
Convenience typedef.
DECLARE_CLASS_STATIC_FAST_MUTEX(sm_Mutex)
Reference counter for this object so that the genetic code singleton is.
string Blast_ProgramNameFromType(EBlastProgramType program)
Returns a string program name, given a blast::EBlastProgramType enumeration.
void LoadSequencesToScope(objects::CScope::TIds &ids, vector< TSeqRange > &ranges, CRef< objects::CScope > &scope)
This method retrieve sequence data in bulk to scope @ids seq id list [in] @ranges seq range list [in]...
list< CRef< objects::CBlast4_error > > m_messages
static void Delete(BlastHSPStream *p)
list< CRef< objects::CBlast4_error > > & GetMessages(void)
Return list of saved diag messages.
CDiagHandler * GetDiagHandler(bool take_ownership=false, bool *current_ownership=0)
Get the currently set diagnostic handler class.
#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 CRef is empty – not pointing to any object, which means having a null value.
uint8_t Uint1
1-byte (8-bit) unsigned integer
uint32_t Uint4
4-byte (32-bit) unsigned integer
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define BEGIN_SCOPE(ns)
Define a new scope.
LookupTableWrap * LookupTableWrapFree(LookupTableWrap *lookup)
Deallocate memory for the lookup table.
Defines classes: CDirEntry, CFile, CDir, CSymLink, CMemoryFile, CFileUtil, CFileLock,...
vector< TMaskedQueryRegions > TSeqLocInfoVector
Collection of masked regions for all queries in a BLAST search.
Structure to hold a sequence.
Options used to create the ReadDBFILE structure Include database name and various information for res...
Options for setting up effective lengths and search spaces.
Parameters for setting up effective lengths and search spaces.
Options used for gapped extension These include: a.
Computed values used as parameters for gapped alignments.
Structure supporting the gapped alignment.
The structure to contain all BLAST results, for multiple queries.
Default implementation of BlastHSPStream.
Options used when evaluating and saving hits These include: a.
Parameter block that contains a pointer to BlastHitSavingOptions and the values derived from it.
Options needed for initial word finding and processing.
Parameter block that contains a pointer to BlastInitialWordOptions and the values derived from it.
Structure for keeping the query masking information.
The query related information.
Structure used for scoring calculations.
Scoring options block Used to produce the BlastScoreBlk structure This structure may be needed for lo...
Scoring parameters block Contains scoring-related information that is actually used for the blast sea...
Used to hold a set of positions, mostly used for filtering.
Complete type definition of Blast Sequence Source Iterator.
Complete type definition of Blast Sequence Source ADT.
Structure for keeping initial word extension information.
Structure to hold the a message from the core of the BLAST engine.
Functor template for deleting object.
Options needed to construct a lookup table Also needed: query sequence and query length.
Wrapper structure for different types of BLAST lookup tables.
Options used in protein BLAST only (PSI, PHI, RPS and translated BLAST) Some of these possibly should...
Structure to allow requesting various diagnostics data to be collected by PSSM engine.
This structure contains the diagnostics information requested using the PSIDiagnosticsRequest structu...
This is the main return value from the PSSM engine.
Multiple sequence alignment (msa) data structure containing the raw data needed by the PSSM engine to...
Options required for setting up the query sequence.
Progress monitoring structure.
void AddGeneticCode(CSeq_feat &cds, CGenetic_code::C_E::TId code_id)