current_batch_number = 0;
81 booldone_fasta_input =
false;
82 while( !done_fasta_input) {
92 booldb_is_remote =
true;
106l_blastdb.
Reset(&(*(l_ig_opts->
m_Db[0])));
107db_is_remote =
false;
143l_opts_hndl, l_ig_opts,
149 CIgBlastlcl_blast(
query, l_blastdb, l_opts_hndl, l_ig_opts, scope);
161one_context->m_batch_number = current_batch_number;
162one_context->m_results =
results;
163one_context->m_queries =
query;
164one_context->m_scope = scope ;
184 catch(
constncbi::CException& e) {
186 const CStackTrace* stack_trace = e.GetStackTrace();
190stack_trace->
Write(os);
192fprintf(stderr,
"WORKER: T%u BATCH # %d CEXCEPTION: %s\n",
thm_tid,current_batch_number,
msg.c_str());
193}
catch(
conststd::exception& e) {
194fprintf(stderr,
"WORKER: T%u BATCH # %d EXCEPTION: %s\n",
thm_tid,current_batch_number,e.what());
197fprintf(stderr,
"WORKER: T%u BATCH # %d GENERAL EXCEPTION \n",
thm_tid,current_batch_number);
201 return(
void*)
NULL;
205thm_run_thread_count--;
213 intwaiting_batch_number=0;
217std::map< int , CRef<CIgBlastContext> >::iterator results_ctx_it;
219 boolnext_batch_ready =
false;
220 boolis_megablast =
false;
229 stringl_full_db_list;
231 Int4l_num_alignments = 0;
236 if( thm_CmdLineArgs->GetTask() ==
"megablast") is_megablast =
true;
237l_ig_args.
Reset(thm_CmdLineArgs->GetIgBlastArgs());
239l_fmt_args.
Reset( thm_CmdLineArgs->GetFormattingArgs() );
247 if(l_ig_opts->
m_Db[4]) {
253 if(thm_CmdLineArgs->ExecuteRemotely()) {
260 if(l_ig_opts->
m_Db[4]) {
269l_blastdb.
Reset(&(*(l_ig_opts->
m_Db[0])));
270 if( !thm_CmdLineArgs->GetBlastDatabaseArgs()->GetDatabaseName().empty() ){
273l_query_opts = thm_CmdLineArgs->GetQueryOptionsArgs();
283vector<CBlastFormatUtil::SDbInfo> db_info;
284CBlastFormatUtil::GetBlastDbInfo(db_info, l_full_db_list, l_ig_opts->
m_IsProtein, -1,
false);
285CBlastFormatUtil::PrintDbReport(db_info, 68, thm_CmdLineArgs->GetOutputStream(),
true);
302 boolshow_gi = l_fmt_args->
ShowGis();
307 CNcbiOstream& out_stream = thm_CmdLineArgs->GetOutputStream();
313l_ig_opts->
m_AirrField.push_back(
"sequence_id");
315l_ig_opts->
m_AirrField.push_back(
"sequence_aa");
317l_ig_opts->
m_AirrField.push_back(
"stop_codon");
318l_ig_opts->
m_AirrField.push_back(
"vj_in_frame");
319l_ig_opts->
m_AirrField.push_back(
"v_frameshift");
320l_ig_opts->
m_AirrField.push_back(
"productive");
322l_ig_opts->
m_AirrField.push_back(
"complete_vdj");
328 if(l_ig_opts->
m_Db[4]) {
331l_ig_opts->
m_AirrField.push_back(
"sequence_alignment");
332l_ig_opts->
m_AirrField.push_back(
"germline_alignment");
333l_ig_opts->
m_AirrField.push_back(
"sequence_alignment_aa");
334l_ig_opts->
m_AirrField.push_back(
"germline_alignment_aa");
335l_ig_opts->
m_AirrField.push_back(
"v_alignment_start");
336l_ig_opts->
m_AirrField.push_back(
"v_alignment_end");
337l_ig_opts->
m_AirrField.push_back(
"d_alignment_start");
338l_ig_opts->
m_AirrField.push_back(
"d_alignment_end");
339l_ig_opts->
m_AirrField.push_back(
"j_alignment_start");
340l_ig_opts->
m_AirrField.push_back(
"j_alignment_end");
341 if(l_ig_opts->
m_Db[4]) {
342l_ig_opts->
m_AirrField.push_back(
"c_alignment_start");
343l_ig_opts->
m_AirrField.push_back(
"c_alignment_end");
345l_ig_opts->
m_AirrField.push_back(
"v_sequence_alignment");
346l_ig_opts->
m_AirrField.push_back(
"v_sequence_alignment_aa");
347l_ig_opts->
m_AirrField.push_back(
"v_germline_alignment");
348l_ig_opts->
m_AirrField.push_back(
"v_germline_alignment_aa");
349l_ig_opts->
m_AirrField.push_back(
"d_sequence_alignment");
350l_ig_opts->
m_AirrField.push_back(
"d_sequence_alignment_aa");
351l_ig_opts->
m_AirrField.push_back(
"d_germline_alignment");
352l_ig_opts->
m_AirrField.push_back(
"d_germline_alignment_aa");
353l_ig_opts->
m_AirrField.push_back(
"j_sequence_alignment");
354l_ig_opts->
m_AirrField.push_back(
"j_sequence_alignment_aa");
355l_ig_opts->
m_AirrField.push_back(
"j_germline_alignment");
356l_ig_opts->
m_AirrField.push_back(
"j_germline_alignment_aa");
357 if(l_ig_opts->
m_Db[4]) {
358l_ig_opts->
m_AirrField.push_back(
"c_sequence_alignment");
359l_ig_opts->
m_AirrField.push_back(
"c_sequence_alignment_aa");
360l_ig_opts->
m_AirrField.push_back(
"c_germline_alignment");
361l_ig_opts->
m_AirrField.push_back(
"c_germline_alignment_aa");
379l_ig_opts->
m_AirrField.push_back(
"junction_length");
380l_ig_opts->
m_AirrField.push_back(
"junction_aa");
381l_ig_opts->
m_AirrField.push_back(
"junction_aa_length");
385 if(l_ig_opts->
m_Db[4]) {
391 if(l_ig_opts->
m_Db[4]) {
397 if(l_ig_opts->
m_Db[4]) {
400l_ig_opts->
m_AirrField.push_back(
"v_identity");
401l_ig_opts->
m_AirrField.push_back(
"d_identity");
402l_ig_opts->
m_AirrField.push_back(
"j_identity");
403 if(l_ig_opts->
m_Db[4]) {
404l_ig_opts->
m_AirrField.push_back(
"c_identity");
406l_ig_opts->
m_AirrField.push_back(
"v_sequence_start");
407l_ig_opts->
m_AirrField.push_back(
"v_sequence_end");
408l_ig_opts->
m_AirrField.push_back(
"v_germline_start");
409l_ig_opts->
m_AirrField.push_back(
"v_germline_end");
410l_ig_opts->
m_AirrField.push_back(
"d_sequence_start");
411l_ig_opts->
m_AirrField.push_back(
"d_sequence_end");
412l_ig_opts->
m_AirrField.push_back(
"d_germline_start");
413l_ig_opts->
m_AirrField.push_back(
"d_germline_end");
414l_ig_opts->
m_AirrField.push_back(
"j_sequence_start");
415l_ig_opts->
m_AirrField.push_back(
"j_sequence_end");
416l_ig_opts->
m_AirrField.push_back(
"j_germline_start");
417l_ig_opts->
m_AirrField.push_back(
"j_germline_end");
418 if(l_ig_opts->
m_Db[4]) {
419l_ig_opts->
m_AirrField.push_back(
"c_sequence_start");
420l_ig_opts->
m_AirrField.push_back(
"c_sequence_end");
421l_ig_opts->
m_AirrField.push_back(
"c_germline_start");
422l_ig_opts->
m_AirrField.push_back(
"c_germline_end");
424l_ig_opts->
m_AirrField.push_back(
"fwr1_start");
426l_ig_opts->
m_AirrField.push_back(
"cdr1_start");
428l_ig_opts->
m_AirrField.push_back(
"fwr2_start");
430l_ig_opts->
m_AirrField.push_back(
"cdr2_start");
432l_ig_opts->
m_AirrField.push_back(
"fwr3_start");
434l_ig_opts->
m_AirrField.push_back(
"fwr4_start");
436l_ig_opts->
m_AirrField.push_back(
"cdr3_start");
439l_ig_opts->
m_AirrField.push_back(
"np1_length");
441l_ig_opts->
m_AirrField.push_back(
"np2_length");
451next_batch_ready =
false;
452results_ctx_it = thm_all_results.find( waiting_batch_number );
453 if( results_ctx_it != thm_all_results.end() ) {
455 if( results_ctx_it->second.Empty() ){
456fprintf(stderr,
"MID-FORMAT:ERROR: INPROPER ITERATOR->SECOND: EMPTY. BATCH: %d\n",waiting_batch_number-1);
459 if( results_ctx_it->first != results_ctx_it->second->m_batch_number ){
460fprintf(stderr,
"MID-FORMAT:ERROR: INPROPER ORDDER FOR BATCH: %d %d\n",results_ctx_it->first, results_ctx_it->second->m_batch_number);
464next_batch_ready =
true;
467local_results_context.
Reset( results_ctx_it->second );
468thm_all_results.erase( results_ctx_it ) ;
470 if( thm_any_started && !next_batch_ready && (thm_run_thread_count<=0) ) {
481 if( !next_batch_ready )
484thm_new_batch_done.TryWait(1U);
487waiting_batch_number++;
501scope.
Reset( local_results_context->m_scope );
502 results.Reset( local_results_context->m_results );
503 query.Reset( local_results_context->m_queries );
543 if( !clone_info.
na.empty() && !clone_info.
aa.empty() ){
545clone_nuc.
na= clone_info.
na;
560aa_status.
aa= clone_info.
aa;
563 if(iter != thm_Clone.end()) {
565 if(iter2 != (*iter->second).end()) {
566 if(
info->min_identity < iter2->second->min_identity) {
567iter2->second->min_identity =
info->min_identity;
569 if(
info->max_identity > iter2->second->max_identity) {
570iter2->second->max_identity =
info->max_identity;
572iter2->second->total_identity +=
info->total_identity;
573iter2->second->count ++;
574iter2->second->all_seqid = iter2->second->all_seqid +
","+
info->seqid;
582(*aa_info)[aa_status] =
info;
591 catch(
constncbi::CException& e) {
593 const CStackTrace* stack_trace = e.GetStackTrace();
597stack_trace->
Write(os);
599fprintf(stderr,
"WORKER: T%u BATCH # %d CEXCEPTION: %s\n",thm_tid,waiting_batch_number,
msg.c_str());
601}
catch(
conststd::exception& e) {
602fprintf(stderr,
"WORKER: T%u BATCH # %d EXCEPTION: %s\n",thm_tid, waiting_batch_number,e.what());
605fprintf(stderr,
"WORKER: T%u BATCH # %d GENERAL EXCEPTION \n",thm_tid, waiting_batch_number);
610 return(
void*)
NULL;
618 for(
intthread_cnt = 0; thread_cnt < thread_num ; thread_cnt ++ ){
659 for(
size_tndx = 0; ndx <
m_workers.size(); ndx++ ){
661 if( is_detached)
m_workers[ndx]->Detach();
665 for(
size_tndx = 0; ndx <
m_workers.size(); ndx++ ){
695 unsigned intl_batch_count=0;
702 while( !l_input->
End() ) {
706 returnl_batch_count;
748vector < string > all_sra_runs;
750vector<string> run_arr;
751 stringdelim =
", ";
752 NStr::Split( sra_run_accessions, delim, run_arr );
754 for(
intndx=0; ndx < (
int)run_arr.size(); ndx ++){
756all_sra_runs.push_back( one_run );
764cout <<
"Error: "<<e.
what() << endl;
765cout <<
"Error: invalid SRA accession(s): "<<sra_run_accessions<< endl;
769cout <<
"Error: invalid SRA accessions: "<<sra_run_accessions<< endl;
773cout <<
"Error: invalid SRA accession "<<sra_run_accessions<<endl;
852 boolrun_detach =
false;
868 if(args.
Exist(
"clonotype_out") && args[
"clonotype_out"] &&
870 outfile= &(args[
"clonotype_out"].AsOutputFile());
876 typedefvector<pair<const SCloneNuc*, AaMap*> * > MapVec;
883pair<const SCloneNuc*, AaMap*> *
data=
newpair<const SCloneNuc*, AaMap* > (&(iter->first), iter->second);
884map_vec.push_back(
data);
888 inttotal_elements = 0;
889 inttotal_unique_clones = 0;
890 ITERATE(MapVec, iter, map_vec) {
892total_elements += iter2->second->count;
893total_unique_clones ++;
899*
outfile<<
"Total identifiable CDR3 = "<< total_elements << endl;
900*
outfile<<
"Total unique clonotypes = "<< total_unique_clones << endl;
904*
outfile<<
"\n"<<
"#Clonotype summary. A particular clonotype includes any V(D)J rearrangements that have the same germline V(D)J gene segments, the same productive/non-productive status and the same CDR3 nucleotide as well as amino sequence (Those having the same CDR3 nucleotide but different amino acid sequence or productive/non-productive status due to frameshift in V or J gene are assigned to a different clonotype. However, their clonotype identifers share the same prefix, for example, 6a, 6b). Fields (tab-delimited) are clonotype identifier, representative query sequence name, count, frequency (%), CDR3 nucleotide sequence, CDR3 amino acid sequence, productive status, chain type, V gene, D gene, J gene\n"<< endl;
907 stringsuffix =
"abcdefghijklmnop";
909 ITERATE(MapVec, iter, map_vec) {
910 if(
count> args[
"num_clonotype"].AsInteger()) {
917 doublefrequency = ((double) iter2->second->count)/total_elements*100;
920 if((*iter)->second->size() > 1) {
921clone_name += suffix[aa_count];
924*
outfile<< std::setprecision(3) << clone_name <<
"\t" 926<<iter2->second->seqid<<
"\t" 927<<iter2->second->count<<
"\t" 929<<(*iter)->first->na<<
"\t" 930<<iter2->first.aa<<
"\t" 931<<iter2->first.productive<<
"\t" 932<<(*iter)->first->chain_type<<
"\t" 933<<(*iter)->first->v_gene<<
"\t" 934<<(*iter)->first->d_gene<<
"\t" 935<<(*iter)->first->j_gene<<
"\t" 943*
outfile<<
"\n#All query sequences grouped by clonotypes. Fields (tab-delimited) are clonotype identifier, count, frequency (%), min similarity to top germline V gene (%), max similarity to top germline V gene (%), average similarity to top germline V gene (%), query sequence name (multiple names are separated by a comma if applicable)"<< endl << endl;
944 ITERATE(MapVec, iter, map_vec) {
945 if(
count> args[
"num_clonotype"].AsInteger()) {
951 if((*iter)->second->size() > 1) {
952clone_name += suffix[aa_count];
955 doublefrequency = ((double) iter2->second->count)/total_elements*100;
956*
outfile<< std::setprecision(3)
957<< clone_name <<
"\t" 958<< iter2->second->count<<
"\t" 960<< iter2->second->min_identity*100<<
"\t" 961<< iter2->second->max_identity*100<<
"\t" 962<< iter2->second->total_identity/iter2->second->count*100<<
"\t" 963<< iter2->second->all_seqid<<
"\t"<< endl;
975 ITERATE(MapVec, iter, map_vec) {
1016 deleteiter2->second;
1018 deleteiter->second;
1033 #ifndef SKIP_DOXYGEN_PROCESSING 1034 int main(
intargc,
const char* argv[]
)
Produce formatted blast output for command line applications.
void InitializeSubject(CRef< blast::CBlastDatabaseArgs > db_args, CRef< blast::CBlastOptionsHandle > opts_hndl, bool is_remote_search, CRef< blast::CLocalDbAdapter > &db_adapter, CRef< objects::CScope > &scope)
Initializes the subject/database as well as its scope.
void BlastFormatter_PreFetchSequenceData(const blast::CSearchResultSet &results, CRef< CScope > scope, blast::CFormattingArgs::EOutputFormat format_type)
This method optimize the retrieval of sequence data to scope.
#define CATCH_ALL(exit_code)
Standard catch statement for all BLAST command line programs.
#define BLAST_EXIT_SUCCESS
Command line binary exit code: success.
Interface for reading SRA sequences into blast input.
Interface for converting sources of sequence data into blast sequence input.
string GetTask() const
Get the task for this object.
virtual CNcbiIstream & GetInputStream()
Get the input stream.
size_t GetNumThreads() const
Get the number of threads to spawn.
CRef< CBlastOptionsHandle > SetOptions(const CArgs &args)
Extract the command line arguments into a CBlastOptionsHandle object.
CRef< CBlastDatabaseArgs > GetBlastDatabaseArgs() const
Get the BLAST database arguments.
CArgDescriptions * SetCommandLine()
Set the command line arguments.
bool ExecuteRemotely() const
Determine whether the search should be executed remotely or not.
CRef< CQueryOptionsArgs > GetQueryOptionsArgs() const
Get the options for the query sequence(s)
CRef< CFormattingArgs > GetFormattingArgs() const
Get the formatting options.
bool ProduceDebugOutput() const
Return whether debug (verbose) output should be produced on remote searches (only available when comp...
virtual CNcbiOstream & GetOutputStream()
Get the output stream.
CRef< CSearchDatabase > GetSearchDatabase() const
Retrieve the search database information.
CRef< IQueryFactory > GetSubjects(objects::CScope *scope=NULL)
Retrieve subject sequences, if provided.
string GetDatabaseName() const
Get the BLAST database name.
Class representing a text file containing sequences in fasta format.
This class formats the BLAST results for command line applications.
void PrintOneResultSet(const blast::CSearchResults &results, CConstRef< blast::CBlastQueryVector > queries, unsigned int itr_num=numeric_limits< unsigned int >::max(), blast::CPsiBlastIterationState::TSeqIds prev_seqids=blast::CPsiBlastIterationState::TSeqIds(), bool is_deltablast_domain_result=false)
Print all alignment information for a single query sequence along with any errors or warnings (errors...
void PrintEpilog(const blast::CBlastOptions &options)
Print the footer of the blast report.
Class that centralizes the configuration data for sequences to be converted.
void SetQueryLocalIdMode()
Append query-specific prefix codes to all generated local ids.
Generalized converter from an abstract source of biological sequence data to collections of blast inp...
bool End()
Determine if we have reached the end of the BLAST input.
CRef< CBlastQueryVector > GetNextSeqBatch(CScope &scope)
Read and convert the next batch of sequences.
Encapsulates ALL the BLAST algorithm's options.
void AddParam(EUsageParams p, int val)
void DebugDumpText(ostream &out, const string &bundle, unsigned int depth) const
string GetCustomOutputFormatSpec() const
Retrieve for string that specifies the custom output format for tabular and comma-separated value.
EOutputFormat GetFormattedOutputChoice() const
Get the choice of formatted output.
EOutputFormat
Defines the output formats supported by our command line formatter.
@ eAirrRearrangement
igblast AIRR rearrangement, 19
@ eFlatQueryAnchoredNoIdentities
@ eFlatQueryAnchoredIdentities
Flat query anchored no identities.
@ eTabularWithComments
Tabular output with comments.
TSeqPos GetNumAlignments() const
Number of alignments to show in traditional BLAST output.
bool ShowGis() const
Display the NCBI GIs in formatted output?
TSeqPos GetNumDescriptions() const
Number of one-line descriptions to show in traditional BLAST output.
bool DisplayHtmlOutput() const
Display HTML output?
void AddIgSequenceScope(CRef< objects::CScope > scope)
CRef< CIgBlastOptions > GetIgBlastOptions()
Handles command line arguments for igblastn binary.
CRef< CIgBlastArgs > GetIgBlastArgs() const
virtual void * Main(void)
Derived (user-created) class must provide a real thread function.
virtual void OnExit(void)
Override this to execute finalization code.
IG_ResultsMap & thm_all_results
CFastMutex & thm_Mutex_Output
CFastMutex & thm_Mutex_Input
CFastMutex & thm_Mutex_Global
CRef< CBlastInput > thm_input
virtual void * Main(void)
Derived (user-created) class must provide a real thread function.
virtual void OnExit(void)
Override this to execute finalization code.
CSemaphore & thm_new_batch_done
CFastMutex & thm_Mutex_Notify
CRef< CIgBlastnAppArgs > thm_CmdLineArgs
int & thm_run_thread_count
size_t m_worker_thread_num
CRef< CIgBlastnAppArgs > m_CmdLineArgs
CBlastUsageReport m_UsageReport
void Run_Formatter_Threads(void)
CFastMutex m_Mutex_Notify
CFastMutex m_Mutex_Output
CRef< CBlastInput > m_input
CFastMutex m_Mutex_Global
IG_ResultsMap m_all_results
void Init_Formatter_Thread(void)
vector< CRef< CIgWorker > > m_workers
virtual void Init()
@inheritDoc
void Init_Worker_Threads(int thread_num)
CRef< CIgBlastArgs > m_ig_args
virtual int Run()
@inheritDoc
CRef< CIgFormatter > m_formatter
CRef< CLocalDbAdapter > m_blastdb
CRef< CLocalDbAdapter > m_blastdb_full
void Join_Worker_Threads(void)
void Run_Worker_Threads(bool is_detached)
CRef< CBlastOptionsHandle > m_opts_hndl
unsigned int x_CountUserBatches(CBlastInputSourceConfig &iconfig, int batch_size=10000)
CRef< CIgBlastOptions > m_ig_opts
CSemaphore m_new_batch_done
CRef< CSraInputSource > m_sra_src
CRef< CQueryOptionsArgs > m_query_opts
CRef< CBlastFastaInputSource > m_fasta
This application's command line args.
CIgBlastnApp()
@inheritDoc
Interface to create a BlastSeqSrc suitable for use in CORE BLAST from a a variety of BLAST database/s...
objects::ENa_strand GetStrand() const
Get strand to search in query sequence(s)
bool GetParseDeflines() const
Should the defline be parsed?
bool QueryIsProtein() const
Is the query sequence protein?
TSeqRange GetRange() const
Get query sequence range restriction.
bool UseLowercaseMasks() const
Use lowercase masking in FASTA input?
Class for reading sequences from SRA respository or SRA file.
void Write(CNcbiOstream &os) const
Write stack trace to the stream, prepend each line with the prefix.
container_type::iterator iterator
container_type::value_type value_type
const string kArgSraAccession
Argument to specify SRA accessions.
void Print(const CCompactSAMApplication::AlignInfo &ai)
int GetDbGeneticCode() const
string GetDatabaseName() const
Returns the database name if appropriate, else kEmptyStr for subject sequences.
CRef< CSearchResultSet > Run()
Run the Ig-BLAST engine.
list< string > m_AirrField
CRef< CLocalDbAdapter > m_Db[5]
CBlastOptions & SetOptions()
Returns a reference to the internal options class which this object is a handle for.
void SetMismatchPenalty(int p)
void SetNumberOfThreads(size_t nthreads)
Set MT mode.
int GetFilteringAlgorithm()
Retrieve the database filtering algorithm.
const CBlastOptions & GetOptions() const
Return the object which this object is a handle for.
int GetQueryGeneticCode() const
bool GetSumStatisticsMode() const
Sum statistics options.
bool GetMBIndexLoaded() const
const char * GetMatrixName() const
@ eBlastDbIsNucleotide
nucleotide
void HideStdArgs(THideStdArgs hide_mask)
Set the hide mask for the Hide Std Flags.
unsigned int TSeqPos
Type for sequence locations and lengths.
virtual const CArgs & GetArgs(void) const
Get parsed command line arguments.
CVersionInfo GetVersion(void) const
Get the program version information.
virtual void SetupArgDescriptions(CArgDescriptions *arg_desc)
Setup the command line argument descriptions.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
@ fHideXmlHelp
Hide XML help description.
@ fHideLogfile
Hide log file description.
@ fHideFullVersion
Hide full version description.
@ fHideDryRun
Hide dryrun description.
@ fHideConffile
Hide configuration file description.
bool Exist(const string &name) const
Check existence of argument description.
EDiagSev SetDiagPostLevel(EDiagSev post_sev=eDiag_Error)
Set the threshold severity for posting the messages.
#define ERR_POST(message)
Error posting with file, line number information but without error codes.
@ eDPF_ErrCodeExplanation
Error explanation (default)
@ eDS_Default
Try standard log file (app.name + ".log") in /log/, use stderr on failure.
@ eDiag_Warning
Warning message.
virtual const char * what(void) const noexcept
Standard report (includes full backlog).
static CRef< CObjectManager > GetInstance(void)
Return the existing object manager or create one.
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
void Reset(void)
Reset reference object.
bool Empty(void) const THROWS_NONE
Check if CRef is empty â not pointing to any object, which means having a null value.
int32_t Int4
4-byte (32-bit) signed integer
bool IsEnabled(void)
Indicates whether application usage statistics collection is enabled for a current reporter instance.
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
static list< string > & Split(const CTempString str, const CTempString delim, list< string > &arr, TSplitFlags flags=0, vector< SIZE_TYPE > *token_pos=NULL)
Split a string using specified delimiters.
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
static string TruncateSpaces(const string &str, ETrunc where=eTrunc_Both)
Truncate whitespace in a string.
void Post(unsigned int count=1)
Increment the semaphore by "count".
void Start(void)
Start the timer.
static bool Raise(ESignal signal)
Sends a signal to the current process.
@ eSignal_SEGV
Segmentation violation.
unsigned int
A callback function used to compare two keys in a database.
map< SAaStatus, SAaInfo *, sort_order_aa_status > AaMap
static bool x_SortByCount(const pair< const SCloneNuc *, AaMap * > *c1, const pair< const SCloneNuc *, AaMap * > *c2)
int main(int argc, const char *argv[])
Main argument class for IGBLASTN application.
Main class to perform a BLAST search on the local machine.
Setup interrupt signal handling.
Defines the CNcbiApplication and CAppException classes for creating NCBI applications.
Multi-threading â mutexes; rw-locks; semaphore.
NOTE: This file contains work in progress and the APIs are likely to change, please do not rely on th...
Declares the CRemoteBlast class.
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
Configuration structure for the CBlastScopeSource.
void OptimizeForWholeLargeSequenceRetrieval(bool value=true)
Configures the BLAST database data loader to optimize the retrieval of *entire* large sequences.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4