## org.biojava.bio.seq
Interface Sequence

All Superinterfaces:
  Annotatable, Changeable, FeatureHolder, SymbolList

All Known Subinterfaces:
  GappedSequence, RichSequence

All Known Implementing Classes:
  CircularView, DummySequence, NewSimpleAssembly, PhredSequence, RevCompSequence, SimpleAssembly, SimpleGappedSequence, SimpleRichSequence, SimpleSequence, SubSequence, ThinRichSequence, ViewSequence

    public interface Sequence

extends SymbolList, FeatureHolder, Annotatable

A biological sequence.

## Instantiation

     Sequence myDNA = DNATools.createDNASequence("ATTATTCGTG", "mySeq");
     Sequence myFasta = SeqIOTools.readFastaProtein("mySeq.fa");
     Sequence myGenbank = SeqIOTools.readGenbank("mySeq.gb");

## Common operations

     System.out.println("Length: " + myGenbank.length());
     System.out.println("Features: " + myGenbank.countFeatures());
     for(Iterator fi = myGenbank.features(); fi.hasNext(); ) {
       Feature f = (Feature) fi.next();
       System.out.println(f.getType() + "\t" + f.getLocation());
     }

     // create a new feature on a sequence
     StrandedFeature.Template ft = new StrandedFeature.Template();
     ft.type = "span";
     ft.location = new RangeLocation(230, 450);
     ft.source = "hand_made";
     ft.strand = StrandedFeature.NEGATIVE;

     StrandedFeature newSpan = (StrandedFeature) mySeq.createFeature(ft);

## Description

This interface is a symbol list, so it contains symbols. It is annotatable so that you can add annotation to it, and it is a FeatureHolder so that you can add information about specific regions.

It is expected that there may be several implementations of this interface, each of which may be fairly heavy-weight. It takes the SymbolList interface that is nice mathematically, and turns it into a biologically useful object.

The `RichSequence` interface offers considerably more functionality and better persitence to BioSQL than it's super interface Sequence. We would recommend using it wherever possible.

Author:
  Matthew Pocock, Thomas Down
See Also:
  `RichSequence`

Nested Class Summary

Nested classes/interfaces inherited from interface org.biojava.bio.seq.FeatureHolder
`FeatureHolder.EmptyFeatureHolder`

Nested classes/interfaces inherited from interface org.biojava.bio.Annotatable
`Annotatable.AnnotationForwarder`

Field Summary

Fields inherited from interface org.biojava.bio.symbol.SymbolList
`EDIT, EMPTY_LIST`

Fields inherited from interface org.biojava.bio.seq.FeatureHolder
`EMPTY_FEATURE_HOLDER, FEATURES, SCHEMA`

Fields inherited from interface org.biojava.bio.Annotatable
`ANNOTATION`

Method Summary
`String` `getName()` The name of this sequence.
`String` `getURN()` A Uniform Resource Identifier (URI) which identifies the sequence represented by this object.

Methods inherited from interface org.biojava.bio.symbol.SymbolList
`edit, getAlphabet, iterator, length, seqString, subList, subStr, symbolAt, toList`

Methods inherited from interface org.biojava.utils.Changeable
`addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener`

Methods inherited from interface org.biojava.bio.seq.FeatureHolder
`containsFeature, countFeatures, createFeature, features, filter, filter, getSchema, removeFeature`

Methods inherited from interface org.biojava.utils.Changeable
`addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener`

Methods inherited from interface org.biojava.bio.Annotatable
`getAnnotation`

Methods inherited from interface org.biojava.utils.Changeable
`addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener`

Method Detail

### getURN

    String getURN()

  A Uniform Resource Identifier (URI) which identifies the sequence represented by this object. For sequences in well-known database, this may be a URN, e.g.

       urn:sequence/embl:AL121903

  It may also be a URL identifying a specific resource, either locally or over the network

       file:///home/thomas/myseq.fa|seq22
       http://www.mysequences.net/chr22.seq

  Returns:
    the URI as a String

### getName

    String getName()

  The name of this sequence.

  The name may contain spaces or odd characters.

  Returns:
    the name as a String