annotate variant_effect_predictor/Bio/Graphics/Util.pm @ 0:1f6dce3d34e0

Uploaded
author mahtabm
date Thu, 11 Apr 2013 02:01:53 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 package Bio::Graphics::Util;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 # $Id: Util.pm,v 1.2.2.2 2003/07/06 21:53:55 heikki Exp $
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 # Non object-oriented utilities used here-and-there in Bio::Graphics modules
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 require Exporter;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8 use vars '@ISA','@EXPORT','@EXPORT_OK';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 @ISA = 'Exporter';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10 @EXPORT = 'frame_and_offset';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 =over 4
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15 =item ($frame,$offset) = frame_and_offset($pos,$strand,$phase)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 Calculate the reading frame for a given genomic position, strand and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18 phase. The offset is the offset from $pos to the first nucleotide
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 of the reading frame.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 In a scalar context, returns the frame only.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 =back
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 sub frame_and_offset {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 my ($pos,$strand,$phase) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 $strand ||= +1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30 $phase ||= 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 my $frame = $strand >= 0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 ? ($pos - $phase - 1) % 3
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 : (1 - $pos - $phase) % 3;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 my $offset = -$phase % 3;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 $offset *= -1 if $strand < 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 return wantarray ? ($frame,$offset) : $frame;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 1;