5 SOV - Parses output for CASP SOV program.
9 Class for parsing SOV output.
13 Inherits from Read and Root.
17 use base qw(Root Read);
21 Access q3 information. Returns SOV::Types object.
23 =head2 sov(), sov_0(), sov_50()
30 if ($_[1]) { $_[0]->{q3} = $_[1] }
31 else { return defined $_[0]->{q3} ? $_[0]->{q3} : undef }
35 if ($_[1]) { $_[0]->{sov_0} = $_[1] }
36 else { return defined $_[0]->{sov_0} ? $_[0]->{sov_0} : undef }
40 if ($_[1]) { $_[0]->{sov_50} = $_[1] }
41 else { return defined $_[0]->{sov_50} ? $_[0]->{sov_50} : undef }
45 if ($_[1]) { $_[0]->{sov} = @_[1] }
46 else { return defined $_[0]->{sov} ? $_[0]->{sov} : undef }
55 # Get to the SOV and Q3 results
56 while (<$fh>) { last if /^\s-{22}/ }
60 if (s/^\s*Q3\s*:\s*//) {
61 $self->q3(to_struct(split / +/, $_))
63 elsif (s/^\s*SOV\s*:\s*//) {
64 $self->sov(to_struct(split / +/, $_))
66 elsif (s/^\s*SOV.*0].*:\s*//) {
67 $self->sov_0(to_struct(split / +/, $_))
69 elsif (s/^\s*SOV.*50%.*:\s*//) {
70 $self->sov_50(to_struct(split / +/, $_))
76 sub to_struct ($$$$) {
77 map { $_ > 1 ? $_ /= 100 : $_ } @_;
78 my $new = SOV::Types->new(
88 Object that stores prediction information
92 =head2 all(), helix(), sheet(), coil()
94 Accessors for accuracy of different types of secondary structure.
98 use Class::Struct SOV::Types => [
107 Jonathan Barber <jon@compbio.dundee.ac.uk>