/* * BioJava development code * * This code may be freely distributed and modified under the * terms of the GNU Lesser General Public Licence. This should * be distributed with the code. If you do not have a copy, * see: * * http://www.gnu.org/copyleft/lesser.html * * Copyright for this code is held jointly by the individual * authors. These should be listed in @author doc comments. * * For more information on the BioJava project and its aims, * or to join the biojava-l mailing list, visit the home page * at: * * http://www.biojava.org/ * */ package org.biojava.bio.seq; import org.biojava.bio.Annotatable; import org.biojava.bio.symbol.SymbolList; /** *
* A biological sequence. *
* ** Sequence myDNA = DNATools.createDNASequence("ATTATTCGTG", "mySeq"); * Sequence myFasta = SeqIOTools.readFastaProtein("mySeq.fa"); * Sequence myGenbank = SeqIOTools.readGenbank("mySeq.gb"); ** *
* 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); ** *
* 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 {@link org.biojavax.bio.seq.RichSequence RichSequence} interface * offers considerably more functionality and better persitence to BioSQL than * it's super interface Sequence. We would recommend using it wherever possible. * * @see org.biojavax.bio.seq.RichSequence * @author Matthew Pocock * @author Thomas Down */ public interface Sequence extends SymbolList, FeatureHolder, Annotatable { /** * 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 ** * @return the URI as a String */ String getURN(); /** * The name of this sequence. *
* The name may contain spaces or odd characters. * * @return the name as a String */ String getName(); }