Skip to content
PDF

Lesson 9: Differential Expression Analysis with iDEP

Learning Objectives

By the end of this lesson, learners should be able to:

  • upload an RNA-Seq expression matrix and sample design into iDEP;
  • run preprocessing, QC, and differential expression analysis in iDEP;
  • interpret PCA, heatmap, volcano plot, MA plot, and DEG table outputs;
  • explain what the selected contrast means;
  • export results and identify settings needed for reproducibility.

Introduction to iDEP

iDEP stands for Integrated Differential Expression and Pathway analysis. It is a web application for interactive RNA-Seq analysis that brings together data upload, preprocessing, visualization, differential expression, gene-set enrichment, pathway analysis, and reproducible output in one interface.

For this module, iDEP is useful because it lets learners see the analysis workflow without writing R code first. The goal is not to hide the statistics, but to make the sequence of decisions visible: upload the matrix, check the data, define the comparison, run a model, inspect the DEG output, and then ask pathway-level questions.

iDEP RNA-Seq workflow diagram

Resources for using iDEP:

Helpful Things to Know About iDEP:

  • if the analysis hangs at any point, try refreshing the page and starting over. You will need to start again from the "Load Data" tab. While annoying, it shouldn't take too long to get back to the same point.

Get Started with HPC OnDemand

If you are following along with this lesson, go ahead and open a browser to the NIH HPC OnDemand portal: https://hpcondemand.nih.gov/ and log in with your NIH credentials. Then open an iDEP session using the instructions outlined in Lesson 8.

NIH HPC OnDemand Student Accounts

If you are using one of the available student accounts, you will need to navigate to https://hpcclass.cit.nih.gov/. There are a limited number of student accounts available, so please be considerate of other students. If you are unable to access the student accounts, you can still follow along with the lesson using a personal Biowulf account of the public iDEP server. New features and updates may be available on the public server that are not yet available on the Biowulf iDEP installation. For a similar experience, you can select v2.01 from the public iDEP server homepage.

Get the Files

In Lesson 1, we downloaded the primary RENEE output file RSEM.genes.expected_count.all_samples.txt. For this iDEP demo, we will use a modified version of that file ready for import rsem_modified.txt.

More about RSEM.genes.expected_count.all_samples.txt

This matrix comes from RSEM's own per-sample rollup (transcript-level counts summed to genes), not from tximport. That's fine for most analyses, but it means the matrix carries no per-sample transcript-length correction. Gene-level counting implicitly assumes each gene's effective transcript length is constant across samples; if isoform usage shifts between conditions, that assumption breaks, since a sample using a longer isoform of a gene will generate more reads at the same expression level. tximport uses transcript-level estimates to compute a per-sample, length-weighted offset that corrects for this (Soneson, Love, and Robinson 2015). If your samples/conditions are unlikely to involve major isoform-usage shifts, RENEE's gene-level matrix is a reasonable, standard input for DESeq2/edgeR/limma-voom as-is.

Reference: Soneson C, Love MI, Robinson MD. Differential analyses for RNA-seq: transcript-level estimates improve gene-level inferences. F1000Research. 2015;4:1521. https://doi.org/10.12688/f1000research.7563.1

Sample Names and Design File

If you look at our modified count matrix, the sample names are: hcc1395_normal_rep1, hcc1395_normal_rep2, hcc1395_normal_rep3, hcc1395_tumor_rep1, hcc1395_tumor_rep2, and hcc1395_tumor_rep3.

iDEP uses the sample names to define the sample groups. The rep number should be placed at the end, with the condition preceding it. With simple experimental designs (e.g., two groups, no batch effects, etc.), an experimental design file is optional. See the iDEP documentation for specifics on the sample IDs and design file format: https://idepsite.wordpress.com/data-format/.

Continuous Variables / Covariates

There are seemingly no options or documented examples in iDEP for non-factorial (continuous) designs. The experimental design interface appears to be built around factor-based columns. However, all three major DE tools discussed in Lesson 8 (DESeq2, edgeR, and limma-voom) can accept numeric covariates directly in their design formulas or model matrices. Trainees wanting more flexible designs will likely need to move to R for that work. See the Bioconductor Support threads below (and others not listed) for more discussion on incorporating continuous covariates in DESeq2 and limma-voom.

Further reading (Bioconductor Support threads):

Consider consulting with a statistician when modeling complex experimental designs, especially if you have continuous covariates or multiple confounders. iDEP is a great tool for simple designs, but it does not expose the full flexibility of the underlying DESeq2 or limma-voom workflows.

iDEP Orientation

In version 2.01, iDEP has eleven primary tabs. Latest versions of iDEP have a cleaner UI with fewer tabs, but the underlying workflow is the same. The following table summarizes the purpose of each tab.

Tab Teaching purpose
Load Data Upload expression matrix, fold changes, design matrix, or gene choose species, choose data type
Pre-process Filter low-expression genes, transform data, inspect processed matrix, examine useful QC plots
Clustering / PCA Explore sample and gene structure before formal testing
DEG Define design and run differential expression models
DEG2 Inspect genes, heatmaps, volcano plots, MA plots, and DEG enrichment
Pathway Run pathway analysis methods

There are two additional tabs: Bicluster and Network, which require larger sample sizes and are beyond the scope of this lesson.

iDEP includes many opportunities to download data, plots, and R code for reproducibility..

Upload the Data

Demo script:

  1. Choose species: Homo sapiens.
  2. Select Data type - In this case we are using the "Read counts data" as this will provide the most robust differential expression analysis.
  3. Upload rsem_modified.txt and define the experimental design.
  4. Consider including an experiemental design file if you have one. For this demo, we are not including a design file. If you do include a design file, the sample names in the design file must match the sample names in the count matrix.
  5. Modify global settings if needed. This is your chance to include some customizations like plot colors, themes, and ID types.

Gene ID Mapping

iDEP can map gene IDs to a common set of identifiers for each species. This is useful if your input data uses gene symbols, Entrez IDs, or other identifiers. For this demo, we are using Ensembl gene IDs. Note, for version 2.01, if you choose "Do not convert gene IDs", iDEP will not attempt to map gene symbols for downstream plots.

Preprocess the Data

The pre-processing step is important for filtering and transformation prior to QC and exploratory data analysis. iDEP provides a number of options for filtering and transformation. The default settings are usually reasonable, but you can adjust them if needed.

Filtering

Before differential expression analysis, iDEP filters out lowly-expressed genes, which add noise without adding biological signal. iDEP uses CPM-based filtering for count data. CPM is calculated by scaling each gene's raw count by that sample's total library size:

CPM = (raw count / total library size) * 1,000,000

A common rule is to keep genes that pass a minimum CPM threshold (CPM > 0.5) in at least one or more samples.

Why CPM?

A fixed cutoff like "10 reads" treats every sample the same, even if some were sequenced much more deeply than others, making the filter too lenient for shallow samples and too strict for deep ones. CPM adjusts for library size first, so the threshold reflects the same relative expression level regardless of sequencing depth. This makes it a depth-aware filter.

The "n libraries" setting controls how many samples must clear the CPM threshold. A common practice is to set this to match your number of replicates per group, so a gene isn't kept based on one noisy sample alone.

Transformation

Before clustering or PCA, count data needs to be transformed to stabilize variance across the range of expression levels. This is to avoid genes with the highest counts dominating the analysis. iDEP offers three options:

  • edgeR-style log2(CPM + c) (default): log2 transformation with a small pseudo-count (c=1–10, default c=4) added to avoid taking log(0). Fast and works well in most cases — a good default for beginners.
  • VST (variance stabilizing transform): fast even with many samples; applies a strong, uniform transformation across expression levels. Best when library sizes are fairly similar across samples.
  • rlog (regularized log): more robust when library sizes vary a lot between samples, since it shrinks low-count genes more carefully. Slower than VST, so only recommended for fewer than 10 samples.

Rule of thumb: many samples or similar library sizes → VST; fewer samples and/or uneven library sizes → rlog.

A few practical notes:. - Transformed data is used for exploratory analysis (clustering, PCA) and for limma-trend DEG analysis. DESeq2 and limma-voom instead use the raw counts directly.
- If library sizes vary more than ~3-fold between samples, limma-trend isn't recommended, as this method works best for samples with similar sequencing depths.
- iDEP checks for this automatically, flagging a warning if sequencing depth differs significantly between groups, since this can confound the analysis.

Filtering and Transformation Summary

Following filtering and transformation, we will receive a summary of what was filtered: "1453 genes in 6 samples. 627 genes passed filter, 605 were converted to Ensembl gene IDs in our database. The remaining 22 genes were kept in the data using original IDs."

QC and Exploratory Analysis

After transformation, iDEP provides several diagnostic plots to help you verify the transformation worked well and to explore your dataset. Nicely, we can easily compare transformation methods by switching between them in the UI.

Warning

On heavily sub-setted or very small gene sets (like this chr22 practice dataset), VST's dispersion-trend fitting step can run very slowly or stall, since it's designed to fit trends across genome-wide data. If VST hangs, started log or rlog are reliable alternatives for small datasets like this one.

The following plots are included here:

  1. Barplot of library sizes
  2. Boxplot of transformed expression distributions
  3. Density plot of transformed expression distributions
  4. Scatterplots of pairwise sample correlations
  5. Dispersion plot of transformed expression distributions
  6. QC plot with the number of genes by type
  7. Gene plot comparing gene expression by condition or sample

Plots 2-5 are about verifying the transformation worked before moving on to downstream clustering and PCA. Plots 6-7 are more about exploring whether the data makes sense biologically.

Barplot of library sizes

Are samples similarly sequenced? Do any samples have unusually small or large libraries?

iDEP checks whether sequencing depth (library size) differs significantly between your comparison groups, using an ANOVA test (flagged if P < 0.01). It also reports the ratio of max/min total counts across groups, with <1.5 generally considered acceptable.

We received "Warning! Sequencing depth bias detected. Total read counts are significantly different among sample groups (p= 2.10e-07 ) based on ANOVA. Total read counts max/min = 1.23."

This warning is a prompt to check whether depth and biology are entangled, not an automatic sign that something is wrong. Stay under a max/min ratio of 1.5, and use your knowledge of the samples to judge whether it's worth acting on. Not that if depth varies more than ~3-fold across samples, avoid limma-trend and use DESeq2 or limma-voom instead, since they handle depth differences more robustly.

Barplot of library sizes

Small dataset for teaching

The HCC1395 dataset is a small, pre-filtered subset of a larger RNA-seq experiment. It is intended for teaching purposes only. The small size allows for fast runtimes in iDEP, but it does not represent the full complexity of a real RNA-seq experiment. In practice, you would typically work with larger datasets with more replicates and more genes.

Boxplot and Density plots of transformed expression distributions

Do transformed expression distributions look comparable?

The boxplot shows the spread (median, IQR, range) of expression per sample, while the desnity plot shows the shape of each sample's distribution. For the boxplot, you should look for boxes and medians aligned across samples, indicating consistent normalization. For the density plot, look for overlapping curves across samples, indicating similar distributions. A bimodal shape (one peak of low/noise genes, one peak of expressed genes) is typical and expected for RNA-seq data.

Boxplot of transformed expression distributions

Density plot of transformed expression distributions

Scatterplots of pairwise sample correlations

Do technical or biological replicates resemble each other?

These scatter plots compare transformed expression between two samples directly. You can compare replicates within a condition and replicates between conditions. You should see tight clustering along the diagonal and a high correlation (R close to 1) between replicates within a condition, indicating good reproducibility between replicates.

Scatterplots of pairwise sample correlations

We can also see here how the rlog transformation has stabilized variance across the range of expression levels, as the points are more tightly clustered along the diagonal compared to the log2(CPM + c) transformation. Compare this to the idep documentation for more examples of how the different transformations affect the scatter plots.

Mean vs standard deviation plot of transformed expression distributions

Did the transformation successfully stabilized variance across expression levels?

This dispersion plot can also provide information on how well the transformation stabilized variance across expression levels. Ideally, we would like to see a relatively flat trend since transformation methods like VST and rlog aim to reduce the relationship between mean expression and variance (making the data more homoskedastic, or having consistent variance across the mean, rather than heteroskedastic, where variance changes with expression level). Some residual trend is normal; no transformation removes it completely.

Mean vs standard deviation plot of transformed expression distributions

Read more on this here.

QC plot with the number of genes by type

Are the expected gene types present?

This is basically an annotation summary of your filtered gene set by type (protein-coding, lncRNA, pseudogene, etc.), based on iDEP's Ensembl-derived annotation. We want to make sure the composition matches our expectations. We should see more coding genes than non-coding genes, and a reasonable number of lncRNAs and pseudogenes. If the composition is unexpected, it may indicate a problem with the input data or filtering.

QC plot with the number of genes by type

Gene plot comparing gene expression by condition or sample: Are the expected genes expressed?

Shows normalized expression for specific genes you select, split by group or sample with replicate points overlaid. Useful for checking known marker genes against expectations, or for visually confirming genes that came up as significant in your DEG results.

Gene plot comparing gene expression by condition or sample

Clustering and Heatmap

Hierarchical clustering of samples and genes.

Do samples cluster as expected? Are genes grouped into coherent patterns?

The Clustering tab gives you a visual overview of your dataset through hierarchical clustering of both samples and genes, allowing further exploratory data analysis. Rather than jumping straight into formal statistics, this tab lets you eyeball the overall structure in your data first. While this step will not tell you which genes are significant, it can catch problems that would otherwise go unnoticed for a long time: sample mix ups, labeling errors, or contamination. The heatmap will let you see whether your samples group together as expected, and whether the genes you selected for clustering show coherent patterns.

By default, iDEP identifies the genes with the greatest variability across your samples (typically the top 2,000, ranked by standard deviation on the transformed data) and clusters using those. Genes that barely change across any sample carry little information for distinguishing groups, so they are excluded from this view. Expression values are also centered per gene, meaning the colors you see represent whether a sample is above or below that gene's own average, not its absolute expression level. Clustering itself relies on correlation between samples or genes, so two samples with similar expression patterns end up placed near each other in the dendrogram regardless of overall magnitude. Importantly, your experimental group labels play no role in how the clustering is calculated. They only appear afterward as a color strip for reference. Read more in the docs.

The Gene SD Distribution can be used to select the number of genes to include in the heatmap. The default is 2,000, but you can adjust this number to include more or fewer genes. The heatmap will update automatically when you change this setting. You want to shoot for the right skewed tail, which includes the genes with the most variation across samples.

Otherwise, the heatmap uses sensible defaults including Pearson for the distance metric and complete linkage for the clustering method. You can change these settings if you want to explore different clustering methods, but only if you have an understanding of what those methods do and how they affect the results.

Hierarchical clustering of samples and genes

SD distribution of genes

K-means clustering of genes

The K-means clustering method is an alternative to hierarchical clustering. It partitions the genes into a pre-specified number of clusters (k) based on their expression patterns across samples. The user can choose the number of clusters, and iDEP will assign each gene to one of these clusters. This method is useful for identifying groups of genes that share similar expression profiles, which may indicate co-regulation or shared biological functions, and iDEP will perform enrichment analysis on each cluster to identify over-represented pathways or gene sets. Read more in the docs.

This analysis is beyond the scope of this lesson, but you can explore it on your own if you are interested. You can learn more about why this method is useful and how to interpret the results in the iDEP documentation and in this chapter.

Clustering Methods

If you would like a deeper understanding of clustering methods, check out this ABCS Training on clustering: https://bioinfo-abcc.ncifcrf.gov/training/event/introduction-to-clustering-building-549-executive-board-room-nci-frederick-1103251200.

PCA

PCA allows us to explore the overall structure of our dataset and see whether samples cluster as expected. PCA reduces the dimensionality of the data by finding the directions (principal components) that capture the most variance in the dataset. The first principal component (PC1) captures the most variance, followed by PC2, and so on. By plotting the samples in this reduced space, we can visualize how they relate to each other based on their expression profiles.

PCA plot

PCAtools provides us with some additional information including the PCA loadings and a scree plot. The PCA loadings tell us which genes contribute the most to each principal component, while the scree plot shows us how much variance is explained by each principal component.

MDS is a non-linear method available alongside PCA. It can serve as a useful cross-check against PCA, since a fairly different mathematical approach that still shows similar sample groupings adds confidence that the pattern is real. iDEP also offers t-SNE as another non-linear projection option, though it is not covered in the PCA documentation section itself. You can learn more about various dimensionality reduction methods in this ABCS training.

What to look for in PCA and clustering?

  • If Norm lanes cluster together and Tumor lanes cluster together, the global expression pattern supports the planned comparison.
  • If a replicate is far from its group, pause before interpreting DEG results. Discuss sample swap, batch effect, low quality, or biological heterogeneity.
Batch Correction in RNA-Seq

Batch Correction in RNA-Seq

Batch effects are technical differences that can look like biology. Common batch variables include library preparation date, sequencing run, lane, technician, site, extraction batch, or patient/donor pairing.

We can address batch effects in two ways:

  • Adjusting the statistical model: include a known batch variable in the DEG model, such as ~ Batch + Treatment. This is generally preferred for differential expression because the raw counts still go into DESeq2, edgeR, or limma-voom, and the model estimates the treatment effect while accounting for batch.
  • Creating a corrected expression matrix: remove or regress out batch signal from transformed/log expression values for visualization, clustering, PCA, or downstream exploratory work. These corrected matrices should be used cautiously and are usually not the input for count-based DEG testing.

In iDEP: known batch variables can be added to the design file and included as block factors in the Stats tab (e.g., ~ Batch + Treatment). For methods like ComBat, ComBat_seq, removeBatchEffect, or RUVSeq, export the iDEP results/R code and continue in R.

Resources:

  • iDEP Stats documentation on block factors and batch variables: https://bioinformatics.sdstate.edu/idep/
  • DESeq2 vignette, design formulas and transformations: https://www.bioconductor.org/packages/release/bioc/vignettes/DESeq2/inst/doc/DESeq2.html
  • limma removeBatchEffect() documentation: https://rdrr.io/bioc/limma/man/removeBatchEffect.html
  • sva Bioconductor package, including surrogate variables and ComBat: https://www.bioconductor.org/packages/release/bioc/html/sva.html
  • RUVSeq vignette: https://bioconductor.org/packages/release/bioc/vignettes/RUVSeq/inst/doc/RUVSeq.html

Run Differential Expression in DGE1

The DGE1 tab is where we define the comparison and run the differential expression analysis. iDEP supports three methods: DESeq2, limma-voom, and limma-trend (Read more here).

For this demo, we will use DESeq2, since we are working with a small sample size and a simple two group comparison. It is also the recommended option by the iDEP developers, and includes more options for additional variables within iDEP. While DESeq2 is slower than limma-voom and has been shown to be more conservative in some cases, it is generally considered a robust choice for small-sample RNA-seq experiments.

iDEP recommendations for method selection
  • DESeq2 (default): robust for most RNA-seq experiments and recommended whenever you have access to raw counts. Modelling counts directly gives the method full information about sequencing depth and dispersion.
  • limma-voom: useful for larger studies or when mean–variance trends need extra modeling.
  • limma-trend: recommended for already normalized expression data such as microarrays. Avoid it when library sizes differ by more than ~3×. - iDEP internal docs

Pay close attention to the output script

There may be things that you assume are happening in the background that are not. For example, iDEP's default DESeq2 script does not apply a separate shrinkage step to the fold change estimates themselves (via lfcShrink), so the log2 fold changes reported here are the direct maximum likelihood estimates, not shrunken values. The shrunken values are particularly useful for smaller sample sizes.

Also, as I have already mentioned, iDEP offers less flexibility for all methods than you would have in R. Only two factors are allowed for limma-voom, whereas more complex designs can be handled in R. If you are working with a more complex design, you will need to export the data and run the analysis in R. It is possible that newer versions of iDEP have added more flexibility, so check the documentation for the version you are using.

Experimental Design

Your view in the experimental design section will depend on your design file. Again, for this demo, we are using a simple two-group comparison with no batch effects, so we will only have one factor, Treatment, and one contrast, Tumor vs Norm.

Experimental design section

Setting Suggested value
Factor Treatment
Comparison Tumor-Norm or equivalent B-A contrast
Method DESeq2
FDR cutoff 0.05
Fold-change cutoff 2, equivalent to abs(log2FC) >= 1

Comparisons

Choosing between norm vs tumor or tumor vs norm comes down to how you want to think and communicate about direction, up in tumor versus up in normal tissue, whichever framing matches the biological question you're asking. If you are looking for genes activated by tumor progression, TUMOR vs. NORM (positive values = upregulated in tumor) is probably the more intuitive framing to present in a paper or figure, even though NORM vs. TUMOR is technically valid and just mirrored.

Other Options

The following options are optional and result in a smaller and more trustworthy set of DEGs:

Threshold-based Wald test changes DESeq2's significance test so it asks whether a gene's fold change exceeds a chosen cutoff, rather than just whether it differs from zero, building your effect size requirement directly into the p-value. Independent filtering of lower counts removes genes with unreliably low expression before multiple testing correction is applied, which avoids wasting statistical power.

You can find more about the differential expression test settings in iDEP here: https://idepsite.wordpress.com/degs/. To better understand the model set up and experimental design, especially for more complex designs, see this helpful doc from iDEP: https://rpubs.com/ge600/deseq2.

DEG Results Walkthrough

The DEG results are provied in the DEG1 tab along with the R Code that was used. You should download all reports at each step in the iDEP workflow to ensure reproducibility. You will also find Venn diagrams and UpSet plots for visualizing the overlap of DEGs across multiple comparisons. This is not as useful for our simple two-group comparison, but it is a nice feature for more complex designs.

The DEG2 tab shows the results for all comparisons across different plots: heatmaps, volcano plots, and scatter plots. It also provides enrichment results, which we will discuss more in Lesson 11. Unfortunately, the DEG2 tab does not provide the R code used to generate the plots, so the plots have to be recreated in R if you want to reproduce / customize them. You can find the R code used to generate these plots on Github: https://github.com/gexijin/idepGolem.

Data Export: DEG Visualizations

iDEP DOES provide the data and R code needed to recreate the DEG visualizations in newer versions of iDEP.

DEG Table

The output DEG table includes the following columns as well as the processed data. Note: the raw counts were used as input for the DESeq2 model, but the processed data includes the rlog transformed values for visualization and clustering.

Column Meaning
symbol Feature being tested
ensembl_ID Ensembl gene ID for the feature being tested
User_ID User-provided gene ID
log2 fold change for selected contrast Estimated direction and magnitude
adjPval Multiple-testing adjusted significance

DEG table

You can also download a list of up and down regulated genes based on your FDR and fold-change cutoffs and your contrasts. This is useful for downstream analysis, such as pathway enrichment or gene set enrichment analysis.


Interpreting the DEG Tab Plots

Heatmap

What it's for: Unlike a QC heatmap (which checks overall sample/replicate clustering), this heatmap visualizes your curated list of top DEGs, letting you confirm each hit looks consistent across replicates and spot genes with similar expression patterns. It's a visual companion to your results table, not a data quality check. You choose how many genes to show and whether to sort by fold change or FDR.

What you see here: Normal and tumor samples cluster cleanly into two groups, with genes split into "Down" and "Up" blocks. There is a distinct lack of documentation regarding this plot and how it was constructed. It seems likely that the values are mean-centered, but there is no dendrogram, so the clustering method is unclear.

You can subset the plot and hover over points to see the gene ID, value, and whether it is up or down regulated. You can also download the heatmap as a PDF, PNG, or SVG.

Heatmap of top differentially expressed genes


Volcano plot

What it's for: Highlights genes with large fold change and strong statistical support (log2FC vs. -log10 adjusted p-value). The y-axis uses -log10(p) so smaller p-values plot higher (more intuitive) and tiny p-values get spread out instead of crushed near zero. Labeling controls let you tag specific genes.

What you see here: Red = Up, green = Down, gray = None, for the current contrast. Direction follows the "B-A" baseline convention, so Tumor-Norm means that the Up-regulated points are associated with Tumor samples. We are looking for genes with large fold change and strong significance (top corners of the plot). You can also download the volcano plot as a PDF, PNG, or SVG.

Volcano plot of differentially expressed genes


MA plot

An MA plot shows fold change vs. average expression across conditions, which can be useful for catching intensity dependent artifacts (unreliable fold changes at low expression).

What you see here: Gray points form a funnel, wider at low expression, narrower at high expression, as expected. Significant genes (red/green) mostly sit at low to moderate expression, which is typical and not a red flag on its own.

When to use it: Great for quality control, after normalization, most points should center around M = 0 (the M axis is the y-axis), since most genes aren't differentially expressed. It also reveals systematic bias. If genes seem to be almost entirely upregulated in one condition with no biological reason to expect that, suspect a technical issue rather than biology.

Resources: Check out this detailed explanation from Biostatsquid: https://biostatsquid.com/how-to-interpret-ma-plots/.

MA plot of differentially expressed genes


Scatter plot

What it's for: Compares average expression between the two conditions in your contrast (NORM vs. TUMOR), so you can see directly which condition a gene is higher in, something the MA plot can't tell you on its own, since its x-axis combines both conditions.

What you see here: Points above the diagonal are up-regulated in TUMOR, points below are up-regulated in NORM. Genes sitting near one axis (e.g., NORM near 0, TUMOR high) suggest a gene that's essentially off in one condition and on in the other, distinct pattern worth flagging separately from genes that are simply higher in one group. It's also a useful sanity check for your top MA/volcano plot hits, confirming the underlying values make sense rather than being driven by a dropout in one condition.

Note on the docs: newer iDEP documentation describes this scatter plot as comparing fold changes between two contrasts (e.g., Drug-Control vs. Drug2-Control) to reveal shared responses across treatments, useful when you have multiple contrasts and want to see which genes respond similarly (or oppositely) to two different conditions. That view isn't what's shown here since this dataset only has one contrast, but is something to be aware of.

scatter plot of differentially expressed genes

Genome Tab

"The Genome tab shows where your fold-changes of genes along each chromosome. It also scans for genomic regions where many neighboring genes change together, highlighting potential co-regulation or shared copy-number events. The controls on the left let you choose the comparison, gene filters, and window settings used in these plots." - iDEP documentation: https://bioinformatics.sdstate.edu/idep/

Reproducibility Checklist

Lastly, before ending any analysis session, make sure to download all the relevant files and reports for reproducibility or keep a record of any important parameters or details not provided. This includes:

  • uploaded input file names;
  • species and ID type;
  • filtering settings;
  • transformation settings;
  • design factor and contrast;
  • DEG method;
  • FDR and fold-change thresholds;
  • DEG table;
  • key plots;
  • iDEP report and R code from the Stats tab when available.

Resources Used

  • iDEP main documentation site: https://idepsite.wordpress.com/
  • iDEP current web application and embedded documentation, verified June 8, 2026: https://bioinformatics.sdstate.edu/idep/
  • Ge SX, Son EW, Yao R. 2018. iDEP: an integrated web application for differential expression and pathway analysis of RNA-Seq data. BMC Bioinformatics. https://doi.org/10.1186/s12859-018-2486-6
  • DESeq2 Bioconductor package and vignette: https://bioconductor.org/packages/DESeq2/
  • Love MI, Huber W, Anders S. 2014. Moderated estimation of fold change and dispersion for RNA-seq data with DESeq2. Genome Biology. https://doi.org/10.1186/s13059-014-0550-8
  • limma Bioconductor package and user guide (covers both limma-trend and limma-voom): https://bioconductor.org/packages/limma/
  • Law CW, Chen Y, Shi W, Smyth GK. 2014. voom: precision weights unlock linear model analysis tools for RNA-seq read counts. Genome Biology. https://doi.org/10.1186/gb-2014-15-2-r29
  • RNA-seq analysis is easy as 1-2-3 with limma, Glimma and edgeR (limma-voom workflow vignette). Bioconductor. https://www.bioconductor.org/packages/devel/workflows/vignettes/RNAseq123/inst/doc/limmaWorkflow.html