/* * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9) * Copyright (C) 2015 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; } }