| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
|
|
|
|
|
|
# |
|
2
|
|
|
|
|
|
|
# BioPerl module for Bio::Phenotype::OMIM::OMIMentry |
|
3
|
|
|
|
|
|
|
# |
|
4
|
|
|
|
|
|
|
# Please direct questions and support issues to |
|
5
|
|
|
|
|
|
|
# |
|
6
|
|
|
|
|
|
|
# Cared for by Christian M. Zmasek or |
|
7
|
|
|
|
|
|
|
# |
|
8
|
|
|
|
|
|
|
# (c) Christian M. Zmasek, czmasek-at-burnham.org, 2002. |
|
9
|
|
|
|
|
|
|
# (c) GNF, Genomics Institute of the Novartis Research Foundation, 2002. |
|
10
|
|
|
|
|
|
|
# |
|
11
|
|
|
|
|
|
|
# You may distribute this module under the same terms as perl itself. |
|
12
|
|
|
|
|
|
|
# Refer to the Perl Artistic License (see the license accompanying this |
|
13
|
|
|
|
|
|
|
# software package, or see http://www.perl.com/language/misc/Artistic.html) |
|
14
|
|
|
|
|
|
|
# for the terms under which you may use, modify, and redistribute this module. |
|
15
|
|
|
|
|
|
|
# |
|
16
|
|
|
|
|
|
|
# THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED |
|
17
|
|
|
|
|
|
|
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF |
|
18
|
|
|
|
|
|
|
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
|
19
|
|
|
|
|
|
|
# |
|
20
|
|
|
|
|
|
|
# You may distribute this module under the same terms as perl itself |
|
21
|
|
|
|
|
|
|
|
|
22
|
|
|
|
|
|
|
# POD documentation - main docs before the code |
|
23
|
|
|
|
|
|
|
|
|
24
|
|
|
|
|
|
|
=head1 NAME |
|
25
|
|
|
|
|
|
|
|
|
26
|
|
|
|
|
|
|
Bio::Phenotype::OMIM::OMIMentry - represents OMIM (Online Mendelian |
|
27
|
|
|
|
|
|
|
Inheritance in Man) database entries |
|
28
|
|
|
|
|
|
|
|
|
29
|
|
|
|
|
|
|
=head1 SYNOPSIS |
|
30
|
|
|
|
|
|
|
|
|
31
|
|
|
|
|
|
|
$obj = Bio::Phenotype::OMIM::OMIMentry->new( -mim_number => 200000, |
|
32
|
|
|
|
|
|
|
-description => "This is ...", |
|
33
|
|
|
|
|
|
|
-more_than_two_genes => 1 ); |
|
34
|
|
|
|
|
|
|
|
|
35
|
|
|
|
|
|
|
=head1 DESCRIPTION |
|
36
|
|
|
|
|
|
|
|
|
37
|
|
|
|
|
|
|
Inherits from Bio::Phenotype::PhenotypeI. |
|
38
|
|
|
|
|
|
|
Bio::Phenotype::OMIM::OMIMparser parses the flat file representation |
|
39
|
|
|
|
|
|
|
of OMIM (i.e. files "omim.txt" and "genemap") returning OMIMentry objects. |
|
40
|
|
|
|
|
|
|
|
|
41
|
|
|
|
|
|
|
=head1 FEEDBACK |
|
42
|
|
|
|
|
|
|
|
|
43
|
|
|
|
|
|
|
=head2 Mailing Lists |
|
44
|
|
|
|
|
|
|
|
|
45
|
|
|
|
|
|
|
User feedback is an integral part of the evolution of this and other |
|
46
|
|
|
|
|
|
|
Bioperl modules. Send your comments and suggestions preferably to the |
|
47
|
|
|
|
|
|
|
Bioperl mailing lists Your participation is much appreciated. |
|
48
|
|
|
|
|
|
|
|
|
49
|
|
|
|
|
|
|
bioperl-l@bioperl.org - General discussion |
|
50
|
|
|
|
|
|
|
http://bioperl.org/wiki/Mailing_lists - About the mailing lists |
|
51
|
|
|
|
|
|
|
|
|
52
|
|
|
|
|
|
|
=head2 Support |
|
53
|
|
|
|
|
|
|
|
|
54
|
|
|
|
|
|
|
Please direct usage questions or support issues to the mailing list: |
|
55
|
|
|
|
|
|
|
|
|
56
|
|
|
|
|
|
|
I |
|
57
|
|
|
|
|
|
|
|
|
58
|
|
|
|
|
|
|
rather than to the module maintainer directly. Many experienced and |
|
59
|
|
|
|
|
|
|
reponsive experts will be able look at the problem and quickly |
|
60
|
|
|
|
|
|
|
address it. Please include a thorough description of the problem |
|
61
|
|
|
|
|
|
|
with code and data examples if at all possible. |
|
62
|
|
|
|
|
|
|
|
|
63
|
|
|
|
|
|
|
=head2 Reporting Bugs |
|
64
|
|
|
|
|
|
|
|
|
65
|
|
|
|
|
|
|
report bugs to the Bioperl bug tracking system to help us keep track |
|
66
|
|
|
|
|
|
|
the bugs and their resolution. Bug reports can be submitted via the |
|
67
|
|
|
|
|
|
|
web: |
|
68
|
|
|
|
|
|
|
|
|
69
|
|
|
|
|
|
|
https://github.com/bioperl/bioperl-live/issues |
|
70
|
|
|
|
|
|
|
|
|
71
|
|
|
|
|
|
|
=head1 AUTHOR |
|
72
|
|
|
|
|
|
|
|
|
73
|
|
|
|
|
|
|
Christian M. Zmasek |
|
74
|
|
|
|
|
|
|
|
|
75
|
|
|
|
|
|
|
Email: czmasek-at-burnham.org or cmzmasek@yahoo.com |
|
76
|
|
|
|
|
|
|
|
|
77
|
|
|
|
|
|
|
WWW: http://monochrome-effect.net/ |
|
78
|
|
|
|
|
|
|
|
|
79
|
|
|
|
|
|
|
Address: |
|
80
|
|
|
|
|
|
|
|
|
81
|
|
|
|
|
|
|
Genomics Institute of the Novartis Research Foundation |
|
82
|
|
|
|
|
|
|
10675 John Jay Hopkins Drive |
|
83
|
|
|
|
|
|
|
San Diego, CA 92121 |
|
84
|
|
|
|
|
|
|
|
|
85
|
|
|
|
|
|
|
=head1 APPENDIX |
|
86
|
|
|
|
|
|
|
|
|
87
|
|
|
|
|
|
|
The rest of the documentation details each of the object |
|
88
|
|
|
|
|
|
|
methods. Internal methods are usually preceded with a _ |
|
89
|
|
|
|
|
|
|
|
|
90
|
|
|
|
|
|
|
=cut |
|
91
|
|
|
|
|
|
|
|
|
92
|
|
|
|
|
|
|
|
|
93
|
|
|
|
|
|
|
# Let the code begin... |
|
94
|
|
|
|
|
|
|
|
|
95
|
|
|
|
|
|
|
|
|
96
|
|
|
|
|
|
|
package Bio::Phenotype::OMIM::OMIMentry; |
|
97
|
2
|
|
|
2
|
|
523
|
use strict; |
|
|
2
|
|
|
|
|
3
|
|
|
|
2
|
|
|
|
|
65
|
|
|
98
|
|
|
|
|
|
|
|
|
99
|
2
|
|
|
2
|
|
670
|
use Bio::Phenotype::OMIM::MiniMIMentry; |
|
|
2
|
|
|
|
|
4
|
|
|
|
2
|
|
|
|
|
60
|
|
|
100
|
2
|
|
|
2
|
|
728
|
use Bio::Phenotype::OMIM::OMIMentryAllelicVariant; |
|
|
2
|
|
|
|
|
6
|
|
|
|
2
|
|
|
|
|
73
|
|
|
101
|
|
|
|
|
|
|
|
|
102
|
2
|
|
|
2
|
|
13
|
use constant TRUE => 1; |
|
|
2
|
|
|
|
|
3
|
|
|
|
2
|
|
|
|
|
167
|
|
|
103
|
2
|
|
|
2
|
|
10
|
use constant FALSE => 0; |
|
|
2
|
|
|
|
|
3
|
|
|
|
2
|
|
|
|
|
96
|
|
|
104
|
2
|
|
|
2
|
|
11
|
use constant DEFAULT_MIM_NUMER => 0; |
|
|
2
|
|
|
|
|
3
|
|
|
|
2
|
|
|
|
|
99
|
|
|
105
|
|
|
|
|
|
|
|
|
106
|
2
|
|
|
2
|
|
8
|
use base qw(Bio::Phenotype::Phenotype); |
|
|
2
|
|
|
|
|
4
|
|
|
|
2
|
|
|
|
|
815
|
|
|
107
|
|
|
|
|
|
|
|
|
108
|
|
|
|
|
|
|
|
|
109
|
|
|
|
|
|
|
|
|
110
|
|
|
|
|
|
|
|
|
111
|
|
|
|
|
|
|
=head2 new |
|
112
|
|
|
|
|
|
|
|
|
113
|
|
|
|
|
|
|
Title : new |
|
114
|
|
|
|
|
|
|
Usage : $obj = Bio::Phenotype::OMIM::OMIMentry->new( -mim_number => 200000, |
|
115
|
|
|
|
|
|
|
-description => "This is ...", |
|
116
|
|
|
|
|
|
|
-more_than_two_genes => 1 ); |
|
117
|
|
|
|
|
|
|
Function: Creates a new OMIMentry object. |
|
118
|
|
|
|
|
|
|
Returns : A new OMIMentry object. |
|
119
|
|
|
|
|
|
|
Args : -mim_number => the MIM number |
|
120
|
|
|
|
|
|
|
-title => the title or name |
|
121
|
|
|
|
|
|
|
-alternative_titles_and_symbols => the "alternative titles and symbols" |
|
122
|
|
|
|
|
|
|
-more_than_two_genes => can phenotype can be caused by mutation in any of two or more genes? |
|
123
|
|
|
|
|
|
|
-is_separate => is this phenotype separate from those represented by other entries |
|
124
|
|
|
|
|
|
|
-description => the description of this phenotype |
|
125
|
|
|
|
|
|
|
-mapping_method => the mapping method |
|
126
|
|
|
|
|
|
|
-gene_status => the gene status of this |
|
127
|
|
|
|
|
|
|
-comment => a comment |
|
128
|
|
|
|
|
|
|
-species => ref to the the species (human) |
|
129
|
|
|
|
|
|
|
-created => created by whom/when |
|
130
|
|
|
|
|
|
|
-edited => edited by whom/when |
|
131
|
|
|
|
|
|
|
-contributors => contributed by whom/when |
|
132
|
|
|
|
|
|
|
-additional_references => "see also" |
|
133
|
|
|
|
|
|
|
-clinical_symptoms => the clinical symptoms |
|
134
|
|
|
|
|
|
|
-minimim => the Mini MIM associated with this OMIM antry |
|
135
|
|
|
|
|
|
|
|
|
136
|
|
|
|
|
|
|
=cut |
|
137
|
|
|
|
|
|
|
|
|
138
|
|
|
|
|
|
|
sub new { |
|
139
|
|
|
|
|
|
|
|
|
140
|
3
|
|
|
3
|
1
|
148
|
my( $class,@args ) = @_; |
|
141
|
|
|
|
|
|
|
|
|
142
|
3
|
|
|
|
|
30
|
my $self = $class->SUPER::new( @args ); |
|
143
|
|
|
|
|
|
|
|
|
144
|
3
|
|
|
|
|
20
|
my ( $mim_number, |
|
145
|
|
|
|
|
|
|
$title, |
|
146
|
|
|
|
|
|
|
$alternative_titles_and_symbols, |
|
147
|
|
|
|
|
|
|
$more_than_two_genes, |
|
148
|
|
|
|
|
|
|
$is_separate, |
|
149
|
|
|
|
|
|
|
$description, |
|
150
|
|
|
|
|
|
|
$mapping_method, |
|
151
|
|
|
|
|
|
|
$gene_status, |
|
152
|
|
|
|
|
|
|
$comment, |
|
153
|
|
|
|
|
|
|
$species, |
|
154
|
|
|
|
|
|
|
$created, |
|
155
|
|
|
|
|
|
|
$edited, |
|
156
|
|
|
|
|
|
|
$contributors, |
|
157
|
|
|
|
|
|
|
$additional_references, |
|
158
|
|
|
|
|
|
|
$clinical_symptoms, |
|
159
|
|
|
|
|
|
|
$miniMIM ) |
|
160
|
|
|
|
|
|
|
= $self->_rearrange( [ qw( MIM_NUMBER |
|
161
|
|
|
|
|
|
|
TITLE |
|
162
|
|
|
|
|
|
|
ALTERNATIVE_TITLES_AND_SYMBOLS |
|
163
|
|
|
|
|
|
|
MORE_THAN_TWO_GENES |
|
164
|
|
|
|
|
|
|
IS_SEPARATE |
|
165
|
|
|
|
|
|
|
DESCRIPTION |
|
166
|
|
|
|
|
|
|
MAPPING_METHOD |
|
167
|
|
|
|
|
|
|
GENE_STATUS |
|
168
|
|
|
|
|
|
|
COMMENT |
|
169
|
|
|
|
|
|
|
SPECIES |
|
170
|
|
|
|
|
|
|
CREATED |
|
171
|
|
|
|
|
|
|
EDITED |
|
172
|
|
|
|
|
|
|
CONTRIBUTORS |
|
173
|
|
|
|
|
|
|
ADDITIONAL_REFERENCES |
|
174
|
|
|
|
|
|
|
CLINICAL_SYMPTOMS |
|
175
|
|
|
|
|
|
|
MINIMIM ) ], @args ); |
|
176
|
|
|
|
|
|
|
|
|
177
|
3
|
|
|
|
|
12
|
$self->init(); |
|
178
|
|
|
|
|
|
|
|
|
179
|
3
|
50
|
|
|
|
9
|
$mim_number && $self->MIM_number( $mim_number ); |
|
180
|
3
|
50
|
|
|
|
10
|
$title && $self->title( $title ); |
|
181
|
3
|
50
|
|
|
|
8
|
$alternative_titles_and_symbols && $self->alternative_titles_and_symbols( $alternative_titles_and_symbols ); |
|
182
|
3
|
50
|
|
|
|
9
|
$more_than_two_genes && $self->more_than_two_genes( $more_than_two_genes ); |
|
183
|
3
|
50
|
|
|
|
6
|
$is_separate && $self->is_separate( $is_separate ); |
|
184
|
3
|
50
|
|
|
|
7
|
$description && $self->description( $description ); |
|
185
|
3
|
50
|
|
|
|
260
|
$mapping_method && $self->mapping_method( $mapping_method ); |
|
186
|
3
|
50
|
|
|
|
9
|
$gene_status && $self->gene_status( $gene_status ); |
|
187
|
3
|
50
|
|
|
|
7
|
$comment && $self->comment( $comment ); |
|
188
|
3
|
50
|
|
|
|
6
|
$species && $self->species( $species ); |
|
189
|
3
|
50
|
|
|
|
6
|
$created && $self->created( $created ); |
|
190
|
3
|
50
|
|
|
|
6
|
$edited && $self->edited( $edited ); |
|
191
|
3
|
50
|
|
|
|
7
|
$contributors && $self->contributors( $contributors ); |
|
192
|
3
|
50
|
|
|
|
5
|
$additional_references && $self->additional_references( $additional_references ); |
|
193
|
3
|
50
|
|
|
|
5
|
$clinical_symptoms && $self->clinical_symptoms_raw( $clinical_symptoms ); |
|
194
|
3
|
50
|
|
|
|
6
|
$miniMIM && $self->miniMIM( $miniMIM ); |
|
195
|
|
|
|
|
|
|
|
|
196
|
3
|
|
|
|
|
11
|
return $self; |
|
197
|
|
|
|
|
|
|
|
|
198
|
|
|
|
|
|
|
} # new |
|
199
|
|
|
|
|
|
|
|
|
200
|
|
|
|
|
|
|
|
|
201
|
|
|
|
|
|
|
|
|
202
|
|
|
|
|
|
|
=head2 init |
|
203
|
|
|
|
|
|
|
|
|
204
|
|
|
|
|
|
|
Title : init() |
|
205
|
|
|
|
|
|
|
Usage : $obj->init(); |
|
206
|
|
|
|
|
|
|
Function: Initializes this OMIMentry to all "" and empty lists. |
|
207
|
|
|
|
|
|
|
Returns : |
|
208
|
|
|
|
|
|
|
Args : |
|
209
|
|
|
|
|
|
|
|
|
210
|
|
|
|
|
|
|
=cut |
|
211
|
|
|
|
|
|
|
|
|
212
|
|
|
|
|
|
|
sub init { |
|
213
|
|
|
|
|
|
|
|
|
214
|
6
|
|
|
6
|
1
|
9
|
my( $self ) = @_; |
|
215
|
|
|
|
|
|
|
|
|
216
|
6
|
|
|
|
|
61
|
$self->MIM_number( DEFAULT_MIM_NUMER ); |
|
217
|
6
|
|
|
|
|
17
|
$self->title( "" ); |
|
218
|
6
|
|
|
|
|
15
|
$self->alternative_titles_and_symbols( "" ); |
|
219
|
6
|
|
|
|
|
20
|
$self->more_than_two_genes( FALSE ); |
|
220
|
6
|
|
|
|
|
16
|
$self->is_separate( FALSE ); |
|
221
|
6
|
|
|
|
|
19
|
$self->description( "" ); |
|
222
|
6
|
|
|
|
|
16
|
$self->mapping_method( "" ); |
|
223
|
6
|
|
|
|
|
14
|
$self->gene_status( "" ); |
|
224
|
6
|
|
|
|
|
21
|
$self->comment( "" ); |
|
225
|
6
|
|
|
|
|
35
|
my $species = Bio::Species->new(); |
|
226
|
6
|
|
|
|
|
23
|
$species->classification( qw( sapiens Homo ) ); |
|
227
|
6
|
|
|
|
|
37
|
$self->species( $species ); |
|
228
|
6
|
|
|
|
|
16
|
$self->created( "" ); |
|
229
|
6
|
|
|
|
|
13
|
$self->edited( "" ); |
|
230
|
6
|
|
|
|
|
13
|
$self->contributors( "" ); |
|
231
|
6
|
|
|
|
|
16
|
$self->additional_references( "" ); |
|
232
|
6
|
|
|
|
|
15
|
$self->clinical_symptoms( {} ); |
|
233
|
6
|
|
|
|
|
20
|
$self->remove_Correlates(); |
|
234
|
6
|
|
|
|
|
21
|
$self->remove_References(); |
|
235
|
6
|
|
|
|
|
18
|
$self->remove_AllelicVariants(); |
|
236
|
6
|
|
|
|
|
18
|
$self->remove_CytoPositions(); |
|
237
|
6
|
|
|
|
|
16
|
$self->remove_gene_symbols(); |
|
238
|
6
|
|
|
|
|
18
|
$self->remove_Genotypes(); |
|
239
|
6
|
|
|
|
|
20
|
$self->remove_DBLinks(); |
|
240
|
6
|
|
|
|
|
20
|
$self->remove_keywords(); |
|
241
|
6
|
|
|
|
|
15
|
$self->remove_Variants(); |
|
242
|
6
|
|
|
|
|
17
|
$self->remove_Measures(); |
|
243
|
6
|
|
|
|
|
29
|
$self->miniMIM( Bio::Phenotype::OMIM::MiniMIMentry->new() ); |
|
244
|
|
|
|
|
|
|
|
|
245
|
|
|
|
|
|
|
} # init |
|
246
|
|
|
|
|
|
|
|
|
247
|
|
|
|
|
|
|
|
|
248
|
|
|
|
|
|
|
|
|
249
|
|
|
|
|
|
|
sub to_string { |
|
250
|
|
|
|
|
|
|
|
|
251
|
1
|
|
|
1
|
0
|
707
|
my( $self ) = @_; |
|
252
|
|
|
|
|
|
|
|
|
253
|
1
|
|
|
|
|
2
|
my $s = ""; |
|
254
|
|
|
|
|
|
|
|
|
255
|
1
|
|
|
|
|
2
|
$s .= "-- MIM number:\n"; |
|
256
|
1
|
|
|
|
|
3
|
$s .= $self->MIM_number()."\n\n"; |
|
257
|
1
|
|
|
|
|
2
|
$s .= "-- Title:\n"; |
|
258
|
1
|
|
|
|
|
3
|
$s .= $self->title()."\n\n"; |
|
259
|
1
|
|
|
|
|
2
|
$s .= "-- Alternative Titles and Symbols:\n"; |
|
260
|
1
|
|
|
|
|
3
|
$s .= $self->alternative_titles_and_symbols()."\n\n"; |
|
261
|
1
|
|
|
|
|
2
|
$s .= "-- Can be caused by Mutation in any of two or more Genes:\n"; |
|
262
|
1
|
|
|
|
|
3
|
$s .= $self->more_than_two_genes()."\n\n"; |
|
263
|
1
|
|
|
|
|
2
|
$s .= "-- Phenotype is separate:\n"; |
|
264
|
1
|
|
|
|
|
4
|
$s .= $self->is_separate()."\n\n"; |
|
265
|
1
|
|
|
|
|
2
|
$s .= "-- Description:\n"; |
|
266
|
1
|
|
|
|
|
2
|
$s .= $self->description()."\n\n"; |
|
267
|
1
|
|
|
|
|
3
|
$s .= "-- Species:\n"; |
|
268
|
1
|
|
|
|
|
4
|
$s .= $self->species()->binomial()."\n\n"; |
|
269
|
1
|
|
|
|
|
2
|
$s .= "-- Clinical Symptoms:\n"; |
|
270
|
1
|
|
|
|
|
3
|
$s .= $self->clinical_symptoms()."\n\n"; |
|
271
|
1
|
|
|
|
|
2
|
$s .= "-- Allelic Variants:\n"; |
|
272
|
1
|
|
|
|
|
2
|
$s .= $self->_array_to_string( $self->each_AllelicVariant() )."\n"; |
|
273
|
1
|
|
|
|
|
2
|
$s .= "-- Cyto Positions:\n"; |
|
274
|
1
|
|
|
|
|
2
|
$s .= $self->_array_to_string( $self->each_CytoPosition() )."\n"; |
|
275
|
1
|
|
|
|
|
2
|
$s .= "-- Gene Symbols:\n"; |
|
276
|
1
|
|
|
|
|
3
|
$s .= $self->_array_to_string( $self->each_gene_symbol() )."\n"; |
|
277
|
1
|
|
|
|
|
1
|
$s .= "-- Correlates:\n"; |
|
278
|
1
|
|
|
|
|
3
|
$s .= $self->_array_to_string( $self->each_Correlate() )."\n"; |
|
279
|
1
|
|
|
|
|
1
|
$s .= "-- References:\n"; |
|
280
|
1
|
|
|
|
|
7
|
$s .= $self->_array_to_string( $self->each_Reference() )."\n"; |
|
281
|
1
|
|
|
|
|
2
|
$s .= "-- Additional References:\n"; |
|
282
|
1
|
|
|
|
|
3
|
$s .= $self->additional_references()."\n\n"; |
|
283
|
1
|
|
|
|
|
2
|
$s .= "-- Mapping Method:\n"; |
|
284
|
1
|
|
|
|
|
2
|
$s .= $self->mapping_method()."\n\n"; |
|
285
|
1
|
|
|
|
|
2
|
$s .= "-- Gene status:\n"; |
|
286
|
1
|
|
|
|
|
2
|
$s .= $self->gene_status()."\n\n"; |
|
287
|
1
|
|
|
|
|
2
|
$s .= "-- Created:\n"; |
|
288
|
1
|
|
|
|
|
3
|
$s .= $self->created()."\n\n"; |
|
289
|
1
|
|
|
|
|
2
|
$s .= "-- Contributors:\n"; |
|
290
|
1
|
|
|
|
|
2
|
$s .= $self->contributors()."\n\n"; |
|
291
|
1
|
|
|
|
|
2
|
$s .= "-- Edited:\n"; |
|
292
|
1
|
|
|
|
|
2
|
$s .= $self->edited()."\n\n"; |
|
293
|
1
|
|
|
|
|
2
|
$s .= "-- Comment:\n"; |
|
294
|
1
|
|
|
|
|
2
|
$s .= $self->comment()."\n\n"; |
|
295
|
1
|
|
|
|
|
1
|
$s .= "-- MiniMIM:\n"; |
|
296
|
1
|
|
|
|
|
36
|
$s .= $self->miniMIM()->to_string()."\n\n"; |
|
297
|
1
|
|
|
|
|
6
|
return $s; |
|
298
|
|
|
|
|
|
|
|
|
299
|
|
|
|
|
|
|
|
|
300
|
|
|
|
|
|
|
} # to_string |
|
301
|
|
|
|
|
|
|
|
|
302
|
|
|
|
|
|
|
|
|
303
|
|
|
|
|
|
|
|
|
304
|
|
|
|
|
|
|
=head2 MIM_number |
|
305
|
|
|
|
|
|
|
|
|
306
|
|
|
|
|
|
|
Title : MIM_number |
|
307
|
|
|
|
|
|
|
Usage : $omim->MIM_number( "100050" ); |
|
308
|
|
|
|
|
|
|
or |
|
309
|
|
|
|
|
|
|
print $omim->MIM_number(); |
|
310
|
|
|
|
|
|
|
Function: Set/get for the MIM number of this OMIM entry. |
|
311
|
|
|
|
|
|
|
Returns : The MIM number [an integer larger than 100000]. |
|
312
|
|
|
|
|
|
|
Args : The MIM number [an integer larger than 100000] (optional). |
|
313
|
|
|
|
|
|
|
|
|
314
|
|
|
|
|
|
|
=cut |
|
315
|
|
|
|
|
|
|
|
|
316
|
|
|
|
|
|
|
sub MIM_number { |
|
317
|
13
|
|
|
13
|
1
|
1474
|
my ( $self, $value ) = @_; |
|
318
|
|
|
|
|
|
|
|
|
319
|
13
|
100
|
|
|
|
32
|
if ( defined $value ) { |
|
320
|
9
|
50
|
66
|
|
|
92
|
if ( $value =~ /\D/ |
|
|
|
|
33
|
|
|
|
|
|
321
|
|
|
|
|
|
|
|| ( $value < 100000 && $value != DEFAULT_MIM_NUMER ) ) { |
|
322
|
0
|
|
|
|
|
0
|
$self->throw( "Found [$value]" |
|
323
|
|
|
|
|
|
|
. " where [integer larger than 100000] expected" ); |
|
324
|
|
|
|
|
|
|
} |
|
325
|
9
|
|
|
|
|
31
|
$self->{ "_MIM_number" } = $value; |
|
326
|
|
|
|
|
|
|
} |
|
327
|
|
|
|
|
|
|
|
|
328
|
13
|
|
|
|
|
36
|
return $self->{ "_MIM_number" }; |
|
329
|
|
|
|
|
|
|
|
|
330
|
|
|
|
|
|
|
} # MIM_number |
|
331
|
|
|
|
|
|
|
|
|
332
|
|
|
|
|
|
|
|
|
333
|
|
|
|
|
|
|
|
|
334
|
|
|
|
|
|
|
|
|
335
|
|
|
|
|
|
|
=head2 title |
|
336
|
|
|
|
|
|
|
|
|
337
|
|
|
|
|
|
|
Title : title |
|
338
|
|
|
|
|
|
|
Usage : $omim->title( "AARSKOG SYNDROME" ); |
|
339
|
|
|
|
|
|
|
or |
|
340
|
|
|
|
|
|
|
print $omim->title(); |
|
341
|
|
|
|
|
|
|
Function: Set/get for the title or name of this OMIM entry. |
|
342
|
|
|
|
|
|
|
This method is an alias to the method "name" of |
|
343
|
|
|
|
|
|
|
Bio::Phenotype::PhenotypeI. |
|
344
|
|
|
|
|
|
|
Returns : The title [scalar]. |
|
345
|
|
|
|
|
|
|
Args : The title [scalar] (optional). |
|
346
|
|
|
|
|
|
|
|
|
347
|
|
|
|
|
|
|
=cut |
|
348
|
|
|
|
|
|
|
|
|
349
|
|
|
|
|
|
|
sub title { |
|
350
|
13
|
|
|
13
|
1
|
17
|
my $self = shift; |
|
351
|
|
|
|
|
|
|
|
|
352
|
13
|
|
|
|
|
43
|
$self->name(@_); |
|
353
|
|
|
|
|
|
|
|
|
354
|
|
|
|
|
|
|
} # title |
|
355
|
|
|
|
|
|
|
|
|
356
|
|
|
|
|
|
|
|
|
357
|
|
|
|
|
|
|
|
|
358
|
|
|
|
|
|
|
|
|
359
|
|
|
|
|
|
|
=head2 alternative_titles_and_symbols |
|
360
|
|
|
|
|
|
|
|
|
361
|
|
|
|
|
|
|
Title : alternative_titles_and_symbols |
|
362
|
|
|
|
|
|
|
Usage : $omim->alternative_titles_and_symbols( "AORTIC ANEURYSM, ABDOMINAL" ); |
|
363
|
|
|
|
|
|
|
or |
|
364
|
|
|
|
|
|
|
print $omim->alternative_titles_and_symbols(); |
|
365
|
|
|
|
|
|
|
Function: Set/get for the "alternative titles and symbols" of this OMIM entry. |
|
366
|
|
|
|
|
|
|
Currently, everything after the first line of title (TI) field is |
|
367
|
|
|
|
|
|
|
considered "alternative titles and symbols". |
|
368
|
|
|
|
|
|
|
Returns : "alternative titles and symbols" [scalar]. |
|
369
|
|
|
|
|
|
|
Args : "alternative titles and symbols" [scalar] (optional). |
|
370
|
|
|
|
|
|
|
|
|
371
|
|
|
|
|
|
|
=cut |
|
372
|
|
|
|
|
|
|
|
|
373
|
|
|
|
|
|
|
sub alternative_titles_and_symbols { |
|
374
|
13
|
|
|
13
|
1
|
20
|
my ( $self, $value ) = @_; |
|
375
|
|
|
|
|
|
|
|
|
376
|
13
|
100
|
|
|
|
27
|
if ( defined $value ) { |
|
377
|
9
|
|
|
|
|
16
|
$self->{ "_alternative_titles_and_symbols" } = $value; |
|
378
|
|
|
|
|
|
|
} |
|
379
|
|
|
|
|
|
|
|
|
380
|
13
|
|
|
|
|
26
|
return $self->{ "_alternative_titles_and_symbols" }; |
|
381
|
|
|
|
|
|
|
|
|
382
|
|
|
|
|
|
|
} # alternative_titles_and_symbols |
|
383
|
|
|
|
|
|
|
|
|
384
|
|
|
|
|
|
|
|
|
385
|
|
|
|
|
|
|
|
|
386
|
|
|
|
|
|
|
|
|
387
|
|
|
|
|
|
|
=head2 more_than_two_genes |
|
388
|
|
|
|
|
|
|
|
|
389
|
|
|
|
|
|
|
Title : more_than_two_genes |
|
390
|
|
|
|
|
|
|
Usage : $omim->more_than_two_genes( 1 ); |
|
391
|
|
|
|
|
|
|
or |
|
392
|
|
|
|
|
|
|
print $omim->more_than_two_genes(); |
|
393
|
|
|
|
|
|
|
Function: This is true if this phenotype can be caused |
|
394
|
|
|
|
|
|
|
by mutation in any of two or more genes. |
|
395
|
|
|
|
|
|
|
In OMIM, this is indicated by a number symbol (#) |
|
396
|
|
|
|
|
|
|
before an entry number (e.g. #114480 -- BREAST CANCER). |
|
397
|
|
|
|
|
|
|
Returns : [1 or 0]. |
|
398
|
|
|
|
|
|
|
Args : [1 or 0] (optional). |
|
399
|
|
|
|
|
|
|
|
|
400
|
|
|
|
|
|
|
=cut |
|
401
|
|
|
|
|
|
|
|
|
402
|
|
|
|
|
|
|
sub more_than_two_genes { |
|
403
|
12
|
|
|
12
|
1
|
16
|
my ( $self, $value ) = @_; |
|
404
|
|
|
|
|
|
|
|
|
405
|
12
|
100
|
|
|
|
31
|
if ( defined $value ) { |
|
406
|
8
|
|
|
|
|
24
|
$self->_is_true_or_false( $value ); |
|
407
|
8
|
|
|
|
|
15
|
$self->{ "_more_than_two_genes" } = $value; |
|
408
|
|
|
|
|
|
|
} |
|
409
|
|
|
|
|
|
|
|
|
410
|
12
|
|
|
|
|
27
|
return $self->{ "_more_than_two_genes" }; |
|
411
|
|
|
|
|
|
|
|
|
412
|
|
|
|
|
|
|
} # more_than_two_genes |
|
413
|
|
|
|
|
|
|
|
|
414
|
|
|
|
|
|
|
|
|
415
|
|
|
|
|
|
|
|
|
416
|
|
|
|
|
|
|
|
|
417
|
|
|
|
|
|
|
=head2 is_separate |
|
418
|
|
|
|
|
|
|
|
|
419
|
|
|
|
|
|
|
Title : is_separate |
|
420
|
|
|
|
|
|
|
Usage : $omim->is_separate( 1 ); |
|
421
|
|
|
|
|
|
|
or |
|
422
|
|
|
|
|
|
|
print $omim->is_separate(); |
|
423
|
|
|
|
|
|
|
Function: This is true if the phenotype determined by the gene at |
|
424
|
|
|
|
|
|
|
the given locus is separate from those represented by |
|
425
|
|
|
|
|
|
|
other entries where "is_separate" is true and if the mode |
|
426
|
|
|
|
|
|
|
of inheritance of the phenotype has been proved |
|
427
|
|
|
|
|
|
|
(in the judgment of the authors and editors). |
|
428
|
|
|
|
|
|
|
In OMIM, this is indicated by a asterisk (*) |
|
429
|
|
|
|
|
|
|
before an entry number (e.g. *113705 BREAST CANCER, |
|
430
|
|
|
|
|
|
|
TYPE 1; BRCA1). |
|
431
|
|
|
|
|
|
|
Returns : [1 or 0]. |
|
432
|
|
|
|
|
|
|
Args : [1 or 0] (optional). |
|
433
|
|
|
|
|
|
|
|
|
434
|
|
|
|
|
|
|
=cut |
|
435
|
|
|
|
|
|
|
|
|
436
|
|
|
|
|
|
|
sub is_separate { |
|
437
|
12
|
|
|
12
|
1
|
16
|
my ( $self, $value ) = @_; |
|
438
|
|
|
|
|
|
|
|
|
439
|
12
|
100
|
|
|
|
26
|
if ( defined $value ) { |
|
440
|
8
|
|
|
|
|
17
|
$self->_is_true_or_false( $value ); |
|
441
|
8
|
|
|
|
|
14
|
$self->{ "_is_separate" } = $value; |
|
442
|
|
|
|
|
|
|
} |
|
443
|
|
|
|
|
|
|
|
|
444
|
12
|
|
|
|
|
26
|
return $self->{ "_is_separate" }; |
|
445
|
|
|
|
|
|
|
|
|
446
|
|
|
|
|
|
|
} # is_separate |
|
447
|
|
|
|
|
|
|
|
|
448
|
|
|
|
|
|
|
|
|
449
|
|
|
|
|
|
|
|
|
450
|
|
|
|
|
|
|
|
|
451
|
|
|
|
|
|
|
=head2 mapping_method |
|
452
|
|
|
|
|
|
|
|
|
453
|
|
|
|
|
|
|
Title : mapping_method |
|
454
|
|
|
|
|
|
|
Usage : $omim->mapping_method( "PCR of somatic cell hybrid DNA" ); |
|
455
|
|
|
|
|
|
|
or |
|
456
|
|
|
|
|
|
|
print $omim->mapping_method(); |
|
457
|
|
|
|
|
|
|
Function: Set/get for the mapping method of this OMIM entry. |
|
458
|
|
|
|
|
|
|
Returns : The mapping method [scalar]. |
|
459
|
|
|
|
|
|
|
Args : The mapping method [scalar] (optional). |
|
460
|
|
|
|
|
|
|
|
|
461
|
|
|
|
|
|
|
=cut |
|
462
|
|
|
|
|
|
|
|
|
463
|
|
|
|
|
|
|
sub mapping_method { |
|
464
|
13
|
|
|
13
|
1
|
19
|
my $self = shift; |
|
465
|
13
|
100
|
|
|
|
38
|
return $self->{ "_mapping_method" } = shift if(@_); |
|
466
|
4
|
|
|
|
|
15
|
return $self->{ "_mapping_method" }; |
|
467
|
|
|
|
|
|
|
} # mapping_method |
|
468
|
|
|
|
|
|
|
|
|
469
|
|
|
|
|
|
|
=head2 gene_status |
|
470
|
|
|
|
|
|
|
|
|
471
|
|
|
|
|
|
|
Title : gene_status |
|
472
|
|
|
|
|
|
|
Usage : $omim->gene_status( "C" ); |
|
473
|
|
|
|
|
|
|
or |
|
474
|
|
|
|
|
|
|
print $omim->gene_status(); |
|
475
|
|
|
|
|
|
|
Function: Set/get for the gene status of this OMIM entry. |
|
476
|
|
|
|
|
|
|
The certainty with which assignment of loci to chromosomes or the linkage |
|
477
|
|
|
|
|
|
|
between two loci has been established has been graded into the following |
|
478
|
|
|
|
|
|
|
classes: |
|
479
|
|
|
|
|
|
|
C = confirmed - observed in at least two laboratories or in several families. |
|
480
|
|
|
|
|
|
|
P = provisional - based on evidence from one laboratory or one family. |
|
481
|
|
|
|
|
|
|
I = inconsistent - results of different laboratories disagree. |
|
482
|
|
|
|
|
|
|
L = limbo - evidence not as strong as that provisional, but included for |
|
483
|
|
|
|
|
|
|
heuristic reasons. (Same as `tentative'.) |
|
484
|
|
|
|
|
|
|
|
|
485
|
|
|
|
|
|
|
Returns : [C, P, I, or L]. |
|
486
|
|
|
|
|
|
|
Args : [C, P, I, or L] (optional). |
|
487
|
|
|
|
|
|
|
|
|
488
|
|
|
|
|
|
|
=cut |
|
489
|
|
|
|
|
|
|
|
|
490
|
|
|
|
|
|
|
sub gene_status { |
|
491
|
13
|
|
|
13
|
1
|
22
|
my ( $self, $value ) = @_; |
|
492
|
|
|
|
|
|
|
|
|
493
|
13
|
100
|
|
|
|
29
|
if ( defined $value ) { |
|
494
|
|
|
|
|
|
|
#unless ( $value eq "C" |
|
495
|
|
|
|
|
|
|
# || $value eq "P" |
|
496
|
|
|
|
|
|
|
# || $value eq "I" |
|
497
|
|
|
|
|
|
|
# || $value eq "L" |
|
498
|
|
|
|
|
|
|
# || $value eq "A" # !? |
|
499
|
|
|
|
|
|
|
# || $value eq "H" # !? |
|
500
|
|
|
|
|
|
|
# || $value eq "U" # !? |
|
501
|
|
|
|
|
|
|
# || $value eq "" ) { |
|
502
|
|
|
|
|
|
|
# $self->throw( "Found [$value]" |
|
503
|
|
|
|
|
|
|
# . " where [C, P, I, or L] expected" ); |
|
504
|
|
|
|
|
|
|
#} |
|
505
|
9
|
50
|
66
|
|
|
95
|
unless ( $value eq "C" |
|
|
|
|
100
|
|
|
|
|
|
|
|
|
66
|
|
|
|
|
|
|
|
|
66
|
|
|
|
|
|
506
|
|
|
|
|
|
|
|| $value eq "P" |
|
507
|
|
|
|
|
|
|
|| $value eq "I" |
|
508
|
|
|
|
|
|
|
|| $value eq "L" |
|
509
|
|
|
|
|
|
|
|| $value eq "" ) { |
|
510
|
0
|
|
|
|
|
0
|
$value = ""; |
|
511
|
|
|
|
|
|
|
} |
|
512
|
|
|
|
|
|
|
|
|
513
|
9
|
|
|
|
|
20
|
$self->{ "_gene_status" } = $value; |
|
514
|
|
|
|
|
|
|
} |
|
515
|
|
|
|
|
|
|
|
|
516
|
13
|
|
|
|
|
27
|
return $self->{ "_gene_status" }; |
|
517
|
|
|
|
|
|
|
|
|
518
|
|
|
|
|
|
|
} # gene_status |
|
519
|
|
|
|
|
|
|
|
|
520
|
|
|
|
|
|
|
|
|
521
|
|
|
|
|
|
|
=head2 clinical_symptoms |
|
522
|
|
|
|
|
|
|
|
|
523
|
|
|
|
|
|
|
Title : clinical_symptoms |
|
524
|
|
|
|
|
|
|
Usage : $omim->clinical_symptoms({}); |
|
525
|
|
|
|
|
|
|
Function: Set/get for the clinical symptoms of this OMIM entry. |
|
526
|
|
|
|
|
|
|
Returns : [hash reference]. |
|
527
|
|
|
|
|
|
|
Args : [hash reference]. Suggested not to assign alone. Parser will do. |
|
528
|
|
|
|
|
|
|
|
|
529
|
|
|
|
|
|
|
=cut |
|
530
|
|
|
|
|
|
|
|
|
531
|
|
|
|
|
|
|
sub clinical_symptoms { |
|
532
|
9
|
|
|
9
|
1
|
10
|
my ( $self, $value ) = @_; |
|
533
|
|
|
|
|
|
|
|
|
534
|
9
|
100
|
|
|
|
21
|
if ( defined $value ) { |
|
535
|
6
|
50
|
|
|
|
14
|
unless(ref($value) eq 'HASH'){ |
|
536
|
0
|
|
|
|
|
0
|
$self->throw('a hash referenced needed'); |
|
537
|
|
|
|
|
|
|
} |
|
538
|
6
|
|
|
|
|
9
|
$self->{ "_clinical_symptoms" } = $value; |
|
539
|
|
|
|
|
|
|
} |
|
540
|
|
|
|
|
|
|
|
|
541
|
9
|
|
|
|
|
18
|
return $self->{ "_clinical_symptoms" }; |
|
542
|
|
|
|
|
|
|
|
|
543
|
|
|
|
|
|
|
} # clinical_symptoms |
|
544
|
|
|
|
|
|
|
|
|
545
|
|
|
|
|
|
|
=head2 clinical_symptoms_raw |
|
546
|
|
|
|
|
|
|
|
|
547
|
|
|
|
|
|
|
Title : clinical_symptoms_raw |
|
548
|
|
|
|
|
|
|
Usage : $omim->clinical_symptoms( "Patients with ..." ); |
|
549
|
|
|
|
|
|
|
print $omim->clinical_symptoms(); |
|
550
|
|
|
|
|
|
|
Functions : Get/set for text information of clinical symptoms |
|
551
|
|
|
|
|
|
|
Returns : The clinical symptoms [scalar]. |
|
552
|
|
|
|
|
|
|
Args : The clinical symptoms [scalar] (optional). |
|
553
|
|
|
|
|
|
|
|
|
554
|
|
|
|
|
|
|
=cut |
|
555
|
|
|
|
|
|
|
|
|
556
|
|
|
|
|
|
|
sub clinical_symptoms_raw { |
|
557
|
8
|
|
|
8
|
1
|
11
|
my $self = shift; |
|
558
|
8
|
100
|
|
|
|
29
|
return $self->{_clinical_symptoms_raw} = shift if @_; |
|
559
|
3
|
|
|
|
|
15
|
return $self->{_clinical_symptoms_raw}; |
|
560
|
|
|
|
|
|
|
} |
|
561
|
|
|
|
|
|
|
|
|
562
|
|
|
|
|
|
|
=head2 add_clinical_symptoms |
|
563
|
|
|
|
|
|
|
|
|
564
|
|
|
|
|
|
|
Title : add_clinical_symptoms |
|
565
|
|
|
|
|
|
|
Usage : $entry->add_clinical_symptoms('Ears', 'Floppy ears', 'Lop-ears'); |
|
566
|
|
|
|
|
|
|
Function : add one or more symptoms on one part of body. |
|
567
|
|
|
|
|
|
|
Returns : [none] |
|
568
|
|
|
|
|
|
|
Args : ($part, @symptoms) |
|
569
|
|
|
|
|
|
|
$part, the text name of part/organism of human |
|
570
|
|
|
|
|
|
|
@symptoms, an array of text description |
|
571
|
|
|
|
|
|
|
|
|
572
|
|
|
|
|
|
|
=cut |
|
573
|
|
|
|
|
|
|
|
|
574
|
|
|
|
|
|
|
sub add_clinical_symptoms { |
|
575
|
0
|
|
|
0
|
1
|
0
|
my ($self, $part, @symptoms) = @_; |
|
576
|
0
|
0
|
|
|
|
0
|
unless(defined $part){ |
|
577
|
0
|
|
|
|
|
0
|
$self->throw('a part/organism must be assigned'); |
|
578
|
|
|
|
|
|
|
} |
|
579
|
0
|
0
|
|
|
|
0
|
$self->{_clinical_symptoms} = {} unless $self->{_clinical_symptoms}; |
|
580
|
|
|
|
|
|
|
$self->{_clinical_symptoms}->{$part} = [] |
|
581
|
0
|
0
|
|
|
|
0
|
unless $self->{_clinical_symptoms}->{$part}; |
|
582
|
0
|
|
|
|
|
0
|
push @{$self->{_clinical_symptoms}->{$part}}, @symptoms; |
|
|
0
|
|
|
|
|
0
|
|
|
583
|
|
|
|
|
|
|
} |
|
584
|
|
|
|
|
|
|
|
|
585
|
|
|
|
|
|
|
=head2 query_clinical_symptoms |
|
586
|
|
|
|
|
|
|
|
|
587
|
|
|
|
|
|
|
Title : get_clinical_symptoms |
|
588
|
|
|
|
|
|
|
Usage : @symptoms = $self->query_clinical_symptoms('Ears'); |
|
589
|
|
|
|
|
|
|
Function : get all symptoms specific to one part/organism. |
|
590
|
|
|
|
|
|
|
Returns : an array of text |
|
591
|
|
|
|
|
|
|
Args : $organ |
|
592
|
|
|
|
|
|
|
|
|
593
|
|
|
|
|
|
|
=cut |
|
594
|
|
|
|
|
|
|
|
|
595
|
|
|
|
|
|
|
sub query_clinical_symptoms { |
|
596
|
0
|
|
|
0
|
1
|
0
|
my ($self, $organ)=@_; |
|
597
|
0
|
|
|
|
|
0
|
my $symptoms=$self->{_clinical_symptoms}->{$organ}; |
|
598
|
0
|
|
|
|
|
0
|
@$symptoms; |
|
599
|
|
|
|
|
|
|
} |
|
600
|
|
|
|
|
|
|
|
|
601
|
|
|
|
|
|
|
sub get_clinical_symptom_organs { |
|
602
|
0
|
|
|
0
|
0
|
0
|
my ($self)=@_; |
|
603
|
0
|
|
|
|
|
0
|
keys %{$self->{_clinical_symptoms}}; |
|
|
0
|
|
|
|
|
0
|
|
|
604
|
|
|
|
|
|
|
} |
|
605
|
|
|
|
|
|
|
|
|
606
|
|
|
|
|
|
|
=head2 created |
|
607
|
|
|
|
|
|
|
|
|
608
|
|
|
|
|
|
|
Title : created |
|
609
|
|
|
|
|
|
|
Usage : $omim->created( "Victor A. McKusick: 6/4/1986" ); |
|
610
|
|
|
|
|
|
|
or |
|
611
|
|
|
|
|
|
|
print $omim->created(); |
|
612
|
|
|
|
|
|
|
Function: Set/get for the created field of the OMIM database. |
|
613
|
|
|
|
|
|
|
Returns : Name(s) and date(s) [scalar - free form]. |
|
614
|
|
|
|
|
|
|
Args : Name(s) and date(s) [scalar - free form] (optional). |
|
615
|
|
|
|
|
|
|
|
|
616
|
|
|
|
|
|
|
=cut |
|
617
|
|
|
|
|
|
|
|
|
618
|
|
|
|
|
|
|
sub created { |
|
619
|
13
|
|
|
13
|
1
|
15
|
my $self = shift; |
|
620
|
13
|
100
|
|
|
|
39
|
return $self->{ "_created" } = shift if(@_); |
|
621
|
4
|
|
|
|
|
14
|
return $self->{ "_created" }; |
|
622
|
|
|
|
|
|
|
|
|
623
|
|
|
|
|
|
|
} # created |
|
624
|
|
|
|
|
|
|
|
|
625
|
|
|
|
|
|
|
|
|
626
|
|
|
|
|
|
|
|
|
627
|
|
|
|
|
|
|
|
|
628
|
|
|
|
|
|
|
=head2 contributors |
|
629
|
|
|
|
|
|
|
|
|
630
|
|
|
|
|
|
|
Title : contributors |
|
631
|
|
|
|
|
|
|
Usage : $omim->contributors( "Kelly A. Przylepa - revised: 03/18/2002" ); |
|
632
|
|
|
|
|
|
|
or |
|
633
|
|
|
|
|
|
|
print $omim->contributors(); |
|
634
|
|
|
|
|
|
|
Function: Set/get for the contributors field of the OMIM database. |
|
635
|
|
|
|
|
|
|
Returns : Name(s) and date(s) [scalar - free form]. |
|
636
|
|
|
|
|
|
|
Args : Name(s) and date(s) [scalar - free form] (optional). |
|
637
|
|
|
|
|
|
|
|
|
638
|
|
|
|
|
|
|
=cut |
|
639
|
|
|
|
|
|
|
|
|
640
|
|
|
|
|
|
|
sub contributors { |
|
641
|
13
|
|
|
13
|
1
|
20
|
my $self = shift; |
|
642
|
13
|
100
|
|
|
|
32
|
$self->{ "_contributors" } = shift if(@_); |
|
643
|
13
|
|
|
|
|
30
|
return $self->{ "_contributors" }; |
|
644
|
|
|
|
|
|
|
|
|
645
|
|
|
|
|
|
|
} # contributors |
|
646
|
|
|
|
|
|
|
|
|
647
|
|
|
|
|
|
|
|
|
648
|
|
|
|
|
|
|
|
|
649
|
|
|
|
|
|
|
|
|
650
|
|
|
|
|
|
|
=head2 edited |
|
651
|
|
|
|
|
|
|
|
|
652
|
|
|
|
|
|
|
Title : edited |
|
653
|
|
|
|
|
|
|
Usage : $omim->edited( "alopez: 06/03/1997" ); |
|
654
|
|
|
|
|
|
|
or |
|
655
|
|
|
|
|
|
|
print $omim->edited(); |
|
656
|
|
|
|
|
|
|
Function: Set/get for the edited field of the OMIM database. |
|
657
|
|
|
|
|
|
|
Returns : Name(s) and date(s) [scalar - free form]. |
|
658
|
|
|
|
|
|
|
Args : Name(s) and date(s) [scalar - free form] (optional). |
|
659
|
|
|
|
|
|
|
|
|
660
|
|
|
|
|
|
|
=cut |
|
661
|
|
|
|
|
|
|
|
|
662
|
|
|
|
|
|
|
sub edited { |
|
663
|
13
|
|
|
13
|
1
|
15
|
my $self = shift; |
|
664
|
13
|
100
|
|
|
|
43
|
return $self->{ "_edited" } = shift if(@_); |
|
665
|
4
|
|
|
|
|
13
|
return $self->{ "_edited" }; |
|
666
|
|
|
|
|
|
|
|
|
667
|
|
|
|
|
|
|
} # edited |
|
668
|
|
|
|
|
|
|
|
|
669
|
|
|
|
|
|
|
|
|
670
|
|
|
|
|
|
|
|
|
671
|
|
|
|
|
|
|
|
|
672
|
|
|
|
|
|
|
=head2 additional_references |
|
673
|
|
|
|
|
|
|
|
|
674
|
|
|
|
|
|
|
Title : additional_references |
|
675
|
|
|
|
|
|
|
Usage : $omim->additional_references( "Miller er al." ); |
|
676
|
|
|
|
|
|
|
or |
|
677
|
|
|
|
|
|
|
print $omim->additional_references(); |
|
678
|
|
|
|
|
|
|
Function: Set/get for the additional references of this OMIM antry |
|
679
|
|
|
|
|
|
|
(see also). |
|
680
|
|
|
|
|
|
|
Returns : additional reference [scalar]. |
|
681
|
|
|
|
|
|
|
Args : additional reference [scalar] (optional). |
|
682
|
|
|
|
|
|
|
|
|
683
|
|
|
|
|
|
|
=cut |
|
684
|
|
|
|
|
|
|
|
|
685
|
|
|
|
|
|
|
sub additional_references { |
|
686
|
11
|
|
|
11
|
1
|
14
|
my $self = shift; |
|
687
|
11
|
100
|
|
|
|
37
|
return $self->{ "_additional_references" } = shift if(@_); |
|
688
|
3
|
|
|
|
|
9
|
return $self->{ "_additional_references" }; |
|
689
|
|
|
|
|
|
|
|
|
690
|
|
|
|
|
|
|
} # additional_references |
|
691
|
|
|
|
|
|
|
|
|
692
|
|
|
|
|
|
|
=head2 miniMIM |
|
693
|
|
|
|
|
|
|
|
|
694
|
|
|
|
|
|
|
Title : miniMIM |
|
695
|
|
|
|
|
|
|
Usage : $omim->miniMIM( $MM ); |
|
696
|
|
|
|
|
|
|
or |
|
697
|
|
|
|
|
|
|
$MM = $omim->miniMIM(); |
|
698
|
|
|
|
|
|
|
Function: Set/get for the Mini MIM associated with this OMIM antry |
|
699
|
|
|
|
|
|
|
(see also). |
|
700
|
|
|
|
|
|
|
Returns : [Bio::Phenotype::OMIM::MiniMIMentry]. |
|
701
|
|
|
|
|
|
|
Args : [Bio::Phenotype::OMIM::MiniMIMentry] (optional). |
|
702
|
|
|
|
|
|
|
|
|
703
|
|
|
|
|
|
|
=cut |
|
704
|
|
|
|
|
|
|
|
|
705
|
|
|
|
|
|
|
sub miniMIM { |
|
706
|
|
|
|
|
|
|
|
|
707
|
13
|
|
|
13
|
1
|
21
|
my ( $self, $value ) = @_; |
|
708
|
|
|
|
|
|
|
|
|
709
|
13
|
100
|
|
|
|
27
|
if ( defined $value ) { |
|
710
|
9
|
|
|
|
|
22
|
$self->_check_ref_type( $value, "Bio::Phenotype::OMIM::MiniMIMentry" ); |
|
711
|
9
|
|
|
|
|
15
|
$self->{ "_mini_mim" } = $value; |
|
712
|
|
|
|
|
|
|
} |
|
713
|
|
|
|
|
|
|
|
|
714
|
13
|
|
|
|
|
30
|
return $self->{ "_mini_mim" }; |
|
715
|
|
|
|
|
|
|
} |
|
716
|
|
|
|
|
|
|
|
|
717
|
|
|
|
|
|
|
=head2 each_AllelicVariant |
|
718
|
|
|
|
|
|
|
|
|
719
|
|
|
|
|
|
|
Title : each_AllelicVariant() |
|
720
|
|
|
|
|
|
|
Usage : @avs = $obj->each_AllelicVariant(); |
|
721
|
|
|
|
|
|
|
Function: Returns a list of Bio::Phenotype::OMIM::OMIMentryAllelicVariant objects |
|
722
|
|
|
|
|
|
|
associated with this OMIM entry. |
|
723
|
|
|
|
|
|
|
Returns : A list of Bio::Phenotype::OMIM::OMIMentryAllelicVariant objects. |
|
724
|
|
|
|
|
|
|
Args : |
|
725
|
|
|
|
|
|
|
|
|
726
|
|
|
|
|
|
|
=cut |
|
727
|
|
|
|
|
|
|
|
|
728
|
|
|
|
|
|
|
sub each_AllelicVariant { |
|
729
|
16
|
|
|
16
|
1
|
790
|
my ( $self ) = @_; |
|
730
|
|
|
|
|
|
|
|
|
731
|
16
|
100
|
|
|
|
43
|
return @{$self->{"_allelic_variants"}} if exists($self->{"_allelic_variants"}); |
|
|
13
|
|
|
|
|
40
|
|
|
732
|
3
|
|
|
|
|
4
|
return (); |
|
733
|
|
|
|
|
|
|
} # each_AllelicVariant |
|
734
|
|
|
|
|
|
|
|
|
735
|
|
|
|
|
|
|
|
|
736
|
|
|
|
|
|
|
=head2 add_AllelicVariants |
|
737
|
|
|
|
|
|
|
|
|
738
|
|
|
|
|
|
|
Title : add_AllelicVariants |
|
739
|
|
|
|
|
|
|
Usage : $obj->add_AllelicVariants( @avs ); |
|
740
|
|
|
|
|
|
|
or |
|
741
|
|
|
|
|
|
|
$obj->add_AllelicVariants( $av ); |
|
742
|
|
|
|
|
|
|
Function: Pushes one or more OMIMentryAllelicVariant |
|
743
|
|
|
|
|
|
|
into the list of OMIMentryAllelicVariants. |
|
744
|
|
|
|
|
|
|
Returns : |
|
745
|
|
|
|
|
|
|
Args : Bio::Phenotype::OMIM::OMIMentryAllelicVariant object(s). |
|
746
|
|
|
|
|
|
|
|
|
747
|
|
|
|
|
|
|
=cut |
|
748
|
|
|
|
|
|
|
|
|
749
|
|
|
|
|
|
|
sub add_AllelicVariants { |
|
750
|
3
|
|
|
3
|
1
|
7
|
my ( $self, @values ) = @_; |
|
751
|
|
|
|
|
|
|
|
|
752
|
3
|
50
|
|
|
|
12
|
return unless( @values ); |
|
753
|
|
|
|
|
|
|
|
|
754
|
3
|
|
|
|
|
7
|
foreach my $value ( @values ) { |
|
755
|
14
|
|
|
|
|
19
|
$self->_check_ref_type( $value, "Bio::Phenotype::OMIM::OMIMentryAllelicVariant" ); |
|
756
|
|
|
|
|
|
|
} |
|
757
|
|
|
|
|
|
|
|
|
758
|
3
|
|
|
|
|
5
|
push( @{ $self->{ "_allelic_variants" } }, @values ); |
|
|
3
|
|
|
|
|
18
|
|
|
759
|
|
|
|
|
|
|
|
|
760
|
|
|
|
|
|
|
} # add_AllelicVariants |
|
761
|
|
|
|
|
|
|
|
|
762
|
|
|
|
|
|
|
|
|
763
|
|
|
|
|
|
|
=head2 remove_AllelicVariants |
|
764
|
|
|
|
|
|
|
|
|
765
|
|
|
|
|
|
|
Title : remove_AllelicVariants |
|
766
|
|
|
|
|
|
|
Usage : $obj->remove_AllelicVariants(); |
|
767
|
|
|
|
|
|
|
Function: Deletes (and returns) the list of OMIMentryAllelicVariant objects |
|
768
|
|
|
|
|
|
|
associated with this OMIM entry. |
|
769
|
|
|
|
|
|
|
Returns : A list of OMIMentryAllelicVariant objects. |
|
770
|
|
|
|
|
|
|
Args : |
|
771
|
|
|
|
|
|
|
|
|
772
|
|
|
|
|
|
|
=cut |
|
773
|
|
|
|
|
|
|
|
|
774
|
|
|
|
|
|
|
sub remove_AllelicVariants { |
|
775
|
8
|
|
|
8
|
1
|
11
|
my ( $self ) = @_; |
|
776
|
|
|
|
|
|
|
|
|
777
|
8
|
|
|
|
|
19
|
my @a = $self->each_AllelicVariant(); |
|
778
|
8
|
|
|
|
|
13
|
$self->{ "_allelic_variants" } = []; |
|
779
|
8
|
|
|
|
|
13
|
return @a; |
|
780
|
|
|
|
|
|
|
|
|
781
|
|
|
|
|
|
|
} # remove_AllelicVariants |
|
782
|
|
|
|
|
|
|
|
|
783
|
|
|
|
|
|
|
|
|
784
|
|
|
|
|
|
|
# Title : _array_to_string |
|
785
|
|
|
|
|
|
|
# Function: |
|
786
|
|
|
|
|
|
|
# Returns : |
|
787
|
|
|
|
|
|
|
# Args : |
|
788
|
|
|
|
|
|
|
sub _array_to_string { |
|
789
|
5
|
|
|
5
|
|
4
|
my( $self, @value ) = @_; |
|
790
|
|
|
|
|
|
|
|
|
791
|
5
|
|
|
|
|
6
|
my $s = ""; |
|
792
|
|
|
|
|
|
|
|
|
793
|
5
|
|
|
|
|
8
|
for ( my $i = 0; $i < scalar( @value ); ++$i ) { |
|
794
|
0
|
0
|
0
|
|
|
0
|
if ( ! ref( $value[ $i ] ) ) { |
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
795
|
0
|
|
|
|
|
0
|
$s .= "#" . $i . "\n-- Value:\n" . $value[ $i ] . "\n"; |
|
796
|
|
|
|
|
|
|
} |
|
797
|
|
|
|
|
|
|
elsif ( $value[ $i ]->isa( "Bio::Phenotype::OMIM::OMIMentryAllelicVariant" ) |
|
798
|
|
|
|
|
|
|
|| $value[ $i ]->isa( "Bio::Phenotype::Correlate" ) ) { |
|
799
|
0
|
|
|
|
|
0
|
$s .= "#" . $i . "\n" . ( $value[ $i ] )->to_string() . "\n"; |
|
800
|
|
|
|
|
|
|
} |
|
801
|
|
|
|
|
|
|
elsif ( $value[ $i ]->isa( "Bio::Annotation::Reference" ) ) { |
|
802
|
0
|
|
|
|
|
0
|
$s .= "#".$i."\n-- Authors:\n".( $value[ $i ] )->authors()."\n"; |
|
803
|
0
|
|
|
|
|
0
|
$s .= "-- Title:\n".( $value[ $i ] )->title()."\n"; |
|
804
|
0
|
|
|
|
|
0
|
$s .= "-- Location:\n".( $value[ $i ] )->location()."\n"; |
|
805
|
|
|
|
|
|
|
} |
|
806
|
|
|
|
|
|
|
elsif ( $value[ $i ]->isa( "Bio::Map::CytoPosition" ) ) { |
|
807
|
0
|
|
|
|
|
0
|
$s .= "#" . $i . "\n-- Value:\n" . ( $value[ $i ] )->value() . "\n"; |
|
808
|
|
|
|
|
|
|
} |
|
809
|
|
|
|
|
|
|
} |
|
810
|
|
|
|
|
|
|
|
|
811
|
5
|
|
|
|
|
10
|
return $s; |
|
812
|
|
|
|
|
|
|
|
|
813
|
|
|
|
|
|
|
} # _array_to_string |
|
814
|
|
|
|
|
|
|
|
|
815
|
|
|
|
|
|
|
|
|
816
|
|
|
|
|
|
|
# Title :_is_true_or_false |
|
817
|
|
|
|
|
|
|
# Function: Checks whether the argument is 1 or 0. |
|
818
|
|
|
|
|
|
|
# Returns : |
|
819
|
|
|
|
|
|
|
# Args : The value to be checked. |
|
820
|
|
|
|
|
|
|
sub _is_true_or_false { |
|
821
|
16
|
|
|
16
|
|
15
|
my ( $self, $value ) = @_; |
|
822
|
16
|
50
|
66
|
|
|
107
|
unless ( $value !~ /\D/ && ( $value == TRUE || $value == FALSE ) ) { |
|
|
|
|
33
|
|
|
|
|
|
823
|
0
|
|
|
|
|
|
$self->throw( "Found [" . $value |
|
824
|
|
|
|
|
|
|
. "] where " . TRUE . " or " . FALSE . " expected" ); |
|
825
|
|
|
|
|
|
|
} |
|
826
|
|
|
|
|
|
|
} # _is_true_or_false |
|
827
|
|
|
|
|
|
|
|
|
828
|
|
|
|
|
|
|
|
|
829
|
|
|
|
|
|
|
1; |