There has been increasing recognition that genes deal with information processing. They have been referred to as "subroutines within a much larger operating system". For this reason, approaches previously reserved for computer science are now increasingly being applied to computational biology [1]. If genes can be thought of as information-processing subroutines, then proteins can be analyzed in terms of the products of information interacting with laws of physics. It may be possible to advance our knowledge of proteins, such as their structure and functions, by examining the patterns of functional information when studying a protein family.

Our proposed method is based on mathematical and computational concepts (e.g., measures). We show here that, at least in some cases in sequence analysis, the proposed measure is useful in analyzing protein families with interpretable experimental results.

Abel and Trevors have delineated three qualitative aspects of linear digital sequence complexity [2, 3], Random Sequence Complexity (RSC), Ordered Sequence Complexity (OSC) and Functional Sequence Complexity (FSC). RSC corresponds to stochastic ensembles with minimal physicochemical bias and little or no tendency toward functional free-energy binding. OSC is usually patterned either by the natural regularities described by physical laws or by statistically weighted means. For example, a physico-chemical self-ordering tendency creates redundant patterns such as highly-patterned polysaccharides and the polyadenosines adsorbed onto montmorillonite [4]. Repeating motifs, with or without biofunction, result in observed OSC in nucleic acid sequences. The redundancy in OSC can, in principle, be compressed by an algorithm shorter than the sequence itself. As Abel and Trevors have pointed out, neither RSC nor OSC, or any combination of the two, is sufficient to describe the functional complexity observed in living organisms, for neither includes the additional dimension of functionality, which is essential for life [5]. FSC includes the dimension of functionality [2, 3]. Szostak [6] argued that neither Shannon's original measure of uncertainty [7] nor the measure of algorithmic complexity [8] are sufficient. Shannon's classical information theory does not consider the meaning, or function, of a message. Algorithmic complexity fails to account for the observation that 'different molecular structures may be functionally equivalent'. For this reason, Szostak suggested that a new measure of information–functional information–is required [6]. Chiu, Wong, and Cheung also discussed the insufficiency of Shannon uncertainty [9, 10] when applied to measuring outcomes of variables. The differences between RSC, OSC and FSC in living organisms are necessary and useful in describing biosequences of living organisms.

Consider two main uses for the proposed method for measuring FSC, which incorporates functionality: 1) comparative analysis of biosequence subgroups when explicit time lag is known; and 2) typicality analysis between biosequence subgroups when there is no explicit time lag. In the first case, such as an evolutionary time scale, an increase or decrease in FSC between an earlier gene or protein and a later gene or protein can be measured, evaluating its possible degradations and/or functional effects due to various changes such as insertions, deletions, mutations and rearrangements. In the second case, a large set of aligned sequences representing a protein family can be subdivided according to phylogenetic relationships derived from typicality of species groupings and the FSC for each subgroup measured. This is important when evaluating the emergence or evolution of viral or microbial strains with novel functions such as in the comparisons of the Chlamydia family genomes [11]. An analysis may reveal the extent of the difference in FSC between one functional group and the other, as well as the modular interactions of the internal relationship structure of the sequences [12].

The ability to measure FSC would be a significant advance in the ability to identify, analyze, compare, and predict the metabolic utility of biopolymeric sequences. Mutational drift, emerging pathogenic viral and microbial species/strains, generated mutations, acquired heritable diseases and mutagenic effects could all be evaluated quantitatively. Furthermore, *In vitro* experiments using SELEX [13–15] to study transitions in possible early ribozyme family growth could then be evaluated in a quantitative, as well as qualitative and intuitive fashion. Evolutionary changes, both actual and theoretical, can also be evaluated using FSC.

It is known that the variability of data can be measured using Shannon uncertainty [16]. However, Shannon's original formulation when applied to biological sequences does not express variations related to biological functionality such as metabolic utility. Shannon uncertainty, however, can be extended to measure *the joint variable* (*X, F*), where *X* represents the variability of data, and *F* functionality. This explicitly incorporates empirical knowledge of metabolic function into the measure that is usually important for evaluating sequence complexity. This measure of both the observed data and a conceptual variable of function jointly can be called *Functional Uncertainty* (*H*_{
f
}) [17], and is defined by the equation:

*H*(*X*_{f}(*t*)) = -∑*P*(*X*_{f}(*t*)) log*P*(*X*_{f}(*t*)) (1)

where *X*_{f} denotes the conditional variable of the given sequence data (*X*) on the described biological function *f* which is an outcome of the variable (*F*). For example, a set of 2,442 aligned sequences of proteins belonging to the ubiquitin protein family (used in the experiment later) can be assumed to satisfy the same specified function *f*, where *f* might represent the known 3-D structure of the ubiquitin protein family, or some other function common to ubiquitin. The entire set of aligned sequences that satisfies that function, therefore, constitutes the outcomes of *X*_{f}. Here, functionality relates to the whole protein family which can be inputted from a database. The advantage of using *H*(*X*_{f}(*t*)) is that changes in the functionality characteristics can be incorporated and analyzed. Furthermore, the data can be a single monomer, or a biosequence, or an entire set of aligned sequences all having the same common function. The significance of the statistical variations can then be evaluated if necessary [8]. The state variable *t*, representing time or a sequence of ordered events, can be fixed, discrete, or continuous. Discrete changes may be represented as discrete time states.

Functional bioinformatics is emerging as an important area of research [18–20]. Even though the term 'biological function' has been freely used for specific experimentation, there is no generally consistent usage of the term. According to Karp [21], biological functionality can refer to biochemical specified reactions, cellular responses, and structural properties of proteins and nucleic acids. It can be defined or specified at the global level (i.e., the entire organism), locally at the sub-molecular level, or applicable to the whole molecule. Hence confusion exists in interpreting its meaning. Karp [21] recognized that biological function is a complex concept. Using Webster, he refers to 'specially fitted' action or 'normal and specific contribution' of a part to the economy of the whole. Function can be related to cellular components (e.g., macromolecules, proteins or small molecules) that interact and catalyze biochemical transformations. In specific applications, it can be a local function of an enzyme such as the substrate that is acted on, or the ligands that activate or inhibit the enzyme. In more systemic integrated functions, it may refer to pathways, single or multiple, in a hierarchical, nested scope [22, 23]. In general, it is a challenge 'to define a single best set of biologically acceptable rules for performing this decomposition' [21].

In our approach, we leave the specific defined meaning of functionality as an input to the application, in reference to the whole sequence family. It may represent a particular domain, or the whole protein structure, or any specified function with respect to the cell. Mathematically, it is defined precisely as an outcome of a discrete-valued variable, denoted as *F=*{*f*}. The set of outcomes can be thought of as specified biological states. They are presumed non-overlapping, but can be extended to be fuzzy elements. In order to get a meaningful calculation in measuring FSC, the measure should be statistically significant in practice [7, 10], much larger than zero when relating to the sequences. When sequences are chosen that are unrelated to the function to be analyzed, or are simply arbitrarily ordered or randomly generated sequences, then the measure of FSC will be small and statistically not significant. For example, if many sequences that do not share the same function *f*, are mistakenly included within an aligned set representing some particular function, we should expect the measure of FSC of that set to be degraded, possibly even to a very small value. However, when the specified functionality is chosen meaningfully (even in part), then FSC can be interpreted.

Consider further, when a biosequence is mutated, the mutating sequence can be compared at two different time states going from *t*_{i} to *t*_{j}. For example, *t*_{i} could represent an ancestral gene and *t*_{j} a current mutant allele. Different sequences sharing the same function *f* (as outcomes of the variables denoted respectively as *X*_{f}, *Y*_{f}) can also be compared at the same time *t*. Within a sequence, any change of a monomer in the sequence represents a single step change that may or may not affect the overall function. Sequence reversals, gene splits, lateral transfers, and multiple point mutations can also be quantified between the two states *t*_{i}, *t*_{j}. The limits of the change in functional uncertainty between the two states can then be evaluated at *t* = *t*_{i} and *t* = *t*_{
j
}.

The change in functional uncertainty (denoted as Δ*H*_{f}) between two states can be defined as

Δ*H* (*X*_{g}(*t*_{i}), *X*_{f}(*t*_{j})) = *H*(*X*_{g}(*t*_{j})) - *H*(*X*_{f}(*t*_{i}))

where *X*_{f} (*t*_{i}) and *X*_{g} (*t*_{j}) can be applied to the same sequence at two different times or to two different sequences at the same time. Δ*H*_{f} *can then quantify the change in functional uncertainty between two biopolymeric states with regard to biological functionality*. Unrelated biomolecules with the same function or the same sequence evolving a new or additional function through genetic drift can be compared and analyzed. A measure of Δ*H*_{f} can increase, decrease, or remain unchanged.

Biological function is mostly, though not entirely determined by the organism's genetic instructions [24–26]. The function could theoretically arise stochastically through mutational changes coupled with selection pressure, or through human experimenter involvement [13–15]. A time limit can be set in some situations to evaluate what changes to *X*_{f}(*t*_{i}) might be possible within that limit. For example, an estimation of the evolutionary limits projected over the next 10 years could be computed in this approach for any particular strain of the HIV virus. The specifics of the function (as an outcome of the function variable) can remain constant, or it can be permitted to vary within a range of efficiency. The limit may be determined by what is permitted metabolically. There is often a minimum limit of catalytic efficiency required by the organism for a given function.

The *ground state g* (an outcome of *F*) of a system is the state of presumed highest uncertainty (not necessarily equally probable) permitted by the constraints of the physical system, when no specified biological function is required or present. Certain physical systems may constrain the number of options in the ground state so that not all possible sequences are equally probable [27]. An example of a highly constrained ground state resulting in a highly ordered sequence occurs when the phosphorimidazolide of adenosine is added daily to a decameric primer bound to montmorillonite clay, producing a perfectly ordered, 50-mer sequence of polyadenosine [3]. In this case, the ground state permits only one single possible sequence. Since the ground state represents the state of presumed highest uncertainty permitted by the physical constraints of the system, the set of functional options, if there are any, will therefore be a subset of the permitted options, assuming the constraints for the physical system remain constant. If the ground state permits only one sequence, then there is no possibility of change in the functional uncertainty of the system.

The *null state*, a possible outcome of *F* denoted as ø, is defined here as a special case of the ground state of highest uncertainly when the physical system imposes *no constraints at all*, *resulting in the equi-probability of all possible sequences or options*. Such sequencing has been called "dynamically inert, dynamically decoupled, or dynamically incoherent" [28, 29]. For example, the ground state of a 300 amino acid protein family can be represented by a completely random 300 amino acid sequence where functional constraints have been loosened such that any of the 20 amino acids will suffice at any of the 300 sites. From Eqn. (1) the functional uncertainty of the null state is represented as

*H*(*X*_{ø}(*t*_{i}))= - ∑*P*(*X*_{ø}(*t*_{i})) log *P*(*X*_{ø}(*t*_{i})) (3)

where (*X*_{ø}(*t*_{i})) is the conditional variable for all possible equiprobable sequences. Consider the number of all possible sequences is denoted by *W*. Letting the length of each sequence be denoted by *N* and the number of possible options at each site in the sequence be denoted by *m*, *W* = *m*^{N}. For example, for a protein of length *N* = 257 and assuming that the number of possible options at each site is *m* = 20, *W* = 20^{257}. Since, for the null state, we are requiring that there are no constraints and all possible sequences are equally probable, *P*(*X*_{ø}(*t*_{i})) = 1/*W* and

*H*(*X*_{ø}(*t*_{i}))= - ∑(1/*W*) log (1/*W*) = log *W*. (4)

The change in functional uncertainty from the null state is, therefore,

Δ*H*(*X*_{ø}(*t*_{i}), *X*_{f}(*t*_{j})) = log (*W*) - *H*(*X*_{f}(*t*_{i})). (5)

Physical constraints increase order and change the ground state away from the null state, restricting freedom of selection and reducing functional sequencing possibilities, as mentioned earlier. The genetic code, for example, makes the synthesis and use of certain amino acids more probable than others, which could influence the ground state for proteins. However, for proteins, the data indicates that, although amino acids may naturally form a nonrandom sequence when polymerized in a dilute solution of amino acids [30], actual dipeptide frequencies and single nucleotide frequencies in proteins are closer to random than ordered [31]. For this reason, the ground state for biosequences can be approximated by the null state. The value for the measured FSC of protein motifs can be calculated by relating the joint (*X*, *F*) pattern to a stochastic ensemble, the null state in the case of biopolymers that includes any random string from the sequence space.

### A. Functional uncertainty as a measure of FSC

The measure of Functional Sequence Complexity, denoted as ζ, is defined as the change in functional uncertainty from the ground state *H*(*X*_{g}(*t*_{i})) to the functional state *H*(*X*_{f}(*t*_{i})), or

ζ = Δ*H* (*X*_{g}(*t*_{i}), *X*_{f}(*t*_{j})). (6)

The resulting unit of measure is defined on the joint data and functionality variable, which we call *Fits (* or *F* unctional *bits)*. The unit Fit thus defined is related to the intuitive concept of *functional* information, including genetic instruction and, thus, provides an important distinction between functional information and Shannon information [6, 32].

Eqn. (6) describes a measure to calculate the functional information of the whole molecule, that is, with respect to the functionality of the protein considered. The functionality of the protein can be known and is consistent with the whole protein family, given as inputs from the database. However, the functionality of a sub-sequence or particular sites of a molecule can be substantially different [12]. The functionality of a sub-molecule, though clearly extremely important, has to be identified and discovered. This problem of estimating the functionality as well as where it is expressed at the sub-molecular level is currently an active area of research in our group.

To avoid the complication of considering functionality at the sub-molecular level, we crudely assume that each site in a molecule, when calculated to have a high measure of FSC, correlates with the functionality of the whole molecule. The measure of FSC of the whole molecule, is then the total sum of the measured FSC for each site in the aligned sequences.

Consider that there are usually only 20 different amino acids possible per site for proteins, Eqn. (6) can be used to calculate a maximum Fit value/protein amino acid site of 4.32 Fits/site. We use the formula log (*20*) - *H*(*X*_{f}) to calculate the functional information at a site specified by the variable *X*_{f} such that *X*_{f} corresponds to the aligned amino acids of each sequence with the same molecular function *f*. The measured FSC for the whole protein is then calculated as the summation of that for all aligned sites. The number of Fits quantifies the degree of algorithmic challenge, in terms of probability, in achieving needed metabolic function. For example, if we find that the Ribosomal S12 protein family has a Fit value of 379, we can use the equations presented thus far to predict that there are about 10^{49} different 121-residue sequences that could fall into the Ribsomal S12 family of proteins, resulting in an evolutionary search target of approximately 10^{-106} percent of 121-residue sequence space. In general, the higher the Fit value, the more functional information is required to encode the particular function in order to find it in sequence space. A high Fit value for individual sites within a protein indicates sites that require a high degree of functional information. High Fit values may also point to the key structural or binding sites within the overall 3-D structure. Since the functional uncertainty, as defined by Eqn. (1) is proportional to the -log of the probability, we can see that the cost of a linear increase in FSC is an exponential decrease in probability.

For the current approach, both equi-probability of monomer availability/reactivity and independence of selection at each site within the strand can be assumed as a starting point, using the null state as our ground state. For the functional state, however, an *a posteriori* probability estimate based on the given aligned sequence ensemble must be made. Although there are a variety of methods to estimate *P*(*X*_{f}(*t*)), the method we use here, as an approximation, is as follows. First, a set of aligned sequences with the same presumed function, is produced by methods such as CLUSTAL, downloaded from Pfam. Since real sequence data is used, the effect of the genetic code on amino acid frequency is already incorporated into the outcome. Let the total number of sequences with the specified function in the set be denoted by *M*. The data set can be represented by the N-tuple *X* = (*X*_{1}, ... *X*_{N}) where *N* denotes the aligned sequence length as mentioned earlier. The total number of occurrences, denoted by *d*, of a specific amino acid "aa" in a given site is computed. An estimate for the probability that the given amino acid will occur in that site *X*_{
i
}, denoted by *P*(*X*_{
i
}= "aa") is then made by dividing the number of occurrences *d* by *M*, or,

*P*(*X*_{
i
}= "aa") = *d*/*M*. (7)

For example, if in a set of 2,134 aligned sequences, we observe that proline occurs 351 times at the third site, then *P* ("proline") = 351/2,134. Note that *P* ("proline") is a conditional probability for that site variable on condition of the presumed function *f*. This is calculated for each amino acid for all sites. The functional uncertainty of the amino acids in a given site is then computed using Eqn. (1) using the estimated probabilities for each amino acid observed. The Fit value for that site is then obtained by subtracting the functional uncertainty of that site from the null state, in this case using Eqn. (4), log20. The individual Fit values for each site can be tabulated and analyzed. The summed total of the fitness values for each site can be used as an estimate for the overall FSC value for the entire protein and compared with other proteins.

### B. Measuring changes in FSC

In principle, some proteins may change from a non-functional state to a functional state gradually as their sequences change. Furthermore, iso-enzymes in some cases may catalyze the same reaction, but have different sequences. Also, certain enzymes may demonstrate variations in both their sequence and their function. Finally, a single mutation in a functional sequence can sometimes render the sequence non-functional relative to the original function. An example of this effect has been observed in experiments with the ultrabiothorax (Ubx) protein [17, 33].

From Eqn. (6), the FSC of a biosequence can be measured as it changes with time, as shown in Figure 1. When measuring evolutionary change in terms of FSC, it is necessary to account for a change in function due to insertions, deletions, substitutions and shuffling. Evolutionary change that involves a change from a non-functional state that is not in the null state, or from an existing function *f*_{a} to a modified function *f*_{b} that is either different in terms of efficiency or function, is given by

ζ_{E} = Δ*H* (*X*_{fa}(*t*_{i}), *X*_{fb}(*t*_{j})). (8)

The sequences (corresponding to *X*_{fa} with initial function *f*_{
a
}) have two components to it, relative to that of *X*_{fb} (with resulting mutated function *f*_{
b
}). The *static component* is that portion of the subsequence that must remain within the permitted sequence variation of the original biosequence with function *f*_{a} while, at the same time, enabling the new function *f*_{b}. The *mutating component* is the portion of *X*_{fa} that must change to achieve either the new function *f*_{b}, where the new function is to be understood as either a new level of efficiency for the existing function, or a novel function different from *f*_{a}. This is a convenient simplification, assuming that the two components are separate according to the aligned sites. Currently we are also studying scenarios when the two components may be mixed, possibly at different times. The mutating component can be assumed to be in the null state relative to the resulting sequences of *X*_{fb}. Since the mutating component is the only part that must change, we can ignore the static component *provided we include the probability of it remaining static* during the mutational changes of the mutating component.

In practice, the sequence space for possible novel functional states may not be known. However, by considering particular proteins, estimated mutation rates, population size, and time, an estimated value for the probability can be chosen and substituted into the relevant components of Eqn. (9) to limit search areas around known biosequences that are observed, such as protein structural domains, to see what other possible states within that range might have some selective advantage. In this way, possible evolutionary paths for the formation of certain protein families might be reconstructed. For example, using this method, it might be possible to predict, say, future viral strains within certain limits.

Intuitively, the greater the reduction in FSC a mutation produces, the more likely the mutation is deleterious to the given function. This can be evaluated using known mutations introduced individually into a set of aligned, wild-type sequences to measure the change in FSC. The results could then be ranked. Operating under the hypothesis that mutations producing the greatest decrease in FSC are most likely to be deleterious, experimental investigations into certain genes with certain mutations could be prioritized according to how negatively they affect FSC.