From ee37d0d1343a36348a8667c424238dc2af82a580 Mon Sep 17 00:00:00 2001 From: drosofff Date: Tue, 6 Feb 2024 12:40:26 +0100 Subject: [PATCH] data manipulation on edgeR analysis --- .../28_1_manipulation_edgeR_data.md | 416 ++++++++++++++++++ ...data.md => 28_manipulation_DEseq2_data.md} | 35 +- docs/bulk_RNAseq-IOC/images/cluster.pdf | Bin 24101 -> 0 bytes docs/bulk_RNAseq-IOC/images/cluster.png | Bin 41757 -> 0 bytes docs/bulk_RNAseq-IOC/images/visualisation.png | Bin 0 -> 12749 bytes mkdocs.yml | 4 +- 6 files changed, 447 insertions(+), 8 deletions(-) create mode 100644 docs/bulk_RNAseq-IOC/28_1_manipulation_edgeR_data.md rename docs/bulk_RNAseq-IOC/{28_manipulation_DE_data.md => 28_manipulation_DEseq2_data.md} (93%) delete mode 100644 docs/bulk_RNAseq-IOC/images/cluster.pdf delete mode 100644 docs/bulk_RNAseq-IOC/images/cluster.png create mode 100644 docs/bulk_RNAseq-IOC/images/visualisation.png diff --git a/docs/bulk_RNAseq-IOC/28_1_manipulation_edgeR_data.md b/docs/bulk_RNAseq-IOC/28_1_manipulation_edgeR_data.md new file mode 100644 index 000000000..0ef2c03d7 --- /dev/null +++ b/docs/bulk_RNAseq-IOC/28_1_manipulation_edgeR_data.md @@ -0,0 +1,416 @@ +# Manipulation of edgeR data for visualisation and comparisons + +Now we would like to extract the most differentially expressed genes in the various +conditions, and then visualize them using an heatmap of the normalized counts for each +sample. + +## Extract the most differentially expressed genes (PRJNA630433 / edgeR) + +Basically, we navigate in the edgeR history of the PRJNA630433 use-case and we repeat a +edgeR run, asking in addition for a file containing the normalised counts, these are in +**log2 counts per million (logCPM)**. + +Note the difference with DESeq2 which instead return **rLog-Normalized counts**. Both +transformation give very similar results except for low counts that show more dispersion +with the logCPM approach (see an interesting comparison +[here](https://idepsite.wordpress.com/pre-process/){:target="_blank"}) + +??? info "![](images/tool_small.png){width="25" align="absbottom"} `edgeR` settings" + - Count Files or Matrix? + + --> Separate Count Files + - 1: Factor/Name + + --> Tissue + - 1: Factor/1: Group + + Note that there will be three Groups (ie factor levels) in this analysis: Dc, Mo and Oc. + + --> Oc + + - Counts file(s) + + --> select the data collection icon, then `15: Oc FeatureCounts counts` + - 2: Factor/2: Group + + --> Mo + + - Counts file(s) + + --> select the data collection icon, then `10: Mo FeatureCounts counts` + - 3: Factor level (you must click on :heavy_plus_sign: `Insert Group`) + + --> Dc + + - Counts file(s) + + --> select the data collection icon, then `5: Mo FeatureCounts counts` + - Use Gene Annotations? + + --> `No` + - Formula for linear model + + --> Leave empty + - Input contrasts manually or through a file + + --> `manually` + - 1: Constrast + + --> `Mo-Dc` + - 2: Constrast (click :heavy_plus_sign: `Insert Contrast`) + + --> `Oc-Dc` + - 3: Constrast (click :heavy_plus_sign: `Insert Contrast`) + + --> `Oc-Mo` + - Filter Low Counts + + --> No, leave folded + - Output options + + --> `Yes` to `Output Normalised Counts Table?` + - Advanced options + + --> Put `P-Value Adjusted Threshold` to 0.1 (to be consistent with DESeq settings) + + --> Leave other advanced options unchanged + - `Run Tool` + +:warning: This time, the normalized counts are returned as a supplementary dataset in the +collection `edgeR on data ... and others: Tables`. + +Indeed this is an issue to have a this collection with heterogenous datasets (3 DE tables + +1 normalized count tables, with different number of columns) since in the next step we are +going to apply a filter to these data. + +We thus will fix this issue immediately in three steps (a bit a Galaxy practice...) + +- [x] Use the tool ` Extract element identifiers of a list collection` and run it on the +collection `edgeR on data ... and others: Tables`. (Be careful to select the last +collection) This will return a single dataset with the names of the collections elements. +- [x] Deploy this dataset and click at its bottom to the visualisation icon + + ![](images/visualisation.png){width="300"} + + In the central panel that opens up, click the `Editor, Manually edit text`, remove the + last line ("edgeR_normcounts"), check that you have **4** line remaining (3 lines plus + one empty) and click the light blue button `export` (:warning: this button is not easy + to see depending on your screen settings). + +- [x] Now use the tool `Filter collection`, select the collection `edgeR on data ... and + others: Tables` as input collection, `Remove if identifiers are ABSENT from the file`, and + the manually edited dataset `Extract element identifiers on ..., and others (modified)`. +- [x] This will return 2 collections. Rename immediately the "(filtered)" collection as + `edgeR DE tables` and the (discarded) collection as `Log2CPM edgeR_normcounts`. :warning: + Note that this latter is a **collection** but with a single element... + + +Beside, `edgeR_normcounts.tsv` also show up as a html link in the dataset `edgeR on +data 4, data 3, and others: Report`, that download directly to your local computer if you +click it. + +:warning: Keep the 1-element collection `Log2CPM edgeR_normcounts` for latter, we will use +it for the clustered heatmap. + +## Generate top lists of EdgeR DE genes + +### Select genes with |log2FC > 2| and p-adj < 0.01 with ![](images/tool_small.png){width="30" align="absbottom"}`Filter data on any column using simple expressions` + +!!! info "![](images/tool_small.png){width="25" align="absbottom"} `Filter data on any column...` settings" + - Filter + + --> edgeR DE tables (:warning: this is a collection) + - With following condition + + --> `abs(c2) > 2 and c6 < 0.01` :warning: this expression is different from the one + used for DESeq2 tables because the column structure is different. + - Number of header lines to skip + + --> `1` (these tables have an added header !) + - Click the `Run Tool` button + +:warning: Rename the "filter on..." collection to `edgeR Top gene lists` + +### Compute a boolean value by row + +This is to determine whether genes in the lists are up or down-regulated + +!!! info "![](images/tool_small.png){width="25" align="absbottom"} `Compute on rows` settings" + - Input file + + --> `edgeR Top gene lists` (:warning: collection !) + - Input has a header line with column names? + + --> `Yes` + - 1: Expressions + - Add expression + + --> `c2 > 0` :warning: this expression is different from the one used for DESeq2 + tables + - Mode of the operation + + --> `Append` + - The new column name + + --> `Regulation` + - Avoid scientific notation in any newly computed columns + + --> `No` + - Click the `Run Tool` button + +:warning: Look at the effect of evaluating the expression `c2 > 0` in the new column +`expression` in the output datasets. + +### Transform `True` and `False` values to `up` and `down`, respectively + +!!! info "![](images/tool_small.png){width="25" align="absbottom"} `Column Regex Find And Replace` settings" + - Select cells from + + --> `Compute on collection 40 (or so)` + - using column + + --> `7` + - Check + + --> click the button :heavy_plus_sign:`Insert Check` + - Find Regex + + --> `False` + - Replacement + + --> `down` + - Check + + --> click another time the button :heavy_plus_sign:`Insert Check` + - Find Regex + + --> `True` + - Replacement + + --> `up` + - Click the `Run Tool` button + +:warning: rename the collection `Column Regex Find And Replace on collection 44` with +`top gene lists - oriented` + +### Split the lists in `up` and `down` regulated lists + +This will be performed through 2 successive runs of the +![](images/tool_small.png){width="25" align="absbottom"} tool `Select lines that match an +expression` + +!!! info "![](images/tool_small.png){width="25" align="absbottom"} `Select lines that match an expression` settings" + - Select lines from + + --> `top gene lists - oriented` + - that + + --> `matching` + - the pattern + + --> `\tup` (a tabulation immediately followed by the string *up*) + - Keep header line + + --> `Yes` + - Click the `Run Tool` button + +:warning: Immediately rename the collection `Select on collection...` to `edgeR top up-regulated +gene lists` + +Redo exactly the same operation with a single change in the setting of the +![](images/tool_small.png){width="25" align="absbottom"} tool `Select lines that match an +expression` + +??? info "![](images/tool_small.png){width="25" align="absbottom"} `Select lines that match an expression` settings" + - Select lines from + + --> `top gene lists - oriented` + - that + + --> `matching` + - the pattern + + --> `\tdown` (a tabulation immediately followed by the string *down*) + - Keep header line + + --> `Yes` + - Click the `Run Tool` button + +:warning: Rename the collection `Select on collection...` to `edgeR top down-regulated +gene lists` + +:warning: keep the last three generated collections for later comparison with edgeR and +limma tools + +## Plotting an heatmap of the most significantly de-regulated genes + +For this, we are going to collect and gather all significantly de-regulated genes in any of the +3 conditions, and to intersect (join operation) this list with the rLog normalized count +table precedently generated. + +### Use ![](images/tool_small.png){width="25" align="absbottom"}`Advanced cut` to select the list of deregulated genes in all three comparisons + +!!! info "![](images/tool_small.png){width="25" align="absbottom"} `advanced cut` settings" + - File to cut + + --> `edgeR Top gene lists` (this is a collection) + - Operation + + --> `Keep` + - Delimited by + + --> `Tab` + - Cut by + + --> `fields` + - List of Fields + + --> `Column 1` + - First line is a header line + - Click the `Run Tool` button + +:warning: Rename this collection of single column datasets `edgeR top genes names` +### Next we concatenate the three datasets of the previous collection in a single dataset + +We do that using the ![](images/tool_small.png){width="25" align="absbottom"} +`Concatenate multiple datasets tail-to-head while specifying how` tool + +!!! info "![](images/tool_small.png){width="25" align="absbottom"} `Concatenate multiple datasets tail-to-head while specifying how` settings" + - What type of data do you wish to concatenate? + + --> `Single datasets` + - Concatenate Datasets + + --> :warning: Click on the collection icon and select `edgeR top genes names` + - Include dataset names? + + --> `No` + - Number of lines to skip at the beginning of each concatenation: + + --> `1` + - Click the `Run Tool` button + +:warning: Rename the return single dataset as `edgeR Pooled top genes` + +### Next we extract *Uniques* gene names from the `Pooled top genes` dataset + +You probably agree that the same gene may be deregulated in the three pair-wise comparisons +which we have performed with DESeq2. + +Thus we need to eliminate the redundancy, using the tool +![](images/tool_small.png){width="25" align="absbottom"}`Unique +occurrences of each record`. + +!!! info "![](images/tool_small.png){width="25" align="absbottom"} `Unique occurrences of each record` settings" + - File to scan for unique values + + --> `edgeR Pooled top genes` + - Ignore differences in case when comparing + + --> `No` + - Column only contains numeric values + + --> `No` + - Advanced Options + + --> Leave as `Hide Advanced Options` + - Click the `Run Tool` button + +### Add a header the list of unique gene names associated we significant DE in any of the comparisons + +We do this with the tools `Add Header` + +!!! info "![](images/tool_small.png){width="25" align="absbottom"} `Add Header` settings" + - List of Column headers (comma delimited, e.g. C1,C2,...) + + --> `edgeR_All_DE_genes` + - Data File (tab-delimted) + + --> `Unique on data 7x...` + - Click the `Run Tool` button + +:warning: Rename the generated dataset `edgeR_All_DE_genes` + +### Intersection (join operation) between the list of unique gene name associated with DE and the rLog-Normalized counts file. + +This is the moment when we are going to use the single-element `Log2CPM edgeR_normcounts` +collection and intersect it (join operation) with the list of DE genes in all three condition. + +To do this, we are going to use the tool +![](images/tool_small.png){width="25" align="absbottom"}`Join two files` + +!!! info "![](images/tool_small.png){width="25" align="absbottom"} `Join two files` settings" + - 1st file + + --> click on the collection icon and select `log2CPM edgeR_normcounts` + - Column to use from 1st file + + --> `1` + - 2nd File + + --> `edgeR_All_DE_genes` + - Column to use from 2nd file + + --> `1` + - Output lines appearing in + + --> `Both 1st and 2nd files` + - First line is a header line + + --> `Yes` + - Ignore case + + --> `No` + - Value to put in unpaired (empty) fields + + --> `NA` + - Click the `Run Tool` button + +:warning: Rename the single-element output collection `edgeR Log2CPM Normalized counts of DE genes` + +### Plot a heatmap of the Log2CPM Normalized counts of edgeR DE genes in all three conditions + +We do this using the ![](images/tool_small.png){width="25" align="absbottom"}`Plot +heatmap with high number of rows` tool + +!!! info "![](images/tool_small.png){width="25" align="absbottom"} `Plot heatmap with high number of rows` settings" + - Input should have column headers - these will be the columns that are plotted + + --> `rLog-Normalized counts of DE genes` + - Data transformation + + --> `Plot the data as it is` + - Enable data clustering + + --> `Yes` + + - Clustering columns and rows + + --> `Cluster rows and not columns` + - Distance method + + --> `Euclidean` + + - Clustering method + + --> `Complete` + - Labeling columns and rows + + --> `Label columns and not rows` + + - Coloring groups + + --> `Blue to white to red` + - Data scaling + + --> `Scale my data by row` + - tweak plot height + + --> `35` + - tweak row label size + + --> `1` + - tweak line height + + --> `24` + - `Run Tool` diff --git a/docs/bulk_RNAseq-IOC/28_manipulation_DE_data.md b/docs/bulk_RNAseq-IOC/28_manipulation_DEseq2_data.md similarity index 93% rename from docs/bulk_RNAseq-IOC/28_manipulation_DE_data.md rename to docs/bulk_RNAseq-IOC/28_manipulation_DEseq2_data.md index 4a26cc167..55da68f43 100644 --- a/docs/bulk_RNAseq-IOC/28_manipulation_DE_data.md +++ b/docs/bulk_RNAseq-IOC/28_manipulation_DEseq2_data.md @@ -1,8 +1,8 @@ -# Manipulation of differential expression data for visualisation and comparisons +# Manipulation of DESeq2 data for visualisation and comparisons Now we would like to extract the most differentially expressed genes in the various -conditions, and then visualize them using an heatmap of the normalized counts or computed -z-score for each sample. +conditions, and then visualize them using an heatmap of the normalized counts for each +sample. We will proceed in several steps: @@ -13,8 +13,6 @@ We will proceed in several steps: given p-adjusted value (let's say p-adj < 0.01). We will keep these gene lists apart to build latter a venn diagram for comparison of the three tools. - [x] Plot heatmaps of normalized counts -- [x] Compute Z score of the normalized counts -- [x] Plot heatmaps of the Z score of the normalized counts ## Extract the most differentially expressed genes (PRJNA630433 / DESeq2) @@ -108,7 +106,28 @@ Replace` and `Filter data on any column using simple expressions` This is to determine whether genes in the lists are up or down-regulated - +!!! info "![](images/tool_small.png){width="25" align="absbottom"} `Compute on rows` settings" + - Input file + + --> `Top gene lists` (:warning: collection !) + - Input has a header line with column names? + + --> `Yes` + - 1: Expressions + - Add expression + + --> `c3 > 0` + - Mode of the operation + + --> `Append` + - The new column name + + --> `Regulation` + - Avoid scientific notation in any newly computed columns + + --> `No` + - Click the `Run Tool` button + :warning: Look at the effect of evaluating the expression `c3 > 0` in the new column `expression` in the output datasets. @@ -144,7 +163,7 @@ This is to determine whether genes in the lists are up or down-regulated :warning: rename the collection `Column Regex Find And Replace on collection 40` with `top gene lists - oriented` -### Split the list in `up` and `down` regulated lists +### Split the lists in `up` and `down` regulated lists This will be performed through 2 successive runs of the ![](images/tool_small.png){width="25" align="absbottom"} tool `Select lines that match an @@ -280,6 +299,8 @@ We do this with the tools `Add Header` --> `Unique on data 1xx...` - Click the `Run Tool` button +:warning: Rename the generated dataset `All_DE_genes` + ### Intersection (join operation) between the list of unique gene name associated with DE and the rLog-Normalized counts file. This is the moment when we are going to use the `rLog-Normalized counts file on data...` diff --git a/docs/bulk_RNAseq-IOC/images/cluster.pdf b/docs/bulk_RNAseq-IOC/images/cluster.pdf deleted file mode 100644 index 61becd86d78cc086f07de338c4a9c60b31e6a9f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24101 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 diff --git a/docs/bulk_RNAseq-IOC/images/cluster.png b/docs/bulk_RNAseq-IOC/images/cluster.png deleted file mode 100644 index 363426801d835787dbe9de8cbb8e459714c30fa0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41757 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�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ℑJ1VTtut`Fb#&X50ctDk0x{)bN2Ek!+LhRM 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 TvPS(X0}yz+`njxgN@xNA2luFx diff --git a/docs/bulk_RNAseq-IOC/images/visualisation.png b/docs/bulk_RNAseq-IOC/images/visualisation.png new file mode 100644 index 0000000000000000000000000000000000000000..5dfbe5e77d6f6156d352119b03e4dfd126ae5fa7 GIT binary patch literal 12749 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 sfA8J^%m! literal 0 HcmV?d00001 diff --git a/mkdocs.yml b/mkdocs.yml index bb4b0aaa4..51272d0c4 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -84,7 +84,9 @@ nav: - DESeq2: bulk_RNAseq-IOC/26_deseq2.md - edgeR: bulk_RNAseq-IOC/27_edgeR.md - limma: bulk_RNAseq-IOC/27_1_limma.md - - DE_manipulations: bulk_RNAseq-IOC/28_manipulation_DE_data.md + - DE_manipulations: + - DESeq2: bulk_RNAseq-IOC/28_manipulation_DEseq2_data.md + - edgeR: bulk_RNAseq-IOC/28_1_manipulation_edgeR_data.md - Volcano plot: bulk_RNAseq-IOC/29_volcano.md - Week 5: