---
name: "Ace::Sequence::FeatureList"
section: "3pm"
platform: "linux"
package: "libace-perl"
version: "1.92-12+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Ace::Sequence::FeatureList"
---

# Ace::Sequence::FeatureList(3pm)

Lightweight Access to Features

## NAME

Ace::Sequence::FeatureList - Lightweight Access to Features

## SYNOPSIS

```
    # get a megabase from the middle of chromosome I
    $seq = Ace::Sequence->new(-name   => 'CHROMOSOME_I,
                              -db     => $db,
                              -offset => 3_000_000,
                              -length => 1_000_000);
    # find out what's there
    $list = $seq->feature_list;
    # Scalar context: count all the features
    $feature_count = $list->types;
    # Array context: list all the feature types
    @feature_types = $list->types;
    # Scalar context, 1 argument.  Count this type
    $gene_cnt = $list->types('Predicted_gene');
    print "There are $gene_cnt genes here.\n";
    # Array context, 1 argument.  Get list of subtypes
    @subtypes = $list->types('Predicted_gene');
    # Two arguments. Count type & subtype
    $genefinder_cnt = $list->types('Predicted_gene','genefinder');
```

## DESCRIPTION

*Ace::Sequence::FeatureList* is a small class that provides statistical information about sequence features.  From it you can obtain summary counts of the features and their types within a selected region.

## OBJECT CREATION

You will not ordinarily create an *Ace::Sequence::FeatureList* object directly.  Instead, objects will be created by calling a *Ace::Sequence* object's **feature\_list()** method.  If you wish to create an *Ace::Sequence::FeatureList* object directly, please consult the source code for the ***new()*** method.

## OBJECT METHODS

There are only two methods in *Ace::Sequence::FeatureList*.

- **type()**

  This method has five distinct behaviors, depending on its context and the number of parameters.  Usage should be intuitive

  ```
   Context       Arguments       Behavior
   -------       ---------       --------
   scalar         -none-         total count of features in list
   array          -none-         list feature types (e.g. "exon")
   scalar          type          count features of this type
   array           type          list subtypes of this type
   -any-       type,subtype      count features of this type & subtype
  ```

  For example, this code fragment will count the number of exons present on the list:

  ```
    $exon_count = $list->type('exon');
  ```

  This code fragment will count the number of exons found by "genefinder":

  ```
    $predicted_exon_count = $list->type('exon','genefinder');
  ```

  This code fragment will print out all subtypes of "exon" and their counts:

  ```
    for my $subtype ($list->type('exon')) {
        print $subtype,"\t",$list->type('exon',$subtype),"\n";
    }
  ```

- **asString()**

  ```
    print $list->asString;
  ```

  This dumps the list out in tab-delimited format.  The order of columns is type, subtype, count.

## SEE ALSO

Ace, Ace::Object, Ace::Sequence, Ace::Sequence::Feature, GFF

## AUTHOR

Lincoln Stein \<lstein@w3.org\> with extensive help from Jean Thierry-Mieg \<mieg@kaa.crbm.cnrs-mop.fr\>

Copyright (c) 1999, Lincoln D. Stein

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.  See DISCLAIMER.txt for disclaimers of warranty.
