Background

Advances in high throughput data collection and analysis have shown that a discrete biological function can only rarely be attributed to individual molecules [1]. Instead, complex cellular activities can be achieved through a system of interactions between macromolecules such as proteins, DNA, and RNA. Quantitative understanding of these patterns is critical for an in-depth characterization of fundamental principles in cellular biology and pathology.

Network biology is an emerging area of scientific interest aiming at the elucidation of the dynamic structure and pleiotropic function of genes and their products in cellular networks in a systematic and unbiased fashion. The treatment of biological data as graphs, where typically nodes signify cellular entities (e.g. genes, proteins, metabolites) and connections (edges) denote the corresponding functional or physical interactions, is a promising representation in molecular systems biology. Successful applications of network biology have led, for instance, to the classification of breast cancer at the interactome level [2], the characterization of signaling pathways in gastric cancer [3] and the delineation of fundamental organizational principles in metabolic networks [4]. In addition, integration of gene expression and network topological properties have led to more efficient methods for novel biomarker identification in critical conditions such as heart failure [5] and cancer [2].

Analysis of topological features and dynamic properties of cellular networks remains a highly active area of research. Indeed, several tools have been developed to address the need for system-wide analysis (NeAT [6], Systems Biology Toolbox [7]) or visualization (Cytoscape [8], BioLayout [9]). Nonetheless, the adoption of such approaches within the wider biomedical community has been rather limited, possibly due to challenges posed by the integration of experimental (e.g. microarray) and computational (e.g. databases) platforms [10]. Therefore, it is desirable that network-driven pipelines become more accessible to end users, thus facilitating the transformation of information hidden in multi-dimensional datasets into useful hints for the discovery of biomarkers and therapeutic targets.

Implementation

We have developed a system called Functional Genomics Assistant (FUGA), a MATLAB toolbox for the inference of cellular networks, graph topology analysis, random network simulation, network clustering, and functional enrichment (shown schematically in Figure 1). The toolbox is easily customizable and scalable to networks with thousands of nodes and millions of edges. Additionally, FUGA can integrate high throughput datasets into a unified framework, within which other applications can be embedded. Our objective in designing FUGA has been to simplify network analysis concepts and techniques for end users, by providing intuitive MATLAB functions for complex system exploration and network analysis.

Figure 1
figure 1

An overview of the most prominent FUGA features. FUGA is used for gene regulatory network inference, random modeling, network topology analysis, clustering, and network comparison. It is also possible to import biological networks from the STRING web-based database. Integration of biomedical data such as gene expression with interactome information may facilitate molecular pathway analysis, network-based target prioritization, and drug target discovery.

MATLAB was the language of choice for the development of FUGA, due to its matrix- and vector-based architecture, simple syntax, and powerful graphics. The code is designed to run on Unix or Mac machines; advanced users may compile sources for other platforms. Overall, FUGA is seamlessly integrated into MATLAB, so as to permit extensive analytical and visualization operations.

Results and Discussion

Recently, FUGA functionality was applied on experimentally derived datasets to define a population-based miRNA signature of type 2 diabetes [11], elucidate the expression patterns of iron regulatory protein 2 (IRP2) [12], and characterize genome-wide expression patterns in physiological cardiac hypertrophy [13]. The current FUGA release contains 137 functions and the main operating features are described briefly below.

Network reconstruction

Biological networks can be inferred with FUGA from computationally or experimentally derived datasets (e.g. BLAST similarity matrices, microarray data) using any form of similarity measure (e.g. Pearson Correlation Coefficient or PCC) to define pairs of nodes. It is also possible to import network edge lists from a text file or download interactomes of interest from the STRING database of known or predicted protein-protein interactions [14] via a web API. In the future releases, FUGA will support a wider range of public interaction databases. Network graphs are typically undirected and may be weighted. Network-specific information, such as node labels and attributes are stored as MATLAB objects for further access.

Global and local network topology

Complex interactions between constituents that regulate phenotypic diversity necessitate the study of a biological system in the context of the entire interactome, rather than just the over- or under- expression of individual entities. FUGA provides access to global network parameters such as shortest path, diameter, or link density in the interaction network. Topological features such as node betweenness and clustering coefficients can also be computed by accessing the Markov clustering (MCL) toolset [15] through the FUGA interface. To compare against random effects in large networks with hundreds of nodes and thousands of edges from high-throughput experiments, FUGA can construct random networks using link rewiring and the Erdos-Rényi model, or it can build a random modular graph, as reported elsewhere [16]. For comparing two or more networks, FUGA implements simple network similarity estimations using the Jaccard index and handles boolean set operations such as network union, intersection, and difference.

Network clustering

Because functionally related genes or proteins tend to co-localize in network vicinity, FUGA offers to identify the modular network structure via the MCL [15] or SPICi protocols [17]. Additionally, FUGA implements a greedy algorithm for community detection that uses network modularity as a measure of community structure [18], as well as several functions for spectral graph partitioning [19]. Such unsupervised algorithms are well adapted to large biological networks and may uncover previously undetected interactions.

Biological interpretation

By default, FUGA works with the ENSEMBL database [20] to annotate network nodes using all major function classification schemes (e.g. Gene Ontology [21] [GO] Biological Process [BP], Molecular Function [MF], Cellular Component [CC], GOSlim, or Reactome pathway terms). In addition, it is possible to define a custom annotation schema such as gene-disease associations. Cluster enrichment is performed by calculating the hypergeometric probability between inter- and intra- cluster gene counts assigned to a priori-defined terms. To facilitate biological discovery, nodes can be explored by merit of their topologies and subsequently linked to databases such as ENTREZ, GeneCards, or UniProt. Similar topological analyses have been previously used to uncover high-quality therapeutic targets in psoriasis [22] and identify putative cancer-associated genes [23], for instance. We illustrate biological discovery with FUGA through an example (see below).

Visualization through Cytoscape

FUGA provides direct access to the Cytoscape graph visualization software. Networks and node attributes, including clusters and topologies, can also be exported to a text file for subsequent exploration with other, user-defined network visualization software.

Extensibility

MATLAB's interactive environment allows flexible and simple addition of new functionalities to FUGA by expanding the existing framework. For example, additional network statistics or clustering algorithms can be implemented using MATLAB matrix operations and the existing FUGA network object architecture.

Comparison with other toolboxes

Similar toolboxes have been developed in MATLAB for systems biology related analysis. These include MATLAB BGL [24] and the Brain Connectivity Toolbox (BCT) [25], as well as the bioinformatics toolbox developed by Mathworks. MATLAB BGL uses the Boost Graph library to efficiently analyze large sparse graph structures. The BCT package is designed to quantify centrality and structure of brain networks. The bioinformatics toolbox from Mathworks has several functions for graph analysis (e.g. connected components, shortest paths), but its functionality is limited, as it may not scale up well for larger genome-wide networks. A number of non-MATLAB tools are available for network visualization and analysis, including NATbox [26] and NeAT [27]. Each tool has a distinct set of features which are highlighted in Table 1. The FUGA toolbox provides a broader range of graph theory functions and integrates expression analysis, functional annotation, and network visualization. The current FUGA release 2.9.4 contains 137 functions. As such, it provides an important contribution to network biology applications and related biomedical data analyses.

Table 1 Comparison of network analysis tools.

Example

We illustrate the functionality of FUGA by interrogating time-course transcriptional profiles of failing mouse hearts (ArrayExpress: E-MEXP-105 [28]). First, PCCs for all possible gene pairs across all phenotypes were computed and gene pairs with absolute PCC≥0.90 were retained and visualized as an un-weighted, undirected network. The network contained 1018 genes and 2324 links. Average node degree was 4.6, network diameter was 21, and graph architecture was determined to be scale free (Figure 2A). Topological features of the network (assortativity, betweenness, clustering coefficients) were non-random (Figure 2B-D). Then, the greedy method for community detection [18] was used to identify modules of co-expressed genes (Figure 2E). The network and its attributes were visualized with Cytoscape and biological enrichment was performed to identify disease-specific over-represented GO-BP terms (Figure 2F). The above analyses were executed in under 5 minutes in the MATLAB command line prompt on 2.53 GHz Intel Core 2 Duo machine with 4 GB RAM.

Figure 2
figure 2

Example analysis of cardiac hypertrophy using FUGA. A-D) Comparison of topological network properties in the gene co-expression network and 10 random networks generated using the Maslov-Sneppen rewiring model [16]. E) Cytoscape visualization of the gene co-expression network in cardiac hypertrophy. Each node represents a gene and links represent a co-expression. Node colors reflect gene cluster assignment (numerical labels) as determined by the Louvain algorithm and node sizes are proportional to node degrees. The largest 15 gene clusters are visualized. F) Enrichment of each network cluster for over-represented Gene Ontology Biological Process terms.

Conclusion

FUGA is an extensible and versatile framework for network analysis in a variety of systems biology applications. While currently FUGA implements the most widely used graph theoretic approaches, future plans include the development of novel centrality and clustering algorithms. We also aim to integrate additional biological annotation repositories to facilitate analysis of networks derived from heterogeneous biological experiments. The FUGA project is an ongoing effort that should facilitate the dissemination of graph theoretic approaches across the wider biomedical community.

Availability and requirements

Project name: FUGA

Project web page: http://code.google.com/p/fuga/

Operating System: Mac OS X/Linux/Windows

Programming language: MATLAB 7.8.0 or higher/C/C++

Other requirements: None

License: GPL

Any restrictions on use by non-academics: License needed