A method for finding protein folds consistent with secondary structure assignments and imposed experimental restraints is described. All possible matches between the query pattern and every member of a database of protein structural domains are generated by a comparison of secondary structure assignments. The comparison allows for errors in predicted secondary structure elements and possible variations between query and database structure. Several filters remove matches that are un-compact, that have poor beta/ sheet bonding, that do not allow loop/turn lengths to bridge the distance between connected secondary structures, or that fail to satisfy imposed experimental restraints (e.g. disulphide bonds). The remaining matches provide a set of plausible topologies for a protein of unknown structure, which can be inspected visually or tested by experiment. A search using the src homology 2 domain prediction finds 13 possible topologies, one being a domain from the E. coli bio protein known to adopt an SH2 fold. The use and development of the method are discussed.