1 /* $Id: rmblastn_args.cpp 500404 2016-05-04 14:59:01Z camacho $ 2 * =========================================================================== 3 * 4 * PUBLIC DOMAIN NOTICE 5 * 6 * =========================================================================== 7 * 8 * Author: Robert M. Hubley 9 * Shameless based on the work of Christiam Camacho in 10 * rmblastn_args.cpp 11 * 12 */ 13 14 /** @file rmblastn_args.cpp 15 * Implementation of the RMBLASTN command line arguments 16 */ 17 18 19 #include <ncbi_pch.hpp> 20 #include <algo/blast/blastinput/rmblastn_args.hpp> 21 #include <algo/blast/api/disc_nucl_options.hpp> 22 #include <algo/blast/api/blast_exception.hpp> 23 #include <algo/blast/blastinput/blast_input_aux.hpp> 24 25 BEGIN_NCBI_SCOPE 26 BEGIN_SCOPE(blast) 27 USING_SCOPE(objects); 28 CRMBlastnAppArgs()29CRMBlastnAppArgs::CRMBlastnAppArgs() 30 { 31 CRef<IBlastCmdLineArgs> arg; 32 // Something appears to be overriding this 33 arg.Reset(new CProgramDescriptionArgs("rmblastn", 34 "Nucleotide-Nucleotide BLAST with RepeatMasker Extensions")); 35 const bool kQueryIsProtein = false; 36 m_Args.push_back(arg); 37 38 // Don't want the greedy megablast...no howdy doody 39 static const string kDefaultTask = "rmblastn"; 40 SetTask(kDefaultTask); 41 set<string> tasks 42 (CBlastOptionsFactory::GetTasks(CBlastOptionsFactory::eNuclNucl)); 43 arg.Reset(new CTaskCmdLineArgs(tasks, kDefaultTask)); 44 m_Args.push_back(arg); 45 46 m_BlastDbArgs.Reset(new CBlastDatabaseArgs); 47 arg.Reset(m_BlastDbArgs); 48 m_Args.push_back(arg); 49 50 m_StdCmdLineArgs.Reset(new CStdCmdLineArgs); 51 arg.Reset(m_StdCmdLineArgs); 52 m_Args.push_back(arg); 53 54 arg.Reset(new CGenericSearchArgs(kQueryIsProtein, false, true)); 55 m_Args.push_back(arg); 56 57 arg.Reset(new CNuclArgs); 58 m_Args.push_back(arg); 59 60 arg.Reset(new CDiscontiguousMegablastArgs); 61 m_Args.push_back(arg); 62 63 arg.Reset(new CFilteringArgs(kQueryIsProtein)); 64 m_Args.push_back(arg); 65 66 // RMH: Wasn't previously an option in blastn 67 arg.Reset(new CRMBlastNArg ); 68 m_Args.push_back(arg); 69 70 arg.Reset(new CGappedArgs); 71 m_Args.push_back(arg); 72 73 m_HspFilteringArgs.Reset(new CHspFilteringArgs); 74 arg.Reset(m_HspFilteringArgs); 75 m_Args.push_back(arg); 76 77 arg.Reset(new CWindowSizeArg); 78 m_Args.push_back(arg); 79 80 arg.Reset(new CMbIndexArgs); 81 m_Args.push_back(arg); 82 83 m_QueryOptsArgs.Reset(new CQueryOptionsArgs(kQueryIsProtein)); 84 arg.Reset(m_QueryOptsArgs); 85 m_Args.push_back(arg); 86 87 m_FormattingArgs.Reset(new CFormattingArgs); 88 arg.Reset(m_FormattingArgs); 89 m_Args.push_back(arg); 90 91 m_MTArgs.Reset(new CMTArgs); 92 arg.Reset(m_MTArgs); 93 m_Args.push_back(arg); 94 95 m_RemoteArgs.Reset(new CRemoteArgs); 96 arg.Reset(m_RemoteArgs); 97 m_Args.push_back(arg); 98 99 m_DebugArgs.Reset(new CDebugArgs); 100 arg.Reset(m_DebugArgs); 101 m_Args.push_back(arg); 102 } 103 104 CRef<CBlastOptionsHandle> x_CreateOptionsHandle(CBlastOptions::EAPILocality locality,const CArgs & args)105CRMBlastnAppArgs::x_CreateOptionsHandle(CBlastOptions::EAPILocality locality, 106 const CArgs& args) 107 { 108 CRef<CBlastOptionsHandle> retval = 109 x_CreateOptionsHandleWithTask(locality, args[kTask].AsString()); 110 return retval; 111 } 112 113 int GetQueryBatchSize() const114CRMBlastnAppArgs::GetQueryBatchSize() const 115 { 116 return blast::GetQueryBatchSize(ProgramNameToEnum(GetTask())); 117 } 118 119 END_SCOPE(blast) 120 END_NCBI_SCOPE 121 122