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.datasourceaware.core;
022    
023    import java.util.HashMap;
024    import java.util.List;
025    import uk.ac.roslin.ensembl.dao.compara.HomologyDAO;
026    import uk.ac.roslin.ensembl.dao.factory.DAOCoreFactory;
027    import uk.ac.roslin.ensembl.exception.DAOException;
028    import uk.ac.roslin.ensembl.model.Coordinate;
029    import uk.ac.roslin.ensembl.model.MappingSet;
030    import uk.ac.roslin.ensembl.model.compara.HomologyPairRelationship;
031    import uk.ac.roslin.ensembl.model.core.Chromosome;
032    import uk.ac.roslin.ensembl.model.core.Species;
033    
034    /**
035     *
036     * @author paterson
037     */
038    public class DAChromosome extends DAAssembledDNASequence implements Chromosome{
039        
040        public DAChromosome() {
041            super();
042        }
043    
044        public DAChromosome(DAOCoreFactory factory) {
045            super(factory);
046        }
047    
048        public String getChromosomeName() {
049            return this.getName();
050        }
051    
052        public void setChromosomeName(String name) {
053            this.setName(name);
054        }
055    
056        @Override
057        public String toString() {
058            return this.getChromosomeName();
059        }
060    
061        @Override
062        public HashMap<DADNASequence, MappingSet> getRegionsOfConservedSynteny(Coordinate range,
063                Species target) throws DAOException {
064    
065            if (target==null) {
066                throw new DAOException("No Sspecies specified for getRegionsOfConservedSynteny");
067            }
068    
069    
070            try {
071            HashMap<DADNASequence, MappingSet> syntenies = null;
072            
073            HomologyDAO dao =
074                    this.getComparaFactory().getHomologyDAO();
075    
076            syntenies = (HashMap<DADNASequence, MappingSet>) dao.getRegionsOfConservedSynteny(this, range, target);
077    
078            return syntenies;
079            } catch (DAOException dex) {
080                throw dex;
081            } catch (Exception e) {
082                throw new DAOException("Failed to Access Compara to get Regions of Conserved Synteny", e);
083            }
084        }
085    }