clean
[sgn.git] / lib / Bio / SecreTary / Helix.pm
blob381962180cac1d636da05b406e677563641cacbb
1 package Bio::SecreTary::Helix;
2 use Moose;
3 use namespace::autoclean;
5 has center => (
6 isa => 'ArrayRef[Maybe[Num]]',
7 is => 'rw',
8 default => sub { [ undef, undef ] }
9 );
10 has nterm => (
11 isa => 'ArrayRef[Maybe[Num]]',
12 is => 'rw',
13 default => sub { [ undef, undef ] }
15 has cterm => (
16 isa => 'ArrayRef[Maybe[Num]]',
17 is => 'rw',
18 default => sub { [ undef, undef ] }
20 has sh_nterm => (
21 isa => 'ArrayRef[Maybe[Num]]',
22 is => 'rw',
23 default => sub { [ undef, undef ] }
25 has sh_cterm => (
26 isa => 'ArrayRef[Maybe[Num]]',
27 is => 'rw',
28 default => sub { [ undef, undef ] }
30 has score => ( isa => 'Maybe[Num]', is => 'rw', default => undef );
31 has nt_in => ( isa => 'Bool', is => 'rw', default => undef );
33 sub get_descriptor_string {
34 my $self = shift;
35 my $string = '';
36 my $offset = 1; # add this to 0-based positions to get unit-based
37 if (0) {
38 $string .= 'nt_in: ' . $self->nt_in() . "\n";
39 $string .= 'score: ' . $self->score() . "\n";
40 $string .= 'center: ' . join( ', ', @{ $self->center() } ) . "\n";
41 $string .= 'nterm: ' . join( ', ', @{ $self->nterm() } ) . "\n";
42 $string .= 'cterm: ' . join( ', ', @{ $self->cterm() } ) . "\n";
43 $string .= 'sh_nterm: ' . join( ', ', @{ $self->sh_nterm() } ) . "\n";
44 $string .= 'sh_cterm: ' . join( ', ', @{ $self->sh_cterm() } ) . "\n";
46 else {
47 my $npos = $self->nterm()->[0] + $offset;
48 my $npos_core = $self->sh_nterm()->[0] + $offset;
49 my $cpos = $self->cterm()->[0] + $offset;
50 my $cpos_core = $self->sh_cterm()->[0] + $offset;
51 my $center_pos = $self->center()->[0] + $offset;
52 $string .=
53 $npos . ' ('
54 . $npos_core . ') '
55 . $cpos . ' ('
56 . $cpos_core . ') '
57 . $self->score() . ' '
58 . $center_pos;
61 return $string;
64 sub short_description {
65 my $self = shift;
66 my $npos = $self->nterm()->[0] + 1;
67 my $cpos = $self->cterm()->[0] + 1;
68 return '[' . $self->score() . ",$npos,$cpos]";
71 __PACKAGE__->meta->make_immutable;