prosite , initially a  signature or pattern database , was created in 1988 by amos bairoch . it was first distributed through pc / gene , the sequence analysis software suite he was developing at the time . the first release of prosite was made available in pc / gene in march 1988 and contained 58 patterns . each pattern was accompanied by an abstract that described the corresponding protein family or domain ( 1 ) . prosite was developed in parallel with swiss - prot and both databases benefited from each other . many patterns were identified by annotating protein families in swiss - prot ( often before any description in the literature ) . prosite generated an immediate interest and it then grew regularly to reach 1000 entries 6 years later . such regions are typically enzyme catalytic sites , prosthetic group - attachment sites ( haem , pyridoxal phosphate , biotin , etc . ) , metal ion - binding amino acids , cysteines involved in disulfide bonds or regions involved in binding a molecule . but this syntax is very sensitive to any sequence  exception , whether due to a bona fide divergence or to a sequencing error . patterns are thus not adapted to identify less - conserved regions or whole domains . in 1994 , all profile methods are more or less statistical descriptions of the consensus of a multiple sequence alignment . they use position - specific scores for amino acids and position - specific penalties for opening and extending an insertion or deletion . generalized profiles , compared to previous profiles ( 3 ) , use a more rigorous syntax for insertion , deletion and match states . generalized profile scores can be mapped to hmm parameters used by hmmer ( 4 ) . it is thus possible to convert an hmm profile into a  generalized profile format and several prosite profiles are in fact hmm profiles that were converted with the pftools program htop ( 5 ) . , prosite has provided extensive documentation and detailed annotation of domains , families and functional sites . this information was mainly stored in free text and used by biologists who read the various documents and made their own decisions on the function of their protein according to the prosite matches . but with the rapid growth of sequence databases during the last 10 years , there was an increasing need for a reliable tool that could generate automatically precise and accurate functional annotation in standard format . in 2005 , we decided to group some functional information stored in prosite in a database of rules that can easily be read by a program and applied on proteins that are recognized by prosite profiles ( 6 ) . the main characteristic of prorule is that it generates conditional annotation : the annotation is dependent on the presence of given amino acids at precise positions , on the occurrence of other domains or on taxonomic specificity . for example , an enzymatic active site is annotated only if the correct amino acid is found at the required position ( for an example of prorule , see figure 1 ) . as prorule uses prosite profiles that are mainly directed against protein domains , it is well adapted to annotate modular proteins . the swiss - prot group has also developed a complementary database of rules ( hamap ) , which uses the same format of rules but which is specific for well - conserved bacterial protein families ( 7 ) . niceview format from the prosite web page showing the different types of annotation that can be generated by prorule . the rule pru00298 is used to annotate proteins matched by the animal peroxidase profile ( ps50292 ) on the scanprosite web page . it can annotate comment lines , kw , go terms and various ft lines . in this rule , catalytic activity is generated only if the condition ftgroup(2 ) is fulfilled ( a h in the sequence must align with position 96 of the profile and a r with position 235 ) . to column in the features tables correspond to specific columns in the profile ( for more details on the prorule format see : ftp://ftp.expasy.org/databases/prosite/unirule.pdf ) . niceview format from the prosite web page showing the different types of annotation that can be generated by prorule . the rule pru00298 is used to annotate proteins matched by the animal peroxidase profile ( ps50292 ) on the scanprosite web page . it can annotate comment lines , kw , go terms and various ft lines . in this rule , catalytic activity is generated only if the condition ftgroup(2 ) is fulfilled ( a h in the sequence must align with position 96 of the profile and a r with position 235 ) . to column in the features tables correspond to specific columns in the profile ( for more details on the prorule format see : ftp://ftp.expasy.org/databases/prosite/unirule.pdf ) . a pattern or regular expression is a qualitative descriptor : it either matches or it does not . it does not produce a score that can help to estimate the significance of a match . there are currently various quantitative methods producing scores that are more efficient than regular expressions ( 8) , but patterns are still very popular because of their intelligibility for users , and because , when used to scan protein databases , they are not cpu expensive compared to quantitative methods . we thus still maintain patterns , but to make them more accurate , we have developed a new method to estimate the significance of their matches . a profile has been constructed and associated to each pattern and used to assign a status to pattern matches . when a pattern matches a protein , the corresponding profile is run on this protein and , if it is also identified by the profile , the match is tagged as true positive , otherwise the status is unknown . the advantage of this approach is that it does not influence the rapidity of the search algorithm and it keeps the user - friendly format of patterns . for each pattern , prosite maintains a manually curated match - list , in which a status is assigned to each pattern match on uniprotkb / swiss - prot entries . the status can be true positive ( tp ) , unknown ( ? ) , false positive ( fp ) , false negative ( fn ) or potential ( p ) . for each pattern , we have extracted the sequence of each tp match . as the efficiency of a motif descriptor is partly dependent on the size of the sequences in the seed alignment ( 9 ) , we have increased the length of each tp matched fragment . the average size of prosite patterns is 20 amino acids , and we noticed that it is difficult to construct good profiles smaller than 50 amino acids . we also did not want to increase too much the size of the profile as the scanning time of a profile is proportional to its size . starting with multiple sequence alignments of an average size of 60 amino acids is thus a good compromise . the sequences were then aligned with t - coffee ( 10 ) , the alignment was used to construct a profile for each pattern ( hereafter miniprofile ) and the miniprofile was then calibrated on a randomized protein database . if a prosite profile was already associated with a pattern and was of better quality than the automatically generated one , we used the prosite profile to assign the status . each automatically generated miniprofile was then tested on the corresponding pattern match - list and the cutoff calculated to recover all tp and no fp , and the maximum of fn . when a miniprofile did not recover all tp it was reconstructed with different profile construction parameters or different multiple sequence alignment programs ( clustalw and probcons ) ( 11,12 ) . when it was not possible to recover all tp , the cutoff was set just above the highest fp . the rule is that none of the miniprofile should recover uniprotkb / swiss - prot proteins tagged as fp with the corresponding pattern and indeed 95% of the profiles recover 100% of the tp and only 65 profiles do not recover all tp . since a miniprofile is always run on a subset of the database ( proteins matched by the pattern ) the e - value is always very low ( < 0.001 ) . even though miniprofiles were not designed to be scanned alone , and must be run on proteins matched by a pattern , 80% of the miniprofiles produce only matches with e - value bellow 0.01 ( n_score = 9 ) on uniprotkb . this subset of miniprofiles is thus safe enough to be run alone on a database of proteins . in our search algorithm , miniprofiles are run only on proteins matched by patterns , and this procedure does not drastically impact the calculation time . it takes about 10 min on 1 cpu ( pentium 4 , 3.4 ghz ) to run all the prosite patterns on the whole escherichia coli proteome ( 4339 protein sequences ) . it is also possible to download the different tools to use it locally from the prosite ftp site ( ftp://ftp.expasy.org/databases/prosite/tools/ ) . the sensitivity and specificity of descriptors can be enhanced by taking into account some contextual information , such as the co - occurrence of other domains , the position of a match in a protein , the taxonomic distribution , etc . such information can be used to promote some weak matches or to demote some irrelevant strong matches . prosite profiles normally use two cutoff levels , a reliable cutoff ( level = 0 ) and a low confidence cutoff ( level = 1 ) . the low - level cutoff covers the twilight zone where few true positives that can not be separated from false positives , might be present . by default , only matches higher than the reliable cutoff are shown . we have added a post - processing step in our scanning procedure , which allows the display of weak matches or the masking of strong ones according to the occurrence of other specific features in the protein . the required features for the post - processing step are stored in a new line type in the profile ( pp ) . we have defined three types of post - processing : 
 when at least two matches overlap , only the one that has the highest score is reported . this is mainly used when two or more families are very closely related , like the different types of hth dna - binding domains , or when it makes sense to define subfamilies of a larger protein family ; for example the abc transporter family was subdivided into subfamilies to predict the type of transported substrate . the format is : pp /competes_hit_with : ps - accession;a weak match is promoted by the presence of another prosite profile in the protein . this may happen , for example , when two domains are known to be frequently associated , like for example the atp - binding helicase domain ( ps51192 ) and the c - terminal helicase domain ( ps51194 ) . the format is : pp /promoted_by : ps - accession;a strong match is demoted by the presence of another domain in the protein . the format is : pp /demoted_by : ps - accession ; when at least two matches overlap , only the one that has the highest score is reported . this is mainly used when two or more families are very closely related , like the different types of hth dna - binding domains , or when it makes sense to define subfamilies of a larger protein family ; for example the abc transporter family was subdivided into subfamilies to predict the type of transported substrate . the format is : pp /competes_hit_with : ps - accession ; a weak match is promoted by the presence of another prosite profile in the protein . this may happen , for example , when two domains are known to be frequently associated , like for example the atp - binding helicase domain ( ps51192 ) and the c - terminal helicase domain ( ps51194 ) . the format is : pp /promoted_by : ps - accession ; a strong match is demoted by the presence of another domain in the protein . the format is : pp /demoted_by : ps - accession ; in a given entry , different pp line types can be combined . prosite can now be browsed by taxonomic scope , by prorule description , by the number of positive hits or by matched proteins . we have reorganized the data presentation , which are now grouped into five different sections (  scanprosite , prorule , documents , downloads and links ) besides the home page . a new prorule section has been created , which allows the visualization of the different rules that are used to generate annotation on the the ftp site has also been reorganized , and new files can now be downloaded . as we have introduced prosite version numbers for each pattern / profile entries , we now distribute the old versions of prosite to allow the recovery of previous versions of entries . we also distribute a file that contains all the multiple sequence alignments of matched regions by patterns and profiles on uniprotkb / swiss - prot database . we have made available to prosite users our tool that generates domain images to represent protein architectures . for a given protein , the user can enter in a web form the size of the protein , the positions of the domains , their names and , for each domain , the colour and the shape of the wanted image . the web form returns an image in portable network graphics ( png ) format that can be integrated into any publication ( figure 2 ) . the tool is accessible at the following address : http://www.expasy.org / tools / mydomains/. 
 figure 2.the web form and the output of the prosite a very simple syntax allows the user to define the shape , colour , size and name of one or several domains . a very simple syntax allows the user to define the shape , colour , size and name of one or several domains . the scanprosite tool can be accessed programmatically through a simple web http service where the naked data ( without any message exchange envelope ) is retrieved directly as the content of an http query response (  low rest service ) . when a client sends an http get or post query to the service ; the response content will contain the results in xml or in the lightweight data - interchange format json ( javascript object notation ) . for details see http://www.expasy.org/tools/scanprosite/scanprositerest.html . note : to avoid timeout problems with long jobs , we will soon introduce a queuing system . it is also possible to access prosite entries in raw text / plain format using the following url : http://www.expasy.org/cgi-bin/get-prosite-raw.pl?pdoc-accession or prosite alignments : http://www.expasy.org/cgi-bin/aligner?psa=ps-accession .
prosite consists of documentation entries describing protein domains , families and functional sites , as well as associated patterns and profiles to identify them . 
 it is complemented by prorule , a collection of rules based on profiles and patterns , which increases the discriminatory power of profiles and patterns by providing additional information about functionally and/or structurally critical amino acids . in this article 
 , we describe the implementation of a new method to assign a status to pattern matches , the new prosite web page and a new approach to improve the specificity and sensitivity of prosite methods . the latest version of prosite ( release 20.19 of 11 september 2007 ) contains 1319 patterns , 745 profiles and 764 prorules . over the past 2 years , about 200 domains have been added , and now 53% of uniprotkb / swiss - prot entries ( release 54.2 of 11 
 september 2007 ) have a prosite match . 
 prosite is available on the web at : http://www.expasy.org / prosite/.