annotate variant_effect_predictor/Bio/Biblio/IO/pubmed2ref.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 # $Id: pubmed2ref.pm,v 1.2 2002/10/22 07:45:13 lapp Exp $
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 # BioPerl module Bio::Biblio::IO::pubmed2ref.pm
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5 # Cared for by Martin Senger <senger@ebi.ac.uk>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 # For copyright and disclaimer see below.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8 # POD documentation - main docs before the code
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12 Bio::Biblio::IO::pubmed2ref - A converter of a raw hash to PUBMED citations
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16 # to be written
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20 # to be written
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22 =head1 FEEDBACK
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24 =head2 Mailing Lists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26 User feedback is an integral part of the evolution of this and other
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 Bioperl modules. Send your comments and suggestions preferably to
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 the Bioperl mailing list. Your participation is much appreciated.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30 bioperl-l@bioperl.org - General discussion
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 http://bioperl.org/MailList.shtml - About the mailing lists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 =head2 Reporting Bugs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 Report bugs to the Bioperl bug tracking system to help us keep track
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 of the bugs and their resolution. Bug reports can be submitted via
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 email or the web:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 bioperl-bugs@bioperl.org
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 http://bugzilla.bioperl.org/
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 =head1 AUTHOR
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 Martin Senger (senger@ebi.ac.uk)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 =head1 COPYRIGHT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 Copyright (c) 2002 European Bioinformatics Institute. All Rights Reserved.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 This module is free software; you can redistribute it and/or modify
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 it under the same terms as Perl itself.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 =head1 DISCLAIMER
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 This software is provided "as is" without warranty of any kind.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 =head1 APPENDIX
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 Here is the rest of the object methods. Internal methods are preceded
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 with an underscore _.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 # Let the code begin...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 package Bio::Biblio::IO::pubmed2ref;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 use vars qw(@ISA $VERSION $Revision);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 use Bio::Biblio::IO::medline2ref;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 @ISA = qw(Bio::Biblio::IO::medline2ref);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 BEGIN {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 # set the version for version checking
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 $VERSION = do { my @r = (q$Revision: 1.2 $ =~ /\d+/g); sprintf "%d.%-02d", @r };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 $Revision = q$Id: pubmed2ref.pm,v 1.2 2002/10/22 07:45:13 lapp Exp $;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 # ---------------------------------------------------------------------
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 # Here is the core...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 # ---------------------------------------------------------------------
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 sub _load_instance {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 my ($self, $source) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 my $result;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 my $article = $$source{'article'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 if (defined $article) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 if (defined $$article{'journal'}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 $result = $self->_new_instance ('Bio::Biblio::PubmedJournalArticle');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 $result->type ('JournalArticle');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 } elsif (defined $$article{'book'}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 $result = $self->_new_instance ('Bio::Biblio::PubmedBookArticle');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 $result->type ('BookArticle');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 $result->type ('PubmedArticle');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 $result = $self->_new_instance ('Bio::Biblio::Ref') unless defined $result;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 return $result;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 sub convert {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 my ($self, $source) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 my $result = $self->SUPER::convert ($source->{'Citation'});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 # here we do PUBMED's specific stuff
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 my $pubmed_data = $$source{'PubmedData'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 if (defined $pubmed_data) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 # ... just take it (perhaps rename it)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 $result->pubmed_status ($$pubmed_data{'publicationStatus'}) if defined $$pubmed_data{'publicationStatus'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 $result->pubmed_provider_id ($$pubmed_data{'providerId'}) if defined $$pubmed_data{'providerId'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 $result->pubmed_article_id_list ($$pubmed_data{'pubmedArticleIds'}) if defined $$pubmed_data{'pubmedArticleIds'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 $result->pubmed_url_list ($$pubmed_data{'pubmedURLs'}) if defined $$pubmed_data{'pubmedURLs'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 # ... put all dates from all 'histories' into one array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 if (defined $$pubmed_data{'histories'}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 my @history_list;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 foreach my $history ( @{ $$pubmed_data{'histories'} } ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 my $ra_pub_dates = $$history{'pubDates'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 foreach my $pub_date ( @{ $ra_pub_dates } ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 my %history = ();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 my $converted_date = &Bio::Biblio::IO::medline2ref::_convert_date ($pub_date);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 $history{'date'} = $converted_date if defined $converted_date;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 $history{'pub_status'} = $$pub_date{'pubStatus'} if defined $$pub_date{'pubStatus'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 push (@history_list, \%history);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 $result->pubmed_history_list (\@history_list);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 # Done!
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 return $result;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 __END__