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 */
021package org.biojava.bio.seq.io.agave;
022import org.biojava.bio.Annotation;
023
024/**
025 * <p>This interface defines mapping from BioJava into AGAVE format.
026 * As data from different sources is stored differently in BioJava
027 * it is impossible to define universal mapping from BioJava to Agave.
028 * Currently I implemented two mappings:</p>
029 *
030 * <p>( embl  ->  )biojava -> agave</p>
031 * <p>( agave ->  )biojava -> agave</p>
032 *
033 * @author Hanning Ni     Doubletwist Inc
034 */
035public interface AGAVEAnnotFilter
036{
037        public static final int FORWARD = 1 ;
038        public static final int COMPLEMENT = -1 ;
039        public static final int BOTH_FORWARD_COMPLEMENT = 0 ;
040
041        public String getAccession(Annotation annot);
042        public String getLabel(Annotation annot);
043        public String getElementId(Annotation annot);
044        public String getSequenceId(Annotation annot);
045        public String getKeyword(Annotation annot);
046        public String getOrganism(Annotation annot);
047        public String getDescription(Annotation annot);
048        public String getNote (Annotation annot);
049        public String getVersion(Annotation annot);
050        public String getOS(Annotation annot);
051        public String getMolType(Annotation annot);
052        public String getTaxonId(Annotation annot);
053        public String getCloneId(Annotation annot);
054        public String getCloneLibrary(Annotation annot);
055        public String getChromosome(Annotation annot);
056        public String getMapPosition(Annotation annot);
057        public String getEcNumber(Annotation annot);
058        public String getCreateDate(Annotation annot);
059        public String getUpdateDate(Annotation annot);
060        public AGAVEDbId[]  getAltIds(Annotation annot);
061        public AGAVEXrefs[]  getXrefs(Annotation annot);
062        public AGAVEMapLocation[]  getMapLocation(Annotation annot);
063        public AGAVERelatedAnnot[]  getRelatedAnnot(Annotation annot);
064        public String[] getElementIds(Annotation annot) ;
065        public String[] getExonIds(Annotation annot) ;
066        public String getChromNum(Annotation annot);
067        public AGAVEProperty[] getProperty(Annotation annot, String type);
068        public AGAVEDbId  getDbId(Annotation annot) ;
069        public String getGroupOrder(Annotation annot) ;
070        public String getFeatureType(Annotation annot) ;
071        public String getResultType(Annotation annot) ;
072        public String getConfidence(Annotation annot) ;
073        public String getAlignLength(Annotation annot) ;
074        public String getAlignUnits(Annotation annot) ;
075        public String getMatchDesc(Annotation annot) ;
076        public String getMatchAlign(Annotation annot) ;
077        public AGAVEQueryRegion getQueryRegion(Annotation annot );
078        public AGAVEMatchRegion getMatchRegion(Annotation annot );
079        public AGAVEIdAlias[] getIdAlias(Annotation annot);
080        public String getClassifySystem(Annotation annot);
081        public String getClassifyId(Annotation annot);
082        public String getClassifyType(Annotation annot);
083}