[Bioperl-l] RE:Problems to get secondary accessions from an object

Hilmar Lapp hlapp at gmx.net
Wed Nov 16 05:47:03 EST 2005


Stephan, is it necessary that you create your own annotation 
collection? If you replace the line

	my $col  = new Bio::Annotation::Collection;

with

	my $col  = $prot->annotation;

you wouldn't lose annotation that's already present in the sequence's 
existing annotation collection. (And you could then also remove the 
then superfluous setter call $prot->annotation($col);)

	-hilmar

On Nov 9, 2005, at 11:51 AM, stephan wrote:

> Hi,
>
> I found a trace.
> The problem is that after I add anotations to the object, the 
> rich-features are disappeared.
>
> snippet:
> #prot is the seq object
>
> sub setProtAnnotations($$) {
> 	my $prot = $_[0];
> 	my $col  = new Bio::Annotation::Collection;
> 	my $sv   = new Bio::Annotation::SimpleValue(-value => 			 
> &getSimpleFam( $_[1] ) );
> 	$col->add_Annotation( 'family', $sv );
> 	$sv = new Bio::Annotation::SimpleValue(-value => &getWeight( 			$_[0] 
> ) );
> 	$col->add_Annotation( 'weight', $sv );
> 	$sv = new Bio::Annotation::SimpleValue(-value => $link . 		 
> $prot->accession_number() );
> 	$col->add_Annotation( 'link', $sv );
> 	$sv = new Bio::Annotation::SimpleValue(-value => &getEval( $_[1] 	) );
> 	$col->add_Annotation( 'e-val', $sv );
> 	$sv = new Bio::Annotation::SimpleValue( -value => $_[0]->seq() 			);
> 	$col->add_Annotation( 'sequence', $sv );
> 	$prot->annotation($col);}
>
> sub getProtAnnotation($$) {
> 	my $ano = $_[0]->annotation();
> 	my @an  = $ano->get_Annotations( $_[1] );
> 	my $erg = $an[0]->value();}
>
> sub setProtAnnotation($$$) {
> 	my $prot = $_[0];
> 	my $ano  = $prot->annotation();
> 	my @an   = $ano->get_Annotations( $_[1] );
> 	my $erg  = $an[0]->value( $_[2] );}
>
> sub getEval($) {
> 	my $report =
> 	$hmm_swiss_index->fetch_report( $accarray[ $_[0] ] );
> 	my $hit  = $report->next_hit();
> 	my $hsp  = $hit->next_domain();
> 	my $eval = $hsp->evalue();}
>
> sub getSimpleFam($) {
> 	my $report =
> 	$hmm_swiss_index->fetch_report( $accarray[ $_[0] ] );
> 	my $hit = $report->next_hit();
> 	my $fam = $hit->name();}
>
>
>
>
>
> >Hi,
> >>
> >> I have problems to get the secondary_accessions from an seq object.
> >>
> >> E.G
> >>
> >> $inx = Bio::Index::Swissprot->new($Index_File_Name);
> >> $prot = $inx->fetch( $accarray[ $_[0] ] );
> >> #"$accarray[ $_[0]" is an array of accessions
> >>
> >> print "Description: " . $prot->description . "\n";
> >> print "Accessions: " .$sec . "\n";
> >> print "Species: " . $prot->species->binomial() . "\n";
> >> print "Length: " . $prot->length . "\n";
> >> #this looks good
> >>
> >> @a = $prot->get_secondary_accessions;
> >> #@a is empty!
> >>
> >> Seems that $prot is not a reference to a rich:seq object or somthing
> >> other is wrong.
> >>
> >> Hope that someone can help me.
> >>
> >> regards
> >> stephan
> >>
> >>
> >> _______________________________________________
> >> 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
>
>
-- 
-------------------------------------------------------------
Hilmar Lapp                            email: lapp at gnf.org
GNF, San Diego, Ca. 92121              phone: +1-858-812-1757
-------------------------------------------------------------




More information about the Bioperl-l mailing list