74 const vector<double>& karlin_k);
99 const vector<double>& karlin_k)
114 }
catch (
const bad_alloc&) {
117 "Failed to allocate memory for BlastRPSAuxInfo structure");
183 const string file2open(filename_no_extn +
kExtension);
185 if (auxfile.bad() || auxfile.fail()) {
187 "Cannot open RPS-BLAST auxiliary file: " + file2open);
202 vector<double> karlinK;
210 input >> ignore_me_d;
211 input >> ignore_me_d;
212 input >> ignore_me_i;
213 input >> ignore_me_i;
214 input >> scale_factor;
220 karlinK.push_back(k);
260 "Cannot memory map RPS-BLAST database file: " + filename);
299 "RPS BLAST profile file (" + filename_no_extn +
kExtension +
300 ") is either corrupt or constructed for an incompatible "
346 "RPS BLAST profile file (" + filename_no_extn +
kExtension +
347 ") is either corrupt or constructed for an incompatible "
396 "RPS BLAST profile file (" + filename_no_extn +
kExtension +
397 ") is either corrupt or constructed for an incompatible "
445 "RPS BLAST profile file (" + filename_no_extn +
kExtension +
446 ") is either corrupt or constructed for an incompatible "
494 "RPS BLAST freq ratios file (" + filename_no_extn +
kExtension +
495 ") is either corrupt or constructed for an incompatible "
523 vector<string> dbpath;
525 path = *dbpath.begin();
528 "Cannot retrieve path to RPS database");
532 unique_ptr<BlastRPSInfo> rps_info;
536 catch (
const bad_alloc&) {
538 "RPSInfo allocation failed");
599 string msg = rps_dbname +
" contains no frequency ratios needed for composition-based statistics.\n" \
600 "Please disable composition-based statistics when searching against " + rps_dbname +
".";
629 return m_RpsInfo->aux_info.orig_score_matrix;
635 return m_RpsInfo->aux_info.gap_open_penalty;
641 return m_RpsInfo->aux_info.gap_extend_penalty;
Definitions used throughout BLAST.
#define sfree(x)
Safe free a pointer: belongs to a higher level header.
Declares the BLAST exception class.
#define RPS_MAGIC_NUM_28
Version number for 28-letter alphabet.
struct BlastRPSAuxInfo BlastRPSAuxInfo
information derived from RPS blast '.aux' file
#define RPS_MAGIC_NUM
RPS blast version number.
Defines BLAST error codes (user errors included)
Wrapper class to manage the BlastRPSAuxInfo structure, as currently there aren't any allocation or de...
Defines system exceptions occurred while running BLAST.
This class represents the .aux file in a RPS-BLAST file, which contains information about the scoring...
This class represents the .freq file in a RPS-BLAST file, which contains the frequency ratios for the...
This class represents the .wcounts file in a RPS-BLAST file, which contains the weighted residue freq...
This class represents the .loo file in a RPS-BLAST file, which contains the pre-computed lookup table...
Encapsulates logic of mmap'ing and performing sanity checks on RPS-BLAST database files.
This class represents the .obsr file in a RPS-BLAST file, which contains the numbers of independent o...
This class represents the .rps file in a RPS-BLAST file, which contains the PSSMs for the database.
static void FindVolumePaths(const string &dbname, ESeqType seqtype, vector< string > &paths, vector< string > *alias_paths=NULL, bool recursive=true, bool expand_links=true)
Find volume paths.
void x_Init(const string &rps_dbname, int flags)
Initialize attributes.
int GetGapExtensionCost() const
Returns the gap extension cost associated with the scoring matrix above.
CRef< CRpsLookupTblFile > m_LutFile
The lookup table RPS-BLAST file (.loo)
BlastRPSProfileHeader * m_Data
Header.
CBlastRPSAuxInfo & operator=(const CBlastRPSAuxInfo &rhs)
Prohibit assignment operator.
const BlastRPSAuxInfo * operator()() const
Lend the caller the pointer to the data structure this object manages.
CRef< CRpsFreqRatiosFile > m_FreqRatiosFile
Frequency ratios file (.freq) used for composition based statistics and cobalt.
BlastRPSProfileHeader * m_Data
The data structure this class manages.
BlastRPSFreqRatiosHeader * m_Data
The data this class manages.
const BlastRPSProfileHeader * operator()() const
Lend the caller the pointer to the data structure this object manages.
BlastRPSAuxInfo * m_Data
The data structure this class manages.
const BlastRPSProfileHeader * operator()() const
Lend the caller the pointer to the data structure this object manages.
static const string kExtension
Extension associated with the RPS-BLAST database PSSM file.
const BlastRPSProfileHeader * operator()() const
Lend the caller the pointer to the data structure this object manages.
unique_ptr< BlastRPSInfo > m_RpsInfo
Pointer which contains pointers to data managed by the data members above.
CRpsPssmFile(const string &filename_no_extn)
Parametrized constructor.
double GetScalingFactor() const
Returns the scaling factor used to build RPS-BLAST database.
~CBlastRPSInfo()
Destructor.
CRpsAuxFile(const string &filename_no_extn)
Parametrized constructor.
BlastRPSProfileHeader * m_Data
The data this class manages.
const BlastRPSFreqRatiosHeader * operator()() const
Lend the caller the pointer to the data structure this object manages.
CRpsMmappedFile(const string &filename)
Parametrized constructor.
~CBlastRPSAuxInfo()
Destructor.
void x_DoDestroy()
Deallocates the structure owned by this class.
CRef< CBlastRPSAuxInfo > m_Data
CBlastRPSInfo(const string &rps_dbname)
Parametrized constructor.
CBlastRPSAuxInfo(const string &matrix, int gap_open, int gap_extend, double scale_factor, const vector< double > &karlin_k)
Parametrized constructor.
CBlastRPSAuxInfo(const CBlastRPSAuxInfo &rhs)
Prohibit copy-constructor.
CRef< CRpsAuxFile > m_AuxFile
The auxiliary RPS-BLAST file (.aux)
static const string kExtension
Extension associated with the RPS-BLAST database auxiliary file.
CRpsObsrFile(const string &filename_no_extn)
Parametrized constructor.
CRef< CBlastRPSAuxInfo > x_ReadFromFile(CNcbiIfstream &input)
Auxiliary method to read the contents of the file into m_Data.
static const string kExtension
Extension associated with the RPS-BLAST database PSSM file.
const BlastRPSInfo * operator()() const
Accessor for the underlying C structure (managed by this class)
CRpsFreqRatiosFile(const string &filename_no_extn)
Parametrized constructor.
virtual ~CRpsFreqRatiosFile()
CRef< CRpsPssmFile > m_PssmFile
The PSSM RPS-BLAST file (.rps)
static const string kExtension
Extension associated with the RPS-BLAST database PSSM file.
BlastRPSLookupFileHeader * m_Data
The data structure this class manages.
const BlastRPSLookupFileHeader * operator()() const
Lend the caller the pointer to the data structure this object manages.
const char * GetMatrixName() const
Returns the name of the scoring matrix used to build the RPS-BLAST database.
CRef< CRpsObsrFile > m_ObsrFile
Number of independent observations file (.obsr) used by delta-blast.
CRpsFreqsFile(const string &filename_no_extn)
Parametrized constructor.
CRpsLookupTblFile(const string &filename_no_extn)
Parametrized constructor.
CRef< CRpsFreqsFile > m_FreqsFile
Weighted residue frequencies file (.wcounts) used by delta-blast.
static const string kExtension
Extension associated with the RPS-BLAST database PSSM file.
unique_ptr< CMemoryFile > m_MmappedFile
The data structure this class manages.
static const string kExtension
Extension associated with the RPS-BLAST database lookup table file.
const BlastRPSAuxInfo * operator()() const
Lend the caller the pointer to the data structure this object manages.
int GetGapOpeningCost() const
Returns the gap opening cost associated with the scoring matrix above.
@ fFrequenciesFile
Open residue frequencies file.
@ fFreqRatiosFile
Open file with frequency ratios.
@ fObservationsFile
Open file with numbers of independent observations.
@ fRpsBlast
Flags set for RPS-BLAST.
@ fAuxInfoFile
Open auxiliary information file.
@ fPssmFile
Open pssm file.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
#define NCBI_RETHROW(prev_exception, exception_class, err_code, message)
Generic macro to re-throw an exception.
void Reset(void)
Reset reference object.
#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.
IO_PREFIX::ifstream CNcbiIfstream
Portable alias for ifstream.
Defines classes: CDirEntry, CFile, CDir, CSymLink, CMemoryFile, CFileUtil, CFileLock,...
void copy(Njn::Matrix< S > *matrix_, const Njn::Matrix< T > &matrix0_)
Declares auxiliary classes to manage RPS-BLAST related C-structures.
Defines BLAST database access classes.
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
information derived from RPS blast '.aux' file
Int4 gap_extend_penalty
gap extend penalty used in deriving PSSMs
double * karlin_k
one Karlin value for each DB sequence
double scale_factor
the PSSMs are scaled by this amount, and so all scores and all cutoff values must be similarly scaled...
Int4 gap_open_penalty
gap open penalty used in deriving PSSMs
char * orig_score_matrix
score matrix used to derive PSSMs
The RPS engine uses this structure to access all of the RPS blast related data (assumed to be collect...