0.2.0 • Published 4 years ago

pdb-lite-mol v0.2.0

Weekly downloads
3
License
Apache-2.0
Repository
github
Last release
4 years ago

PDB LiteMol

NPM version

This is an AngularJs Web-Component for LiteMol 3D structure viewer. LiteMol is a streamlined structure viewer which enables a PDB structure to be explored within a browser rather than requiring pre-installed molecular graphics software. There is also the option to view electron density of the structure where structure factors have been deposited to the PDB. Litemol also displays validation and domain information for the structure. It is a PDB Component Library component.

If you are interested in using core LiteMol library or if you want to customize / extend the functionality, you can refer to LiteMol repository for more information.

PDB LiteMol

Getting Started

It takes only 3 easy steps to get started with PDB Components.

  • Include module files and required dependencies
  • Install the component
  • Use component as custom element anywhere in the page

If you have installed the PDB Component Library in your application then you can directly start using the component as custom element (refer step 3).

1. Include module files and dependencies

Download the module javascript file (pdb.litemol.min.js and pdb.litemol.min.css) stored in the 'build' folder. Include the files in your page <head> section.

You'll also need to include the AngularJS library file (please refer 'bower.json' file for complete dependency details).

<!-- minified component css -->
<link rel="stylesheet" type="text/css" href="build/pdb.litemol.min.css">

<!-- Dependencey scripts (these can be skipped if already included in page) -->
<script src="bower_components/angular/angular.min.js"></script>

<!-- minified component js -->
<script src="build/pdb.litemol.min.js"></script>

2. Installation

As soon as you've got the dependencies and library files included in your application page you just need to include following installation script :

I) If you are developing an AngularJs Application

<script>
angular.module('myModule', ['pdb.litemol']);
</script>

II) For other Applications

<script>
(function () {
  'use strict';
  angular.element(document).ready(function () {
      angular.bootstrap(document, ['pdb.litemol']);
  });
}());
</script>

3. Using component as custom element anywhere in the page

The component can be used as custom element, attribute or class anywhere in the page.

<!-- component as custom element -->
<pdb-lite-mol pdb-id="'1cbs'"></pdb-lite-mol>

<!-- component as attribute -->
<div pdb-lite-mol pdb-id="'1cbs'"></div>

<!-- component as class -->
<div class="pdb-lite-mol" pdb-id="'1cbs'"></div>

Documentation

Attributes

Sr. No.AttributeValuesDescription
1pdb-idPDB ID Mandatory attribute!Example : pdb-id='1cbs'
2load-ed-mapsBoolean (true/false) (Optional Attribute) Default : 'false'Load Electron Density Maps if value is set to trueExample : load-ed-maps="true"
3hide-controlsBoolean (true/false) (Optional Attribute) Default : 'false'Hide controls menu if value is set to trueExample : hide-controls="true"
4custom-queryrefer: Coordinate Serverload specific part of the structureExample : custom-query="ligandInteraction?name=REA&radius=4"
5show-logsBoolean (true/false) (Optional Attribute) Default : 'true'Display logs panel
6tree-menuBoolean (true/false) (Optional Attribute) Default : 'false'Display Menu in Tree/CCP4 format
7is-expandedBoolean (true/false) (Optional Attribute) Default : 'false'Display full screen
8validation-annotationBoolean (true/false) (Optional Attribute) Default : 'false'Load Validation Report Annotation (works only when tree-menu='false')
9domain-annotationBoolean (true/false) (Optional Attribute) Default : 'false'Load Domain Annotation (works only when tree-menu='false')
10source-urlAbsolute url to downlaod structure data (Optional attribute)load specific data from a given url. Note - you have to add 'source-format' attribute to load data using this option.Example: source-url="http://ftp.ebi.ac.uk/pub/databases/msd/pdbechem/files/sdf/ATP.sdf"
11source-formatString supported format : mmcif, bcif (binarycif) , pdb, sdf - (Optional attribute) Default : 'mmcif'This attribute is mandatory to load data using 'source-url' attribute. Example: source-format="sdf"
12display-full-map-onloadBoolean (true/false) (Optional Attribute) Default : 'false'Display full density map onload
13subscribe-eventsBoolean (true/false) (Optional Attribute) Default : 'true'Subscribe to other PDB Components custom events.

Helper functions

Use this to programatically control the component. Check out the examples (litemol-customize-demo.html) to see how the helper function can be used.

Sr. No.FunctionDescription
1hideControls()Use : hide control panel.Parameter : none
2showControls()Use : show control panel.Parameter : none
3expand()Use : switch to full-screen mode.Parameter : none
4setBackground()Use : set background colour to white.Parameter : none
5loadDensity(isWireframe)Use : programatically load density.Parameter : 1. isWireframe (type : boolean) (value : true / false)if set to..true : shows density as wire-frame.false: shows density as surface.
6toggleDensity()Use : programatically toggle density.Parameter : none
7colorChains( chainId, colorArr )Use : set chain colour and greys out remaining residues colour.Parameter : 1. chainId (type : string)2. colorArr (type : array) (value : RGB value - example : 255,0,0 for red)
8SelectExtractFocus(selectionDetails, colorCode, showSideChains)Use : Colour and focus desired range of residues in the structure.Parameter : 1. selectionDetails (type : object)Example :{    entity_id : '1',    struct_asym_id : 'A',    start_residue_number : 10,    end_residue_number : 15}2. colorCode (type : object) (value : RGB value - example : {r:255, g:0, b:0} for red)3. showSideChains (type : boolean) (value : true / false) (optional)if set to..true : shows sidechain residues for the selected range.
9highlightOn(selectionDetails)Use : highlight desired range of residues in the structure.Similar to SelectExtractFocus() except it do not allow colour setting and focus.Parameter : 1. selectionDetails (type : object)Example :{    entity_id : '1',    struct_asym_id : 'A',    start_residue_number : 10,    end_residue_number : 15}
10highlightOff()Use :Removes highlight set using highlightOn()Parameter : none
11resetThemeSelHighlight()Use : Reset any selection and highlight to default.Parameter : none

Custom Events

Use this to subscript/bind events of this component. Event data (available in key = 'eventData') contains information about the residue number, chain, entry and entity, etc.

Sr. No.EventDescription
1PDB.litemol.clickUse this to bind to the click event of this component elements. Event data (available in key = 'eventData') contains information structure residue clicked Example: document.addEventListener('PDB.litemol.click', function(e){ /\/do something on event })
2PDB.litemol.mouseoverUse this to bind to the mouseover event of this component elements. Example: document.addEventListener('PDB.seqViewer.mouseover', function(e){ /\/do something on event })
3PDB.litemol.mouseoutUse this to bind to the mouseout event of this component elements. Example: document.addEventListener('PDB.seqViewer.mouseout', function(e){ /\/do something on event })

Please refer this link for more documentation, demo and parameters details.

Contact

Please use github to report bugs, discuss potential new features or ask questions in general. Also you can contact us here for support, feedback or to report any issues.

License

The plugin is released under the Apache License Version 2.0. You can find out more about it at http://www.apache.org/licenses/LICENSE-2.0 or within the license file of the repository.

If you are interested in this plugin...

...you might also want to have a look at the PDB Component Library.