Bio::SeqFeature::FeaturePair.3pm

Langue: en

Version: 2008-06-24 (ubuntu - 08/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

Bio::SeqFeature::FeaturePair - hold pair feature information e.g. blast hits

SYNOPSIS

     my $feat  = new Bio::SeqFeature::FeaturePair(-feature1 => $f1,
                                                  -feature2 => $f2,
                                               );
 
     # Bio::SeqFeatureI methods can be used
 
     my $start = $feat->start;
     my $end   = $feat->end;
 
     # Bio::FeaturePair methods can be used
     my $hstart = $feat->hstart;
     my $hend   = $feat->hend;
 
    my $feature1 = $feat->feature1;  # returns feature1 object
 
 

DESCRIPTION

A sequence feature object where the feature is itself a feature on another sequence - e.g. a blast hit where residues 1-40 of a protein sequence SW:HBA_HUMAN has hit to bases 100 - 220 on a genomic sequence HS120G22. The genomic sequence coordinates are used to create one sequence feature $f1 and the protein coordinates are used to create feature $f2. A FeaturePair object can then be made
     my $fp = new Bio::SeqFeature::FeaturePair(-feature1 => $f1,   # genomic
                                               -feature2 => $f2,   # protein
                                               );
 
 

This object can be used as a standard Bio::SeqFeatureI in which case

     my $gstart = $fp->start  # returns start coord on feature1 - genomic seq.
     my $gend   = $fp->end    # returns end coord on feature1.
 
 

In general standard Bio::SeqFeatureI method calls return information in feature1.

Data in the feature 2 object are generally obtained using the standard methods prefixed by h (for hit!)

     my $pstart = $fp->hstart # returns start coord on feature2 = protein seq.
     my $pend   = $fp->hend   # returns end coord on feature2.
 
 

If you wish to swap feature1 and feature2 around :

     $feat->invert
 
 

so...

     $feat->start # etc. returns data in $feature2 object
 
 

No sub_SeqFeatures or tags can be stored in this object directly. Any features or tags are expected to be stored in the contained objects feature1, and feature2.

CONTACT

Ewan Birney <birney@sanger.ac.uk>

APPENDIX

The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _

new

  Title   : new
  Usage   :
  Function: Constructor for this module. Accepts the following parameters:
 
              -feature1   Bio::SeqFeatureI-compliant object
              -feature2   Bio::SeqFeatureI-compliant object
              -feature_factory  Bio::Factory::ObjectFactoryI compliant
                          object to be used when feature1 and/or feature2
                          are accessed without explicitly set before. This
                          is mostly useful for derived classes who want to
                          set their preferred class for feature objects.
 
  Example :
  Returns : 
  Args    : see above
 
 

feature1

  Title   : feature1
  Usage   : $f = $featpair->feature1
            $featpair->feature1($feature)
  Function: Get/set for the query feature
  Returns : Bio::SeqFeatureI
  Args    : Bio::SeqFeatureI
 
 

feature2

  Title   : feature2
  Usage   : $f = $featpair->feature2
            $featpair->feature2($feature)
  Function: Get/set for the hit feature
  Returns : Bio::SeqFeatureI
  Args    : Bio::SeqFeatureI
 
 

start

  Title   : start
  Usage   : $start = $featpair->start
            $featpair->start(20)
  Function: Get/set on the start coordinate of feature1
  Returns : integer
  Args    : [optional] beginning of feature
 
 

end

  Title   : end
  Usage   : $end = $featpair->end
            $featpair->end($end)
  Function: get/set on the end coordinate of feature1
  Returns : integer
  Args    : [optional] ending point of feature
 
 

strand

  Title   : strand
  Usage   : $strand = $feat->strand()
            $feat->strand($strand)
  Function: get/set on strand information, being 1,-1 or 0
  Returns : -1,1 or 0
  Args    : [optional] strand information to set
 
 

location

  Title   : location
  Usage   : $location = $featpair->location
            $featpair->location($location)
  Function: Get/set location object (using feature1)
  Returns : Bio::LocationI object
  Args    : [optional] LocationI to store
 
 

score

  Title   : score
  Usage   : $score = $feat->score()
            $feat->score($score)
  Function: get/set on score information
  Returns : float
  Args    : none if get, the new value if set
 
 

frame

  Title   : frame
  Usage   : $frame = $feat->frame()
            $feat->frame($frame)
  Function: get/set on frame information
  Returns : 0,1,2
  Args    : none if get, the new value if set
 
 

primary_tag

  Title   : primary_tag
  Usage   : $ptag = $featpair->primary_tag
  Function: get/set on the primary_tag of feature1
  Returns : 0,1,2
  Args    : none if get, the new value if set
 
 

source_tag

  Title   : source_tag
  Usage   : $tag = $feat->source_tag()
            $feat->source_tag('genscan');
  Function: Returns the source tag for a feature,
            eg, 'genscan' 
  Returns : a string 
  Args    : none
 
 

seqname

  Title   : seqname
  Usage   : $obj->seq_id($newval)
  Function: There are many cases when you make a feature that you
            do know the sequence name, but do not know its actual
            sequence. This is an attribute such that you can store 
            the seqname.
 
            This attribute should *not* be used in GFF dumping, as
            that should come from the collection in which the seq
            feature was found.
  Returns : value of seqname
  Args    : newvalue (optional)
 
 

hseqname

  Title   : hseqname
  Usage   : $featpair->hseqname($newval)
  Function: Get/set method for the name of
            feature2.
  Returns : value of $feature2->seq_id
  Args    : newvalue (optional)
 
 

hstart

  Title   : hstart
  Usage   : $start = $featpair->hstart
            $featpair->hstart(20)
  Function: Get/set on the start coordinate of feature2
  Returns : integer
  Args    : none
 
 

hend

  Title   : hend
  Usage   : $end = $featpair->hend
            $featpair->hend($end)
  Function: get/set on the end coordinate of feature2
  Returns : integer
  Args    : none
 
 

hstrand

  Title   : hstrand
  Usage   : $strand = $feat->strand()
            $feat->strand($strand)
  Function: get/set on strand information, being 1,-1 or 0
  Returns : -1,1 or 0
  Args    : none
 
 

hscore

  Title   : hscore
  Usage   : $score = $feat->score()
            $feat->score($score)
  Function: get/set on score information
  Returns : float
  Args    : none if get, the new value if set
 
 

hframe

  Title   : hframe
  Usage   : $frame = $feat->frame()
            $feat->frame($frame)
  Function: get/set on frame information
  Returns : 0,1,2
  Args    : none if get, the new value if set
 
 

hprimary_tag

  Title   : hprimary_tag
  Usage   : $ptag = $featpair->hprimary_tag
  Function: Get/set on the primary_tag of feature2
  Returns : 0,1,2
  Args    : none if get, the new value if set
 
 

hsource_tag

  Title   : hsource_tag
  Usage   : $tag = $feat->hsource_tag()
            $feat->source_tag('genscan');
  Function: Returns the source tag for a feature,
            eg, 'genscan' 
  Returns : a string 
  Args    : none
 
 

invert

  Title   : invert
  Usage   : $tag = $feat->invert
  Function: Swaps feature1 and feature2 around
  Returns : Nothing
  Args    : none
 
 

feature_factory

  Title   : feature_factory
  Usage   : $obj->feature_factory($newval)
  Function: Get/set the feature object factory for this feature pair.
 
            The feature object factory will be used to create a feature
            object if feature1() or feature2() is called in get mode
            without having been set before.
 
            The default is an instance of Bio::Factory::ObjectFactory
            and hence allows the type to be changed dynamically at any
            time.
 
  Example : 
  Returns : The feature object factory in use (a 
            Bio::Factory::ObjectFactoryI compliant object)
  Args    : on set, a Bio::Factory::ObjectFactoryI compliant object