001    /**
002     * Copyright (C) 2010 The Roslin Institute <contact andy.law@roslin.ed.ac.uk>
003     *
004     * This file is part of the Ensembl Java API demonstration project developed by the
005     * Bioinformatics Group at The Roslin Institute, The Royal (Dick) School of
006     * Veterinary Studies, University of Edinburgh.
007     *
008     * This is free software: you can redistribute it and/or modify
009     * it under the terms of the GNU General Public License (version 3) as published by
010     * the Free Software Foundation.
011     *
012     * This software is distributed in the hope that it will be useful,
013     * but WITHOUT ANY WARRANTY; without even the implied warranty of
014     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
015     * GNU General Public License for more details.
016     *
017     * You should have received a copy of the GNU General Public License
018     * in this software distribution. If not, see <http://www.gnu.org/licenses/gpl-3.0.html/>.
019     */
020    
021    package uk.ac.roslin.ensembl.model.core;
022    
023    import java.util.HashMap;
024    import java.util.List;
025    import org.biojava3.core.sequence.compound.NucleotideCompound;
026    import org.biojava3.core.sequence.template.Sequence;
027    import uk.ac.roslin.ensembl.exception.DAOException;
028    import uk.ac.roslin.ensembl.model.Coordinate;
029    import uk.ac.roslin.ensembl.model.Coordinate.Strand;
030    import uk.ac.roslin.ensembl.model.CoordinateSet;
031    import uk.ac.roslin.ensembl.model.MappableObject;
032    import uk.ac.roslin.ensembl.model.MappingSet;
033    import uk.ac.roslin.ensembl.model.ObjectType;
034    
035    /**
036     *
037     * @author paterson
038     */
039    public interface DNASequence extends CoreObject, MappableObject, Sequence<NucleotideCompound> {
040    
041        public Integer getDBSeqLength() ;
042    
043        public void setDBSeqLength(Integer seqLength) ;
044    
045        public CoordinateSystem getCoordSystem() ;
046    
047        public void setCoordSystem(CoordinateSystem coordSystem) ;
048    
049        public String getName() ;
050    
051        public void setName(String name) ;
052    
053        public List<? extends Gene> getGenesOnRegion(Coordinate coord) throws DAOException ;
054    
055        public List<? extends Gene> getGenesOnRegion(Integer start, Integer stop) throws DAOException ;
056    
057        public List<? extends Gene> getGenesOnRegion(Integer start, Integer stop, Strand strand) throws DAOException ;
058    
059        public String getSequenceAsString(Integer begin, Integer end) ;
060    
061        public String getReverseComplementSequenceAsString(Integer begin, Integer end) ;
062    
063        public String getReverseComplementSequenceAsString() ;
064    
065        public HashMap<ObjectType, ? extends MappingSet> getObjectTypeMappings() ;
066    
067        public HashMap<ObjectType, CoordinateSet> getMappedRegions() ;
068        
069    }