module Matcher: sig end
Contains the definitions for the objects which are used to find
binding regions on ligands.
type matcher = {
|
stringform : string; |
|
compiledform : Str.regexp; |
}
A simple regular expression. We keep the original string
alongside for easier debugging. Matchers are used as the markers
on the projections of processing units which bind to ligands.
val make : string -> matcher
Quick shortcut to create a matcher object.
val stringform : matcher -> string
Extract the string out from a matcher.
val matcher_compare : matcher -> matcher -> bool
Use matcher_compare m1 m2 to decide whether two matchers are
equal.
val allmatches : matcher -> Ligand.t -> Ligand.interval list
allmatches m l returns a list of intervals where matcher
m
matches ligand
l. A match necessarily has strictly positive
length, unless the match is for the very beginning or the very end
of the ligand.
Util.all_matches
val verify_match_interval : matcher -> Ligand.t -> Ligand.interval -> bool
verify_match_interval m l i verifies whether matcher m
matches ligand l at interval i - in other words, whether
interval i appears in allmatches m l.
val matcher_concat : matcher list -> matcher
matcher_concat l returns a new matcher which corresponds to
the concatenation of all the matchers in the list l.
type string_permuter
This type is used by the functions make_string_permuter and
permute_strings below to modify strings by exchanging fragments
between them.
val make_string_permuter : matcher array ->
(int array * int array) * (int array * int array) ->
string_permuter
... FIXME: raise Invalid_argument if the permutations are not
valid.
val permute_strings : string_permuter -> string * string -> string * string
Will raise Not_found if the strings don't match the
permuter.
type snippet = string * matcher
A pair consisting of a string and a regular expression.
Snippets are used as the markers on the projections of processing
units which bind to other processing units. See
Swarm.EXPOSURE. See also
snipmatch below for a definition of
how snippets match with one another.
val snipmatch : snippet -> snippet -> bool
snipmatch s1 s2 returns true if the two snippets match.
The two snippets s1 = (t1, m1) and s2 = (t2, m2) are said to
match if string t1 matches regular expression m2 and t2
matches m1.