001/*
002 *                    BioJava development code
003 *
004 * This code may be freely distributed and modified under the
005 * terms of the GNU Lesser General Public Licence.  This should
006 * be distributed with the code.  If you do not have a copy,
007 * see:
008 *
009 *      http://www.gnu.org/copyleft/lesser.html
010 *
011 * Copyright for this code is held jointly by the individual
012 * authors.  These should be listed in @author doc comments.
013 *
014 * For more information on the BioJava project and its aims,
015 * or to join the biojava-l mailing list, visit the home page
016 * at:
017 *
018 *      http://www.biojava.org/
019 *
020 */
021
022package org.biojava.bio.program.homologene;
023
024
025/**
026 * Each HomologeneEntry represents a single
027 * Homologene record that relates two
028 * presumptive orthologues.
029 */
030public interface OrthoPair
031{
032    /**
033     * gets the first orthologue in the orthology
034     * relationship.
035     * <p>
036     * I agree that this access route is somewhat
037     * sucky for a symmetric relationship 
038     * but I'd hate returning a Set of
039     * orthologues more and all the fiddling
040     * would require.
041     */
042    public Orthologue getFirstOrthologue();
043
044    /**
045     * gets the first orthologue in the orthology
046     * relationship.  This will be the one with the
047     * lower TaxonID.
048     */
049    public Orthologue getSecondOrthologue();
050
051    /**
052     * gets the second orthologue in the
053     * orthology relationship.  This will be
054     * the one with the higher TaxonID.
055     */
056    public SimilarityType getSimilarity();
057
058    /**
059     * get percentage identity.
060     */
061    public double getPercentIdentity();
062
063    /**
064     * get reference to evidence for 
065     * orthology.
066     */
067    public String getRef();
068}