Difference between revisions of "HSSP curve"

From Protein Prediction 2 Winter Semester 2014
(What we done)
(Introduction to HSSP curve)
 
(60 intermediate revisions by the same user not shown)
Line 5: Line 5:
   
   
[[File:Hssp curve.png | 300px | left | Different thresholds for HSSP-curve]]
+
[[File:Hssp curve.png | 450px | left | Different thresholds for HSSP-curve]]
[[File:Threshholds.png | 300px | center | Different thresholds for HSSP-curve]]
+
[[File:Threshholds.png | 450px | center | Different thresholds for HSSP-curve]]
   
   
Line 15: Line 15:
 
Four results stood out. (i) The transition from the safe zone of sequence alignment into the twilight zone is described by an explosion of false negatives. More than 95% of all pairs detected in the twilight zone had different structures. More precisely, above a cut-off roughly corresponding to 30% sequence identity, 90% of the pairs were homologous; below 25% less than 10% were. (ii) Whether or not sequence homology implied structural identity depended crucially on the alignment length. For example, if 10 residues were similar in an alignment of length 16 (>60%), structural similarity could not be inferred. (iii) The 'more similar than identical' rule (discarding all pairs for which percentage similarity was lower than percentage identity) reduced false positives significantly. (iv) Using intermediate sequences for finding links between more distant families was almost as successful: pairs were predicted to be homologous when the respective sequence families had proteins in common. All findings are applicable to automatic database searches.
 
Four results stood out. (i) The transition from the safe zone of sequence alignment into the twilight zone is described by an explosion of false negatives. More than 95% of all pairs detected in the twilight zone had different structures. More precisely, above a cut-off roughly corresponding to 30% sequence identity, 90% of the pairs were homologous; below 25% less than 10% were. (ii) Whether or not sequence homology implied structural identity depended crucially on the alignment length. For example, if 10 residues were similar in an alignment of length 16 (>60%), structural similarity could not be inferred. (iii) The 'more similar than identical' rule (discarding all pairs for which percentage similarity was lower than percentage identity) reduced false positives significantly. (iv) Using intermediate sequences for finding links between more distant families was almost as successful: pairs were predicted to be homologous when the respective sequence families had proteins in common. All findings are applicable to automatic database searches.
   
  +
=Referenced Paper=
= Existing visualisations =
 
   
There is an existing implementation that can be found on [http://www.ncbi.nlm.nih.gov/pmc/articles/PMC169026/ this] page.
+
There is an existing method implementation that can be found on [http://www.ncbi.nlm.nih.gov/pmc/articles/PMC169026/ this] paper.
   
  +
[[File:Hssp score formula.png | right | Formula used for the calculation of the hssp scores]]
The program accepts either a set of sequences in FASTA format or a list of identifiers from either of the following protein databases: SWISS-PROT (13), PDB (14) or TrEMBL (13). Alternatively, one of the following alignment-file formats is accepted to bypass the first step of the algorithm (see below): BLAST, PSIBLAST, pair, markx0, markx1, markx2, markx3, markx10 or srspair.
 
  +
Here PID is the number of identical residues in the BLAST alignment times 100 and divided by L. The HSSP-value reflects whether an alignment is above the HSSP-curve or below. For example if the hssp distance is 0, meaning its the original hssp curve, than the alignment is above the curve if its hssp score value is above or equal to 0 otherwise its below the curve.
  +
  +
This paper will be used as a reference to our tool implementation of the visualization.
   
It runs based on a greedy algorithm that calculates the HSSP-values.
 
   
 
= Tool's Objective =
 
= Tool's Objective =
   
Visualize the HSSP curve and allow the user to dynamically filter or categorize the data shown on the graph for better insights.
+
Visualize the HSSP curve and impose the BLAST-derived sequence alignments and allow the user to dynamically filter and export the data shown on the graph for better insights.
   
 
= Core Functionalities =
 
= Core Functionalities =
Line 33: Line 35:
 
! scope="col" width="70%" | Task !! scope="col" width="30%" | Implemented
 
! scope="col" width="70%" | Task !! scope="col" width="30%" | Implemented
 
|-
 
|-
| Import BLAST results || Yes
+
| Import BLAST results (Through file upload or getting it from a text field) || Yes
 
|-
 
|-
 
| Parse BLAST results || Yes
 
| Parse BLAST results || Yes
 
|-
 
|-
| Visualize HSSP curve || Almost Done
+
| Visualize HSSP curve || Yes
 
|-
 
|-
| Ability to filter based on a threshold || No
+
| Ability to download text files of the values below and above the curve || Yes
  +
|
  +
|-
  +
| Ability to extract the graph as an image or print it || Yes
  +
|
  +
|-
  +
| Hssp curve filters and windowing || Yes
 
|}
 
|}
 
</div>
 
</div>
Line 50: Line 58:
 
*Calculate and visualize the HSSP curve
 
*Calculate and visualize the HSSP curve
 
*Implement dynamic filtering of the curve
 
*Implement dynamic filtering of the curve
*Get feedback from biologist about possible improvements for better insights
+
*Get feedback from our mentors about possible improvements for better insights
 
*Work on changes/new features based on the feedback
 
*Work on changes/new features based on the feedback
   
 
= Status =
 
= Status =
   
  +
The tool is avaliable [http://agonlohaj.github.io/hssp_curve/ here]
==First Week==
 
  +
  +
The source code is located [https://github.com/AgonLohaj/hssp_curve/ here]
  +
  +
==First Week (20 Nov - 27 Nov 2013)==
  +
[[File:Hssp Curve 27 November.png | 300px | right | A screenshot of the tool]]
 
===What we done===
 
===What we done===
 
*Read the [http://www.ncbi.nlm.nih.gov/pmc/articles/PMC169026/ paper] and used it to make the calculations for plotting the values
 
*Read the [http://www.ncbi.nlm.nih.gov/pmc/articles/PMC169026/ paper] and used it to make the calculations for plotting the values
Line 61: Line 74:
 
*Imported the values into a structure we can use
 
*Imported the values into a structure we can use
 
*Implemented the plotting of the points
 
*Implemented the plotting of the points
*First draft of the tool with the option to put xml input and parse it and show it on the plotter (Link will be available pretty soon)
+
*First draft of the tool with the option to put xml input and parse it and show it on the plotter
   
===What we plan for the next week===
+
===What we plan to do for the next week===
*Further study the [http://www.ncbi.nlm.nih.gov/pmc/articles/PMC169026/ paper]
+
*Further study of the [http://www.ncbi.nlm.nih.gov/pmc/articles/PMC169026/ paper]
 
*Show the hssp curve over the plotted data
 
*Show the hssp curve over the plotted data
 
*Implement a drop down selection for different values of hssp curve
 
*Implement a drop down selection for different values of hssp curve
   
= People =
 
   
  +
==Second Week (27 Nov - 05 Dec 2013)==
* [mailto:bardh.lohaj@gmail.com Bardh Lohaj]
 
  +
[[File:Hssp Curve 05 Dec.png | 300px | right | A screenshot of the tool]]
  +
===What we done===
  +
*Analysed the [http://www.ncbi.nlm.nih.gov/pmc/articles/PMC169026/ paper]
  +
*Showed hssp curve over the plotted data
  +
*Implemented a range filter for windowing
  +
*Implemented the range filter for different values of hssp curve
   
  +
===What we plan to do for the next week===
  +
*Test the implementation with different blast outputs
  +
*Look for better visualizations
  +
*React based on feedback
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
== Third and Forth week (05 Dec - 18 Dec 2013) ==
  +
[[File:Hssp Curve 18 Dec.png | 300px | right | A screenshot of the tool]]
  +
===What we done===
  +
Implemented the following feedback from our mentors:
  +
* The HSSP curve should be displayed as an actual continuous line, no one made out of points
  +
* The button Show >= 100% is unnecessary. There is no more than 100% sequence identity
  +
* Label the y axis of seq. identity from 0 to 100%
  +
* No need for Filter results within the given range:
  +
* Set the maximum sequence alignment length by the maximum length you have in all your alignments. Keep it the same for all visualizations
  +
* There is still no actual filter for the HSSP _score_, which is the most important thing
  +
=== What we plan to do===
  +
Implement the following feedback:
  +
*Display the number of hssp scores under the hssp curve and the number of them above it
  +
*Seperate download of json files(and txt files) with the values below and above the curve
  +
*Show two decimal points for the hssp score
  +
*Show a hover over the line for the user to select the hssp curve
  +
*Show information on hover of the point and the hssp score
  +
*List of iterations and have a checkbox (Up for discussion) vs queries
  +
*Hide the legend and show a title
  +
*Make the entire interaction faster
  +
*Polish and make everything ready for the presentation
  +
  +
== Fifth and Sixth week (18 Dec 2013 - 08 January 2014) ==
  +
[[File:Hssp Curve 08 Jan.png | 300px | right | A screenshot of the tool]]
  +
===What we done===
  +
Implemented the feedback from the previous discussion:
  +
*Displayed the number of hssp scores under the hssp curve and the number of them above it in a pie chart
  +
*Allow the user to separately download text files with the values below and above the curve (Added a header to the file and formatted it)
  +
*Show two decimal points for the hssp score
  +
*Added the functionality to allow the user to upload a file containing the Blast alignments
  +
*Show information on hover of the point and the hssp score
  +
*List of iterations are shown in the legend and can be hidden by clicking them
  +
*Replace the iteration definition by a title (Iteration 1, 2, 3 etc)
  +
*Make the entire interaction faster
  +
*Implement a two points range selector for hssp score
  +
*Implement animations
  +
*Implemented zoom
  +
*Implemented the ability to extract the graph as a png, jpeg, pdf or print it directly
  +
*Before we showed many hssp scores based on a single hit, now we implemented it in such a way so that it displays the optimal hit derived from multiple hsp values
  +
*Polish and make everything ready for the presentation
  +
  +
  +
  +
  +
  +
  +
== After the presentation (08 Jan 2014 - 25 Jan 2014) ==
  +
=== What we plan to do ===
  +
Update the tool based on this summary of the feeback:
  +
*do not have the HSSP-curve shown in the same color as the data points
  +
*when you show the number of aligned residues, do not show digits after the comma. Because this is a natural number
  +
*in the below output file give the parameters of minimum: –90 to maximum (the value in the HSSP curve distance). Accordingly, in the above file start (minumum) with the value of the HSSP curve and maximim: 80.5
  +
*Miscalculations on the hssp score values
  +
*Document and publish the tool
  +
  +
  +
= Summary =
  +
  +
We developed this tool by iteratively. Our mentors helped a lot in understanding the requirements, improving the user interface and user interaction. Since we are computer scientists at first we didn't understand what functionalities are more important for a biologist, and that's where Tatyana's feedback was so important. Juan's feedback on user interfaces and user interaction helped us to improve the tool a lot and make it more user friendly.
  +
As a team we focused on the core functionality first and than improve the UI upon the skeleton.
  +
We were really focused on these features:
  +
*Making the tool appealing and user friendly
  +
*Having cool animation while not compromising performance
  +
*Focus on what the users of this tool will expect from it, how they will use it and whats important to them
  +
  +
The main difficulties on this project was to make the visualization really fast while incorporating these animations. When the filters where applied we were updating the curve on the fly using the data on cache. Also the text files that will be later downloaded are stored on the client side memory and are updated each time some values change. When we overcame these challenges the tool was improved a lot.
  +
  +
= Results =
  +
The most current implementation works with Blast output version BLASTP 2.2.29+.
  +
Features:
  +
*Ability to filter based on hssp scores
  +
*Ability to zoom by selecting a part of the graph
  +
*Ability to download a screenshot of the graph or print it
  +
*Ability to download all the elements that are below or above the hssp curve in .txt format (hint: check out the pie chart)
  +
*Ability to show/hide different data from the legend of the graph
  +
*Ability to define the distance from the hssp curve (0 being the original hssp curve)
  +
  +
= Team and Mentors =
  +
== Team ==
  +
* [mailto:bardh.lohaj@gmail.com Bardh Lohaj]
 
* [mailto:agon.lohaj@gmail.com Agon Lohaj]
 
* [mailto:agon.lohaj@gmail.com Agon Lohaj]
  +
== Mentors ==
  +
*Tatyana Goldberg
  +
*Juan Miguel Cejuela
   
 
= References =
 
= References =

Latest revision as of 22:11, 24 January 2015

Introduction to HSSP curve

HSSP is a derived database merging structural (3-D) and sequence (1-D) information. For each protein of known 3-D structure from the Protein Data Bank (PDB), the database has a multiple sequence alignment of all available homologues and a sequence profile characteristic of the family. The list of homologues is the result of a database search in SwissProt using a position-weighted dynamic programming method for sequence profile alignment (MaxHom). The database is updated frequently. The listed homologues are very likely to have the same 3-D structure as the PDB protein to which they have been aligned. As a result, the database is not only a database of aligned sequence families, but also a database of implied secondary and tertiary structures covering 29% of all SwissProt-stored sequences.


Different thresholds for HSSP-curve
Different thresholds for HSSP-curve


Twilight Zone

According to the paper: Sequence alignments unambiguously distinguish between protein pairs of similar and non-similar structure when the pairwise sequence identity is high (>40% for long alignments). The signal gets blurred in the twilight zone of 20-35% sequence identity. Here, more than a million sequence alignments were analysed between protein pairs of known structures to re-define a line distinguishing between true and false positives for low levels of similarity. Four results stood out. (i) The transition from the safe zone of sequence alignment into the twilight zone is described by an explosion of false negatives. More than 95% of all pairs detected in the twilight zone had different structures. More precisely, above a cut-off roughly corresponding to 30% sequence identity, 90% of the pairs were homologous; below 25% less than 10% were. (ii) Whether or not sequence homology implied structural identity depended crucially on the alignment length. For example, if 10 residues were similar in an alignment of length 16 (>60%), structural similarity could not be inferred. (iii) The 'more similar than identical' rule (discarding all pairs for which percentage similarity was lower than percentage identity) reduced false positives significantly. (iv) Using intermediate sequences for finding links between more distant families was almost as successful: pairs were predicted to be homologous when the respective sequence families had proteins in common. All findings are applicable to automatic database searches.

Referenced Paper

There is an existing method implementation that can be found on this paper.

Formula used for the calculation of the hssp scores

Here PID is the number of identical residues in the BLAST alignment times 100 and divided by L. The HSSP-value reflects whether an alignment is above the HSSP-curve or below. For example if the hssp distance is 0, meaning its the original hssp curve, than the alignment is above the curve if its hssp score value is above or equal to 0 otherwise its below the curve.

This paper will be used as a reference to our tool implementation of the visualization.


Tool's Objective

Visualize the HSSP curve and impose the BLAST-derived sequence alignments and allow the user to dynamically filter and export the data shown on the graph for better insights.

Core Functionalities

Task Implemented
Import BLAST results (Through file upload or getting it from a text field) Yes
Parse BLAST results Yes
Visualize HSSP curve Yes
Ability to download text files of the values below and above the curve Yes
Ability to extract the graph as an image or print it Yes
Hssp curve filters and windowing Yes

Roadmap

  • Understand the HSSP curve and the calculations needed to visualize it
  • Gather input (BLAST results) with which we can work on visualizing
  • Parse BLAST results input
  • Calculate and visualize the HSSP curve
  • Implement dynamic filtering of the curve
  • Get feedback from our mentors about possible improvements for better insights
  • Work on changes/new features based on the feedback

Status

The tool is avaliable here

The source code is located here

First Week (20 Nov - 27 Nov 2013)

A screenshot of the tool

What we done

  • Read the paper and used it to make the calculations for plotting the values
  • Worked with a Blast Result input as xml
  • Imported the values into a structure we can use
  • Implemented the plotting of the points
  • First draft of the tool with the option to put xml input and parse it and show it on the plotter

What we plan to do for the next week

  • Further study of the paper
  • Show the hssp curve over the plotted data
  • Implement a drop down selection for different values of hssp curve


Second Week (27 Nov - 05 Dec 2013)

A screenshot of the tool

What we done

  • Analysed the paper
  • Showed hssp curve over the plotted data
  • Implemented a range filter for windowing
  • Implemented the range filter for different values of hssp curve

What we plan to do for the next week

  • Test the implementation with different blast outputs
  • Look for better visualizations
  • React based on feedback





Third and Forth week (05 Dec - 18 Dec 2013)

A screenshot of the tool

What we done

Implemented the following feedback from our mentors:

  • The HSSP curve should be displayed as an actual continuous line, no one made out of points
  • The button Show >= 100% is unnecessary. There is no more than 100% sequence identity
  • Label the y axis of seq. identity from 0 to 100%
  • No need for Filter results within the given range:
  • Set the maximum sequence alignment length by the maximum length you have in all your alignments. Keep it the same for all visualizations
  • There is still no actual filter for the HSSP _score_, which is the most important thing

What we plan to do

Implement the following feedback:

  • Display the number of hssp scores under the hssp curve and the number of them above it
  • Seperate download of json files(and txt files) with the values below and above the curve
  • Show two decimal points for the hssp score
  • Show a hover over the line for the user to select the hssp curve
  • Show information on hover of the point and the hssp score
  • List of iterations and have a checkbox (Up for discussion) vs queries
  • Hide the legend and show a title
  • Make the entire interaction faster
  • Polish and make everything ready for the presentation

Fifth and Sixth week (18 Dec 2013 - 08 January 2014)

A screenshot of the tool

What we done

Implemented the feedback from the previous discussion:

  • Displayed the number of hssp scores under the hssp curve and the number of them above it in a pie chart
  • Allow the user to separately download text files with the values below and above the curve (Added a header to the file and formatted it)
  • Show two decimal points for the hssp score
  • Added the functionality to allow the user to upload a file containing the Blast alignments
  • Show information on hover of the point and the hssp score
  • List of iterations are shown in the legend and can be hidden by clicking them
  • Replace the iteration definition by a title (Iteration 1, 2, 3 etc)
  • Make the entire interaction faster
  • Implement a two points range selector for hssp score
  • Implement animations
  • Implemented zoom
  • Implemented the ability to extract the graph as a png, jpeg, pdf or print it directly
  • Before we showed many hssp scores based on a single hit, now we implemented it in such a way so that it displays the optimal hit derived from multiple hsp values
  • Polish and make everything ready for the presentation




After the presentation (08 Jan 2014 - 25 Jan 2014)

What we plan to do

Update the tool based on this summary of the feeback:

  • do not have the HSSP-curve shown in the same color as the data points
  • when you show the number of aligned residues, do not show digits after the comma. Because this is a natural number
  • in the below output file give the parameters of minimum: –90 to maximum (the value in the HSSP curve distance). Accordingly, in the above file start (minumum) with the value of the HSSP curve and maximim: 80.5
  • Miscalculations on the hssp score values
  • Document and publish the tool


Summary

We developed this tool by iteratively. Our mentors helped a lot in understanding the requirements, improving the user interface and user interaction. Since we are computer scientists at first we didn't understand what functionalities are more important for a biologist, and that's where Tatyana's feedback was so important. Juan's feedback on user interfaces and user interaction helped us to improve the tool a lot and make it more user friendly. As a team we focused on the core functionality first and than improve the UI upon the skeleton. We were really focused on these features:

  • Making the tool appealing and user friendly
  • Having cool animation while not compromising performance
  • Focus on what the users of this tool will expect from it, how they will use it and whats important to them

The main difficulties on this project was to make the visualization really fast while incorporating these animations. When the filters where applied we were updating the curve on the fly using the data on cache. Also the text files that will be later downloaded are stored on the client side memory and are updated each time some values change. When we overcame these challenges the tool was improved a lot.

Results

The most current implementation works with Blast output version BLASTP 2.2.29+. Features:

  • Ability to filter based on hssp scores
  • Ability to zoom by selecting a part of the graph
  • Ability to download a screenshot of the graph or print it
  • Ability to download all the elements that are below or above the hssp curve in .txt format (hint: check out the pie chart)
  • Ability to show/hide different data from the legend of the graph
  • Ability to define the distance from the hssp curve (0 being the original hssp curve)

Team and Mentors

Team

Mentors

  • Tatyana Goldberg
  • Juan Miguel Cejuela

References

http://en.wikipedia.org/wiki/Homology-derived_Secondary_Structure_of_Proteins

http://www.ncbi.nlm.nih.gov/pubmed/?term=UniqueProt%3A+creating+representative+protein+sequence+sets

http://en.wikipedia.org/wiki/Protein_superfamily

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC169026/

http://nar.oxfordjournals.org/content/24/1/201.full.pdf