74 "Find overlap between closely related DNA Sequences",
75 "Generate an overlap alignment between "
76 "closely related DNA sequences, particularly for "
77 "exploring clone overlap relationships",
78 "https://www.ncbi.nlm.nih.gov/tools/gbench/tutorial5/",
79 "Alignment Creation"),
86 return "find_overlap_tool";
92 return "Find Overlap Tool";
138 if( !gui_seq_info.
IsNull() && gui_seq_info->IsDNA() ){
200 if (&scope1 != &scope2) {
201 LOG_POST(
Error <<
"Inconsistent scopes - results may not be viewable");
218 LOG_POST(
Info <<
"Find Overlap Alignments: \n" <<
" " << name1 <<
" x " << name2
220 <<
" blast_params='" << blast_params <<
"'" <<
" "
226 vector<CRef<CSeq_align> > alns;
250 if( sas && sas->
IsSet() ){
251 alns.insert( alns.end(), sas->
Set().begin(), sas->
Set().end() );
260 annot->
SetData().SetAlign().push_back(*iter);
267 name +=
": Overlap Alignment";
274 item->
SetItem().SetAnnot(*annot);
283 x_SetTextResult(
"No overlaps are found according to the settings desired." );
292 opts->SetTraditionalBlastnDefaults();
293 blast::CBlastOptions& options = opts->SetOptions();
307 if( !blast_params.empty() ){
308 static const string s_whitespace(
" \n\t\r");
314 for(
unsigned int i = 0;
i < argv.size();
i++ ){
315 string& name = argv[
i];
320 }
else if (name ==
"-r") {
323 }
else if (name ==
"-q") {
326 }
else if (name ==
"-e") {
329 }
else if (name ==
"-Z") {
331 name =
"-xdrop_gap_final";
332 }
else if (name ==
"-F") {
336 string&
value = argv[
i + 1];
339 }
else if (name ==
"-G") {
342 }
else if (name ==
"-E") {
382 unique_ptr<CArgDescriptions> arg_descs( blast_args->SetCommandLine() );
383 unique_ptr<CArgs> args( arg_descs->CreateArgs( argv.size(), argv ) );
388 blast::CGenericSearchArgs search_args(
false ,
391 search_args.ExtractAlgorithmOptions(*args, options);
393 blast::CFilteringArgs filter_args(
false );
394 filter_args.ExtractAlgorithmOptions(*args, options);
396 blast::CNuclArgs nucl_args;
397 nucl_args.ExtractAlgorithmOptions(*args, options);
399 blast::CGappedArgs gapped_args;
400 gapped_args.ExtractAlgorithmOptions(*args, options);
403 blast::CHspFilteringArgs cull_args;
404 cull_args.ExtractAlgorithmOptions(*args, options);
407 blast::CWindowSizeArg window_args;
408 window_args.ExtractAlgorithmOptions(*args, options);
413 "Cannot parse BLAST params, please edit them:\n" + ex.
GetMsg()
431 string perfect_dovetail =
" pct_identity_ungap >= 100 AND longest_gap < 50 AND full_dovetail = 1 ";
432 string near_perfect_dovetail =
" pct_identity_ungap >= 99.8 AND longest_gap < 50 AND full_dovetail = 1 ";
433 string super_green_contained =
" pct_identity_ungap >= 99.8 AND contained > -1 ";
435 string green_dovetail =
" pct_identity_ungap >= 99.6 AND longest_gap < 50 AND full_dovetail = 1 ";
436 string green_contained =
" pct_identity_ungap >= 99.6 AND contained > -1 ";
438 string yellow_dovetail =
" pct_identity_ungap >= 98.0 AND longest_gap < 500 AND full_dovetail = 1 ";
439 string yellow_contained =
" pct_identity_ungap >= 98.0 AND contained > -1 ";
440 string yellow_half_dovetail =
" pct_identity_ungap >= 98.0 AND longest_gap < 500 AND half_dovetail = 1 AND tail_length <= 50 ";
442 string red_dovetail =
" pct_identity_ungap >= 95.0 AND full_dovetail = 1 ";
443 string red_half_dovetail =
" pct_identity_ungap >= 95.0 AND half_dovetail = 1 AND tail_length <= 2000 AND tail_length <= align_length_ungap ";
444 string red_contained =
" pct_identity_ungap >= 95.0 AND contained > -1 ";
446 string super_red_half_dovetail =
" pct_identity_ungap >= 92.0 AND half_dovetail = 1 AND tail_length <= 5000 AND tail_length <= align_length_ungap ";
447 string mega_red_half_dovetail =
" pct_identity_ungap >= 92.0 AND half_dovetail = 1 AND tail_length <= 10000 ";
448 string ultra_red_half_dovetail =
" pct_identity_ungap >= 92.0 AND half_dovetail = 1 AND tail_length <= MUL(5, align_length_ungap) ";
449 string omega_red_half_dovetail =
" pct_identity_ungap >= 92.0 AND half_dovetail = 1 ";
453 if( filter_qty >= 0 ){
458 if( filter_qty >= 1 ){
462 if( filter_qty >= 2 ){
467 if( filter_qty >= 3 ){
472 if( filter_qty >= 4 ){
Declares the BLAST exception class.
@ eBlastn
Nucl-Nucl (traditional blastn)
Main argument class for BLASTN application.
void SetInterruptCallback(TInterruptFnPtr fnptr=NULL, void *user_data=NULL)
CDataLoadingAppJob - a base class for Jobs loading data into projects.
void AddProjectItem(objects::CProjectItem &item)
void x_SetTextResult(const string &result)
CFindOverlapJob(const CFindOverlapParams ¶ms)
CFindOverlapJob.
void x_PrepareAligner(CNgAligner &aligner, CFindOverlapParams ¶ms)
static Boolean x_BlastInterruptCallback(SBlastProgress *prog)
CFindOverlapParams m_Params
virtual void x_CreateProjectItems()
override this function in derived classes and populate m_Items.
void SetQuery(ISequenceSet *Set)
void SetSubject(ISequenceSet *Set)
void AddFilter(IAlignmentFilter *Filter)
void AddAligner(IAlignmentFactory *Aligner)
void AddScorer(IAlignmentScorer *Scorer)
void SetNameDesc(const string &name)
void SetCreateDate(const CTime &dt)
IRegSettings An interface for objects that save / restore settings using CGuiRegistry.
#define SYMBOL_CFINDOVERLAPPANEL_STYLE
string EProgramToTaskName(EProgram p)
Convert a EProgram enumeration value to a task name (as those used in the BLAST command line binaries...
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
void Error(CExceptionArgs_Base &args)
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
const string & GetMsg(void) const
Get message string.
void Info(CExceptionArgs_Base &args)
virtual CAlgoToolManagerParamsPanel * x_GetParamsPanel()
returns a pointer to the parameters panel, override in derived classes
void SetObjects(TConstScopedObjects *objects)
const SConstScopedObject & GetSeq1() const
virtual string GetExtensionLabel() const
returns a displayable label for this extension ( please capitalize the key words - "My Extension" )
virtual bool x_CreateParamsPanelIfNeeded()
returns / creates Parameters panel, override in derived classes see cpp file for example
wxString GetMaxSlop() const
virtual IRegSettings * x_GetParamsAsRegSetting()
return a pointer to Parameters object as IRegSettings interface
TConstScopedObjects m_SeqIds
int GetFilterQuality() const
CFindOverlapParams & GetData()
virtual void CleanUI()
override this function in a derived class and clean extra members
virtual void InitUI()
override this function in a derived class and initialize extra members
virtual void x_SelectCompatibleInputObjects()
select only Seq-ids
virtual void LoadSettings()
CFindOverlapParams m_Params
virtual CDataLoadingAppJob * x_CreateLoadingJob()
factory method for creating the job that executes the tool algorithm override in derived classes
virtual string GetExtensionIdentifier() const
returns the unique human-readable identifier for the extension the id should use lowercase letters se...
CFindOverlapTool()
CFindOverlapTool.
void SetData(const CFindOverlapParams &data)
virtual bool x_ValidateParams()
validates user input in Parameters panel, report errors if any
const SConstScopedObject & GetSeq2() const
wxString GetBlastParams() const
CFindOverlapPanel * m_Panel
static void GetLabel(const CObject &obj, string *label, ELabelType type=eDefault)
CRef< objects::CScope > scope
string m_Descr
mutex to sync our internals
virtual bool IsCanceled() const override
CConstRef< CObject > object
vector< SConstScopedObject > TConstScopedObjects
static CRef< CObjectManager > GetInstance(void)
Return the existing object manager or create one.
void AddScope(CScope &scope, TPriority pri=kPriority_Default)
Add the scope's datasources as a single group with the given priority All data sources (data loaders ...
void Reset(void)
Reset reference object.
bool IsNull(void) const THROWS_NONE
Check if pointer is null – same effect as Empty().
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
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.
@ eCurrent
Use current time. See also CCurrentTime.
void SetLabel(const TLabel &value)
Assign a value to Label data member.
void SetItem(TItem &value)
Assign a value to Item data member.
Tdata & Set(void)
Assign a value to data member.
bool IsSet(void) const
Check if a value has been assigned to data member.
void SetData(TData &value)
Assign a value to Data data member.
const GenericPointer< typename T::ValueType > T2 value
Uint1 Boolean
bool replacment for C
#define TRUE
bool replacment for C indicating true.
#define FALSE
bool replacment for C indicating false.
Progress monitoring structure.
string ToStdString(const wxString &s)