JAL-1641 added support for exporting sequence features and non auto-generated annotations
[jalview.git] / src / jalview / json / binding / v1 / AlignmentPojo.java
1 package jalview.json.binding.v1;
2
3 import jalview.schemes.Blosum62ColourScheme;
4 import jalview.schemes.BuriedColourScheme;
5 import jalview.schemes.ColourSchemeI;
6 import jalview.schemes.HelixColourScheme;
7 import jalview.schemes.HydrophobicColourScheme;
8 import jalview.schemes.NucleotideColourScheme;
9 import jalview.schemes.PIDColourScheme;
10 import jalview.schemes.PurinePyrimidineColourScheme;
11 import jalview.schemes.RNAInteractionColourScheme;
12 import jalview.schemes.StrandColourScheme;
13 import jalview.schemes.TaylorColourScheme;
14 import jalview.schemes.TurnColourScheme;
15 import jalview.schemes.ZappoColourScheme;
16
17 import java.util.ArrayList;
18 import java.util.List;
19
20 public class AlignmentPojo
21 {
22   private String globalColorScheme = "none";
23
24   private String jalviewVersion;
25
26   private String webStartUrl;
27
28   private List<SequencePojo> seqs = new ArrayList<SequencePojo>();
29
30   private List<AlignmentAnnotationPojo> alignmentAnnotation = new ArrayList<AlignmentAnnotationPojo>();
31
32   public AlignmentPojo()
33   {
34
35   }
36
37   public List<SequencePojo> getSeqs()
38   {
39     return seqs;
40   }
41
42   public void setSeqs(ArrayList<SequencePojo> seqs)
43   {
44     this.seqs = seqs;
45   }
46   public String getGlobalColorScheme()
47   {
48     return globalColorScheme;
49   }
50   public void setGlobalColorScheme(String globalColorScheme)
51   {
52     for (JalviewBioJsColorSchemeMapper cs : JalviewBioJsColorSchemeMapper
53             .values())
54     {
55       if (cs.getJalviewName().equals(globalColorScheme))
56       {
57         this.globalColorScheme = cs.getBioJsName();
58         break;
59       }
60     }
61
62     // JALVIEW colors not in biojs
63     // Blosum62
64     // T-Coffee Scores (almost same with Blosom62
65     // RNA Interaction type - no color applied
66     // RNA Helices - missing
67
68     // BIOJS Colour not in jalview
69     // schemes.push name: "Lesk", id: "lesk"
70     // schemes.push name: "Cinema", id: "cinema"
71     // schemes.push name: "MAE", id: "mae"
72     // schemes.push name: "Clustal2", id: "clustal2"
73
74   }
75
76
77   public String getJalviewVersion()
78   {
79     return jalviewVersion;
80   }
81
82   public void setJalviewVersion(String jalviewVersion)
83   {
84     this.jalviewVersion = jalviewVersion;
85   }
86
87   public String getWebStartUrl()
88   {
89     return webStartUrl;
90   }
91
92   public void setWebStartUrl(String webStartUrl)
93   {
94     this.webStartUrl = webStartUrl;
95   }
96
97   public List<AlignmentAnnotationPojo> getAlignmentAnnotation()
98   {
99     return alignmentAnnotation;
100   }
101
102   public void setAlignmentAnnotation(List<AlignmentAnnotationPojo> alignmentAnnotation)
103   {
104     this.alignmentAnnotation = alignmentAnnotation;
105   }
106
107   public enum JalviewBioJsColorSchemeMapper
108   {
109     USER_DEFINED("User Defined", "user defined", null), NONE("None", "foo",
110             null), CLUSTAL("Clustal", "clustal", null), ZAPPO("Zappo",
111             "zappo", new ZappoColourScheme()), TAYLOR(
112             "Taylor", "taylor", new TaylorColourScheme()), NUCLEOTIDE(
113             "Nucleotide", "nucleotide", new NucleotideColourScheme()), PURINE_PYRIMIDINE(
114             "Purine/Pyrimidine", "purine",
115             new PurinePyrimidineColourScheme()), HELIX_PROPENCITY(
116             "Helix Propensity", "helix", new HelixColourScheme()), TURN_PROPENSITY(
117             "Turn Propensity", "turn", new TurnColourScheme()), STRAND_PROPENSITY(
118             "Strand Propensity", "strand", new StrandColourScheme()), BURIED_INDEX(
119             "Buried Index", "buried", new BuriedColourScheme()), HYDROPHOBIC(
120             "Hydrophobic", "hydro", new HydrophobicColourScheme()),
121
122     // The color types below are not yet supported by BioJs MSA viewer
123     T_COFFE_SCORES("T-Coffee Scores", "T-Coffee Scores",
124  null), RNA_INT_TYPE(
125             "RNA Interaction type", "RNA Interaction type",
126             new RNAInteractionColourScheme()), BLOSUM62("Blosum62",
127             "Blosum62", new Blosum62ColourScheme()), RNA_HELICES(
128             "RNA Helices", "RNA Helices", null), PERCENTAGE_IDENTITY(
129             "% Identity", "pid",
130             new PIDColourScheme());
131
132     private String jalviewName;
133     private String bioJsName;
134
135     private ColourSchemeI jvColourScheme;
136
137     private JalviewBioJsColorSchemeMapper(String jalviewName,
138             String bioJsName, ColourSchemeI jvColourScheme)
139     {
140       this.jalviewName = jalviewName;
141       this.bioJsName = bioJsName;
142       this.setJvColourScheme(jvColourScheme);
143     }
144
145     public String getJalviewName()
146     {
147       return jalviewName;
148     }
149
150     public String getBioJsName()
151     {
152       return bioJsName;
153     }
154
155     public ColourSchemeI getJvColourScheme()
156     {
157       return jvColourScheme;
158     }
159
160     public void setJvColourScheme(ColourSchemeI jvColourScheme)
161     {
162       this.jvColourScheme = jvColourScheme;
163     }
164
165   }
166 }