# $Id: README,v 1.31 2006-01-12 14:21:47 flux Exp $
If you use MCL software in your research, cite it as you would cite a
journal or a book. This includes papers published in regular or electronic
journals, usage of MCL as a back-end to a database that is accessible via a
web interface, or inclusion of MCL in a larger framework of software that is
distributed for other people to use. Include at least one of the following
Stijn van Dongen, Graph Clustering by Flow Simulation.
PhD thesis, University of Utrecht, May 2000.
( http://www.library.uu.nl/digiarchief/dip/diss/1895620/inhoud.htm )
Stijn van Dongen. A cluster algorithm for graphs. Technical Report
INS-R0010, National Research Institute for Mathematics and Computer
Science in the Netherlands, Amsterdam, May 2000.
( http://www.cwi.nl/ftp/CWIreports/INS/INS-R0010.ps.Z )
and proper attributions to mcl's home http://micans.org/mcl/ and its author,
Stijn van Dongen.
Do this *also* if you are using some wrapper around mcl such as the blast
module or the tribe module.
For biological applications, it is appropriate to cite, additionally,
the reference article for the first application of mcl to biological data:
Enright A.J., Van Dongen S., Ouzounis C.A.
An efficient algorithm for large-scale detection of protein families,
Nucleic Acids Research 30(7):1575-1584 (2002).
For BLAST users, consider using the blast package that is very well
integrated with the core mcl libraries and offers many options and extensive
configurability. Use mcxdeblast to parse BLAST files, use mcxassemble to
transform the parser's output to mcl input.
The Genome Protein view at ensembl.org uses these programs.
It is also possible to use the pipeline script mclblastline that
encapsulates mcxdeblast, mcxassemble, mcl, and clmformat (the latter
prettyprints clustering results).
MCL documentation is in doc/, in various formats. It gets installed in
<prefix>/share/doc/mcl/. A few example input graphs are in graphs/, in the
mcl matrix format; these are installed in <prefix>/share/doc/mcl/examples/.
The MCL webpage is at http://micans.org/mcl/ .
MCL development is discussed on email@example.com, info about this
list can be found at https://lists.micans.org:446/listinfo/mcl-devel this list
is archived at https://lists.micans.org:446/pipermail/mcl-devel/ . You can use
this forum also for asking any MCL-related question.
The version tag, which is of the form dd-ddd, encodes the year and day in
year in which the distribution was made. So 02-058 encodes the 58-th day of
the year 2002.
Configure and compiler options
--prefix=YOUR-PREFIX (e.g. $HOME/local)
By default, MCL is compiled using C ints and floats -- the ints are used to
encode graph nodes/matrix indices, and the floats are used to encode edge
weights / matrix entries. These can be changed respectively to long and
double, by adding '-DINDEX_AS_LONG', and/or '-DVALUE_AS_DOUBLE' to the
CFLAGS environment variable. The first enables a possibly wider range of
indices to be used, the second increases the precision (which is presumably
not useful in the vast majority of cases). Using gcc under bash, you might
for example do
export CFLAGS='-g -O2 -Wall -ansi -pedantic -DVALUE_AS_DOUBLE'
before doing ./configure and make. If you are rebuilding, make sure to do
'make clean' first. You need not use doubles though; MCL does fine with
floats. These features (changing the basic types) have not yet been tested
For enabling rudimentary runtime integrity checks, add -DRUNTIME_INTEGRITY.
MCL comes nowadays packaged with the BLAST parsing script mcxdeblast and the
pipeline script mclblastline. It encapsulates all the stages of parsing,
matrix creation, running mcl, and formatting the result into a single
application. These scripts can be used in place of the tribe module. Enable
them by adding --enable-blast to ./configure. For the TribeMCL module issue
--enable-tribe. Be sure to read http://micans.org/mcl/#mods first though. It
is suggested you use the BLAST module instead.
LICENSE for copyright and licensing, THANKS for contributors, INSTALL for
generic installation instructions.