[Bioperl-l] problem with Bio::SeqIo KEGG - need help urgently

Chris Fields cjfields at uiuc.edu
Mon Nov 19 09:33:46 EST 2007


It makes sense in the light that you're (erroneously) using a hash:

    my %values = $ac->get_Annotations($key);

This assigns key-value pairs of DBLink => DBLink; you don't see an  
error b/c the number of links happens to be even (I get 8) but you  
would if the number of links returned is odd (missing value for key  
error or something along those lines).  So when you call:

    foreach my $value (keys(%values)) {....}

you only get half of the DBLinks.  You should use an array:

    my @values = $ac->get_Annotations($key);
    foreach my $value (@values) {
       print $value->as_text,"\n";
    }

Note the loop change; Bio::Annotation are no longer operator  
overloaded so your print statement wouldn't work in a bioperl 1.6 world.

chris

On Nov 19, 2007, at 12:11 AM, neeti somaiya wrote:

> Hi,
>
> I am using Bio::SeqIO for parsing KEGG gene ent files.
>
> A part of my code is
>
> foreach my $key ( $ac->get_all_annotation_keys() )
>                                 {
>                                         if($key eq "dblink")
>                                         {
>                                                 my %values =
> $ac->get_Annotations($key);
>                                                 foreach my $value (
> keys(%values ))
>                                                 {
>                                                         print  
> "\n*****VALUE
> $value*****\n";
>                                                 }
>                                         }
>                                  }
>
> Here not all dblinks present in the actual file get parsed. For eg,  
> in the
> data below,
> ENTRY       116064            CDS       H.sapiens
> NAME        LRRC58
> DEFINITION  leucine rich repeat containing 58
> POSITION    3q13.33
> MOTIF       Pfam: SdiA-regulated LRR_1
>             PROSITE: LEU_RICH
> DBLINKS     NCBI-GI: 153792305
>             NCBI-GeneID: 116064
>             HGNC: 26968
>             Ensembl: ENSG00000163428
>             UniProt: Q96CX6
>
> Here, the dblink parsing gives me NCBI-GeneID, Ensembl, Pfam and  
> PROSITE,
> but doesnt give me HGNC and UniProt. For other entries it gives me  
> other
> combinations of dbs.
>
> Can anyone help me with this. Why is this happenning? I have no clue.
>
> Thanks and Regards,
> Neeti.
> -- 
> -Neeti
> Even my blood says, B positive
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l



More information about the Bioperl-l mailing list