AlexsLemonade / OpenPBTA-analysis

The analysis repository for the Open Pediatric Brain Tumor Atlas Project
Other
99 stars 66 forks source link

Updated analysis: Manuscript Figure 4 immune deconvolution panels #1230

Closed sjspielman closed 2 years ago

sjspielman commented 2 years ago

The manuscript Figure 4 panels C/D currently contain temporary heatmaps showing immune deconvolution results. These figures need to be formalized and integrated into the manuscript figures.

Who will complete the updated analysis?

@sjspielman

sjspielman commented 2 years ago

While going through the history of this module, I am not finding clear methods for normalization as it relates to heatmap visualization.

Previously, heatmaps were created but no normalization was performed. The only calculation was to take the mean of each group going into the heatmap. XCell itself does not contain any normalization of scores after they are calculated.

The XCell paper itself barely describes this for their heatmaps, and does not provide any code to reproduce. In their MS, "Average scores for nine cell types across 24 cancer types from TCGA (The Cancger Genome Atlas). Scores were normalized across rows." (sic)

Therefore, we should actually implement normalization when updating figures, either based on mean or median per row grouping in the heatmap.

sjspielman commented 2 years ago

Another note: 0's were removed from heatmaps before plotting, but AFTER means were calculated. This step will be removed as part of incorporating actual row-based normalization.

komalsrathi commented 2 years ago

Hi @sjspielman I am scaling by columns here https://github.com/AlexsLemonade/OpenPBTA-analysis/blob/master/analyses/immune-deconv/util/heatmap_by_histology.R#L48-L51 and https://github.com/AlexsLemonade/OpenPBTA-analysis/blob/master/analyses/immune-deconv/util/heatmap_by_molecular_subtype.R#L36-L39. The paper you have linked shows a heatmap with cell types on the y-axis and normalized by rows. I am plotting histologies/molecular subtype on the y-axis and cell types on the x-axis and hence normalizing/scaling by columns.

@jharenza My expertise on normalizing these scores is limited - hence used the scaling function in pheatmap assuming that should be sufficient. I would let @sjspielman take this on and improve the module.

sjspielman commented 2 years ago

Hi @komalsrathi, awesome I see the scale arg now! Fwiw, the method provided very little (no?) information provided on normalization schemes for this data, so the current idea (per chats with @jaclyn-taroni) is we'll likely go with z-scores. I'll keep moving it along! :)

sjspielman commented 2 years ago

Partially addressed with #1251. Closing in favor of #1271 which further updates figure 4.