W528 Nucleic Acids Research, 2009, Vol. 37, Web Server issue Figure 1. (A) Interaction types used to deﬁne a query matrix. Yellow arrows and blue cylinders denote b-strands and a-helices, respectively. Smaller arrow inside each cylinder indicates the direction of a helix. Solid line between two strands shows H-bonding. Dashed line between SSEs means interaction other than H-bonding. ‘c’ and ‘t’ refer to the presence of interaction between hydrogen-bonded parallel and antiparallel b-strands, respectively. ‘u’ and ‘v’ mean there is an interaction between parallel helix-helix or helix-strand pair and the angle between the pair is 0 ’ < 858 and 958 ’ < 1808, respectively. ‘C’ is a union of {c, u}, i.e. interaction present whether through H-bond or not, but the angle between elements is 0 ’ < 858. ‘T’ is a union of {t, v}, i.e. interaction present whether through H-bonds or not, but the angle between elements is 95 ’ < 1808. ‘ ’ is used to indicate the absence of any interaction. ‘N’ means that there is an interaction between two SSEs, but the angle between them is 858 ’ < 958. ‘X’ means any relationship, i.e. interaction present or absent: a union of {C,T,N, }. ‘x’ means any interaction, i.e. a union {C,T,N}. (B) Ferredoxin- like fold diagram. Ferredoxin fold is an a + b t-lawoyer sandwich with the secondary structure order babbab. Four strands form an antiparallel b-sheet, which is covered by two a-helices on one side. (C) Query meta-matrix for the ferredoxin-like fold pattern. the query, all feasible forward sequences of length m are enumerated subject to pruning. The options speciﬁed in query, such as SSE type, SSE length, sheet information, interactions, chain information (default setting is search pattern within a chain), are enforced on the partial sequences to prune out infeasible ones. The partial sequence is increased by one and the current searching pointer is moved to the newly joined member. For exam- ple, starting from the ﬁrst SSE in query, we ﬁnd two par- tial sequence (#2, #3) and (#3, #5) in structure match the ﬁrst two SSEs in query, then the path ﬁnding is continued on #3 and #5 to ﬁnd the matches of the third SSE in query. For all successfully enumerated sequences of length m, the chiralities speciﬁed in the query are enforced to eliminate the ones that do not conform. The sequences that remain are real hits; they are listed and are mapped to SCOP database on all SCOP hierarchy levels (class, fold, superfamily, family and domain). Moreover, ProSMoS provides PyMOL (http://pymol.sourceforge.net/) script ﬁles to visualize the results on the ﬂy. Being a structure pattern search program, ProSMoS is not aimed at detecting homologs by structure similarity. All the found hits contain the user-deﬁned structure pat- tern as exact matches, while all other proteins do not contain submatrix matching the query. Thus the results of ProSMoS are deterministic and binary: either a struc- ture contains the pattern or it does not. However, ranking of hits is always beneﬁcial for the users in order to focus on the most relevant results. Therefore, we developed a new but simple score function to rank hits. Our structure analysis experience indicates that motifs perceived as ‘good’ by experts are compact, with regular and closely interacting SSEs, and SSE lengths are being close to their average values found in proteins. Hence, the scoring func- tion is based on the distance and overlap between SSE pairs and SSE lengths, a total of three components. Distance score (D). First, we plotted the distance between SSE pairs for all proteins of PDB database and found that the average closest distance between adjacent b-strands is 4.5 A˚ for parallel b-strands and 4.2 A˚ for antiparallel b-strands, and the reasonable distance between neighbor- ing b-strand–helix or helix–helix pair is 7.3 A˚ for parallel SSEs and 7 A˚ for antiparallel SSEs. Those values are set as the ‘ideal’ distance between SSE pair. Second, we calculate the distance of each pair of SSE in motif hits if corre- sponding interaction has been speciﬁed in query matrix. Third, we sum over the squares of the diﬀerences between