JAL-1788 updated biojson docs
authortcofoegbu <tcnofoegbu@dundee.ac.uk>
Tue, 4 Aug 2015 09:54:10 +0000 (10:54 +0100)
committertcofoegbu <tcnofoegbu@dundee.ac.uk>
Tue, 4 Aug 2015 09:54:10 +0000 (10:54 +0100)
examples/biojson-doc/biojson_uml.png [new file with mode: 0644]
examples/biojson-doc/index.html

diff --git a/examples/biojson-doc/biojson_uml.png b/examples/biojson-doc/biojson_uml.png
new file mode 100644 (file)
index 0000000..8a8a971
Binary files /dev/null and b/examples/biojson-doc/biojson_uml.png differ
index 7c82aaf..ba607f4 100755 (executable)
 <!DOCTYPE html>
 <html>
 <head>
-    <title>Docson Example</title>
+    <title>BioJSON Format Documentation</title>
     <meta charset="utf-8">
     <link rel="stylesheet" href="css/docson.css">
     <script src="lib/require.js"></script></head>
 <body>
+
+<h1>BioJSON Format</h1>
+The BioJSON Format was introduced in Jalview 2.9 to serve as a standard format for representing/exchanging Bioinformatics Alignment data in JSON. This is the first version of the specification and we welcome all feedbacks on how to make BioJSON better, sustainable and widely adopted worldwide.  
+
+This page describes the data available in BioJSON format, the main content section was created with Docson - a  resource which uses a JSON schema to generate a beautified and an interactive documentation. 
+
+<h3>Advantages of JSON/BioJSON</h3>
+<ul>
+   <li>JSON is very popular and available in almost all programming languages</li>
+   <li>Integrates seamlessly with the HTTP rest architecture</li>
+   <li>Very light weight, self describing and easy to understand</li>
+   <li>Handles linked data very efficiently</li>
+</ul>
+
+<h3>Navigation Tips</h3>
+<ul>
+<li>When the mouse is hovered over the elements in the main content section, traversable elements become highlighted and clickable. </li>
+<li>Click the “object” button or plus <b>“+”</b> link to expand an object</li>
+<li>Click the minus <b>“—”</b> to collapse an object </li>
+<li>Click the parenthesis <b>“{}”</b> link to view the JSON schema which provides a more technical description of the data</li>
+<li>When you expand an object the following information becomes visible: The variables in the object, their data types and the description of each variable. This exactly corresponds to how it appears in BioJSON</li>
+</ul>
+
+<h3>Main Content</h3>
 <div id="doc"></div>
+
+<h3>Brief definition of key terms</h3>
+<ul>
+   <li><b>Residue</b> - This is a single unit of a Nucleic acid (RNA, DNA) or Amino acid (Protein).</li>
+   <li><b>Sequence</b> - A Sequence contains an array of residues with basic details about it (i.e name, start/end positions, database source, etc) </li>
+   <li><b>Alignment</b> - An alignment consists of an array of individual Sequences organised together, one above each other</li>
+   <li><b>Group</b> - Sections of an alignment or Sequence can be coupled together to form a group</li>
+   <li><b>Annotation</b> - Annotation provides various kinds of information for what is known about a sequence(Sequence Annotation), or a collection of sequences in the alignment (Alignment Annotation) </li>
+   <li><b>Feature</b> - Used to store data of known properties for sections of a sequence or alignment</li>
+</ul>
+</br>
+
+<h3> BioJSON UML Diagram</h3>
+<img src="biojson_uml.png" alt="BioJSON UML">
+
+
 <script charset="utf-8">
     require.config({ baseUrl: ""});
     require(["docson", "lib/jquery"], function(docson) {
         $(function() {
             var schema =
-            {"$schema":"http://json-schema.org/draft-04/schema#","id":"http://jsonschema.net","type":"object","properties":{"seqs":{"id":"http://jsonschema.net/seqs","type":"array","items":{"id":"http://jsonschema.net/seqs/0","type":"object","properties":{"name":{"id":"http://jsonschema.net/seqs/0/name","type":"string","description":"Sequence name"},"start":{"id":"http://jsonschema.net/seqs/0/start","type":"integer","description":"Start residue position"},"svid":{"id":"http://jsonschema.net/seqs/0/svid","type":"string","description":"Serial version id for sequence object"},"end":{"id":"http://jsonschema.net/seqs/0/end","type":"integer","description":"End residue position"},"id":{"id":"http://jsonschema.net/seqs/0/id","type":"string","description":"Sequence unique identifier"},"seq":{"id":"http://jsonschema.net/seqs/0/seq","type":"string","description":"Sequence Residues"},"order":{"id":"http://jsonschema.net/seqs/0/order","type":"integer","description":"Sequence order in an alignment space"}},"required":["name","start","svid","end","id","seq"]},"required":["0"],"description":"Sequences in the Alignemnt","minItems":"1","maxItems":"*"},"appSettings":{"id":"http://jsonschema.net/appSettings","type":"object","properties":{"globalColorScheme":{"id":"http://jsonschema.net/appSettings/globalColorScheme","type":"string","description":"Global colour schem for the alignment"},"webStartUrl":{"id":"http://jsonschema.net/appSettings/webStartUrl","type":"string","description":"Jalview specific setting which points to a url for launching Jalview"},"application":{"id":"http://jsonschema.net/appSettings/application","type":"string","description":"Application which generated the Json"},"showSeqFeatures":{"id":"http://jsonschema.net/appSettings/showSeqFeatures","type":"string","description":"Determines if sequence features are visible or not"},"version":{"id":"http://jsonschema.net/appSettings/version","type":"string","description":"Verion of the application which generated the JSON"},"hiddenCols":{"id":"http://jsonschema.net/appSettings/hiddenCols","type":"string","description":"Delimited lists of hidden colums ranges i.e [2-3,5-5,11-23]"}},"description":"Application specific settings"},"seqGroups":{"id":"http://jsonschema.net/seqGroups","type":"array","items":[{"id":"http://jsonschema.net/seqGroups/0","type":"object","properties":{"displayText":{"id":"http://jsonschema.net/seqGroups/0/displayText","type":"boolean","description":"Determines if the texts of the group is displayed or not"},"startRes":{"id":"http://jsonschema.net/seqGroups/0/startRes","type":"integer","description":"Start residue position for a given group"},"groupName":{"id":"http://jsonschema.net/seqGroups/0/groupName","type":"string","description":"Group name"},"endRes":{"id":"http://jsonschema.net/seqGroups/0/endRes","type":"integer","description":"End residue position for a given group"},"colourText":{"id":"http://jsonschema.net/seqGroups/0/colourText","type":"boolean","description":"Determines if the Residues text for the group is coloured"},"seqsHash":{"id":"http://jsonschema.net/seqGroups/0/seqsHash","type":"array","items":[],"minItems":"0","maxItems":"*","description":"The id's of the sequences which belongs to the group"},"svid":{"id":"http://jsonschema.net/seqGroups/0/svid","type":"string","description":"Serial version id for a given group"},"showNonconserved":{"id":"http://jsonschema.net/seqGroups/0/showNonconserved","type":"boolean","description":"Determines if non conserved regions of a group is shown or not"},"colourScheme":{"id":"http://jsonschema.net/seqGroups/0/colourScheme","type":"string","description":"Colour Scheme for the sequence group"},"displayBoxes":{"id":"http://jsonschema.net/seqGroups/0/displayBoxes","type":"boolean","description":"Determines if the group border should be visible or not"}}}],"description":"Sequence groups in the Alignment","minItems":"0","maxItems":"*"},"alignAnnotation":{"id":"http://jsonschema.net/alignAnnotation","type":"array","items":{"id":"http://jsonschema.net/alignAnnotation/0","type":"object","properties":{"svid":{"id":"http://jsonschema.net/alignAnnotation/0/svid","type":"string","description":"Serial version id for the annotation object"},"annotations":{"id":"http://jsonschema.net/alignAnnotation/0/annotations","type":"array","items":[{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/displayCharacter","type":"string","description":"Display character to denote the given annotation"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/value","type":"integer","description":"Value of the annotation"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/secondaryStructure","type":"string","description":"Secondary structure symbol for the given annotation"}}},{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/displayCharacter","type":"string"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/value","type":"integer"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/secondaryStructure","type":"string"}}},{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/displayCharacter","type":"string"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/value","type":"integer"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/secondaryStructure","type":"string"}}}]},"description":{"id":"http://jsonschema.net/alignAnnotation/0/description","type":"string","description":"Description of the Alignment Annotation"},"label":{"id":"http://jsonschema.net/alignAnnotation/0/label","type":"string","description":"Label for the Annotation"}}},"description":"Alignment Annotations","minItems":"0","maxItems":"*"},"svid":{"id":"http://jsonschema.net/svid","type":"string","description":"Serial version id"},"seqFeatures":{"id":"http://jsonschema.net/seqFeatures","type":"array","items":{"id":"http://jsonschema.net/seqFeatures/0","type":"object","properties":{"fillColor":{"id":"http://jsonschema.net/seqFeatures/0/fillColor","type":"string","description":"Fill colour"},"score":{"id":"http://jsonschema.net/seqFeatures/0/score","type":"integer","description":"Score"},"sequenceRef":{"id":"http://jsonschema.net/seqFeatures/0/sequenceRef","type":"string","description":"Reference to the Sequence in the alignement (More like a foreign key)"},"featureGroup":{"id":"http://jsonschema.net/seqFeatures/0/featureGroup","type":"string","description":"Feature Group"},"svid":{"id":"http://jsonschema.net/seqFeatures/0/svid","type":"string","description":"Serial version id for the SeqFeature object"},"description":{"id":"http://jsonschema.net/seqFeatures/0/description","type":"string","description":"Description of Feature"},"xStart":{"id":"http://jsonschema.net/seqFeatures/0/xStart","type":"integer","description":"Start residue position for the sequence feature"},"xEnd":{"id":"http://jsonschema.net/seqFeatures/0/xEnd","type":"integer","description":"End residue position for the sequence feature"},"type":{"id":"http://jsonschema.net/seqFeatures/0/type","type":"string","description":"The name of the SequenceFeature"}}},"minItems":"0","maxItems":"*","description":"Sequence Features within the alignment"}},"required":["seqs","appSettings","seqGroups","alignAnnotation","svid","seqFeatures"]}
+            {
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "id": "BioJSON",
+    "type": "object",
+    "properties": {
+        "seqs": {
+            "id": "seqs",
+            "type": "array",
+            "items": {
+                "id": "seqs",
+                "type": "object",
+                "properties": {
+                    "name": {
+                        "id": "seqs/name",
+                        "type": "string",
+                        "description": "Sequence name"
+                    },
+                    "start": {
+                        "id": "seqs/start",
+                        "type": "integer",
+                        "description": "The index of the sequence’s first residue in it’s source database"
+                    },
+                    "end": {
+                        "id": "seqs/end",
+                        "type": "integer",
+                        "description": "The index of the sequence’s last residue in it’s source database"
+                    },
+                    "order": {
+                        "id": "seqs/order",
+                        "type": "integer",
+                        "description": "The order/position of a sequence in the alignment space"
+                    },
+                    "id": {
+                        "id": "seqs/id",
+                        "type": "string",
+                        "description": "Unique identifier for a given Sequence"
+                    },
+                    "seq": {
+                        "id": "seqs/seq",
+                        "type": "string",
+                        "description": "Sequence Residues"
+                    },
+                    "svid": {
+                        "id": "seqs/svid",
+                        "type": "string",
+                        "description": "Serial version identifier for the <b>seqs</b> object model"
+                    }
+                },
+                "required": [
+                    "name",
+                    "start",
+                    "svid",
+                    "end",
+                    "id",
+                    "seq"
+                ]
+            },
+            "required": [
+                "0"
+            ],
+            "description": "An array of Sequences which makes up the Alignment",
+            "minItems": "1",
+            "maxItems": "*"
+        },
+        "seqGroups": {
+            "id": "seqGroups",
+            "type": "array",
+            "items": [
+                {
+                    "id": "seqGroups",
+                    "type": "object",
+                    "properties": {
+                        "groupName": {
+                            "id": "seqGroups/groupName",
+                            "type": "string",
+                            "description": "The name assigned to the seqGroup"
+                        },
+                        "startRes": {
+                            "id": "seqGroups/startRes",
+                            "type": "integer",
+                            "description": "The index of the group’s first residue in the alignment space"
+                        },
+                        "endRes": {
+                            "id": "seqGroups/endRes",
+                            "type": "integer",
+                            "description": "The index of the group’s last residue in the alignment space"
+                        },
+                        "svid": {
+                            "id": "seqGroups/svid",
+                            "type": "string",
+                            "description": "Serial version identifier for the <b>seqGroup</b> object model"
+                        },
+                        "colourScheme": {
+                            "id": "seqGroups/colourScheme",
+                            "type": "string",
+                            "description": "The Colour Scheme applied to the Sequence Group"
+                        },
+                        "displayBoxes": {
+                            "id": "seqGroups/displayBoxes",
+                            "type": "boolean",
+                            "description": "Determines if the seqGroup border should be visible or not"
+                        },
+                        "showNonconserved": {
+                            "id": "seqGroups/showNonconserved",
+                            "type": "boolean",
+                            "description": "Determines if non conserved regions of a group is shown or not"
+                        },
+                        "colourText": {
+                            "id": "seqGroups/colourText",
+                            "type": "boolean",
+                            "description": "Determines if the Residues text for the group is coloured"
+                        },
+                        "displayText": {
+                            "id": "seqGroups/displayText",
+                            "type": "boolean",
+                            "description": "Determines if the texts of the group is displayed or not"
+                        },
+                        "seqsHash": {
+                            "id": "seqGroups/seqsHash",
+                            "type": "array",
+                            "items": [],
+                            "minItems": "0",
+                            "maxItems": "*",
+                            "description": "An array of the unique id's for the sequences belonging to the group"
+                        }
+                    }
+                }
+            ],
+            "description": "Sequence groups in the Alignment",
+            "minItems": "0",
+            "maxItems": "*"
+        },
+        "alignAnnotation": {
+            "id": "alignAnnotation",
+            "type": "array",
+            "items": {
+                "id": "alignAnnotation",
+                "type": "object",
+                "properties": {
+                    "svid": {
+                        "id": "alignAnnotation/svid",
+                        "type": "string",
+                        "description": "Serial version id for the <b>alignAnnotation</b> object model"
+                    },
+                    "description": {
+                        "id": "alignAnnotation/description",
+                        "type": "string",
+                        "description": "Description for the Alignment Annotation"
+                    },
+                    "label": {
+                        "id": "alignAnnotation/label",
+                        "type": "string",
+                        "description": "Label for the Alignment Annotation"
+                    },
+                    "annotations": {
+                        "id": "alignAnnotation/annotations",
+                        "type": "array",
+                        "items": [
+                            {
+                                "id": "alignAnnotation/annotations",
+                                "type": "object",
+                                "properties": {
+                                    "displayCharacter": {
+                                        "id": "alignAnnotation/annotations/displayCharacter",
+                                        "type": "string",
+                                        "description": "Display character which denotes the given annotation"
+                                    },
+                                    "secondaryStructure": {
+                                        "id": "alignAnnotation/annotations/secondaryStructure",
+                                        "type": "string",
+                                        "description": "Secondary structure symbol for the given annotation"
+                                    },
+                                    "value": {
+                                        "id": "alignAnnotation/annotations/value",
+                                        "type": "integer",
+                                        "description": "Value of the annotation"
+                                    }
+                                }
+                            }
+                        ]
+                    }
+                }
+            },
+            "description": "Alignment Annotations",
+            "minItems": "0",
+            "maxItems": "*"
+        },
+        "seqFeatures": {
+            "id": "seqFeatures",
+            "type": "array",
+            "items": {
+                "id": "seqFeatures",
+                "type": "object",
+                "properties": {
+                    "type": {
+                        "id": "seqFeatures/type",
+                        "type": "string",
+                        "description": "The name of the SequenceFeature"
+                    },
+                    "fillColor": {
+                        "id": "seqFeatures/fillColor",
+                        "type": "string",
+                        "description": "Fill colour"
+                    },
+                    "sequenceRef": {
+                        "id": "seqFeatures/sequenceRef",
+                        "type": "string",
+                        "description": "Reference to the Sequence in the alignment (More like a foreign key)"
+                    },
+                    "featureGroup": {
+                        "id": "seqFeatures/featureGroup",
+                        "type": "string",
+                        "description": "Feature Group"
+                    },
+                    "svid": {
+                        "id": "seqFeatures/svid",
+                        "type": "string",
+                        "description": "Serial version id for the <b>SeqFeature</b> object"
+                    },
+                    "description": {
+                        "id": "seqFeatures/description",
+                        "type": "string",
+                        "description": "Description of Feature"
+                    },
+                    "xStart": {
+                        "id": "seqFeatures/xStart",
+                        "type": "integer",
+                        "description": "Start residue position for the sequence feature"
+                    },
+                    "xEnd": {
+                        "id": "seqFeatures/xEnd",
+                        "type": "integer",
+                        "description": "End residue position for the sequence feature"
+                    },
+                    "score": {
+                        "id": "seqFeatures/score",
+                        "type": "integer",
+                        "description": "Score"
+                    }
+                }
+            },
+            "minItems": "0",
+            "maxItems": "*",
+            "description": "Sequence Features within the alignment"
+        },
+        "appSettings": {
+            "id": "appSettings",
+            "type": "object",
+            "properties": {
+                "globalColorScheme": {
+                    "id": "appSettings/globalColorScheme",
+                    "type": "string",
+                    "description": "The Global colour scheme applied to all the sequences within the alignment"
+                },
+                "webStartUrl": {
+                    "id": "appSettings/webStartUrl",
+                    "type": "string",
+                    "description": "Jalview specific setting which points to the url for launching Jalview"
+                },
+                "application": {
+                    "id": "appSettings/application",
+                    "type": "string",
+                    "description": "The name of the application which generated the Json"
+                },
+                "showSeqFeatures": {
+                    "id": "appSettings/showSeqFeatures",
+                    "type": "string",
+                    "description": "Determines if sequence features are visible or not"
+                },
+                "version": {
+                    "id": "appSettings/version",
+                    "type": "string",
+                    "description": "Version of the application which generated the JSON"
+                },
+                "hiddenCols": {
+                    "id": "appSettings/hiddenCols",
+                    "type": "string",
+                    "description": "The ranges of hidden columns in the alignment in a comma delimited string i.e [2-5, 9-9, 11-12]"
+                }
+            },
+            "description": "This is for custom application specific settings in a map structure (key/value) pairs. Any application which can generate or consume BioJSON can extend their custom data here. However, it is essential to provide the application name, and version in the map for identification purposes."
+        },
+        "svid": {
+            "id": "svid",
+            "type": "string",
+            "description": "Serial version identifier for <b>BioJSON</b> model"
+        }
+    },
+    "required": [
+        "seqs",
+        "appSettings",
+        "seqGroups",
+        "alignAnnotation",
+        "svid",
+        "seqFeatures"
+    ]
+}
             docson.templateBaseUrl="templates";
             docson.doc("doc", schema);
         });
 </script>
 </body>
 </html>
+
+
\ No newline at end of file