Mercurial > repos > mahtabm > ensembl
diff variant_effect_predictor/Bio/EnsEMBL/ProteinFeature.pm @ 0:1f6dce3d34e0
Uploaded
author | mahtabm |
---|---|
date | Thu, 11 Apr 2013 02:01:53 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/variant_effect_predictor/Bio/EnsEMBL/ProteinFeature.pm Thu Apr 11 02:01:53 2013 -0400 @@ -0,0 +1,175 @@ +=head1 LICENSE + + Copyright (c) 1999-2012 The European Bioinformatics Institute and + Genome Research Limited. All rights reserved. + + This software is distributed under a modified Apache license. + For license details, please see + + http://www.ensembl.org/info/about/code_licence.html + +=head1 CONTACT + + Please email comments or questions to the public Ensembl + developers list at <dev@ensembl.org>. + + Questions may also be sent to the Ensembl help desk at + <helpdesk@ensembl.org>. + +=cut + +=head1 NAME + +Bio::EnsEMBL::ProteinFeature + +=head1 SYNOPSIS + + my $feature = Bio::EnsEMBL::ProteinFeature->new( + -start => $start, + -end => $end, + -hstart => $hit_start, + -hend => $hit_end, + -hseqname => $hit_name + ); + +=head1 DESCRIPTION + +ProteinFeature objects represent domains or other features of interest +on a peptide sequence. + +=head1 METHODS + +=cut + +package Bio::EnsEMBL::ProteinFeature; + +use strict; + +use Bio::EnsEMBL::FeaturePair; +use Bio::EnsEMBL::Utils::Argument qw(rearrange); + +use vars qw(@ISA); +@ISA = qw(Bio::EnsEMBL::FeaturePair); + + + +=head2 new + + Arg [IDESC] : (optional) string An interpro description + Arg [INTERPRO_AC] : (optional) string An interpro accession + Arg [TRANSLATION_ID] : (optional) integer A translation dbID + Arg [...] : named arguments to FeaturePair superclass + Example : + + $pf = + Bio::EnsEMBL::ProteinFeature->new( -IDESC => $idesc, + -INTERPRO_AC => $iac, + @fp_args ); + + Description: Instantiates a Bio::EnsEMBL::ProteinFeature + Returntype : Bio::EnsEMBL::FeaturePair + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub new { + my $proto = shift; + + my $class = ref($proto) || $proto; + + my ( $idesc, $interpro_ac, $translation_id ) = + rearrange( [ 'IDESC', 'INTERPRO_AC', 'TRANSLATION_ID' ], @_ ); + + my $self = $class->SUPER::new(@_); + + # the strand of protein features is always 0 + $self->{'strand'} = 0; + $self->{'idesc'} = $idesc || ''; + $self->{'interpro_ac'} = $interpro_ac || ''; + $self->{'translation_id'} = $translation_id || ''; + + return $self; +} + + +=head2 strand + + Arg [1] : Ignored + Description: Overwrites Bio::EnsEMBL::Feature->strand to not allow + : the strand to be set. + Returntype : int + Status : Stable + +=cut + +#do not allow the strand to be set +sub strand { + my $self = shift; + return $self->{'strand'}; +} + + + +=head2 idesc + + Arg [1] : (optional) string The interpro description + Example : print $protein_feature->idesc(); + Description: Getter/Setter for the interpro description of this protein + feature. + Returntype : string + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub idesc{ + my $self = shift; + $self->{'idesc'} = shift if(@_); + return $self->{'idesc'}; +} + + + +=head2 interpro_ac + + Arg [1] : (optional) string The interpro accession + Example : print $protein_feature->interpro_ac(); + Description: Getter/Setter for the interpro accession of this protein + feature. + Returntype : string + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub interpro_ac{ + my $self = shift; + $self->{'interpro_ac'} = shift if(@_); + return $self->{'interpro_ac'}; +} + + +=head2 translation_id + + Arg [1] : (optional) integer The dbID of the translation + Example : print $protein_feature->translation_id(); + Description: Getter/Setter for the translation dbID of this protein + feature. + Returntype : string + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub translation_id { + my $self = shift; + $self->{'translation_id'} = shift if (@_); + return $self->{'translation_id'}; +} + +1;