File Coverage

blib/lib/PJ/Genome.pm
Criterion Covered Total %
statement 6 22 27.2
branch 0 8 0.0
condition n/a
subroutine 2 5 40.0
pod 0 3 0.0
total 8 38 21.0


line stmt bran cond sub pod time code
1             # Package to define genome sizes, statistics, etc.
2             package PJ::Genome;
3              
4 1     1   2092 use strict;
  1         2  
  1         211  
5 1     1   31 use 5.006;
  1         4  
  1         610  
6              
7             require Exporter;
8              
9             our @ISA = qw(Exporter);
10              
11             # Items to export into callers namespace by default. Note: do not export
12             # names by default without a very good reason. Use EXPORT_OK instead.
13             # Do not simply export all your public functions/methods/constants.
14              
15             # This allows declaration use MyBioinfo::Common ':all';
16             # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
17             # will save memory.
18             our %EXPORT_TAGS = ( 'all' => [ qw(
19             get_gz get_effgz get_chrsz
20             ) ] );
21              
22             our @EXPORT_OK = @{ $EXPORT_TAGS{'all'} };
23              
24             our @EXPORT = ();
25              
26             our $VERSION = '0.10';
27              
28             # Genome sizes, chromosome sizes...
29             our %genome = (
30             'mm9' => {
31             'gsize' => 2.65e9,
32             'effsize' => 1.87e9,
33             'chrsize' => {
34             chr1 => 197195431,
35             chr2 => 181748086,
36             chr3 => 159599782,
37             chr4 => 155630119,
38             chr5 => 152537258,
39             chr6 => 149517036,
40             chr7 => 152524552,
41             chr8 => 131738870,
42             chr9 => 124076171,
43             chr10 => 129993254,
44             chr11 => 121843855,
45             chr12 => 121257529,
46             chr13 => 120284311,
47             chr14 => 125194863,
48             chr15 => 103494973,
49             chr16 => 98319149,
50             chr17 => 95272650,
51             chr18 => 90772030,
52             chr19 => 61342429,
53             chrX => 166650295,
54             chrY => 15902554,
55             chrM => 16299
56             }
57             },
58             'hg19' => {
59             'gsize' => 3.2e9,
60             'effsize' => 2.7e9,
61             'chrsize' => {
62             chr1 => 249250621,
63             chr2 => 243199373,
64             chr3 => 198022430,
65             chr4 => 191154276,
66             chr5 => 180915260,
67             chr6 => 171115067,
68             chr7 => 159138663,
69             chr8 => 146364022,
70             chr9 => 141213431,
71             chr10 => 135534747,
72             chr11 => 135006516,
73             chr12 => 133851895,
74             chr13 => 115169878,
75             chr14 => 107349540,
76             chr15 => 102531392,
77             chr16 => 90354753,
78             chr17 => 81195210,
79             chr18 => 78077248,
80             chr19 => 59128983,
81             chr20 => 63025520,
82             chr21 => 48129895,
83             chr22 => 51304566,
84             chrX => 155270560,
85             chrY => 59373566,
86             chrM => 16571
87             }
88             },
89             'rn4' => {
90             'gsize' => 2.8e9,
91             'effsize' => 1.96e9,
92             'chrsize' => {
93             chr1 => 267910886,
94             chr2 => 258207540,
95             chr3 => 171063335,
96             chr4 => 187126005,
97             chr5 => 173096209,
98             chr6 => 147636619,
99             chr7 => 143002779,
100             chr8 => 129041809,
101             chr9 => 113440463,
102             chr10 => 110718848,
103             chr11 => 87759784,
104             chr12 => 46782294,
105             chr13 => 111154910,
106             chr14 => 112194335,
107             chr15 => 109758846,
108             chr16 => 90238779,
109             chr17 => 97296363,
110             chr18 => 87265094,
111             chr19 => 59218465,
112             chr20 => 55268282,
113             chrX => 160699376,
114             chrM => 16300
115             }
116             }
117             );
118              
119             # Get genome size.
120             sub get_gz{
121 0     0 0   my $gname = shift;
122 0 0         if(exists $genome{$gname}){
123 0           return $genome{$gname}->{'gsize'};
124             }else{
125 0           warn "Unavailable genome name: $gname. Return -1.\n";
126 0           return -1;
127             }
128             }
129              
130             # Get effective genome size.
131             sub get_effgz{
132 0     0 0   my $gname = shift;
133 0 0         if(exists $genome{$gname}){
134 0           return $genome{$gname}->{'effsize'};
135             }else{
136 0           warn "Unavailable genome name: $gname. Return -1.\n";
137 0           return -1;
138             }
139             }
140              
141             # Get chromosome sizes.
142             sub get_chrsz{
143 0     0 0   my $gname = shift;
144 0 0         if(exists $genome{$gname}){
145 0           return $genome{$gname}->{'chrsize'};
146             }else{
147 0 0         unless($gname eq ''){
148 0           warn "Unavailable genome name: $gname. Return empty table.\n";
149             }
150 0           return {};
151             }
152             }
153              
154              
155             1;
156              
157             __END__