[Bioperl-l] pubmed

Qunfeng qfdong at iastate.edu
Wed Apr 6 12:40:10 EDT 2005


Well, it doesn't work here. I have given up on $value->pubmed and decided 
to simply parsed out the pubmed id from $value->location

Thanks again for all your help!

Qunfeng

At 06:32 AM 4/6/2005, Brian Osborne wrote:
>Qunfeng,
>
>Your code works with the attached file, give it a try (I'm using
>bioperl-live, by the way).
>
>Brian O.
>
>-----Original Message-----
>From: bioperl-l-bounces at portal.open-bio.org
>[mailto:bioperl-l-bounces at portal.open-bio.org]On Behalf Of Qunfeng
>Sent: Tuesday, April 05, 2005 11:33 AM
>To: Brian Osborne; Bioperl
>Subject: RE: [Bioperl-l] pubmed
>
>
>Brian,
>
>Thanks for your kind help.  The following is my complete code. It reads a
>GenBank file as input and prints out authors, medline but not pubmed.    I
>also tried your code and it doesn't work for me either.
>
>I tried your code with two of my machines
>
>machine 1). installed bioperl-1.2.2
>$ uname -a
>Linux  2.4.20-8bigmem #1 SMP Thu Mar 13 17:32:29 EST 2003 i686 i686 i386
>GNU/Linux
>
>machine 2). installed bioperl-1.4
>$ uname -a
>Linux  2.4.21-27.0.2.ELsmp #1 SMP Wed Jan 12 23:35:44 EST 2005 i686 i686
>i386 GNU/Linux
>
>----------------------------------------------------------------------------
>----------------------------------------
>#!/usr/bin/perl -w
>use strict;
>use Bio::SeqIO;
>
>my $inputGBfile = $ARGV[0];
>my  $seqio_object = Bio::SeqIO->new('-file' => "$inputGBfile",
>                                                         '-format' =>
>'GenBank');
>
>my $seq_object;
>while (1){
>           eval{
>                   $seq_object = $seqio_object->next_seq;
>           };
>           if($@){
>                   print STDERR "EXCEPTION FOUND; SKIP THIS OBJECT\n";
>                   next;
>           }
>           last if(!defined $seq_object);
>           my $gi = $seq_object->primary_id;
>           my $anno_collection = $seq_object->annotation;
>           foreach my $key ( $anno_collection->get_all_annotation_keys ) {
>               my @annotations = $anno_collection->get_Annotations($key);
>               foreach my $value ( @annotations ) {
>                   if($value->tagname eq "reference"){
>                        my $authors = $value->authors();
>                        my $medline = $value->medline();
>                        my $pubmed = $value->pubmed();
>                       print
>"gi=$gi\nauthors=$authors\nmedline=$medline\npubmed=$pubmed\n\n";
>                  }#end if
>              }#end inner for
>          }#end outer for
>}#end while
>----------------------------------------------------------------------------
>---------------------------------------------------------
>
>At 05:18 PM 4/4/2005, Brian Osborne wrote:
> >Qunfeng,
> >
> >SeqIO parses this entry correctly, using this code:
> >
> >use strict;
> >use Bio::DB::GenBank;
> >
> >my $db = new Bio::DB::GenBank;
> >my $seq = $db->get_Seq_by_id(56961711);
> >my $ac = $seq->annotation;
> >for my $ref ($ac->get_Annotations('reference')) {
> >         print $ref->pubmed;
> >}
> >
> >It looks like your code should work as well but since you didn't show us
> >your complete code using the variable $value it's hard to see where the
> >problem is.
> >
> >
> >Brian O.
> >
> >-----Original Message-----
> >From: bioperl-l-bounces at portal.open-bio.org
> >[mailto:bioperl-l-bounces at portal.open-bio.org]On Behalf Of Qunfeng
> >Sent: Monday, April 04, 2005 5:47 PM
> >To: Bioperl
> >Subject: RE: [Bioperl-l] pubmed
> >
> >
> >Brain,
> >
> >My problem is that none of them returned a Pubmed id.
> >
> >Qunfeng
> >
> >At 03:07 PM 4/4/2005, Brian Osborne wrote:
> > >Qunfeng,
> > >
> > >Only 1 of the 5 references in the 56961711 entry has a Pubmed id, the
>rest
> > >will return nothing when you try $value->pubmed.
> > >
> > >Brian O.
> > >
> > >-----Original Message-----
> > >From: bioperl-l-bounces at portal.open-bio.org
> > >[mailto:bioperl-l-bounces at portal.open-bio.org]On Behalf Of Qunfeng
> > >Sent: Monday, April 04, 2005 2:58 PM
> > >To: Bioperl
> > >Subject: Re: [Bioperl-l] pubmed
> > >
> > >
> > >so, I tried to use
> > >                      my $authors = $hash_ref->{'authors'};
> > >                      my $medline = $hash_ref->{'medline'};
> > >                      my $pubmed = $hash_ref->{'pubmed'};
> > >
> > >to parse out authors, medline, pubmed.
> > >
> > >I was able to successfully parse out authors and medline but not pubmed.
> > >
> > >Then I tried to use
> > >
> > >                      my $authors = $value->authors();
> > >                      my $medline = $value->medline();
> > >                      my $pubmed = $value->pubmed();
> > >
> > >and I got the same thing.
> > >
> > >Qunfeng
> > >
> > >At 07:50 PM 4/2/2005, Hilmar Lapp wrote:
> > > >So what is the result of this script that you wouldn't have expected or
> > > >that is not giving you what you need?
> > > >
> > > >BTW annotation objects under the tagname 'reference' are usually
> > > >Bio::Annotation::Reference objects and have methods $ref->authors(),
> > > >$ref->pubmed(), $ref->medline, etc. Check the POD.
> > > >
> > > >         -hilmar
> > > >
> > > >On Friday, April 1, 2005, at 12:04  PM, Qunfeng wrote:
> > > >
> > > >>Hilmar and Paulo,
> > > >>
> > > >>I apologize for that,
> > > >>
> > > >>here is a snippet of my code, I must have missed something very
>simple.
> > > >>Thanks for your help! -- Qunfeng
> > > >>
> > > >>#!/usr/bin/perl -w
> > > >>use strict;
> > > >>use Bio::SeqIO;
> > > >>
> > > >>my $inputGBfile = $ARGV[0];
> > > >>my  $seqio_object = Bio::SeqIO->new('-file' => "$inputGBfile",
> > > >>                                    '-format' => 'GenBank');
> > > >>
> > > >>my $seq_object;
> > > >>while (1){
> > > >>         eval{
> > > >>                 $seq_object = $seqio_object->next_seq;
> > > >>         };
> > > >>         if($@){
> > > >>                 print STDERR "EXCEPTION FOUND; SKIP THIS OBJECT\n";
> > > >>                 next;
> > > >>         }
> > > >>         last if(!defined $seq_object);
> > > >>         my $gi = $seq_object->primary_id;
> > > >>         my $anno_collection = $seq_object->annotation;
> > > >>         foreach my $key ( $anno_collection->get_all_annotation_keys )
>{
> > > >>             my @annotations =
>$anno_collection->get_Annotations($key);
> > > >>             foreach my $value ( @annotations ) {
> > > >>                 if($value->tagname eq "reference"){
> > > >>                     my $hash_ref = $value->hash_tree;
> > > >>                     my $authors = $hash_ref->{'authors'};
> > > >>                     my $medline = $hash_ref->{'medline'};
> > > >>                     my $pubmed = $hash_ref->{'pubmed'};
> > > >>                     print STDERR
> > > >> "gi=$gi\nauthors=$authors\nmedline=$medline\npubmed=$pubmed\n\n";
> > > >>                 }
> > > >>             }
> > > >>         }
> > > >>}
> > > >>
> > > >>
> > > >>
> > > >>At 03:10 AM 4/1/2005, you wrote:
> > > >>>*please* people always post the code or ideally a small snippet that
> > > >>>demonstrates what you were trying to do, and post the result and if
> >it's
> > > >>>not an exception why it is not the result you expected. DO NOT just
>say
> > > >>>'blah doesn't work for me'. Whenever someone needs to guess what you
> > > >>>probably did and what you probably mean you are wasting other
>people's
> > >time.
> > > >>>
> > > >>>The GI# you have has multiple refs with one having a pubmed ID and
>none
> > > >>>having a medline ID. So, the one ref that has a pubmed ID should
>return
> > > >>>it from $ref->pubmed() but without any code snippet it is impossible
>to
> > > >>>tell what you actually did and what therefore might be the problem.
> > > >>>
> > > >>>         -hilmar
> > > >>>
> > > >>>On Thursday, March 31, 2005, at 03:15  PM, Qunfeng wrote:
> > > >>>
> > > >>>>Hi there,
> > > >>>>
> > > >>>>http://bioperl.org/HOWTOs/Feature-Annotation/anno_from_genbank.html
> > > >>>>
> > > >>>>I am not very familiar with BioPerl. I tried to follow the example
> > > >>>>showing in the above page to retrieve pubmed ID under each Reference
> > > >>>>tag , i.e., $value->pubmed(), but it doesn't work for me for the seq
> > > >>>>gi#56961711. The authors() works for me.  Appreciate any >>>
> > >suggestions.
> > > >>>>
> > > >>>>Qunfeng
> > > >>>>_______________________________________________
> > > >>>>Bioperl-l mailing list
> > > >>>>Bioperl-l at portal.open-bio.org
> > > >>>>http://portal.open-bio.org/mailman/listinfo/bioperl-l
> > > >>>--
> > > >>>-------------------------------------------------------------
> > > >>>Hilmar Lapp                            email: lapp at gnf.org
> > > >>>GNF, San Diego, Ca. 92121              phone: +1-858-812-1757
> > > >>>-------------------------------------------------------------
> > > >>
> > > >--
> > > >-------------------------------------------------------------
> > > >Hilmar Lapp                            email: lapp at gnf.org
> > > >GNF, San Diego, Ca. 92121              phone: +1-858-812-1757
> > > >-------------------------------------------------------------
> > > >
> > > >
> > > >_______________________________________________
> > > >Bioperl-l mailing list
> > > >Bioperl-l at portal.open-bio.org
> > > >http://portal.open-bio.org/mailman/listinfo/bioperl-l
> > >
> > >_______________________________________________
> > >Bioperl-l mailing list
> > >Bioperl-l at portal.open-bio.org
> > >http://portal.open-bio.org/mailman/listinfo/bioperl-l
> > >
> > >
> > >
> > >_______________________________________________
> > >Bioperl-l mailing list
> > >Bioperl-l at portal.open-bio.org
> > >http://portal.open-bio.org/mailman/listinfo/bioperl-l
> >
> >_______________________________________________
> >Bioperl-l mailing list
> >Bioperl-l at portal.open-bio.org
> >http://portal.open-bio.org/mailman/listinfo/bioperl-l
>
>_______________________________________________
>Bioperl-l mailing list
>Bioperl-l at portal.open-bio.org
>http://portal.open-bio.org/mailman/listinfo/bioperl-l
>
>
>_______________________________________________
>Bioperl-l mailing list
>Bioperl-l at portal.open-bio.org
>http://portal.open-bio.org/mailman/listinfo/bioperl-l



More information about the Bioperl-l mailing list