A polynomial-time algorithm for the matching of crossing contact-map patterns
Contact maps are a model to capture the core information in the structure of biological molecules, e.g., proteins. A contact map consists of an ordered set S of elements (representing a protein's sequence of amino acids), and a set A of element pairs of S, called arcs (representing amino acids which are closely neighbored in the structure). Given two contact maps (S,A) and (S, A,) with vertical bar A vertical bar >= vertical bar A(p)vertical bar, the CONTACT MAP PATTERN MATCHING (CMPM) problem asks whether the "pattern" (S(p), A(p),) "occurs" in (S, A), i.e., informally stated, whether there is a subset of vertical bar A(p)vertical bar arcs in A whose arc structure coincides with A, CMPM captures the biological question of finding structural motifs in protein structures. In general, CMPM is NP-hard. In this paper, we show that CMPM is solvable in O(vertical bar A vertical bar(6)vertical bar A(p)vertical bar(2)) time when the pattern is { <, ()}-structured, i.e., when each two arcs in the pattern are disjoint or crossing. Our algorithm extends to other closely related models. In particular, it answers an open question raised by Vialette that, rephrased in terms of contact maps, asked whether CMPM for {<,()}-structured patterns is NP-hard or solvable in polynomial time. Our result stands in sharp contrast to the NP-hardness of closely related problems. We provide experimental results which show that contact maps derived from real protein structures can be processed efficiently.
pattern matching algorithm design and analysis biology and genetics