biojs-vis-sequence
Version:
Display a protein/nucleotide sequence
554 lines (368 loc) • 11.8 kB
Markdown
//jsbin.com/jixehituxopa/1/edit)
1 Get the main JS file from [npm](https://www.npmjs.com/package/biojs-vis-sequence)
2 Remember to add the required JS files, i.e., the Sequence Component, jQuery, and jQuery browser plugin. Something like:
```
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
jQuery = $;
</script>
<script src="../js/biojs-vis-sequence.js"></script>
<script src="../js/jquery-browser-plugin.js"></script>
```
3 Create a div tag which holds an unique identifier.
```
<body>
...
<div id="YourOwnDivId" />
...
</body>
```
4 Create a code snippet within a script tag and create and instance of biojs-vis-sequence.
```
var Sequence = require("biojs-vis-sequence");
window.onload = function() {
var theSequence = "METLCQRLNVCQDKILTHYENDSTDLRDHIDYWKHMRLECAIYYKAREMGFKHINHQVVPTLAVSKNKALQAIELQLTLETIYNSQYSNEKWTLQDVSLEVYLTAPTGCIKKHGYTVEVQFDGDICNTMHYTNWTHIYICEEAojs SVTVVEGQVDYYGLYYVHEGIRTYFVQFKDDAEKYSKNKVWEVHAGGQVILCPTSVFSSNEVSSPEIIRQHLANHPAATHTKAVALGTEETQTTIQRPRSEPDTGNPCHTTKLLHRDSVDSAPILTAFNSSHKGRINCNSNTTPIVHLKGDANTLKCLRYRFKKHCTLYTAVSSTWHWTGHNVKHKSAIVTLTYDSEWQRDQFLSQVKIPKTITVSTGFMSI";
var mySequence = new Sequence({
sequence : theSequence,
target : "YourOwnDivId",
format : 'CODATA',
id : 'P918283',
annotations: [
{
name:"CATH",
color:"#F0F020",
html: "Using color code #F0F020 ",
regions: [{start: 122, end: 135}]
},{
name:"TEST",
html:"<br> Example of <b>HTML</b>",
color:"green",
regions: [
{start: 285, end: 292},
{start: 293, end: 314, color: "#2E4988"}
]
}
],
highlights : [
{ start:30, end:42, color:"white", background:"green", id:"spin1" },
{ start:139, end:140 },
{ start:631, end:633, color:"white", background:"blue" }
]
});
};
```
- target | {string}
Identifier of the DIV tag where the component should be displayed.
- sequence | {string}
The sequence to be displayed.
- id | {string}
Sequence identifier if apply.
- format | {string}
The display format for the sequence representation.
Default: "FASTA"
- highlights | {Object[]}
For highlighting multiple regions. Syntax:
```
[
// Highlight aminoacids from 'start' to 'end' of the current strand using the specified 'color' (optional) and 'background' (optional).
{ start: <startVal1>, end: <endVal1> [, id:<idVal1>] [, color: <HTMLColor>] [, background: <HTMLColor>]},
//
// Any others highlights
...,
//
{ start: <startValN>, end: <endValN> [, id:<idValN>] [, color: <HTMLColor>] [, background: <HTMLColor>]}
]
```
-- **Example : **
```
highlights : [
{ start:30, end:42, color:"white", background:"green", id:"spin1" },
{ start:139, end:140 },
{ start:631, end:633, color:"white", background:"blue" }
]
```
- columns | {Object}
Options for displaying the columns. Syntax:
```
{ size: <numCols>, spacedEach: <numCols>}
Default: {size:40,spacedEach:10}
```
- selection | {Object}
Positions for the current selected region. Syntax:
```
{ start: <startValue>, end: <endValue>}
```
- annotations | {Object[]}
Set of overlapping annotations. Must be an array of objects following the syntax:
```
[
// An annotation:
{ name: <name>,
html: <message>,
color: <color_code>,
regions: [{ start: <startVal1>, end: <endVal1> color: <HTMLColor>}, ...,{ start: <startValN>, end: <endValN>, color: <HTMLColor>}]
},
// ...
// more annotations here
// ...
]
```
where:
-- name is the unique name for the annotation
-- html is the message (can be HTML) to be displayed in the tool tip.
-- color is the default HTML color code for all the regions.
-- regions array of objects defining the intervals which belongs to the annotation.
-- regions[i].start is the starting character for the i-th interval.
-- regions[i].end is the ending character for the i-th interval.
-- regions[i].color is an optional color for the i-th interval.
- formatOptions | {Object}
Options for displaying the title. by now just affecting the CODATA format. Syntax:
```
formatOptions : {
title:false,
footer:false
}
Default
formatOptions : {
title:true,
footer:true
}
```
- addAnnotation
Annotate a set of intervals provided in the argument.
-- **Parameters : **
{Object} annotation
The intervals belonging to the same annotation. Syntax: { name: <value>, color: <HTMLColorCode>, html: <HTMLString>, regions: [{ start: <startVal1>, end: <endVal1>}, ..., { start: <startValN>, end: <endValN>}] }
-- **Example : **
```
// Annotations using regions with different colors.
mySequence.addAnnotation({
name:"UNIPROT",
html:"<br> Example of <b>HTML</b>",
color:"green",
regions: [
{start: 540, end: 560},
{start: 561, end:580, color: "#FFA010"},
{start: 581, end:590, color: "red"},
{start: 690, end:710}]
});
```
- addHighlight
Highlights a region using the font color defined in {Biojs.Sequence
-- **Parameters : **
{Object} h
The highlight defined as follows:
-- **Example : **
```
// highlight the characters within the position 100 to 150, included.
mySequence.addHighlight( { "start": 100, "end": 150, "color": "white", "background": "red", "id": "aaa" } );
Returns:
{int} representing the id of the highlight on the internal array. Returns -1 on failure
```
- clearSequence
Shows the columns indicated by the indexes array.
-- **Parameters : **
{string} showMessage Optional
Message to be showed.
{string} icon Optional
Icon to be showed a side of the message
-- **Example : **
```
mySequence.clearSequence("No sequence available", "../biojs/css/images/warning_icon.png");
```
- formatSelectorVisible
Set the visibility of the drop-down list of formats.
-- **Parameters : **
{boolean} visible
true: show; false: hide.
- hide
Hides the whole component.
- hideFormatSelector
This is similar to a {Biojs.Protein3D
-- **Example : **
```
// Hides the format selector.
mySequence.hideFormatSelector();
```
- highlight
Highlights a region using the font color defined in {Biojs.Protein3D
-- **Parameters : **
{int} start
The starting character of the highlighting.
{int} end
The ending character of the highlighting.
{string} color Optional
HTML color code.
{string} background Optional
HTML color code.
{string} id Optional
Custom identifier.
Returns:
{int} representing the id of the highlight on the internal array. Returns -1 on failure
- removeAllAnnotations
Removes all the current annotations.
-- **Example : **
```
mySequence.removeAllAnnotations();
```
- removeAllHighlights
Remove all the highlights of whole sequence.
-- **Example : **
```
mySequence.removeAllHighlights();
```
- removeAnnotation
Removes an annotation by means of its name.
-- **Parameters : **
{string} name
The name of the annotation to be removed.
-- **Example : **
```
// Remove the UNIPROT annotation.
mySequence.removeAnnotation('UNIPROT');
```
- removeHighlight
Remove a highlight.
-- **Parameters : **
{string} id
The id of the highlight on the internal array. This value is returned by method highlight.
-- **Example : **
```
// Clear the highlighted characters within the position 100 to 150, included.
mySequence.removeHighlight("spin1");
```
- setAnnotation
Annotate a set of intervals provided in the argument.
-- **Parameters : **
{Object} annotation
The intervals belonging to the same annotation. Syntax:
{ name: <value>, color: <HTMLColorCode>, html: <HTMLString>, regions: [{ start: <startVal1>, end: <endVal1>}, ..., { start: <startValN>, end: <endValN>}] }
- setFormat
Changes the current displaying format of the sequence.
-- **Parameters : **
{string} format
The format for the sequence to be displayed.
-- **Example : **
```
// Set format to 'FASTA'.
mySequence.setFormat('FASTA');
```
- setNumCols
Changes the current number of columns in the displayed sequence.
-- **Parameters : **
{int} numCols
The number of columns.
-- **Example : **
```
// Set the number of columns to 70.
mySequence.setNumCols(70);
```
- setSelection
Set the current selection in the sequence causing the event Biojs.Sequence
-- **Parameters : **
{int} start
The starting character of the selection.
{int} end
The ending character of the selection
-- **Example : **
```
// set selection from the position 100 to 150
mySequence.setSelection(100, 150);
```
- setSequence
Shows the columns indicated by the indexes array.
-- **Parameters : **
{string} seq
The sequence strand.
{string} identifier Optional
Sequence identifier.
-- **Example : **
```
mySequence.setSequence("P99999");
```
- show
Shows the whole component.
- showFormatSelector
This is similar to a {Biojs.Protein3D
-- **Example : **
```
// Shows the format selector.
mySequence.showFormatSelector();
```
- unHighlight
Clear a highlighted region using.
-- **Parameters : **
{int} id
The id of the highlight on the internal array. This value is returned by method highlight.
- unHighlightAll
Clear the highlights of whole sequence.
- onAnnotationClicked
-- **Parameters : **
{function} actionPerformed
An function which receives an Biojs.Event object as argument.
Returned data in the Biojs.Event object:
{Object} source
The component which did triggered the event.
{string} type
The name of the event.
{string} name
The name of the selected annotation.
{int} pos
A number indicating the position of the selected amino acid.
-- **Example : **
```
mySequence.onAnnotationClicked(
function( objEvent ) {
alert("Clicked " + objEvent.name + " on position " + objEvent.pos );
}
);
```
- onSelectionChange
-- **Parameters : **
{function} actionPerformed
An function which receives an Biojs.Event object as argument.
Returned data in the Biojs.Event object:
{Object} source
The component which did triggered the event.
{string} type
The name of the event.
{int} start
A number indicating the start of the selection.
{int} end
A number indicating the ending of selection.
-- **Example : **
```
mySequence.onSelectionChange(
function( objEvent ) {
alert("Selection in progress: " + objEvent.start + ", " + objEvent.end );
}
);
```
- onSelectionChanged
-- **Parameters : **
{function} actionPerformed
An function which receives an Biojs.Event object as argument.
Returned data in the Biojs.Event object:
{Object} source
The component which did triggered the event.
{string} type
The name of the event.
{int} start
A number indicating the start of the selection.
{int} end
A number indicating the ending of selection.
-- **Example : **
```
mySequence.onSelectionChanged(
function( objEvent ) {
alert("Selected: " + objEvent.start + ", " + objEvent.end );
}
);
```
For a working example, please go to [JSBin](http: