Mercurial > repos > willmclaren > ensembl_vep
comparison variant_effect_predictor/Bio/Search/Processor.pm @ 0:21066c0abaf5 draft
Uploaded
author | willmclaren |
---|---|
date | Fri, 03 Aug 2012 10:04:48 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:21066c0abaf5 |
---|---|
1 | |
2 # | |
3 # BioPerl module for Bio::Search::Processor | |
4 # | |
5 # Cared for by Aaron Mackey <amackey@virginia.edu> | |
6 # | |
7 # Copyright Aaron Mackey | |
8 # | |
9 # You may distribute this module under the same terms as perl itself | |
10 | |
11 # POD documentation - main docs before the code | |
12 | |
13 =head1 NAME | |
14 | |
15 Bio::Search::Processor - DESCRIPTION of Object | |
16 | |
17 =head1 SYNOPSIS | |
18 | |
19 Give standard usage here | |
20 | |
21 =head1 DESCRIPTION | |
22 | |
23 Describe the object here | |
24 | |
25 =head1 FEEDBACK | |
26 | |
27 =head2 Mailing Lists | |
28 | |
29 User feedback is an integral part of the evolution of this and other | |
30 Bioperl modules. Send your comments and suggestions preferably to one | |
31 of the Bioperl mailing lists. Your participation is much appreciated. | |
32 | |
33 bioperl-l@bioperl.org - General discussion | |
34 http://bio.perl.org/MailList.html - About the mailing lists | |
35 | |
36 =head2 Reporting Bugs | |
37 | |
38 Report bugs to the Bioperl bug tracking system to help us keep track | |
39 the bugs and their resolution. Bug reports can be submitted via email | |
40 or the web: | |
41 | |
42 bioperl-bugs@bio.perl.org | |
43 http://bugzilla.bioperl.org/ | |
44 | |
45 =head1 AUTHOR - Aaron Mackey | |
46 | |
47 Email amackey@virginia.edu | |
48 | |
49 Describe contact details here | |
50 | |
51 =head1 APPENDIX | |
52 | |
53 The rest of the documentation details each of the object | |
54 methods. Internal methods are usually preceded with a _ | |
55 | |
56 =cut | |
57 | |
58 # Let the code begin... | |
59 | |
60 package Bio::Search::Processor; | |
61 | |
62 use strict; | |
63 use vars qw(@ISA); | |
64 | |
65 =head2 new | |
66 | |
67 Title : new | |
68 Usage : $proc = new Bio::Search::Processor -file => $filename, | |
69 -algorithm => 'Algorithm' ; | |
70 Function: Used to specify and initialize a data processor of search | |
71 algorithm results. | |
72 Returns : A processor specific to the algorithm type, if it exists. | |
73 Args : -file => filename | |
74 -algorithm => algorithm specifier | |
75 -fh => filehandle to attach to (file or fh required) | |
76 | |
77 =cut | |
78 | |
79 sub new { | |
80 | |
81 my $type = shift; | |
82 my $proc; | |
83 my ($module, $load, $algorithm); | |
84 | |
85 my %args = @_; | |
86 | |
87 exists $args{'-algorithm'} or do { | |
88 print STDERR "Must supply an algorithm!"; | |
89 return undef; | |
90 }; | |
91 | |
92 $algorithm = $args{'-algorithm'} || $args{'-ALGORITHM'}; | |
93 | |
94 $module = "_<Bio/Search/Processor/$algorithm.pm"; | |
95 $load = "Bio/Search/Processor/$algorithm.pm"; | |
96 | |
97 unless ( $main::{$module} ) { | |
98 eval { require $load; }; | |
99 if ( $@ ) { | |
100 print STDERR <<"EOF"; | |
101 $load: $algorithm cannot be found | |
102 Exception $@ | |
103 For more information about the Search/Processor system please see the | |
104 Processor docs. This includes ways of checking for processors at | |
105 compile time, not run time | |
106 EOF | |
107 return undef; | |
108 } | |
109 } | |
110 | |
111 $proc = "Bio::Search::Processor::$algorithm"->new(@_); | |
112 return $proc; | |
113 } | |
114 | |
115 1; |