Merge branch 'documentation/JAL-3407_2.11.1_release' into releases/Release_2_11_1_Branch
[jalview.git] / src / jalview / analysis / GeneticCodeI.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3  * Copyright (C) $$Year-Rel$$ The Jalview Authors
4  * 
5  * This file is part of Jalview.
6  * 
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.
11  *  
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.
16  * 
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.
20  */
21 package jalview.analysis;
22
23 public interface GeneticCodeI
24 {
25   /**
26    * Answers the single letter amino acid code (e.g. "D") for the given codon
27    * (e.g. "GAC"), or "*" for a stop codon, or null for an unknown input. The
28    * codon is not case-sensitive, the return value is upper case.
29    * <p>
30    * If the codon includes any of the standard ambiguity codes
31    * <ul>
32    * <li>if all possible translations are the same, returns that value</li>
33    * <li>else returns null</li>
34    * </ul>
35    * 
36    * @param codon
37    * @return
38    */
39   String translate(String codon);
40
41   /**
42    * Answers the single letter amino acid code (e.g. "D") for the given codon
43    * (e.g. "GAC"), or "*" for a stop codon, or null for an unknown input. The
44    * codon is not case-sensitive, the return value is upper case. If the codon
45    * includes any of the standard ambiguity codes, this method returns null.
46    * 
47    * @param codon
48    * @return
49    */
50   String translateCanonical(String codon);
51
52   /**
53    * Answers a unique identifier for the genetic code (using the numbering
54    * system as on NCBI)
55    * 
56    * @return
57    */
58   String getId();
59
60   /**
61    * Answers a display name suitable for use in menus, reports etc
62    * 
63    * @return
64    */
65   String getName();
66 }