UNPKG

biojs-vis-sequence

Version:
554 lines (368 loc) 11.8 kB
# The Sequence Component # For a working example, please go to [JSBin](http://jsbin.com/jixehituxopa/1/edit) ## Instantiation ## 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" } ] }); }; ``` ## Options ## ### Required Parameters ### - target | {string} Identifier of the DIV tag where the component should be displayed. - sequence | {string} The sequence to be displayed. ### Optional Parameters ### - 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 } ``` ### Methods ### - 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#highlightFontColor} by default is red. -- **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#formatSelectorVisible} with the 'false' argument. -- **Example : ** ``` // Hides the format selector. mySequence.hideFormatSelector(); ``` - highlight Highlights a region using the font color defined in {Biojs.Protein3D#highlightFontColor} by default is red. -- **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#onSelectionChanged -- **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#formatSelectorVisible} with the 'true' argument. -- **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. ### Events ### - 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 ); } ); ```