2 * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3 * Copyright (C) $$Year-Rel$$ The Jalview Authors
5 * This file is part of Jalview.
7 * Jalview is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation, either version 3
10 * of the License, or (at your option) any later version.
12 * Jalview is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19 * The Jalview Authors are detailed in the 'AUTHORS' file.
21 package jalview.datamodel;
24 * An enumeration of the kinds of mapping (from nucleotide or peptide, to
25 * nucleotide or peptide), and the corresponding word lengths. This is based on,
26 * but extends (and renames) the values used by Exonerate.
28 * @see https://www.ebi.ac.uk/about/vertebrate-genomics/software/exonerate-manual
30 public enum MappingType
32 GenomeToCdna(1, 1), CdnaToGenome(1, 1), GenomeToCds(1, 1),
33 CdsToGenome(1, 1), CdnaToCds(1, 1), CdsToCdna(1, 1),
34 GenomeToPeptide(3, 1), PeptideToGenome(1, 3), CdnaToPeptide(3, 1),
35 PeptideToCdna(1, 3), CdsToPeptide(3, 1), PeptideToCds(1, 3);
37 private int fromRatio;
41 private MappingType(int fromSize, int toSize)
48 * Answers the number of positions each 'word' maps from (e.g. 3 when mapping
49 * from codons in nucleotide to peptide residues)
53 public int getFromRatio()
59 * Answers the number of positions each 'word' maps to (e.g. 3 when mapping
60 * from peptide residues to codons in nucleotide)
64 public int getToRatio()
70 * Answers true if the mapping is from nucleotide to peptide, else false
75 public static boolean isDnaToPeptide(MappingType type)
77 return type != null && type.getFromRatio() == 3
78 && type.getToRatio() == 1;
82 * Answers true if the mapping is from peptide to nucleotide, else false
87 public static boolean isPeptideToDna(MappingType type)
89 return type != null && type.getFromRatio() == 1
90 && type.getToRatio() == 3;