Git Product home page Git Product logo

molart's Introduction

MolArt (MOLeculAR structure annoTator)

MolArt is a responsive, easy-to-use JavaScript plugin which enables users to view annotated protein sequence (including variation data from large scale studies) and overlay the annotations over a corresponding experimental or predicted protein structure. It couples protein sequence annotation capabilities provided by ProtVista (or more precisely its modified responsive version implemented when developing MolArt) with structure visualization capabilities provided by LiteMol. Since it does not have any software dependencies and all the data are obtained on the fly, it is easy to integrate it to any web page.

Examples of MolArt's use can be found at https://cusbg.github.io/MolArt/.

Documentation shows usage of the plugin.

The plugin is being developed at the Luxembourg Center for Systems Biomedicine, University of Luxembourg.

To cite MolArt use: MolArt: A molecular structure annotation and visualization tool (doi: 10.1093/bioinformatics/bty489)

Features overview

  • Visualization of protein structure as provided by LiteMol
  • Annotation of protein sequence as provided by ProtVista
  • Annotations of protein sequence from PredictProtein
  • Mapping of structure on corresponding substring in the sequence
  • Automatic retrieval of sequence data based on UniProt ID and corresponding experimental structures from PDB
  • Retrieval of predicted models from AlphaFold Protein Structure DB (ADB) and SWISS-MODEL Repository (SMR) if no PDB structure is available
  • Controlling transparency of the structure to see both cartoon and surface view of the structure
  • Hovering over position in sequence to highlight it in structure and vice versa
  • Color overlay any sequence feature over the structure
  • Color overlay all sequence features of given type over the structure
  • Color overlay individual variation over the structure
  • Color overlay all mutations to given amino acid over the structure
  • Color overlay mutation frequency of residues over the structure
  • Exports of the structure and annotations to PyMol for advanced inspection (the export does not include variants)
  • Upload of custom annotations
  • Ability to control which structures will be shown
  • Ability to select and highlight specific residues (not necessarily corresponding to annotations) and specific atoms . The selection can be visualized either as a surface, a balls and stick representation or simply van der Waals-based spheres with given color and transparency.
  • Ability to provide custom sequence and mapping

Data sources

  • Sequence and annotation data

    • Sequence information comes from UniProt website REST API or can be provided by the user
    • Sequence annotations are provided by
      • ProtVista plugin which utilizes the EBI's Proteins REST API. Proteins API includes access to variation, proteomics and antigen services containing "annotations imported and mapped from large scale data sources, such as 1000 Genomes, ExAC (Exome Aggregation Consortium), COSMIC (Catalogue Of Somatic Mutations In Cancer), PeptideAtlas, MaxQB (MaxQuant DataBase), EPD (Encyclopedia of Proteome Dynamics) and HPA, along with UniProtKB annotations for these feature types".
      • PredictProtein API which gives access to a range of integrated sequence-based prediction methods such as conservation or prediction of functional changes. If the user prefers only experimental data, the PredictProtein annotations can be easily turned off with the exclusion parameter as described in the documentation
  • Structure mapping

    • Automatic
      • To obtain the mapping between UniProt and PDB, MolArt is using the SIFTS API, part of the PDBe REST API.
      • In case the SIFTS mapping yields no PDB structures, ADB and SMR are queried using their respective APIs for available models.
    • Custom
      • When working with sequence which is not in UniProt or when the mapping is not known, sequence-structure mapping can be provided. This includes
        • Molecule-level mapping, i.e. which PDB structures correspond to the sequence
        • Residue-level mapping, i.e. which regions in sequence correspond to which regions in the structure
  • Structure data

    • In case an experimental structure is available in PDB for given UniProt ID, this structure is downloaded by LiteMol. In this case, MolArt instructs LiteMol to use the mmCIF format.
    • In case there is no experimental structure in PDB, but a model exists in ADB or SMR, MolArt instructs LiteMol to use the mmCIF-format in case of ADB and PDB-format in case of SMR.

How to use MolArt

  • Obtain the JavaScript file with MolArt and link it from your web page
  • Create a container DIV (or SPAN) element which will hold the viewer
  • Create a JavaScript object and pass it reference to the DIV

The detail description of how to incorporate MolArt into your project can be found in the developer documentation.

Examples of use

Exmpales of how to use MolArt are located in the examples folder.

  • See the bare.html file for a bare bones example of how to use the plugin.
  • The plugin-page.html is slightly styled plugin usage.
  • For an advanced example, see the web directory. It contains a simple web application which enables querying Uniprot (only top 10 matches are retrieved) and for every found record one can click the UniProt ID which creates a new tab with new instance of MolArt for that UniProt ID.

Contributing

We would be happy to hear about your use cases, experiences and ideas/feature requests. Either raise an issue here or get in touch by mail (david.hoksza at gmail).

Support

Please submit your issues through the MolArt's repository issue tracker available here.

License

This project is licensed under the Apache 2.0 license, quoted below.

Copyright (c) 2018 David Hoksza

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Support

MolArt is a part of services provided by ELIXIR โ€“ European research infrastructure for biological information. See services provided ELIXIR's Czech Republic Node.

molart's People

Contributors

davidhoksza avatar piotr-gawron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

molart's Issues

No bare.html

In Readme:

See the bare.html file for a bare bones example of how to use the plugin.

However, there is no bare.html in this repo.

Modify items under filter consequences and data source

How does one customize the items displayed under Filter consequences and data sources ?

For example, PREDICT PROTEIN gets excluded from the display if I use:
exclusions: ['PREDICT_PROTEIN']

But, I am not sure how to exclude SIFTS API or others from data source and modify (add or remove) items in the Filter consequence.

Thanks

Customization of visual components in MolArt

I intend to make the following modification to the MolArt web GUI and greatly appreciate any guidance on the right way to go about doing the same.

The filtering of variants by different categories (Disease, Predicted deleterious,...) under the Filter consequence and Filter data source sections of Variants need to be changed to simple checkboxes allowing multiple check boxes the user chooses to check at a time to show only variations of the checked categories to be plotted in the variant plot area. Existing filtering interface does not toggle category selection plots with single clicks which is somewhat confusing.

jQuery.Deferred exception: t.dropdown is not a function

On the official example found at:
https://davidhoksza.github.io/MolArt/examples/web/index.html

When searching for gene symbol 'SLC6A8' and selecting the first entry in the table, 'P48029', the visualization hangs with a loading GIF spinning on screen while the browser console shows the following error:

"jQuery.Deferred exception: t.dropdown is not a function"

This behavior is also present on an instance I am running on one of my own web servers after installing the updated library files as of the latest commit yesterday (10/11/20).

Biological assembly

Hi,
Is it possible to also include biological assemblies (instead of just asymmetric units) in the list of PDB? 2buq is an example with the biological assembly.
Thanks

Molart isn't retrieving UniProt data

Also, in the left top corner 'close' icon doesn't work when the background is dark. If scroll down, background is white and 'close' icon is active.

Screen Shot 2022-10-18 at 11 47 22

Move ProtVista panel to below LiteMol panel

Is there currently a way to move the ProtVista panel to below the LiteMol panel? If not, is there a way to hide the ProtVista panel and only show the LiteMol panel? Thank you so much!

Here's what I mean by moving it below the LiteMol viewer:
mockup_molart

Official example fails with "Can't access property "charAt", t.alternativeSequence is undefined"

Visualization cannot load. When it does, all variants are displayed as black circles on the ProtVista panel and inside the console the error appears:

"Can't access property "charAt", t.alternativeSequence is undefined"

I thought this was only on my local test instance but when I check your example and try to load up the gene symbol "P48029 | SC6A8_HUMAN | reviewed" I get the same result at:

https://davidhoksza.github.io/MolArt/examples/web/index.html

Omit some viewer components

I'm planning to use the MolArt viewer in a web app I'm developing. I'm trying to get it so that a user is only viewing one specific PDB entry on a page. I've set the pdbIds list to just be that one entry, so it indeed only shows the one entry.

As such, the dropdown pictured here is now obsolete.

Screen Shot 2020-03-04 at 5 57 57 PM

I was wondering if there was any way to get rid of it?

Thanks so much!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.