About iModulonDB

Welcome to iModulonDB! This is a web-based tool for accessing a database of transcriptomic dataset decompositions. If you are a biologist interested in what machine learning can tell us about the regulation of bacterial gene expression, this site will provide very valuable tools for you.


All living things need to adapt their gene expression to the situation they are in. The transcriptional regulatory network (TRN) is the system within cells that enables this. For instance, consider the gene glpT in E. coli, which is used to import a specific type of food, glycerol. When glycerol is present in the cell’s media, components of the TRN will sense it and respond by upregulating glpT so that the cell can use it for growth. The TRN controls metabolism, stress responses, growth, and nearly every biological process. It is therefore of particular interest in science to understand how it works.

Traditional methods for studying the TRN have focused on individual genes and regulators, especially in model organisms. Wet lab microbiologists have spent decades deleting or overexpressing particular genes, making hypotheses about the effects, and testing them in drill-down studies. In this way, researchers have built a bottom-up understanding of how the TRN works. This approach is very important for making confident claims about individual systems, but it is time-consuming, costly, and often fails to support mathematical models of global gene expression.

Thus, we have developed a new approach which creates a top-down perspective on the TRN. We start with a transcriptomic dataset, which measures the expression of each gene under several conditions. There are thousands of genes in any given organism, and we hope to understand as much of the data as possible – therefore, we need to use machine learning to look for patterns in that dataset which give us valuable insight into the underlying regulation.

Applications of this Knowledge

Why study bacterial transcriptional regulation?

  • Disease and Antimicrobials: Some of the bacteria we study, such as tuberculosis, cause important diseases. They make us sick by adapting their gene expression to their host environment, and understanding the process by which they do that can help us to better fight disease. The insights we gain into how bacteria respond to stress also help the field develop new antibiotics.
  • Bacterial cell factories: Bacteria are used to produce a ton of products for humans, such as pharmaceuticals and biofuels, and understanding how they regulate their genes improves the existing efficiency and opens doors to producing new products.
  • Understand evolution: Knowledge of how gene expression changes in small-scale evolution experiments and across the phylogenetic tree can tell us how organisms change in general, which might help us in fighting future pandemics.
  • Future applications to other organisms: Technology developed for bacteria can eventually be useful in more complex organisms, like humans. This would be applicable to understanding any human disease with a genetic component.
Introduction to Transcriptomic Data

This is a transcriptomic dataset. Each column represents an experimental condition that cells were subjected to, and each row represents a gene. Each element is an expression value indicating how active the gene is under the given condition (typically measured using RNA-sequencing or microarrays). This dataset has been normalized such that the entire left column, representing the baseline condition of simple growth on glucose, is zero (white), and positive and negative values in other elements indicate that the gene is more or less expressed than it is in the baseline. At iModulonDB, we generate some of the datasets we analyze in-house and download many of them from online sources such as the Sequence Read Archive.

Problems in Transcriptomics
  • There are an extremely large number of genes - it would be nice if they were grouped together into a smaller number of variables.
  • We want to know the activity of the underlying genetic regulators, and which regulators are most important.
  • Some genes are completely unstudied - can we guess their function and regulation?

Each of these plots represents a row from the dataset as a bar graph. We show two related genes: glpT, which imports glycerol, and glpA, which helps break down glycerol. The x axis labels are names given to the various projects in which the samples were collected (for example, "Acid" refers to a project done in acidic media with deletion of various acid response regulators). Hovering over the tallest bars reveals which conditions cause each of the genes to be upregulated. You will notice that in both graphs, activity is highest when glycerol is the carbon source. It would be convenient to treat both of these genes as part of a single glycerol-consumption unit in the transcriptome - the goal of our approach is to find all such units with unsupervised machine learning.


Data scientists have developed machine learning algorithms that can address the problems described above. Unsupervised machine learning algorithms can identify patterns and structures underlying big datasets by simply using the information in the dataset itself. Independent Component Analysis (ICA) is one such method, and it has outperformed many other algorithms in detecting co-regulated gene sets.

By running the ICA algorithm on a transcriptomic dataset (see our github), we generate a set of iModulons. Each iModulon is a group of genes that represents an independently modulated signal, which the cell is probably controlling using the same or related regulators. Mathematically, an iModulon has a weight for each gene and an activity for each condition. The highly weighted genes are iModulon members, and the highly active conditions are those that the iModulon is likely performing a function in. We characterize an iModulon by interpreting its gene members and activity levels. For example, the glpR iModulon contains all the genes that are associated with digesting glycerol, and it is active when glycerol is present in the media. We named it 'GlpR' because that is the name of the transcription factor that co-regulates all of its genes.

X: Original transcriptomic dataset. We make the assumption that the X matrix results from a mix of underlying signals (iModulons) controlled by regulators like transcription factors (TFs), and we use the ICA algorithm to identify those signals.

M: Links genes to iModulons. A gene that is highly weighted is said to be a “member” of the iModulon, and all iModulon members are expressed as a group. If the iModulon is a sports team, the M matrix defines who the players are.

A: Links iModulons to conditions. If an iModulon is highly active in a given condition, it is probably carrying out a function that is important in that condition. If the iModulon is a sports team, the A matrix describes its playbook.

iModulon Definitions and Properties
  • iModulon: An independently modulated group of genes, often representing the effect of a transcriptional regulator. These are identified by observing patterns in transciptomic datasets.
  • Regulon: A group of genes regulated by the same transcriptional regulator, as defined by literature. iModulons are often nearly identical to regulons, but may also be subsets or combinations of regulons.
  • Gene weights: Each iModulon contains a weighting for each of its constituent genes. Genes with large weightings are more sensitive to changes in the underlying regulator’s activity than genes with small weightings. Genes can also have negative weightings, indicating a tradeoff between those genes and their positive counterparts.
  • iModulon Activity: Analogous to gene expression, iModulon activity represents how much of the iModulon genes are present under a given condition. Input data is normalized so that the base condition always has activity of zero. The units are the same as the initial dataset, but they result from matrix multiplication which makes them dependent on the gene weight distribution.
  • Independence: The underlying assumption behind ICA is that each transcription factor has an independent effect across the genome. This means that merely knowing the targets of one regulator does not provide any information on the targets of another regulator. Unlike other matrix decomposition algorithms like PCA, ICA uses statistical independence to define the iModulons it finds. This means that iModulons are not always orthogonal to one another.
  • Linear Additivity: iModulons obey matrix multiplication rules. A gene can be in more than one iModulon; when this happens, the action of both iModulons add together to determine gene expression, in a manner proportional to the gene weights.
  • Reconstruction: The iModulon matrices “decompose” the transcriptomic matrix. This means we can reconstruct the initial data using the iModulons, and compare them. In our original paper on this topic, the iModulons accounted for 76% of the variance in the original data. The genes in iModulons are the most important ones for explaining what is happening in the original data, and everything else only counts for 24%.
  • PRECISE: Precision RNA-seq Expression Compendium for Independent Signal Extraction, typically followed by the number of included samples. This is the name we use for datasets that were generated in full or part by our lab.
  • Modulome: The set of all computable iModulons from available data, and the name of our project to download publicly available data and analyze it with our pipeline. When a dataset is a combination of samples from other labs, we name it after this project (e.g. M. tuberculosis Modulome).
Where does ICA come from?

ICA was originally developed in the 1980s to solve the blind source separation problem, also known as the cocktail party problem. Imagine you place microphones around a crowded, noisy room. Each microphone would pick up different combinations of each speaker. If we apply ICA to the resultant set of recordings, we can identify the original source signals (M) without any other information. In addition, ICA infers the volume of each source in each microphone-measured signal (A).

Similarly, a transcriptomic dataset acts like microphones into the cell, measuring the combined effects of different transcriptional regulators with various condition-specific activities. The regulators/iModulons are behaving independently in the cell, the same way that the people in the room behave independently.

Examples of iModulons
  • glpR: As discussed on this page, glpR regulates the import and catabolism of glycerol, and it is active when glycerol is present.
  • Leu/Ile: This iModulon is regulated by both leucine-tRNA attenuation and isoleucine-tRNA attenuation. It contains genes for producing the branched chain amino acids, and it is active when they are needed and inactive when they are present.
  • SoxS: This iModulon regulates the response to a type of stress (oxidative stress).
  • FlhDC: This iModulon encodes flagella assembly. If it is active, the cell is likely to be motile. If not, the cell is probably stationary.
  • Fur-KO: Not all iModulons represent transcription factors. They can also capture genomic alterations in the dataset. Here, the fur gene was knocked out, and an iModulon captured the change to the transcriptome that resulted.
Uses of iModulons
What is a regulon, and how is it different?
  • Regulons are the closest existing concept to an iModulon. They are groups of genes known to be co-regulated by a given transcription factor based mostly on the location of known binding sites.
  • The identification of binding sites is a costly and difficult experimental procedure, and it often doesn’t capture the full picture since promoter binding is complicated and condition-dependent.
  • By matching iModulons to regulons (we say the iModulon is enriched for the given regulon), we can easily learn what likely regulates the iModulon. We can also look at the differences between regulons and iModulons to identify gaps in the field’s current knowledge. MetJ is one example, in which we showed that the extra iModulon genes were in fact regulated by MetJ and the genes the iModulon missed did not have MetJ binding sites.
  • The strength of an enrichment is quantified by precision and recall. If both precision and recall are high, then the iModulon has captured a regulon that is well understood by the existing literature.
  • Precision (or iModulon Recall) is the fraction of iModulon genes that are known to be in the regulon. If precision is low, the iModulon may contain extra genes that are unexpectedly co-regulated with the regulon.
  • Recall (or Regulon Recall) is the fraction of regulon genes that are in the iModulon. If recall is low, the iModulon contains a subset of the regulon, which may be because there are additional nuances to the regulation or that the iModulon genes respond the strongest to the given regulator.
MetJ Example

Precision = 11/17 = 64.7%

Recall = 11/15 = 73.3%

Datasets & Code

iModulon structures are computed from datasets, so the quality and breadth of the data is extremely important.For our original analysis, we developed PRECISE-278 (Formerly PRECISE 1), the Precision RNA-seq Expression Compendium for Independent Signal Extraction with 278 diverse samples from E. coli K-12. We have also developed PRECISE datasets in other organisms, such as S. aureus.

One of the strengths of ICA is that it requires only transcriptomic data, which means we can also re-use existing, publicly available data. We analyzed a single-lab microarray dataset on B. subtilis and showed that different datasets and transcriptomic technologies generally return similar iModulons.

Next, we sought to apply this approach across the evolutionary tree of prokaryotes. We scraped the Sequence Read Archive for datasets from its most popular prokaryotic strains, and combined all high quality data for analysis. Since this works towards the goal of finding the set of all computable iModulons, we named these projects “Modulome”. iModulonDB rapidly expanded in its first two years thanks to this project. See our home page for the list of all organisms we have analyzed so far.

What Makes a Good Dataset?
  • High quality: We use rigorous quality control to ensure that the original sequencing reads are not degraded or contaminated, that they align well to the genome of the organism, and that samples collected from the same experimental conditions have highly correlated values.
  • Consistent underlying TRN: Datasets are mostly strain-specific. Though we often include mutants from adaptive laboratory evolution studies or closely related strains, we don’t analyze distantly related organisms in the same iModulon decomposition. Doing so might include differences in the underlying TRN, which would muddy the gene-iModulon relationships. When small strain differences are present in the dataset, we typically observe an iModulon which captures the difference between the strains.
  • Large number of unique conditions: We suggest that a dataset include at least 100 different conditions which should include various media compositions, stress conditions, and any experiments of particular interest. If there are too few conditions or they are all too similar, then ICA will recover a small number of iModulons which will mostly contain many genes each, representing combined effects of many regulators. As more samples are added, the large iModulons split and resolve into more biologically accurate individual signals.
  • Minimal batch effects: Data generated from a single protocol can be normalized to one reference condition (for instance, E. coli PRECISE, which was all generated by our group). When we download data from multiple labs, we normalize each project’s data to its own reference condition. This will remove many batch effects such that ICA can capture the signals underlying all changes from reference, not the changes based on batch. However, if there are a few batch effects remaining in the data, ICA will also separate them into their own technical iModulons.

Using this Site

The purpose of this site is to share the powerful top-down approach of ICA with other systems biologists and microbiologists. We hope that searching for the genes and functions relevant to your research will point you toward iModulons that expand your understanding of which genes are most important to your application. We are currently working on decomposing additional datasets to compute transcriptional regulatory networks across many organisms, which will advance our knowledge significantly in the age of big data.

To use this site, select your favorite organism from the list on our home page. This will take you to a dataset page, which contains a list of the iModulons we have computed and characterized, as well as the publication in which we describe the set. Click on a row in the iModulon table to see its dashboard, where you can learn about its gene members, activity, and regulator enrichments.

Alternatively, select 'Gene Search' from the dataset page and type in your genes of interest. This will bring you to a similar dashboard, listing the most relevant iModulons for your gene. Note that some genes are removed prior to running ICA if they are never expressed or shown to be extremely noisy within conditions; if that is the case, your gene will not show up in our search.

For a description of each of the figures shown on the iModulon dashboards hover over the various components of the example “MalT” iModulon below:

Name and Description

Here, the iModulon name is given in large font. Below, several descriptors are given, including the biological function and category of iModulon. If the iModulon is found to map to a known regulator, then the "Regulated by" descriptor will be followed by the regulator name. If available, the regulator name will appear as a link to the appropriate database (e.g. RegulonDB). Other statistics, such as the Precision, Recall, and Explained Variance are also shown.

Gene Table

The gene table lists the genes in an iModulon. Clicking a row will take you to the gene page for that gene. This table is scrollable in both directions. Clicking the arrows in the header sorts the contents by the given feature, and right clicking on the header allows columns to be moved to the right end or hidden. This table is also downloadable from the "Download" dropdown menu in the site header.

  • Gene locus tag
  • (Mi): ICA-determined gene weight
  • Name: Gene Name
  • Regulated by transcription factor (or other regulator): Green checks indicate that the relationship between the gene and the iModulon’s regulator is known in other databases or literature.
  • Product: Description of gene product from other databases
  • Operon: If available, genes in the same operon
  • Regulators: List of known regulators for this gene


Gene Weight Histogram

For each statistically-determined signal, each gene has a "weight" that represents its importance towards the signal. Genes with weights that occur above a determined threshold (outside the vertical lines) are considered to be a part of the iModulon. Note that the y-axis has a logarithmic scale. Hover over the bars to see the associated genes. If the iModulon has a regulator enrichment, the genes in the regulon will be shown in color. Click the elements in the legend to hide or show the associated bars.

Gene Weight Scatter Plot

Similar to the gene histogram, the gene weight scatter plot shows the weight of each gene towards the signal. In this figure, the gene weights are plotted against the gene start site. They are colored by category. Again, genes outside the horizontal lines are in the iModulon – click on them to access their gene pages. Gene names, values, and categories can be displayed by hovering over each point.


Activity Bar Graph

The activity bar graph shows the relative activity level of the iModulon across all the experimental samples included in the dataset. The plot is divided by the source study for the dataset, and clicking a bar will take you to the associated publication. The black points represent each biological replicate for the sample, and the blue bars represent the averaged activity from the biological replicates. Hovering over the data shows the sample name, the activity value, and some associated metadata. The menu in the top right of the figure includes additional options to download the figure or underlying data. The wrench icon allows you to see all the metadata we have for these samples; metadata with a checkmark will be displayed when you hover over a given bar. Click the ink button to color the samples in the bar by that metadata. For example, clicking the pH ink will color each sample by pH to easily reveal which samples are under acid or base stress.


iModulon and Regulon Venn Diagram

If the iModulon is mapped to a regulator, the venn diagram shows the overlap between the genes in the iModulon and the literature-derived regulon. On the dashboard page, you can hover over each part of the venn diagram to see the number of genes and gene names associated with each group in the diagram.

Correlation with Regulator Expression

The correlation scatter plot appears if the iModulon can be mapped to a transcription factor or sigma factor. The plot shows the relationship between the iModulon activity level and the expression of the regulator across conditions. There are three major relationships: linear correlation, broken linear correlation (shown here), and uncorrelated. Linear or broken linear correlations usually indicate that the regulator is in the iModulon or lacks post-transcriptional regulation, while uncorrelated regulator expression plots indicate that the iModulon responds to post-transcriptional regulation (such as ligand binding).


Contact Us

For questions, comments, feedback, or to collaborate with us, please send an email to Kevin Rychel (imodulondb@ucsd.edu).

For more information on the Systems Biology Research Group (SBRG) at the University of California, San Diego, please see our website here.