  Background: Coevolution within a protein family is often predicted using
statistics that measure the degree of covariation between positions in the
protein sequence. Mutual Information is a measure of dependence between two
random variables that has been used extensively to predict intra-protein
coevolution.
  Results: Here we provide an algorithm for the efficient calculation of Mutual
Information within a protein family. The algorithm uses linked lists which are
directly accessed by a pointer array. The linked list allows efficient storage
of sparse count data caused by protein conservation. The direct access array of
pointers prevents the linked list from being traversed each time it is
modified.
  Conclusions: This algorithm is implemented in the software MIpToolset, but
could also be easily implemented in other Mutual Information based standalone
software or web servers. The current implementation in the MIpToolset has been
critical in large-scale protein family analysis and real-time coevolution
calculations during alignment editing and curation.
  The MIpToolset is available at: https://sourceforge.net/projects/miptoolset/
