1#$Id$ 2package Bio::Tools::Run::BlastPlus::Config; 3use strict; 4use warnings; 5no warnings qw(qw); 6use Bio::Root::Root; 7use Exporter; 8use base qw(Bio::Root::Root); 9 10our (@ISA, @EXPORT, @EXPORT_OK); 11push @ISA, 'Exporter'; 12@EXPORT = qw( 13 @program_commands 14 %command_prefixes 15 %composite_commands 16 @program_params 17 @program_switches 18 %param_translation 19 %command_files 20 $program_name 21 $program_dir 22 $use_dash 23 $join 24 ); 25 26@EXPORT_OK = qw(); 27 28# getting the parms and switches from the usage string: 29 30#$ blastp -h | perl -ne '@a = m/\[(.*?)\]/g; for $a (@a) { @b = split(/\s+/,$a); $b[0]=~s/-//; $ptr = (@b==1 ? \@s : \@p ); push @$ptr, $b[0]; } END { print "p arms\n", join("\n",@p), "\n\n", "switches\n", join("\n",@s); }' 31 32# '*' indicates a 'pseudo'-program : i.e. each 33# command has its own executable... 34 35our $program_name = '*blast+'; 36our $use_dash = 'single'; 37our $join = ' '; 38 39our @program_commands = qw( 40 run 41 blastn 42 blastx 43 tblastx 44 tblastn 45 blastp 46 psiblast 47 rpsblast 48 rpstblastn 49 makeblastdb 50 blastdb_aliastool 51 blastdbcmd 52 blastdbcheck 53 convert2blastmask 54 dustmasker 55 segmasker 56 windowmasker 57); 58 59# full command => prefix 60our %command_prefixes = ( 61 run => 'run', 62 blastn => 'bln', 63 blastx => 'blx', 64 tblastx => 'tbx', 65 tblastn => 'tbn', 66 blastp => 'blp', 67 psiblast => 'psi', 68 rpsblast => 'rps', 69 rpstblastn => 'rpst', 70 makeblastdb => 'mak', 71 blastdb_aliastool => 'dba', 72 blastdbcmd => 'dbc', 73 blastdbcheck => 'dbk', 74 convert2blastmask => 'c2m', 75 dustmasker => 'dms', 76 segmasker => 'sms', 77 windowmasker => 'wms' 78 ); 79 80# each elt : pfx|wrapper_parm_name 81 82our @program_params = qw( 83command 84tbn|import_search_strategy 85tbn|export_search_strategy 86tbn|db 87tbn|dbsize 88tbn|gilist 89tbn|negative_gilist 90tbn|entrez_query 91tbn|subject 92tbn|subject_loc 93tbn|query 94tbn|out 95tbn|evalue 96tbn|word_size 97tbn|gapopen 98tbn|gapextend 99tbn|xdrop_ungap 100tbn|xdrop_gap 101tbn|xdrop_gap_final 102tbn|searchsp 103tbn|db_gencode 104tbn|frame_shift_penalty 105tbn|max_intron_length 106tbn|seg 107tbn|soft_masking 108tbn|matrix 109tbn|threshold 110tbn|culling_limit 111tbn|best_hit_overhang 112tbn|best_hit_score_edge 113tbn|window_size 114tbn|query_loc 115tbn|outfmt 116tbn|num_descriptions 117tbn|num_alignments 118tbn|max_target_seqs 119tbn|num_threads 120tbn|comp_based_stats 121tbn|in_pssm 122blx|import_search_strategy 123blx|export_search_strategy 124blx|db 125blx|dbsize 126blx|gilist 127blx|negative_gilist 128blx|entrez_query 129blx|db_soft_mask 130blx|subject 131blx|subject_loc 132blx|query 133blx|out 134blx|evalue 135blx|word_size 136blx|gapopen 137blx|gapextend 138blx|xdrop_ungap 139blx|xdrop_gap 140blx|xdrop_gap_final 141blx|searchsp 142blx|frame_shift_penalty 143blx|max_intron_length 144blx|seg 145blx|soft_masking 146blx|matrix 147blx|threshold 148blx|culling_limit 149blx|best_hit_overhang 150blx|best_hit_score_edge 151blx|window_size 152blx|query_loc 153blx|strand 154blx|query_gencode 155blx|outfmt 156blx|num_descriptions 157blx|num_alignments 158blx|max_target_seqs 159blx|num_threads 160bln|import_search_strategy 161bln|export_search_strategy 162bln|task 163bln|db 164bln|dbsize 165bln|gilist 166bln|negative_gilist 167bln|entrez_query 168bln|db_soft_mask 169bln|subject 170bln|subject_loc 171bln|query 172bln|out 173bln|evalue 174bln|word_size 175bln|gapopen 176bln|gapextend 177bln|perc_identity 178bln|xdrop_ungap 179bln|xdrop_gap 180bln|xdrop_gap_final 181bln|searchsp 182bln|penalty 183bln|reward 184bln|min_raw_gapped_score 185bln|template_type 186bln|template_length 187bln|dust 188bln|filtering_db 189bln|window_masker_taxid 190bln|window_masker_db 191bln|soft_masking 192bln|culling_limit 193bln|best_hit_overhang 194bln|best_hit_score_edge 195bln|window_size 196bln|use_index 197bln|index_name 198bln|query_loc 199bln|strand 200bln|outfmt 201bln|num_descriptions 202bln|num_alignments 203bln|max_target_seqs 204bln|num_threads 205blp|import_search_strategy 206blp|export_search_strategy 207blp|task 208blp|db 209blp|dbsize 210blp|gilist 211blp|negative_gilist 212blp|entrez_query 213blp|db_soft_mask 214blp|subject 215blp|subject_loc 216blp|query 217blp|out 218blp|evalue 219blp|word_size 220blp|gapopen 221blp|gapextend 222blp|xdrop_ungap 223blp|xdrop_gap 224blp|xdrop_gap_final 225blp|searchsp 226blp|seg 227blp|soft_masking 228blp|matrix 229blp|threshold 230blp|culling_limit 231blp|best_hit_overhang 232blp|best_hit_score_edge 233blp|window_size 234blp|query_loc 235blp|outfmt 236blp|num_descriptions 237blp|num_alignments 238blp|max_target_seqs 239blp|num_threads 240blp|comp_based_stats 241psi|import_search_strategy 242psi|export_search_strategy 243psi|db 244psi|dbsize 245psi|gilist 246psi|negative_gilist 247psi|entrez_query 248psi|subject 249psi|subject_loc 250psi|query 251psi|out 252psi|evalue 253psi|word_size 254psi|gapopen 255psi|gapextend 256psi|xdrop_ungap 257psi|xdrop_gap 258psi|xdrop_gap_final 259psi|searchsp 260psi|seg 261psi|soft_masking 262psi|matrix 263psi|threshold 264psi|culling_limit 265psi|best_hit_overhang 266psi|best_hit_score_edge 267psi|window_size 268psi|query_loc 269psi|outfmt 270psi|num_descriptions 271psi|num_alignments 272psi|max_target_seqs 273psi|num_threads 274psi|comp_based_stats 275psi|gap_trigger 276psi|num_iterations 277psi|out_pssm 278psi|out_ascii_pssm 279psi|in_msa 280psi|in_pssm 281psi|pseudocount 282psi|inclusion_ethresh 283psi|phi_pattern 284rpst|import_search_strategy 285rpst|export_search_strategy 286rpst|db 287rpst|dbsize 288rpst|gilist 289rpst|negative_gilist 290rpst|entrez_query 291rpst|query 292rpst|out 293rpst|evalue 294rpst|word_size 295rpst|xdrop_ungap 296rpst|xdrop_gap 297rpst|xdrop_gap_final 298rpst|searchsp 299rpst|query_gencode 300rpst|seg 301rpst|soft_masking 302rpst|window_size 303rpst|query_loc 304rpst|strand 305rpst|outfmt 306rpst|num_descriptions 307rpst|num_alignments 308rpst|max_target_seqs 309rpst|num_threads 310mak|in 311mak|dbtype 312mak|title 313mak|mask_data 314mak|out 315mak|max_file_sz 316mak|taxid 317mak|taxid_map 318mak|logfile 319dba|gi_file_in 320dba|gi_file_out 321dba|db 322dba|dbtype 323dba|title 324dba|gilist 325dba|out 326dba|dblist 327dba|num_volumes 328dba|logfile 329tbx|import_search_strategy 330tbx|export_search_strategy 331tbx|db 332tbx|dbsize 333tbx|gilist 334tbx|negative_gilist 335tbx|entrez_query 336tbx|subject 337tbx|subject_loc 338tbx|query 339tbx|out 340tbx|evalue 341tbx|word_size 342tbx|gapopen 343tbx|gapextend 344tbx|xdrop_ungap 345tbx|xdrop_gap 346tbx|xdrop_gap_final 347tbx|searchsp 348tbx|max_intron_length 349tbx|seg 350tbx|soft_masking 351tbx|matrix 352tbx|threshold 353tbx|culling_limit 354tbx|best_hit_overhang 355tbx|best_hit_score_edge 356tbx|window_size 357tbx|query_loc 358tbx|strand 359tbx|query_gencode 360tbx|db_gencode 361tbx|outfmt 362tbx|num_descriptions 363tbx|num_alignments 364tbx|max_target_seqs 365tbx|num_threads 366dbc|db 367dbc|dbtype 368dbc|entry 369dbc|entry_batch 370dbc|pig 371dbc|range 372dbc|strand 373dbc|mask_sequence_with 374dbc|out 375dbc|outfmt 376dbc|line_length 377c2m|in 378c2m|out 379c2m|outfmt 380dms|in 381dms|out 382dms|window 383dms|level 384dms|linker 385dms|outfmt 386sms|in 387sms|out 388sms|infmt 389sms|outfmt 390sms|window 391sms|locut 392sms|hicut 393wms|ustat 394wms|in 395wms|out 396wms|checkdup 397wms|window 398wms|t_extend 399wms|t_thres 400wms|t_high 401wms|t_low 402wms|set_t_high 403wms|set_t_low 404wms|infmt 405wms|outfmt 406wms|sformat 407wms|convert 408wms|fa_list 409wms|mem 410wms|smem 411wms|unit 412wms|genome_size 413wms|dust 414wms|dust_level 415wms|exclude_ids 416wms|ids 417wms|text_match 418wms|use_ba 419); 420 421# each elt : pfx|wrapper_switch_name 422our @program_switches = qw( 423tbn|h 424tbn|help 425tbn|ungapped 426tbn|lcase_masking 427tbn|parse_deflines 428tbn|show_gis 429tbn|html 430tbn|remote 431tbn|use_sw_tback 432tbn|version 433blx|h 434blx|help 435blx|ungapped 436blx|lcase_masking 437blx|parse_deflines 438blx|show_gis 439blx|html 440blx|remote 441blx|version 442bln|h 443bln|help 444bln|no_greedy 445bln|ungapped 446bln|lcase_masking 447bln|parse_deflines 448bln|show_gis 449bln|html 450bln|remote 451bln|version 452blp|h 453blp|help 454blp|lcase_masking 455blp|parse_deflines 456blp|show_gis 457blp|html 458blp|ungapped 459blp|remote 460blp|use_sw_tback 461blp|version 462psi|h 463psi|help 464psi|lcase_masking 465psi|parse_deflines 466psi|show_gis 467psi|html 468psi|remote 469psi|use_sw_tback 470psi|version 471rpst|h 472rpst|help 473rpst|ungapped 474rpst|lcase_masking 475rpst|parse_deflines 476rpst|show_gis 477rpst|html 478rpst|remote 479rpst|version 480mak|h 481mak|help 482mak|parse_seqids 483mak|hash_index 484mak|version 485dba|h 486dba|help 487dba|version 488tbx|h 489tbx|help 490tbx|lcase_masking 491tbx|parse_deflines 492tbx|show_gis 493tbx|html 494tbx|remote 495tbx|version 496dbc|h 497dbc|help 498dbc|info 499dbc|target_only 500dbc|get_dups 501dbc|ctrl_a 502dbc|version 503c2m|h 504c2m|help 505c2m|parse_seqids 506c2m|version 507dms|h 508dms|help 509dms|xmlhelp 510dms|parse_seqids 511dms|version-full 512sms|h 513sms|help 514sms|xmlhelp 515sms|parse_seqids 516sms|version-full 517wms|h 518wms|help 519wms|xmlhelp 520wms|parse_seqids 521wms|version-full 522wms|mk_counts 523); 524 525#each pair : pfx|wrapper_opt_name => command_line_name (without dashes) 526# for blast+, the options are all long and mnemonic, so a param translation 527# isn't required. In CommandExts, a parameter name should be passed through 528# as-is, if a translation is not found---. 529our %param_translation = ( 530 ); 531 532our %composite_commands = ( 533 ); 534 535our %command_files = ( 536 ); 537 5381; 539