Background The rapidly increasing number of completely sequenced genomes led to the establishment of the COG-database which, based on sequence homologies, assigns similar proteins from different organisms to clusters of orthologous groups (COGs). There are several bioinformatic studies that made use of this database to determine (hyper)thermophile-specific proteins by searching for COGs containing (almost) exclusively proteins from (hyper)thermophilic genomes. However, public software to perform individually definable group-specific searches is not available.
Background
The rapidly increasing number of completely sequenced genomes led to the establishment of the COG-database which, based on sequence homologies, assigns similar proteins from different organisms to clusters of orthologous groups (COGs). There are several bioinformatic studies that made use of this database to determine (hyper)thermophile-specific proteins by searching for COGs containing (almost) exclusively proteins from (hyper)thermophilic genomes. However, public software to perform individually definable group-specific searches is not available.Results The tool described here exactly fills this gap. The software is accessible at   and is linked to the COG-database. The user can freely define two groups of organisms by selecting for each of the (current) 66 organisms to belong either to groupA, to the reference groupB or to be ignored by the algorithm. Then, for all COGs a specificity index is calculated with respect to the specificity to groupA,  i. e.  high scoring COGs contain proteins from the most of groupA organisms while proteins from the most organisms assigned to groupB are absent. In addition to ranking all COGs according to the user defined specificity criteria, a graphical visualization shows the distribution of all COGs by displaying their abundance as a function of their specificity indexes.
Results
The tool described here exactly fills this gap. The software is accessible at   and is linked to the COG-database. The user can freely define two groups of organisms by selecting for each of the (current) 66 organisms to belong either to groupA, to the reference groupB or to be ignored by the algorithm. Then, for all COGs a specificity index is calculated with respect to the specificity to groupA,  i. e.  high scoring COGs contain proteins from the most of groupA organisms while proteins from the most organisms assigned to groupB are absent. In addition to ranking all COGs according to the user defined specificity criteria, a graphical visualization shows the distribution of all COGs by displaying their abundance as a function of their specificity indexes.i. e.Conclusions This software allows detecting COGs specific to a predefined group of organisms. All COGs are ranked in the order of their specificity and a graphical visualization allows recognizing (i) the presence and abundance of such COGs and (ii) the phylogenetic relationship between groupA- and groupB-organisms. The software also allows detecting putative protein-protein interactions, novel enzymes involved in only partially known biochemical pathways, and alternate enzymes originated by convergent evolution.
Conclusions
This software allows detecting COGs specific to a predefined group of organisms. All COGs are ranked in the order of their specificity and a graphical visualization allows recognizing (i) the presence and abundance of such COGs and (ii) the phylogenetic relationship between groupA- and groupB-organisms. The software also allows detecting putative protein-protein interactions, novel enzymes involved in only partially known biochemical pathways, and alternate enzymes originated by convergent evolution.

Background The COG-database has become a powerful tool in the field of comparative genomics. The construction of this data base is based on sequence homologies of proteins from different completely sequenced genomes. Highly homologous proteins are assigned to clusters of orthologous groups (COGs) [ 1 , 2 ]. Each of the COGs consists of individual proteins or groups of orthologs from at least 3 lineages and thus corresponds to a conserved domain. The COG collection currently consists of 138,458 proteins, which form 4,873 COGs and comprise 75% of the 185,505 (predicted) proteins encoded in 66 genomes of unicellular organisms [ 3 ]. In addition, the database now includes KOGs containing the clusters of seven eukaryotic genomes. The COG database is an ideal source to search for proteins specific to a certain group of organisms. Several such surveys aimed at finding (hyper)thermophile-specific proteins that made use of the COG-database are published. For instance, Forterre detected reverse gyrase as the only hyperthermophile-specific protein [ 4 ]. In addition, a survey to find specific genes important for hyperthermophily [ 5 ] and a study identifying thermophile-specific proteins [ 6 ] are published. However, those studies used rather nonflexible tools designed for other purposes [ 7 ] or software especially written and not accessible for the public. To overcome these issues, a more flexible software-tool is needed that allows defining the group of organisms individually for which specific COGs can be searched. Here we describe phylogenetic COG ranking (PCOGR), a platform independent software tool capable to rank all COGs with respect to a freely definable group of organisms versus a group of reference organisms.
Background
The COG-database has become a powerful tool in the field of comparative genomics. The construction of this data base is based on sequence homologies of proteins from different completely sequenced genomes. Highly homologous proteins are assigned to clusters of orthologous groups (COGs) [ 1 , 2 ]. Each of the COGs consists of individual proteins or groups of orthologs from at least 3 lineages and thus corresponds to a conserved domain. The COG collection currently consists of 138,458 proteins, which form 4,873 COGs and comprise 75% of the 185,505 (predicted) proteins encoded in 66 genomes of unicellular organisms [ 3 ]. In addition, the database now includes KOGs containing the clusters of seven eukaryotic genomes. The COG database is an ideal source to search for proteins specific to a certain group of organisms. Several such surveys aimed at finding (hyper)thermophile-specific proteins that made use of the COG-database are published. For instance, Forterre detected reverse gyrase as the only hyperthermophile-specific protein [ 4 ]. In addition, a survey to find specific genes important for hyperthermophily [ 5 ] and a study identifying thermophile-specific proteins [ 6 ] are published. However, those studies used rather nonflexible tools designed for other purposes [ 7 ] or software especially written and not accessible for the public. To overcome these issues, a more flexible software-tool is needed that allows defining the group of organisms individually for which specific COGs can be searched. Here we describe phylogenetic COG ranking (PCOGR), a platform independent software tool capable to rank all COGs with respect to a freely definable group of organisms versus a group of reference organisms.Implementation PCOGR is written in PHP (v.4.3.3) including the domxml (v.20020815) plugin and runs on an openBSD (v.3.4) operating system at dmz.uni-wh.de in an apache (v.1.3.28) web-server environment. In addition, at the clients-side, HTML, javascript, and CSS are used. Phylogenetic COG ranking (PCOGR) is an online-tool to analyze the microbial COG, or after clicking "Switch to PKOGR", to analyze the eukaryotic KOG database. PCOGR provides a means for determining the specificity of each COG with respect to the presence of sequences from organisms belonging to a predefined group (groupA) versus the absence of sequences from organisms belonging to a second predefined reference group (groupB). For that purpose, each of the organisms can be assigned to one of the two groups or defined to be ignored by the analysis. The software then calculates a specificity index S for every individual COG. The highest ranking COGs (large S) contain sequences from the most groupA-organisms whereas the most sequences from groupB-organisms are absent. To process S for each individual COG, the algorithm starts at S = 0, adds a constant A for each groupA-organism and subtracts a constant B for each groupB-organism being present in the COG under analysis with A = A tot /B tot  and B = B tot /A tot  where A tot  is the total number of organisms belonging to groupA and B tot  is the total number of organisms belonging to groupB. After all COGs have been processed in this way, all S-values are scaled to values between 0 and 1. Then, all COGs are output in the order of their specificity indexes S. In addition, a graphical representation shows the number of COGs as a function of their S-values in discrete intervals. The total number of intervals to be displayed can be specified by the user (default = 40 for PCOGR and 7 for PKOGR). A Javascript-mouseover info box intuitively explains all functions of the graphical user interface of PCOGR. Furthermore, additional information about both, organisms and output COGs, are available by the implementation of links to   Figure  1 ,  2 , and  3  show screenshots of the parameter input and output sections, respectively.
Implementation
PCOGR is written in PHP (v.4.3.3) including the domxml (v.20020815) plugin and runs on an openBSD (v.3.4) operating system at dmz.uni-wh.de in an apache (v.1.3.28) web-server environment. In addition, at the clients-side, HTML, javascript, and CSS are used.Phylogenetic COG ranking (PCOGR) is an online-tool to analyze the microbial COG, or after clicking "Switch to PKOGR", to analyze the eukaryotic KOG database. PCOGR provides a means for determining the specificity of each COG with respect to the presence of sequences from organisms belonging to a predefined group (groupA) versus the absence of sequences from organisms belonging to a second predefined reference group (groupB). For that purpose, each of the organisms can be assigned to one of the two groups or defined to be ignored by the analysis. The software then calculates a specificity index S for every individual COG. The highest ranking COGs (large S) contain sequences from the most groupA-organisms whereas the most sequences from groupB-organisms are absent. To process S for each individual COG, the algorithm starts at S = 0, adds a constant A for each groupA-organism and subtracts a constant B for each groupB-organism being present in the COG under analysis with A = A tot /B tot  and B = B tot /A tot  where A tot  is the total number of organisms belonging to groupA and B tot  is the total number of organisms belonging to groupB. After all COGs have been processed in this way, all S-values are scaled to values between 0 and 1. Then, all COGs are output in the order of their specificity indexes S. In addition, a graphical representation shows the number of COGs as a function of their S-values in discrete intervals. The total number of intervals to be displayed can be specified by the user (default = 40 for PCOGR and 7 for PKOGR).A Javascript-mouseover info box intuitively explains all functions of the graphical user interface of PCOGR. Furthermore, additional information about both, organisms and output COGs, are available by the implementation of links to   Figure  1 ,  2 , and  3  show screenshots of the parameter input and output sections, respectively.Results and discussion PCOGR allows detecting group-specific proteins by both ranking all COGs and graphically showing their distribution over their specificity indexes. The graphical representations can be interpreted as follows: If the two predefined groups are rather related, one expects a single peak in the middle of the graph,  i. e.  there are little or no proteins specific to one of the groups resulting in a specificity value of around 0.5 for most COGs. In contrast, if the two groups are rather distant, further maxima, either on the left, the right or on both sides become visible,  i. e.  there are group-specific proteins with S-values around 1 and/or S-values around 0. Even two single organisms can be compared by assigning the first to groupA, the second to groupB and ignoring all other organisms. For instance comparing the closely related  Escherichia coli  strains O157:H7 EDL933 and O157:H7 results in a prominent single peak in the middle of the graph whereas two further peaks on the edges become visible if two more distant organisms  e. g. Aquifex aeolicus  and  Saccharomyces cerevisiae  are compared. Distance and relationship may be interpreted either in phylogenetic or in physiologic terms. To demonstrate that physiologic relevant differences in protein distributions indeed can be detected by PCOGR, two parameter-presets are selectable: (i) a specificity ranking of hyperthermophile-specific versus non-thermophile-specific proteins as published by Makarova et al. [ 5 ] and of thermophile-specific versus non-thermophile-specific proteins as described by Klinger et al. [ 6 ]. For the ranking according to Makarova et al., optimum growth temperatures of corresponding organisms belonging to groupA are all above 80°C and all other organisms are assigned to groupB. For the specificity ranking according to Klinger et al., the optimum growth temperature needed for an organism to be assigned to groupA is above 55°C instead of 80°C. The user will notice that for the two presets, there are two additional peaks, the first corresponding to COGs containing (hyper)thermophile-specific proteins, and the second peak corresponding to COGs containing mesophile-specific proteins. A further attractive potential of PCOGR lies in the easy way to detect novel protein-protein interactions since physically interacting proteins should phylogenetically similarly be distributed [ 8 ]. Thus, if the phylogenetic pattern for a putative interacting protein target is known, a ranking with this pattern as the input will result in a ranking of potentially interacting candidates. To simplify such a procedure, the phylogenetic pattern of a certain COG defined by the user can automatically be assigned as the preset of a subsequent ranking. As an example, we performed a ranking choosing the phylogenetic pattern of COG2025 (electron transfer flavoprotein, alpha subunit). This ranking resulted in only two high-scoring outputs (specificity value S = 1): COG2025 (the target) and COG2086 (electron transfer flavoprotein, beta subunit) which is shown by x-ray crystallography to build a complex with the alpha subunit [ 9 ]. All following proteins have specificity values below 0.9 indicating the suitability of such a search for protein-protein interactions. Not only protein-protein interactions can be detected but also enzymes involved in the same biochemical pathway as a certain target enzyme [ 8 ]. This possibility may be useful to find the biochemical function of yet uncharacterized proteins given that one or more catalysts of the same pathway are already characterized. For example, a search performed with the phylogenetic pattern of COG0135 (phosphoribosylanthranilate isomerase), an enzyme involved in the biosynthesis of L-tryptophan, results in four (COG0135, COG0159, COG0547, and COG0134) of the five enzymes involved in tryptophan biosynthesis at the top four places of the ranking. The beta subunit of tryptophan synthase is the only missing enzyme also involved in this pathway. A closer look reveals that this protein is assigned to two instead of one COGs (COG0133: rank 29 and COG1350: rank 1770). The latter COG is annotated as "predicted alternative tryptophan synthase beta-subunit (paralog of TrpB)". This double assignment may explain the absence of the beta subunit of tryptophan synthase from high-scoring proteins of the ranking. Another attractive use of PCOGR can be to look for an alternative enzyme form catalyzing the same reaction but originated by non orthologous gene displacement (NOGD). Occurrence of NOGD in essential functions can be explored systematically by detecting complementary, rather than identical or similar, phylogenetic patterns [ 10 ]. A ranking performed with COG0588 (phosphoglycerate mutase 1) indeed resulted in COG3635 (predicted phosphoglycerate mutase, AP superfamily) at the seventh last rank (rank 4867 out of 4873) demonstrating that PCOGR is also well suited for such a purpose.
Results and discussion
PCOGR allows detecting group-specific proteins by both ranking all COGs and graphically showing their distribution over their specificity indexes. The graphical representations can be interpreted as follows: If the two predefined groups are rather related, one expects a single peak in the middle of the graph,  i. e.  there are little or no proteins specific to one of the groups resulting in a specificity value of around 0.5 for most COGs. In contrast, if the two groups are rather distant, further maxima, either on the left, the right or on both sides become visible,  i. e.  there are group-specific proteins with S-values around 1 and/or S-values around 0. Even two single organisms can be compared by assigning the first to groupA, the second to groupB and ignoring all other organisms. For instance comparing the closely related  Escherichia coli  strains O157:H7 EDL933 and O157:H7 results in a prominent single peak in the middle of the graph whereas two further peaks on the edges become visible if two more distant organisms  e. g. Aquifex aeolicus  and  Saccharomyces cerevisiae  are compared.i. e.i. e.Escherichia colie. g. Aquifex aeolicusSaccharomyces cerevisiaeDistance and relationship may be interpreted either in phylogenetic or in physiologic terms. To demonstrate that physiologic relevant differences in protein distributions indeed can be detected by PCOGR, two parameter-presets are selectable: (i) a specificity ranking of hyperthermophile-specific versus non-thermophile-specific proteins as published by Makarova et al. [ 5 ] and of thermophile-specific versus non-thermophile-specific proteins as described by Klinger et al. [ 6 ]. For the ranking according to Makarova et al., optimum growth temperatures of corresponding organisms belonging to groupA are all above 80°C and all other organisms are assigned to groupB. For the specificity ranking according to Klinger et al., the optimum growth temperature needed for an organism to be assigned to groupA is above 55°C instead of 80°C. The user will notice that for the two presets, there are two additional peaks, the first corresponding to COGs containing (hyper)thermophile-specific proteins, and the second peak corresponding to COGs containing mesophile-specific proteins.A further attractive potential of PCOGR lies in the easy way to detect novel protein-protein interactions since physically interacting proteins should phylogenetically similarly be distributed [ 8 ]. Thus, if the phylogenetic pattern for a putative interacting protein target is known, a ranking with this pattern as the input will result in a ranking of potentially interacting candidates. To simplify such a procedure, the phylogenetic pattern of a certain COG defined by the user can automatically be assigned as the preset of a subsequent ranking. As an example, we performed a ranking choosing the phylogenetic pattern of COG2025 (electron transfer flavoprotein, alpha subunit). This ranking resulted in only two high-scoring outputs (specificity value S = 1): COG2025 (the target) and COG2086 (electron transfer flavoprotein, beta subunit) which is shown by x-ray crystallography to build a complex with the alpha subunit [ 9 ]. All following proteins have specificity values below 0.9 indicating the suitability of such a search for protein-protein interactions.Not only protein-protein interactions can be detected but also enzymes involved in the same biochemical pathway as a certain target enzyme [ 8 ]. This possibility may be useful to find the biochemical function of yet uncharacterized proteins given that one or more catalysts of the same pathway are already characterized. For example, a search performed with the phylogenetic pattern of COG0135 (phosphoribosylanthranilate isomerase), an enzyme involved in the biosynthesis of L-tryptophan, results in four (COG0135, COG0159, COG0547, and COG0134) of the five enzymes involved in tryptophan biosynthesis at the top four places of the ranking. The beta subunit of tryptophan synthase is the only missing enzyme also involved in this pathway. A closer look reveals that this protein is assigned to two instead of one COGs (COG0133: rank 29 and COG1350: rank 1770). The latter COG is annotated as "predicted alternative tryptophan synthase beta-subunit (paralog of TrpB)". This double assignment may explain the absence of the beta subunit of tryptophan synthase from high-scoring proteins of the ranking.Another attractive use of PCOGR can be to look for an alternative enzyme form catalyzing the same reaction but originated by non orthologous gene displacement (NOGD). Occurrence of NOGD in essential functions can be explored systematically by detecting complementary, rather than identical or similar, phylogenetic patterns [ 10 ]. A ranking performed with COG0588 (phosphoglycerate mutase 1) indeed resulted in COG3635 (predicted phosphoglycerate mutase, AP superfamily) at the seventh last rank (rank 4867 out of 4873) demonstrating that PCOGR is also well suited for such a purpose.Conclusions With the online availability of PCOGR researchers can perform their own individual searches for group-specific proteins. This will not only allow a deeper insight into phylogenetic relationships of organisms or groups of organisms but also help to detect new highly group-specific proteins worth for isolation and further biochemical characterization. In addition, novel protein-protein interactions could be detected in silico, and this tool is also suitable to assign proteins of unknown function to partially known biochemical pathways. A further application lies in the search of alternate enzymes originated by convergent evolution.
Conclusions
With the online availability of PCOGR researchers can perform their own individual searches for group-specific proteins. This will not only allow a deeper insight into phylogenetic relationships of organisms or groups of organisms but also help to detect new highly group-specific proteins worth for isolation and further biochemical characterization. In addition, novel protein-protein interactions could be detected in silico, and this tool is also suitable to assign proteins of unknown function to partially known biochemical pathways. A further application lies in the search of alternate enzymes originated by convergent evolution.Availability and requirements Project name:  Phylogenetic COG ranking (PCOGR) Project home page:  Operating system(s):  Platform independent Programming language:  PHP, javascript, CSS and HTML Other requirements:  Web-browser capable to execute javascript License:  GNU General Public License Any restrictions to use by non-academics:  Contact authors
Availability and requirements
Project name:  Phylogenetic COG ranking (PCOGR)Project name:Project home page:Project home page:Operating system(s):  Platform independentOperating system(s):Programming language:  PHP, javascript, CSS and HTMLProgramming language:Other requirements:  Web-browser capable to execute javascriptOther requirements:License:  GNU General Public LicenseLicense:Any restrictions to use by non-academics:  Contact authorsAny restrictions to use by non-academics:Authors' contributions FM carried out the software development and programming work. MK conceived of the study, and participated in its design and coordination and helped to draft the manuscript. All authors read and approved the final manuscript.
Authors' contributions
FM carried out the software development and programming work. MK conceived of the study, and participated in its design and coordination and helped to draft the manuscript. All authors read and approved the final manuscript.


Background Sequence similarity searching is a powerful tool to help develop hypotheses in the quest to assign functional, structural and evolutionary information to DNA and protein sequences. As sequence databases continue to grow exponentially, it becomes increasingly important to repeat searches at frequent intervals, and similarity searches retrieve larger and larger sets of results. New and potentially significant results may be buried in a long list of previously obtained sequence hits from past searches.
Background
Sequence similarity searching is a powerful tool to help develop hypotheses in the quest to assign functional, structural and evolutionary information to DNA and protein sequences. As sequence databases continue to grow exponentially, it becomes increasingly important to repeat searches at frequent intervals, and similarity searches retrieve larger and larger sets of results. New and potentially significant results may be buried in a long list of previously obtained sequence hits from past searches.Results ReHAB (Recent Hits Acquired from BLAST) is a tool for finding new protein hits in repeated PSI-BLAST searches. ReHAB compares results from PSI-BLAST searches performed with two versions of a protein sequence database and highlights hits that are present only in the updated database. Results are presented in an easily comprehended table, or in a BLAST-like report, using colors to highlight the new hits. ReHAB is designed to handle large numbers of query sequences, such as whole genomes or sets of genomes. Advanced computer skills are not needed to use ReHAB; the graphics interface is simple to use and was designed with the bench biologist in mind.
Results
ReHAB (Recent Hits Acquired from BLAST) is a tool for finding new protein hits in repeated PSI-BLAST searches. ReHAB compares results from PSI-BLAST searches performed with two versions of a protein sequence database and highlights hits that are present only in the updated database. Results are presented in an easily comprehended table, or in a BLAST-like report, using colors to highlight the new hits. ReHAB is designed to handle large numbers of query sequences, such as whole genomes or sets of genomes. Advanced computer skills are not needed to use ReHAB; the graphics interface is simple to use and was designed with the bench biologist in mind.Conclusions This software greatly simplifies the problem of evaluating the output of large numbers of protein database searches.
Conclusions
This software greatly simplifies the problem of evaluating the output of large numbers of protein database searches.

Background Advances in technology have increased the speed and reduced the cost of DNA sequencing. This has resulted in a dramatic increase in the number of sequences contributed by both large sequencing centres and individual laboratories to sequence databases. Public biological sequence databases are growing at an ever-increasing rate, with 9 million new sequences being added to GenBank from August 2002 to August 2003 alone [ 1 ]. Currently, the GenBank database has almost 42 billion nucleotides from over 32 million sequences. The number of whole genome sequences of eukaryotes, prokaryotes and viruses is also increasing rapidly. Accordingly, tools like NCBI BLAST, which search those databases for sequences similar to a given query sequence, return larger and larger sets of results. Sequence similarity searching is a powerful tool to help develop testable hypotheses in the quest to characterize genes and other DNA sequences and infer structural, functional or evolutionary relationships. Researchers interested in identifying new matches to query sequences, which may be a few genes or even whole genomes, must search through massive amounts of alignment data to retrieve new and interesting matches. In order to keep up with the growing databases, the researcher must submit the same queries periodically. However, the new results, no matter how significant, are often buried in a long list of results that were previously obtained on past searches. ReHAB (Recent Hits Acquired from BLAST) is a new software package that was developed to address these problems. ReHAB performs PSI-BLAST [ 2 ] searches of a protein sequence database and keeps a database of all significant alignments (" hits ") obtained; these searches are performed on a regular schedule against updated versions of the sequence database. It then compares the sequences in the new PSI-BLAST result with the ReHAB  hits  database to identify new matches resulting from recently deposited sequences. The complete ReHAB  hits  database can then be queried by date using a simple GUI to allow the researcher to easily identify new  hits ; these are highlighted, and pairwise or multiple alignments can be performed to assess the quality of the match. As well as filtering out results that have been found previously, the ReHAB browser can filter out hits against sequences that are identical to the sequences being submitted as queries (such as orthologs of the query sequence). ReHAB is designed to be a practical tool for searching NCBI database updates with large numbers of query sequences. For example, our laboratory uses it with all open reading frames (ORFs) from fully sequenced poxvirus genomes (over 7000 query sequences). As the number of sequenced virus genomes continues to increase, the number of hypothetical ORFs of unknown function also expands. This is particularly true for large viruses like poxviruses, baculoviruses, and herpesviruses that possess many virulence genes that are not part of the core set of genes that define a virus family [ 3 ]. There are also numerous core genes for which no known function has yet been identified; for example, of 49 completely conserved protein families in poxviruses, there are 11 with completely unknown function and at least 5 others with only poorly defined function. Other programs have been previously created to deal with this particular issue, including DBWatcher [ 4 ], SEALS [ 5 ], Swiss-Shop [ 6 ], Sequence Alerting System [ 7 ] and BLAST Search Updater [ 8 ]. However, WWW-based programs are not well suited to searching with large numbers of query sequences, and there may be concerns with a shut-down of service (as occurred with Sequence Alerting System) or allowing proprietary data out of a secure network. Other programs may be complicated to use, or require users to directly interact with UNIX operating systems. ReHAB is specifically designed for searching with large numbers of query sequences and can support a number of research groups; it also provides a user-friendly graphical interface. The client will run on most major operating systems including Mac OS X, Windows, Linux and Solaris.
Background
Advances in technology have increased the speed and reduced the cost of DNA sequencing. This has resulted in a dramatic increase in the number of sequences contributed by both large sequencing centres and individual laboratories to sequence databases. Public biological sequence databases are growing at an ever-increasing rate, with 9 million new sequences being added to GenBank from August 2002 to August 2003 alone [ 1 ]. Currently, the GenBank database has almost 42 billion nucleotides from over 32 million sequences. The number of whole genome sequences of eukaryotes, prokaryotes and viruses is also increasing rapidly. Accordingly, tools like NCBI BLAST, which search those databases for sequences similar to a given query sequence, return larger and larger sets of results.Sequence similarity searching is a powerful tool to help develop testable hypotheses in the quest to characterize genes and other DNA sequences and infer structural, functional or evolutionary relationships. Researchers interested in identifying new matches to query sequences, which may be a few genes or even whole genomes, must search through massive amounts of alignment data to retrieve new and interesting matches. In order to keep up with the growing databases, the researcher must submit the same queries periodically. However, the new results, no matter how significant, are often buried in a long list of results that were previously obtained on past searches.ReHAB (Recent Hits Acquired from BLAST) is a new software package that was developed to address these problems. ReHAB performs PSI-BLAST [ 2 ] searches of a protein sequence database and keeps a database of all significant alignments (" hits ") obtained; these searches are performed on a regular schedule against updated versions of the sequence database. It then compares the sequences in the new PSI-BLAST result with the ReHAB  hits  database to identify new matches resulting from recently deposited sequences. The complete ReHAB  hits  database can then be queried by date using a simple GUI to allow the researcher to easily identify new  hits ; these are highlighted, and pairwise or multiple alignments can be performed to assess the quality of the match. As well as filtering out results that have been found previously, the ReHAB browser can filter out hits against sequences that are identical to the sequences being submitted as queries (such as orthologs of the query sequence).hitshitshitshitsReHAB is designed to be a practical tool for searching NCBI database updates with large numbers of query sequences. For example, our laboratory uses it with all open reading frames (ORFs) from fully sequenced poxvirus genomes (over 7000 query sequences). As the number of sequenced virus genomes continues to increase, the number of hypothetical ORFs of unknown function also expands. This is particularly true for large viruses like poxviruses, baculoviruses, and herpesviruses that possess many virulence genes that are not part of the core set of genes that define a virus family [ 3 ]. There are also numerous core genes for which no known function has yet been identified; for example, of 49 completely conserved protein families in poxviruses, there are 11 with completely unknown function and at least 5 others with only poorly defined function.Other programs have been previously created to deal with this particular issue, including DBWatcher [ 4 ], SEALS [ 5 ], Swiss-Shop [ 6 ], Sequence Alerting System [ 7 ] and BLAST Search Updater [ 8 ]. However, WWW-based programs are not well suited to searching with large numbers of query sequences, and there may be concerns with a shut-down of service (as occurred with Sequence Alerting System) or allowing proprietary data out of a secure network. Other programs may be complicated to use, or require users to directly interact with UNIX operating systems. ReHAB is specifically designed for searching with large numbers of query sequences and can support a number of research groups; it also provides a user-friendly graphical interface. The client will run on most major operating systems including Mac OS X, Windows, Linux and Solaris.Implementation Design rationale ReHAB was implemented for the Java platform to simplify the support of multiple operating systems including Linux, Microsoft Windows, Solaris, and Mac OS X. Users initially access and launch the application (client) from a web page using Java Web Start, which also automatically downloads updated versions as they become available. This ensures users are taking advantage of improvements or added features in the latest software version. Furthermore, coding in Java allows interoperability with existing applications developed in our laboratory, including Base-By-Base [ 9 ]. Our choice was reinforced by past successes with the Java platform and Java Web Start for implementation and distribution of programs such as VOCs [ 10 ], VGO [ 11 ], and Base-By-Base [ 9 ]. Components ReHAB consists of four main components (Figure  1 ): (1) a MySQL relational database that stores information about  hits , including biological sequences, alignments between them, and other categorization and annotation data; (2) a Java server that provides access to programs which cannot be run locally by the client on arbitrary user workstations, such as NCBI BLAST and EMBOSS [ 12 ] utilities; (3) a Java Swing graphical client, downloaded and launched on client machines using Java Web Start; (4) and a back-end Java program which runs alignment programs and compiles results in the database. Each of these components is described in more detail below. Although all components can be run on a single machine, it is envisioned that a single server will support a variety of users dispersed on an intranet or the Internet; if required, it is simple to offload the batch database searching to a more powerful cluster or grid system. Hits  database There are four types of information stored in the ReHAB database: (1) biological sequences and their annotations, both those used as queries in BLAST searches and those which have been returned as  hit  subjects; (2) information on each query/subject pair ( hit ), gathered from individual search results and alignment programs (including bit-score, date entered, and percent identity); (3) organizing information, such as which query sequences belong to which organisms; and (4) other caching information, used to speed performance of server-side program functions. To reduce the amount of required storage space, actual alignments are not stored, but are regenerated for presentation when the user selects the specific query sequence or query-target pair to be viewed. Query sequences, which are entered using a simple FASTA-like format that includes additional annotation information in the identifying line, need only be submitted once to ReHAB since they are stored for future search cycles. Back-end processing The work of running PSI-BLAST searches is done in batch mode by the NCBI blastpgp program against a local copy of the NCBI non-redundant (NR) protein database. PSI-BLAST is performed for three iterations without filtering procedures (such as for low-complexity regions). Hits with an E-value less than 0.001 are used to generate the scoring matrix for the subsequent cycle. To increase speed, searches with query sequences that result in no new hits are terminated after the first cycle. Those with new hits scoring below the threshold continue to the third cycle. PSI-BLAST was chosen because it is a more sensitive search method than BLASTP. The searches do not need to be performed on the same machine on which the database or server components are installed. XML output from blastpgp is parsed and relevant information about each hit is stored in the ReHAB database. In addition to scores and identifying information, target sequences are copied into the ReHAB database to ensure that they are available for analysis in the future, even if they are no longer available from NCBI. This is important because, although NCBI does not actually remove sequences from its database, it may change the identifier of a sequence if it is corrected, updated, or merged with another identical entry. Any changes to a pre-existing entry are added to the database, but it is not registered as a new hit. Server The server component consists of Java RMI classes that provide remote access to local facilities, and a loading program that registers those classes with an RMI Registry installed on the server from which the client will be downloaded. Requirement for the server is a system that can support Java 1.4.1 and MySQL 4.0. Client GUI The Java Swing client component allows a user to browse the information collected in the database by the back-end program. When the client is downloaded and launched from a website, it connects to the server and database specified in its configuration file. The client program visually presents summary information about hits added to the database, and allows the user to quickly locate new, relevant hits and the sequences involved. There are five main views available in the client: (1) The management console lists the available databases, and has options for creating new databases or adding files to existing databases, (2) The Hits Browser window lists the organisms for which query sequences have been added in the database, and allows users to select filtering and highlighting options, (3) a Hits Summary, which displays the results in a table with highlighting to mark new hits, and (4) an HTML output or (5) a Hits Manager that displays detailed information about retrieved sequences and alignments.
Implementation
Design rationale ReHAB was implemented for the Java platform to simplify the support of multiple operating systems including Linux, Microsoft Windows, Solaris, and Mac OS X. Users initially access and launch the application (client) from a web page using Java Web Start, which also automatically downloads updated versions as they become available. This ensures users are taking advantage of improvements or added features in the latest software version. Furthermore, coding in Java allows interoperability with existing applications developed in our laboratory, including Base-By-Base [ 9 ]. Our choice was reinforced by past successes with the Java platform and Java Web Start for implementation and distribution of programs such as VOCs [ 10 ], VGO [ 11 ], and Base-By-Base [ 9 ].
Design rationale
ReHAB was implemented for the Java platform to simplify the support of multiple operating systems including Linux, Microsoft Windows, Solaris, and Mac OS X. Users initially access and launch the application (client) from a web page using Java Web Start, which also automatically downloads updated versions as they become available. This ensures users are taking advantage of improvements or added features in the latest software version. Furthermore, coding in Java allows interoperability with existing applications developed in our laboratory, including Base-By-Base [ 9 ]. Our choice was reinforced by past successes with the Java platform and Java Web Start for implementation and distribution of programs such as VOCs [ 10 ], VGO [ 11 ], and Base-By-Base [ 9 ].Components ReHAB consists of four main components (Figure  1 ): (1) a MySQL relational database that stores information about  hits , including biological sequences, alignments between them, and other categorization and annotation data; (2) a Java server that provides access to programs which cannot be run locally by the client on arbitrary user workstations, such as NCBI BLAST and EMBOSS [ 12 ] utilities; (3) a Java Swing graphical client, downloaded and launched on client machines using Java Web Start; (4) and a back-end Java program which runs alignment programs and compiles results in the database. Each of these components is described in more detail below. Although all components can be run on a single machine, it is envisioned that a single server will support a variety of users dispersed on an intranet or the Internet; if required, it is simple to offload the batch database searching to a more powerful cluster or grid system.
Components
ReHAB consists of four main components (Figure  1 ): (1) a MySQL relational database that stores information about  hits , including biological sequences, alignments between them, and other categorization and annotation data; (2) a Java server that provides access to programs which cannot be run locally by the client on arbitrary user workstations, such as NCBI BLAST and EMBOSS [ 12 ] utilities; (3) a Java Swing graphical client, downloaded and launched on client machines using Java Web Start; (4) and a back-end Java program which runs alignment programs and compiles results in the database. Each of these components is described in more detail below. Although all components can be run on a single machine, it is envisioned that a single server will support a variety of users dispersed on an intranet or the Internet; if required, it is simple to offload the batch database searching to a more powerful cluster or grid system.hitsHits  database There are four types of information stored in the ReHAB database: (1) biological sequences and their annotations, both those used as queries in BLAST searches and those which have been returned as  hit  subjects; (2) information on each query/subject pair ( hit ), gathered from individual search results and alignment programs (including bit-score, date entered, and percent identity); (3) organizing information, such as which query sequences belong to which organisms; and (4) other caching information, used to speed performance of server-side program functions. To reduce the amount of required storage space, actual alignments are not stored, but are regenerated for presentation when the user selects the specific query sequence or query-target pair to be viewed. Query sequences, which are entered using a simple FASTA-like format that includes additional annotation information in the identifying line, need only be submitted once to ReHAB since they are stored for future search cycles.
Hits  database
HitsThere are four types of information stored in the ReHAB database: (1) biological sequences and their annotations, both those used as queries in BLAST searches and those which have been returned as  hit  subjects; (2) information on each query/subject pair ( hit ), gathered from individual search results and alignment programs (including bit-score, date entered, and percent identity); (3) organizing information, such as which query sequences belong to which organisms; and (4) other caching information, used to speed performance of server-side program functions. To reduce the amount of required storage space, actual alignments are not stored, but are regenerated for presentation when the user selects the specific query sequence or query-target pair to be viewed. Query sequences, which are entered using a simple FASTA-like format that includes additional annotation information in the identifying line, need only be submitted once to ReHAB since they are stored for future search cycles.hithitBack-end processing The work of running PSI-BLAST searches is done in batch mode by the NCBI blastpgp program against a local copy of the NCBI non-redundant (NR) protein database. PSI-BLAST is performed for three iterations without filtering procedures (such as for low-complexity regions). Hits with an E-value less than 0.001 are used to generate the scoring matrix for the subsequent cycle. To increase speed, searches with query sequences that result in no new hits are terminated after the first cycle. Those with new hits scoring below the threshold continue to the third cycle. PSI-BLAST was chosen because it is a more sensitive search method than BLASTP. The searches do not need to be performed on the same machine on which the database or server components are installed. XML output from blastpgp is parsed and relevant information about each hit is stored in the ReHAB database. In addition to scores and identifying information, target sequences are copied into the ReHAB database to ensure that they are available for analysis in the future, even if they are no longer available from NCBI. This is important because, although NCBI does not actually remove sequences from its database, it may change the identifier of a sequence if it is corrected, updated, or merged with another identical entry. Any changes to a pre-existing entry are added to the database, but it is not registered as a new hit.
Back-end processing
The work of running PSI-BLAST searches is done in batch mode by the NCBI blastpgp program against a local copy of the NCBI non-redundant (NR) protein database. PSI-BLAST is performed for three iterations without filtering procedures (such as for low-complexity regions). Hits with an E-value less than 0.001 are used to generate the scoring matrix for the subsequent cycle. To increase speed, searches with query sequences that result in no new hits are terminated after the first cycle. Those with new hits scoring below the threshold continue to the third cycle. PSI-BLAST was chosen because it is a more sensitive search method than BLASTP. The searches do not need to be performed on the same machine on which the database or server components are installed. XML output from blastpgp is parsed and relevant information about each hit is stored in the ReHAB database. In addition to scores and identifying information, target sequences are copied into the ReHAB database to ensure that they are available for analysis in the future, even if they are no longer available from NCBI. This is important because, although NCBI does not actually remove sequences from its database, it may change the identifier of a sequence if it is corrected, updated, or merged with another identical entry. Any changes to a pre-existing entry are added to the database, but it is not registered as a new hit.Server The server component consists of Java RMI classes that provide remote access to local facilities, and a loading program that registers those classes with an RMI Registry installed on the server from which the client will be downloaded. Requirement for the server is a system that can support Java 1.4.1 and MySQL 4.0.
Server
The server component consists of Java RMI classes that provide remote access to local facilities, and a loading program that registers those classes with an RMI Registry installed on the server from which the client will be downloaded. Requirement for the server is a system that can support Java 1.4.1 and MySQL 4.0.Client GUI The Java Swing client component allows a user to browse the information collected in the database by the back-end program. When the client is downloaded and launched from a website, it connects to the server and database specified in its configuration file. The client program visually presents summary information about hits added to the database, and allows the user to quickly locate new, relevant hits and the sequences involved. There are five main views available in the client: (1) The management console lists the available databases, and has options for creating new databases or adding files to existing databases, (2) The Hits Browser window lists the organisms for which query sequences have been added in the database, and allows users to select filtering and highlighting options, (3) a Hits Summary, which displays the results in a table with highlighting to mark new hits, and (4) an HTML output or (5) a Hits Manager that displays detailed information about retrieved sequences and alignments.
Client GUI
The Java Swing client component allows a user to browse the information collected in the database by the back-end program. When the client is downloaded and launched from a website, it connects to the server and database specified in its configuration file.The client program visually presents summary information about hits added to the database, and allows the user to quickly locate new, relevant hits and the sequences involved. There are five main views available in the client: (1) The management console lists the available databases, and has options for creating new databases or adding files to existing databases, (2) The Hits Browser window lists the organisms for which query sequences have been added in the database, and allows users to select filtering and highlighting options, (3) a Hits Summary, which displays the results in a table with highlighting to mark new hits, and (4) an HTML output or (5) a Hits Manager that displays detailed information about retrieved sequences and alignments.Results and discussion Finding new hits ReHAB is a tool that works with BLAST to identify new hits in updated versions of sequence databases. It allows the researcher to ask the question: " what new sequences match my sequences since the last time I searched?"  In the example of our work, the query sequences are all the ORFs of the fully sequenced poxvirus genomes (36 genomes, 7075 query sequences). These sequences are used to query the NR NCBI protein database and a MySQL database of all  hits  is generated and stored (Figure  2 ). Databases of  hits  for other virus families maintained by The Virus Bioinformatics Resource (TVBR; herpesviruses, baculoviruses, coronaviruses, and adenoviruses) will also be available in the near future. The  hits  database can then be accessed by double-clicking on the database name or by selecting " browse by organism " in the Action menu. This opens a new window to present browsing, sorting, and highlighting options (Figure  3 ). The user can browse by organism name, such as " Variola Virus strain Bangladesh-1975 ". To highlight recent  hits , the " date option " is chosen to define the date after which the  hits  are considered new. The available dates are those on which the query sequences were searched against a then current NR NCBI database. The output can be sorted based on three criteria (name, new hit date, or maximum new hit bit-score) by selecting the appropriate radio button. The results are presented in a new window, using colors to indicate new hits (Figure  4 ). Since all new  hits  are not necessarily significant, results are highlighted in different colors depending on the bit-score. The user can change the default threshold of the minimum bit-score, to show new  hits  scoring above this cut-off in red and new  hits  scoring below it in yellow. Since all query sequences that have new  hits  are highlighted, any that remain unhighlighted do not have new  hits . However, unhighlighted queries may have significant  hits  from previous searches. The " Latest Hit " column indicates this fact: query sequences showing  hits  only from previous searches show an older hit date, and a bit-score of "0" in the " New Hit Score " column. Unhighlighted sequences with no information in the " Latest Hit " column do not have any hits in the database or they have been filtered out (see below). Information about the  hits  can be viewed in two ways. Selecting " HTML Report " launches the user's default web browser and displays the " hit-list " in familiar BLAST-style (Figure  5a ).  Hits  are displayed in descending order of bit-score, however, a key feature of this program is that new hits are highlighted in red or yellow. The pairwise alignment can be displayed rapidly by clicking on the score (a hyperlink). In contrast to the usual BLAST output, which presents the local alignment found by BLAST, a global alignment produced by Needle [ 12 , 13 ] is shown. More information can be obtained about the target sequence by clicking on the link to the NCBI file for that entry. Alternatively, a full list of hits can be viewed in the " Hits Manager"  window (Figure  5b ). Here, sequences can be sorted by highlight, and pairwise or multiple alignments can be performed. Pairwise alignments are displayed by selecting a single target sequence and clicking the " Global " button for global alignments produced by the EMBOSS program Needle or the " Local " button for local alignments generated by the EMBOSS program Water [ 12 , 14 ]. Multiple alignments are generated by selecting more than one target sequence and clicking the " Base-By-Base " button; the software automatically retrieves the appropriate sequences from the ReHAB  hits  database, performs a ClustalW alignment and passes the resulting multiple alignment to Base-By-Base, which functions as an alignment viewer and editor [ 9 ]. Finally, sequences in the  Hits Manager  can be viewed in FASTA format by clicking the " Show " button and can be copied from this window using standard keystrokes. Filtering out identical sequences Unless a sequence has not been deposited in the public database, a sequence similarity search will return results including the query sequence itself, as well as nearly identical sequences that are orthologs of the query. ReHAB can block the highlighting of  hit  sequences that are also present in the query database when the " Don't Show My Own Sequences " option is selected; such sequences will not be shown or highlighted in the  Hits Results  window. However, these sequences and their alignments with the query can still be visualized in the  HTML Report  and  Hits Manager  windows, thus allowing the user to access all the available information. This feature becomes essential when new poxvirus genomes are added to the public database, since a large fraction of the queries will hit proteins in the new genome and signal a " new hit " report when there may be no other new hits in the database. Although these are clearly high scoring matches, they are expected and therefore must be masked in the analysis if the full value of ReHAB is to be realized. Browsing by other criteria In the  browser  window (Figure  3 ), the user can chose to browse by the annotation included in each sequence's information line. In the case of our poxvirus sequences, useful annotations are organism name and protein family (as determined in POCs [ 10 ]). Selecting an item from the " Group by Annotation " list loads the new category in the list on the left side of the window. This sorting allows the user to quickly find query sequences of particular interest. For example, one may be interested in looking at only sequences from the  Ankyrin  family. Results can then be viewed and analyzed as described above. Setting up ReHAB with user selected sequences Researchers can use ReHAB to search databases with their own set of query sequences. In the example of our research, it is most practical to organize the query sequences by organism and protein family. Other researchers, however, may find other naming schemes to be more useful; no changes to the program or database are required. For example, a research group could organize  query sequences  and the  hits results  databases by laboratory name, and browsing of results could be by the researcher's name (Figure  6 ). Individual laboratory members would add query sequences to the database including their name in the identifying information line. In this example, the  laboratory name  would replace  virus family , and  user names  would replace  organism names . All query sequences would be searched in the same batch process, and each individual could then browse their sequences of interest. Users interested in establishing their own ReHAB database should contact the authors for assistance.
Results and discussion
Finding new hits ReHAB is a tool that works with BLAST to identify new hits in updated versions of sequence databases. It allows the researcher to ask the question: " what new sequences match my sequences since the last time I searched?"  In the example of our work, the query sequences are all the ORFs of the fully sequenced poxvirus genomes (36 genomes, 7075 query sequences). These sequences are used to query the NR NCBI protein database and a MySQL database of all  hits  is generated and stored (Figure  2 ). Databases of  hits  for other virus families maintained by The Virus Bioinformatics Resource (TVBR; herpesviruses, baculoviruses, coronaviruses, and adenoviruses) will also be available in the near future. The  hits  database can then be accessed by double-clicking on the database name or by selecting " browse by organism " in the Action menu. This opens a new window to present browsing, sorting, and highlighting options (Figure  3 ). The user can browse by organism name, such as " Variola Virus strain Bangladesh-1975 ". To highlight recent  hits , the " date option " is chosen to define the date after which the  hits  are considered new. The available dates are those on which the query sequences were searched against a then current NR NCBI database. The output can be sorted based on three criteria (name, new hit date, or maximum new hit bit-score) by selecting the appropriate radio button. The results are presented in a new window, using colors to indicate new hits (Figure  4 ). Since all new  hits  are not necessarily significant, results are highlighted in different colors depending on the bit-score. The user can change the default threshold of the minimum bit-score, to show new  hits  scoring above this cut-off in red and new  hits  scoring below it in yellow. Since all query sequences that have new  hits  are highlighted, any that remain unhighlighted do not have new  hits . However, unhighlighted queries may have significant  hits  from previous searches. The " Latest Hit " column indicates this fact: query sequences showing  hits  only from previous searches show an older hit date, and a bit-score of "0" in the " New Hit Score " column. Unhighlighted sequences with no information in the " Latest Hit " column do not have any hits in the database or they have been filtered out (see below). Information about the  hits  can be viewed in two ways. Selecting " HTML Report " launches the user's default web browser and displays the " hit-list " in familiar BLAST-style (Figure  5a ).  Hits  are displayed in descending order of bit-score, however, a key feature of this program is that new hits are highlighted in red or yellow. The pairwise alignment can be displayed rapidly by clicking on the score (a hyperlink). In contrast to the usual BLAST output, which presents the local alignment found by BLAST, a global alignment produced by Needle [ 12 , 13 ] is shown. More information can be obtained about the target sequence by clicking on the link to the NCBI file for that entry. Alternatively, a full list of hits can be viewed in the " Hits Manager"  window (Figure  5b ). Here, sequences can be sorted by highlight, and pairwise or multiple alignments can be performed. Pairwise alignments are displayed by selecting a single target sequence and clicking the " Global " button for global alignments produced by the EMBOSS program Needle or the " Local " button for local alignments generated by the EMBOSS program Water [ 12 , 14 ]. Multiple alignments are generated by selecting more than one target sequence and clicking the " Base-By-Base " button; the software automatically retrieves the appropriate sequences from the ReHAB  hits  database, performs a ClustalW alignment and passes the resulting multiple alignment to Base-By-Base, which functions as an alignment viewer and editor [ 9 ]. Finally, sequences in the  Hits Manager  can be viewed in FASTA format by clicking the " Show " button and can be copied from this window using standard keystrokes.
Finding new hits
ReHAB is a tool that works with BLAST to identify new hits in updated versions of sequence databases. It allows the researcher to ask the question: " what new sequences match my sequences since the last time I searched?"  In the example of our work, the query sequences are all the ORFs of the fully sequenced poxvirus genomes (36 genomes, 7075 query sequences). These sequences are used to query the NR NCBI protein database and a MySQL database of all  hits  is generated and stored (Figure  2 ). Databases of  hits  for other virus families maintained by The Virus Bioinformatics Resource (TVBR; herpesviruses, baculoviruses, coronaviruses, and adenoviruses) will also be available in the near future. The  hits  database can then be accessed by double-clicking on the database name or by selecting " browse by organism " in the Action menu. This opens a new window to present browsing, sorting, and highlighting options (Figure  3 ). The user can browse by organism name, such as " Variola Virus strain Bangladesh-1975 ". To highlight recent  hits , the " date option " is chosen to define the date after which the  hits  are considered new. The available dates are those on which the query sequences were searched against a then current NR NCBI database. The output can be sorted based on three criteria (name, new hit date, or maximum new hit bit-score) by selecting the appropriate radio button. The results are presented in a new window, using colors to indicate new hits (Figure  4 ).what new sequences match my sequences since the last time I searched?"hitshitshitsbrowse by organismVariola Virus strain Bangladesh-1975hitsdate optionhitsSince all new  hits  are not necessarily significant, results are highlighted in different colors depending on the bit-score. The user can change the default threshold of the minimum bit-score, to show new  hits  scoring above this cut-off in red and new  hits  scoring below it in yellow. Since all query sequences that have new  hits  are highlighted, any that remain unhighlighted do not have new  hits . However, unhighlighted queries may have significant  hits  from previous searches. The " Latest Hit " column indicates this fact: query sequences showing  hits  only from previous searches show an older hit date, and a bit-score of "0" in the " New Hit Score " column. Unhighlighted sequences with no information in the " Latest Hit " column do not have any hits in the database or they have been filtered out (see below).hitshitshitshitshitshitsLatest HithitsNew Hit ScoreLatest HitInformation about the  hits  can be viewed in two ways. Selecting " HTML Report " launches the user's default web browser and displays the " hit-list " in familiar BLAST-style (Figure  5a ).  Hits  are displayed in descending order of bit-score, however, a key feature of this program is that new hits are highlighted in red or yellow. The pairwise alignment can be displayed rapidly by clicking on the score (a hyperlink). In contrast to the usual BLAST output, which presents the local alignment found by BLAST, a global alignment produced by Needle [ 12 , 13 ] is shown. More information can be obtained about the target sequence by clicking on the link to the NCBI file for that entry. Alternatively, a full list of hits can be viewed in the " Hits Manager"  window (Figure  5b ). Here, sequences can be sorted by highlight, and pairwise or multiple alignments can be performed. Pairwise alignments are displayed by selecting a single target sequence and clicking the " Global " button for global alignments produced by the EMBOSS program Needle or the " Local " button for local alignments generated by the EMBOSS program Water [ 12 , 14 ]. Multiple alignments are generated by selecting more than one target sequence and clicking the " Base-By-Base " button; the software automatically retrieves the appropriate sequences from the ReHAB  hits  database, performs a ClustalW alignment and passes the resulting multiple alignment to Base-By-Base, which functions as an alignment viewer and editor [ 9 ]. Finally, sequences in the  Hits Manager  can be viewed in FASTA format by clicking the " Show " button and can be copied from this window using standard keystrokes.hitsHTML Reporthit-listHitsHits Manager"GlobalLocalBase-By-BasehitsHits ManagerShowFiltering out identical sequences Unless a sequence has not been deposited in the public database, a sequence similarity search will return results including the query sequence itself, as well as nearly identical sequences that are orthologs of the query. ReHAB can block the highlighting of  hit  sequences that are also present in the query database when the " Don't Show My Own Sequences " option is selected; such sequences will not be shown or highlighted in the  Hits Results  window. However, these sequences and their alignments with the query can still be visualized in the  HTML Report  and  Hits Manager  windows, thus allowing the user to access all the available information. This feature becomes essential when new poxvirus genomes are added to the public database, since a large fraction of the queries will hit proteins in the new genome and signal a " new hit " report when there may be no other new hits in the database. Although these are clearly high scoring matches, they are expected and therefore must be masked in the analysis if the full value of ReHAB is to be realized.
Filtering out identical sequences
Unless a sequence has not been deposited in the public database, a sequence similarity search will return results including the query sequence itself, as well as nearly identical sequences that are orthologs of the query. ReHAB can block the highlighting of  hit  sequences that are also present in the query database when the " Don't Show My Own Sequences " option is selected; such sequences will not be shown or highlighted in the  Hits Results  window. However, these sequences and their alignments with the query can still be visualized in the  HTML Report  and  Hits Manager  windows, thus allowing the user to access all the available information. This feature becomes essential when new poxvirus genomes are added to the public database, since a large fraction of the queries will hit proteins in the new genome and signal a " new hit " report when there may be no other new hits in the database. Although these are clearly high scoring matches, they are expected and therefore must be masked in the analysis if the full value of ReHAB is to be realized.hitDon't Show My Own SequencesHits ResultsHTML ReportHits Managernew hitBrowsing by other criteria In the  browser  window (Figure  3 ), the user can chose to browse by the annotation included in each sequence's information line. In the case of our poxvirus sequences, useful annotations are organism name and protein family (as determined in POCs [ 10 ]). Selecting an item from the " Group by Annotation " list loads the new category in the list on the left side of the window. This sorting allows the user to quickly find query sequences of particular interest. For example, one may be interested in looking at only sequences from the  Ankyrin  family. Results can then be viewed and analyzed as described above.
Browsing by other criteria
In the  browser  window (Figure  3 ), the user can chose to browse by the annotation included in each sequence's information line. In the case of our poxvirus sequences, useful annotations are organism name and protein family (as determined in POCs [ 10 ]). Selecting an item from the " Group by Annotation " list loads the new category in the list on the left side of the window. This sorting allows the user to quickly find query sequences of particular interest. For example, one may be interested in looking at only sequences from the  Ankyrin  family. Results can then be viewed and analyzed as described above.browserGroup by AnnotationAnkyrinSetting up ReHAB with user selected sequences Researchers can use ReHAB to search databases with their own set of query sequences. In the example of our research, it is most practical to organize the query sequences by organism and protein family. Other researchers, however, may find other naming schemes to be more useful; no changes to the program or database are required. For example, a research group could organize  query sequences  and the  hits results  databases by laboratory name, and browsing of results could be by the researcher's name (Figure  6 ). Individual laboratory members would add query sequences to the database including their name in the identifying information line. In this example, the  laboratory name  would replace  virus family , and  user names  would replace  organism names . All query sequences would be searched in the same batch process, and each individual could then browse their sequences of interest. Users interested in establishing their own ReHAB database should contact the authors for assistance.
Setting up ReHAB with user selected sequences
Researchers can use ReHAB to search databases with their own set of query sequences. In the example of our research, it is most practical to organize the query sequences by organism and protein family. Other researchers, however, may find other naming schemes to be more useful; no changes to the program or database are required. For example, a research group could organize  query sequences  and the  hits results  databases by laboratory name, and browsing of results could be by the researcher's name (Figure  6 ). Individual laboratory members would add query sequences to the database including their name in the identifying information line. In this example, the  laboratory name  would replace  virus family , and  user names  would replace  organism names . All query sequences would be searched in the same batch process, and each individual could then browse their sequences of interest. Users interested in establishing their own ReHAB database should contact the authors for assistance.query sequenceshits resultslaboratory namevirus familyuser namesorganism namesConclusions The goal of this project was to build a software package to aid in the identification of new results returned from sequence similarity searches. To this end, we developed ReHAB, a tool that highlights new  hits  by comparing results from previously run searches to those with a recently updated database. ReHAB allows researchers to query the NR protein database with large numbers of sequences and can highlight, sort, and analyze results in a user-friendly graphical interface. It can also be used to rapidly create multiple alignments with any set of sequences returned by a BLAST search. This enables researchers to recognize new significant sequence matches in the mass of results generated by high throughput database search protocols.
Conclusions
The goal of this project was to build a software package to aid in the identification of new results returned from sequence similarity searches. To this end, we developed ReHAB, a tool that highlights new  hits  by comparing results from previously run searches to those with a recently updated database. ReHAB allows researchers to query the NR protein database with large numbers of sequences and can highlight, sort, and analyze results in a user-friendly graphical interface. It can also be used to rapidly create multiple alignments with any set of sequences returned by a BLAST search. This enables researchers to recognize new significant sequence matches in the mass of results generated by high throughput database search protocols.hitsAvailability and requirements Project name:  ReHAB Project home page:  Operating systems:  All platforms supporting Sun's JRE version 1.4.1 or compatible Programming languages:  Java, SQL Other requirements:  Java 1.4 or higher License:  GNU General Public License Restrictions for non-academic use:  Contact corresponding Author
Availability and requirements
Project name:  ReHABProject name:Project home page:Project home page:Operating systems:  All platforms supporting Sun's JRE version 1.4.1 or compatibleOperating systems:Programming languages:  Java, SQLProgramming languages:Other requirements:  Java 1.4 or higherOther requirements:License:  GNU General Public LicenseLicense:Restrictions for non-academic use:  Contact corresponding AuthorRestrictions for non-academic use:Authors' contributions CU described and specified the features of and problems to be solved by ReHAB, tested the program and provided usage examples. JW implemented the software, both the Java components and the database schemata used to store alignment results. DJE tested the program and provided usage examples. All authors contributed to writing of the manuscript.
Authors' contributions
CU described and specified the features of and problems to be solved by ReHAB, tested the program and provided usage examples. JW implemented the software, both the Java components and the database schemata used to store alignment results. DJE tested the program and provided usage examples. All authors contributed to writing of the manuscript.