HSSP curve

From Protein Prediction 2 Winter Semester 2014
Revision as of 16:01, 1 January 2015 by Ppwikiuser (talk | contribs) (Forth week)

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.

Existing visualisations

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

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.

It runs based on a greedy algorithm that calculates the HSSP-values.

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.

Core Functionalities

Task Implemented
Import BLAST results Yes
Parse BLAST results Yes
Visualize HSSP curve Need improved visualization
Ability to filter based on a threshold Yes


  • 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 biologist about possible improvements for better insights
  • Work on changes/new features based on the feedback


The tool is avaliable here

The source code is located here

First Week

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 and Third Week

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

Forth week

What we done

Implemented the following feedback from Juan:

  • 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

Implements 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