001/**
002 * Copyright (C) 2010-2015 The Roslin Institute <contact andy.law@roslin.ed.ac.uk>
003 *
004 * This file is part of JEnsembl: a Java API to Ensembl data sources developed by the
005 * Bioinformatics Group at The Roslin Institute, The Royal (Dick) School of
006 * Veterinary Studies, University of Edinburgh.
007 *
008 * Project hosted at: http://jensembl.sourceforge.net
009 *
010 * This is free software: you can redistribute it and/or modify
011 * it under the terms of the GNU General Public License (version 3) as published by
012 * the Free Software Foundation.
013 *
014 * This software is distributed in the hope that it will be useful,
015 * but WITHOUT ANY WARRANTY; without even the implied warranty of
016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
017 * GNU General Public License for more details.
018 *
019 * You should have received a copy of the GNU General Public License
020 * in this software distribution. If not, see: http://opensource.org/licenses/gpl-3.0.html
021 */
022package uk.ac.roslin.ensembl.dao.coreaccess;
023
024import java.util.List;
025import uk.ac.roslin.ensembl.exception.DAOException;
026import uk.ac.roslin.ensembl.model.core.Gene;
027import uk.ac.roslin.ensembl.model.core.Transcript;
028
029/**
030 *
031 * @author tpaterso
032 */
033public interface TranscriptDAO extends ReInitializationDAO {
034
035    public List<? extends Transcript> getTranscriptsForGene(Gene gene) throws DAOException ;
036
037    public Transcript getTranscriptByStableID(String stableID) throws DAOException ;
038
039    public Transcript getTranscriptByID(Integer id) throws DAOException ;
040    
041    /**
042     * Returns a list of Ensembl Transcripts matching the query VegaID string.
043     * Vega currently curates gene, transcript and protein annotations for a human 
044     * and and a few key regions of other vertebrate species. Calling this method
045     * on EnsemblGenomes (invertebrate) species will return an empty list by default. 
046     * @param id a valid vega ID (these begin 'OTT...')
047     * @return List of (supertype of)Transcripts
048     * @throws DAOException 
049     */     
050    public List<? extends Transcript> getTranscriptsForVegaID(String id) throws DAOException; 
051    
052    /**
053     * Returns a list of Ensembl Transcripts matching the query CCDS ID string.
054     * CCDS currently curates consensus canonical transcripts for  human and mouse. 
055     * Calling this method
056     * on EnsemblGenomes (invertebrate) species will return an empty list by default. 
057     * @param id a valid CCDS accession or accession.version (these begin 'CCDS...')
058     * @return List of (supertype of)Transcripts
059     * @throws DAOException 
060     */  
061    public List<? extends Transcript> getTranscriptsForCcdsID(String id) throws DAOException; 
062
063}