X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjson%2Fbinding%2Fbiojson%2Fv1%2FAlignmentPojo.java;fp=src%2Fjalview%2Fjson%2Fbinding%2Fbiojson%2Fv1%2FAlignmentPojo.java;h=575b697c9836ce3cbc48d1ae7e0c2f5ffdd1dcb4;hb=9623cea766a766683243235557ad48e6f7659e6a;hp=0000000000000000000000000000000000000000;hpb=6066400ed6b0fe288ebbea82389f59838a534706;p=jalview.git diff --git a/src/jalview/json/binding/biojson/v1/AlignmentPojo.java b/src/jalview/json/binding/biojson/v1/AlignmentPojo.java new file mode 100644 index 0000000..575b697 --- /dev/null +++ b/src/jalview/json/binding/biojson/v1/AlignmentPojo.java @@ -0,0 +1,158 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ +package jalview.json.binding.biojson.v1; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.github.reinert.jjschema.Attributes; + +@Attributes( + title = "BioJSON", + description = "A specification for the representation and exchange of bioinformatics data") +public class AlignmentPojo +{ + @Attributes( + required = true, + description = "Serial version identifier for BioJSON schema") + private String svid = "1.0"; + + @Attributes( + required = true, + minItems = 1, + description = "An array of Sequences which makes up the Alignment") + private List seqs = new ArrayList(); + + @Attributes( + required = false, + minItems = 0, + exclusiveMaximum = true, + description = "Alignment annotations stores symbols and graphs usually rendered
" + + "below the alignment and often reflect properties of the alignment
as a whole.") + private List alignAnnotation = new ArrayList(); + + @Attributes( + required = false, + minItems = 0, + description = "A sequence group is a rectangular region of an alignment
bounded by startRes and endRes positions in the alignment
coordinate system for a set of sequences") + private List seqGroups = new ArrayList(); + + @Attributes( + required = false, + minItems = 0, + description = "Sequence features are properties of the individual sequences,
they do not change with the alignment, but are shown mapped
on to specific residues within the alignment") + private List seqFeatures = new ArrayList(); + + @Attributes( + required = false, + enums = { "None", "User Defined", "Clustal", "Zappo", "Taylor", + "Nucleotide", "Pyrimidine", "Purine", "Turn", "Helix", "Strand", + "Buried", "Hydro", "T-Coffee Scores", "RNA Interaction type", + "Blosum62", "RNA Helices", "% Identity" }, + description = "The Colour Scheme applied to the alignment") + private String colourScheme; + + @Attributes( + required = true, + maxItems = 0, + description = "AppSettings stores key=value pairs of custom application specific
" + + "settings (i.e visualisation settings, etc) for different applications
" + + "that consume or generate BioJSON") + Map appSettings = new HashMap(); + + public AlignmentPojo() + { + } + + public List getSeqs() + { + return seqs; + } + + public void setSeqs(ArrayList seqs) + { + this.seqs = seqs; + } + + public Map getAppSettings() + { + return appSettings; + } + + public void setAppSettings(Map appSettings) + { + this.appSettings = appSettings; + } + + public List getAlignAnnotation() + { + return alignAnnotation; + } + + public void setAlignAnnotation( + List alignAnnotation) + { + this.alignAnnotation = alignAnnotation; + } + + public List getSeqGroups() + { + return seqGroups; + } + + public void setSeqGroups(List seqGroups) + { + this.seqGroups = seqGroups; + } + + public List getSeqFeatures() + { + return seqFeatures; + } + + public void setSeqFeatures(List seqFeatures) + { + this.seqFeatures = seqFeatures; + } + + public String getSvid() + { + return svid; + } + + public void setGlobalColorScheme(String globalColorScheme) + { + this.appSettings.put("globalColorScheme", globalColorScheme); + } + + public String getColourScheme() + { + return colourScheme; + } + + public void setColourScheme(String colourScheme) + { + this.colourScheme = colourScheme; + } + +}