/usr/lib/perl5/TFBS/Word.pm is in libtfbs-perl 0.5.svn.20100421-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | # TFBS module for TFBS::Word
#
# Copyright Boris Lenhard
#
# You may distribute this module under the same terms as perl itself
#
# POD
=head1 NAME
TFBS::Word - base class for word-based patterns
=head1 DESCRIPTION
TFBS::Word is a base class consisting of universal constructor called by
its subclasses (TFBS::Matrix::*), and word pattern manipulation methods that
are independent of the word type. It is not meant to be instantiated itself.
=head1 FEEDBACK
Please send bug reports and other comments to the author.
=head1 AUTHOR - Boris Lenhard
Boris Lenhard E<lt>Boris.Lenhard@cgb.ki.seE<gt>
=head1 APPENDIX
The rest of the documentation details each of the object
methods. Internal methods are preceded with an underscore.
=cut
# The code begins HERE:
package TFBS::Word;
use vars '@ISA';
use TFBS::PatternI;
use strict;
@ISA = qw(TFBS::PatternI);
=head2 new
=cut
sub new {
my ($caller, @args) = @_;
my $self = $caller->SUPER::new(@args);
my ($id, $name, $class, $word, $tagref) = $self->_rearrange([qw(ID NAME CLASS
WORD TAGS)], @args);
if (defined $word) { $self->word($word); }
else { $self->throw("Need a -word argument"); }
$self->name($name);
$self->ID($id);
$self->{'tags'} = ($tagref or {});
return $self;
}
=head2 word
=cut
sub word {
my ($self, @args) = @_;
if(scalar(@args) == 0) {
return $self->{'word'};
}
my ($word) = @args;
if (defined $word and ! $self->validate_word($word)) {
$self->throw("Trying to set the word to an invalid value: $word");
}
else {
return $self->{'word'} = $word;
}
}
=head2 validate_word
Required in all subclasses
=cut
sub validate_word {
shift->throw("Error: method 'validate_word' not implemented");
}
=head2 length
=cut
sub length {
# wird length does not have to be defined, but its subroutine does
shift->throw("Error: method 'length' not implemented");
}
=head2 search_seq
=cut
sub search_seq {
shift->throw("Error: method search_seq not implemented");
}
=head2 search_aln
=cut
sub search_aln {
shift->throw("Error: method search_aln not implemented");
}
1;
|