CoMIC – Coevolution via MI on CUDA

The CoMIC (Coevolution via MI on CUDA) project tries to identify parts in a multiple sequence alignment (i.e. a set of DNA or protein sequences) that evolved in a coordinated way.
This website provides code as well as documentation for the CoMIC project.

For a given multiple sequence alignment we compute a so-called mutual information (MI) matrix (as shown in the image). High MI values for specific sequence positions may hint towards structural connections at the corresponding positions in the folded protein.

The picture illustrates the structure-coevolution signal: On the left we show a cluster of coevolving amino acids – indicated by high MI values – and on the right the corresponding secondary structures element; here the beta-sheet of the HIV1-protease.

If you want to get in contact regarding the project, please write to .


The project is described in the following paper:
  • Using Graphics Processing Units to Investigate Molecular Coevolution
    Michael Waechter, Kathrin Jaeger, Daniel Thuerck, Stephanie Weissgraeber, Sven Widmer, Michael Goesele, and Kay Hamacher
    In: Concurrency and Computation: Practice and Experience 26(6), pp. 1278-1296, 25 April 2014.
  • Information-Theoretic Analysis of Molecular (Co)Evolution Using Graphics Processing Units
    Michael Waechter, Kathrin Jaeger, Stephanie Weissgraeber, Sven Widmer, Michael Goesele, and Kay Hamacher
    In: Emerging Computational Methods for the Life Sciences Workshop (ECMLS 2012), Delft, Netherlands, 18 June 2012.
    [Paper] [Bibtex]
    Copyright ACM, 2012. This is the authors' version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution.

Source Code

CoMIC Version 1.2

[Code] [Documentation] Nov. 16th, 2012

The CoMIC code as well as the documentation may be used under the terms of the GPLv3 license of which you can obtain a copy here.

Version History

Version Date Description
1.2 Nov. 16, 2012 Code compiles on CUDA 5.0 and 4.x
1.1 Aug. 23, 2012 Reduced CPU RAM and GPU global memory usage to approximately one half for 2-point and one sixth for 3-point computations
1.0 Apr. 17, 2012 Initial Release. Computation of 2-point and 3-point MI, E(MI), E(MI^2) and percentiles