annotate variant_effect_predictor/Bio/Graphics/Util.pm @ 0:2bc9b66ada89 draft default tip

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