Loop Analyst

Software for Qualitative Loop Analysis

Software

Installation

Download

About Loop Analysis

To Do List

Contact

Software

Screenshot of Loop Anlayst showing a ten variable system graphed using an emanating colors scheme There is an beta standalone GUI version of Loop Analyst for OS X v. beta 3 (April 19, 2009, 14 MB, see Change Log.txt in the zip file). It is much faster than the R version. A help file is available here, and I am highly ammenable to suggestions, and questions. The archive includes a comunity matrix library file of four published community matrices (Published.cml), and the python source to this version (Loop Analyst.py). Graphing capability is provided through graphviz. Please see the installation instructions on the help page for details.

An R package has implemented the method without a GUI. Loop Analyst provides tools for the construction and output of community matrices, computation and output of community effect matrices, tables of predicted correlations, and feedback, path and loop enumeration tools. This implementation includes output support for graphs in .dot file format for use with visualization software such as graphviz (graphviz.org).

Installation

You can install from the CRAN mirrors for source packages from within R. If you'd like to install manually, here's how to get it working:

  1. Place the tar.gz file in RHOME/src/library/. You can locate RHOME on your system by typing R RHOME at the command line. And you may need to create the src/library directories.
  2. Type R CMD install filename. On my system this produces a warning:

    cp: /Library/Frameworks/R.framework/Versions/2.2/Resources/library/R.css: Permission denied

    Or, if you trust me, sudo R CMD install filename to eliminate the warning.

Download Loop Analyst for R Version 1.2-1

November 26, 2007

R gzipped source package:
LoopAnalyst_1.2-1.tar.gz

R binary for OS X:
LoopAnalyst_1.2-1.tgz

R binary for Windows:
LoopAnalyst_1.2-1.zip

This software is distributed under the terms of the GPL version 2 or higher. Archived versions here

The make.cem() function was validated against loop analyses in numerous published studies (list forthcoming). The weighted feedback functions have been validated against results from the analysis of 30 randomly-generated community matrices (five in each size category ranging from three variables to eight variables) with moderate connectance using Jeffrey Dambacher's software for Maple in Revision 2 of Ecological Archives E083-022-S1, Supplement 1 to Ecology 83:1372-1385. The results matched exactly. Here are the 30 matrices in Rdata format, and the results from the analysis using Dambacher's software in pdf.

About Loop Analysis

Loop analysis is a body of methods for understanding the nature of system behavior in systems of causal feedback. Originally devised by Richard Levins as a means of creating testable hypotheses about the behavior of dynamic systems in population biology, loop analysis has a very general application in sciences concerned with modeling causal feedback.

The core of the method involves the representation of a system in both a graphical form using signed digraphs, and in matrix form using square (-1, 0, 1) matrices. These representations are used to qualitatively describe direct causal effects (including self-effects) between the component variables of the system as increases, decreases, or has no effect, under and assumption that the turnover of each variable is within approximately an order of magnitude. The community effect formula below is then applied to create a table of predictions of the indirect effect on each variable given a positive signal to any particular variable.

where:

for L(m,n) = m disjoint loops (simple cycles) spanning exactly n variables.

References

To Do List

There are big plans afoot for Loop Analyst, albeit slow moving ones. I am migrating the code to python to create more platform independent code, and independent binaries with a snazzy GUI driven interface for the management and analysis of libraries of matrix models, with graph layout built in. See the software section for the beta version. My current to do list also includes:

  • Add a function F.k to compute the feedback for a system at a specific level
  • Identification of specific ambiguous subsystems in the community effect matrix
  • A menu interface for the command line programs
  • Performance tweaks: Levin's equation becomes uncomputable in an acceptable time frame with great rapidity as the number of variables increases. My algorithm takes advantage of non-connectance between variables and moment of identifying ambiguity to cut out some of the computing time, but there's plenty of room for improvement.
  • Implement methods for transient and periodic perturbations along the lines of R.H. Flake's article in Ecological Modelling 9(2).
  • Create a tutorial for the software.

Contact

I am happy to take feedback, respond to requests for assistance, and consider feature requests. I can be contacted at: