Last updated: 2024-12-04

Checks: 7 0

Knit directory: mecfs-dge-analysis/

This reproducible R Markdown analysis was created with workflowr (version 1.7.1). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.


Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.

Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.

The command set.seed(20230618) was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.

Great job! Recording the operating system, R version, and package versions is critical for reproducibility.

Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.

Great job! Using relative paths to the files within your workflowr project makes it easier to run your code on other machines.

Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility.

The results in this page were generated with repository version 53f923b. See the Past versions tab to see a history of the changes made to the R Markdown and HTML files.

Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish or wflow_git_commit). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:


Ignored files:
    Ignored:    .DS_Store
    Ignored:    .Rhistory
    Ignored:    .Rproj.user/
    Ignored:    analysis/.DS_Store
    Ignored:    data/.DS_Store
    Ignored:    omnipathr-log/
    Ignored:    output/.DS_Store
    Ignored:    output/publication-analysis/.DS_Store
    Ignored:    output/publication-analysis/batch-correction-limma/.DS_Store
    Ignored:    output/publication-analysis/batch-correction-limma/plot-counts/spta1-genes-of-interest/
    Ignored:    output/spta1-analysis/.DS_Store
    Ignored:    output/spta1-analysis/batch-correction-limma/.DS_Store
    Ignored:    renv/.DS_Store
    Ignored:    renv/library/
    Ignored:    renv/staging/

Untracked files:
    Untracked:  output/all-samples-analysis/
    Untracked:  output/publication-analysis/batch-correction-limma/plot-counts/padj-05/
    Untracked:  output/publication-analysis/publication-analysis.RData
    Untracked:  output/spta1-analysis/batch-correction-limma/plot-counts/madd-genes-of-interest/faceted_madd_genes_of_interest_plot_counts.png
    Untracked:  output/spta1-analysis/batch-correction-limma/plot-counts/padj-05/CORO7-PAM16-plot-counts.png
    Untracked:  output/spta1-analysis/batch-correction-limma/plot-counts/padj-05/GOLGA8O-plot-counts.png
    Untracked:  output/spta1-analysis/batch-correction-limma/plot-counts/padj-05/KMO-plot-counts.png
    Untracked:  output/spta1-analysis/batch-correction-limma/plot-counts/padj-05/LRRC37A4P-plot-counts.png
    Untracked:  output/spta1-analysis/batch-correction-limma/plot-counts/padj-05/PDCD1-plot-counts.png
    Untracked:  output/spta1-analysis/batch-correction-limma/plot-counts/padj-05/PLAAT3-plot-counts.png
    Untracked:  output/spta1-analysis/batch-correction-limma/plot-counts/padj-05/PMS2P6-plot-counts.png
    Untracked:  output/spta1-analysis/batch-correction-limma/plot-counts/padj-05/RNF217-plot-counts.png
    Untracked:  output/spta1-analysis/batch-correction-limma/plot-counts/padj-05/SMG1P2-plot-counts.png
    Untracked:  output/spta1-analysis/batch-correction-limma/plot-counts/padj-05/TMEM184A-plot-counts.png
    Untracked:  output/spta1-analysis/batch-correction-limma/plot-counts/padj-05/TUBB4BP2-plot-counts.png
    Untracked:  output/spta1-analysis/batch-correction-limma/plot-counts/padj-05/TVP23C-CDRT4-plot-counts.png
    Untracked:  output/spta1-analysis/batch-correction-limma/plot-counts/padj-05/U2AF1-plot-counts.png
    Untracked:  output/spta1-analysis/batch-correction-limma/plot-counts/padj-05/faceted_significant_degs_plot_counts.png
    Untracked:  output/spta1-analysis/batch-correction-limma/plot-counts/spta1-genes-of-interest/
    Untracked:  output/spta1-analysis/genes-of-interest.png
    Untracked:  output/spta1-analysis/genes_of_interest_plot_counts_signals.csv
    Untracked:  output/spta1-analysis/significant_plot_counts_signals.csv
    Untracked:  output/spta1-analysis/spta1-condition-analysis.RData
    Untracked:  output/spta1-analysis/spta1_genes_of_interest.csv
    Untracked:  output/spta1-analysis/spta1_genes_of_interest_heatmap.png
    Untracked:  output/spta1-analysis/spta1_genes_of_interest_plot_counts_signals.csv

Unstaged changes:
    Modified:   analysis/all-condition-analysis.Rmd
    Modified:   code/helpers.R
    Modified:   output/publication-analysis/Supplemental Table 5. Significant Differentially Expressed Genes.csv
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/ACACB-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/ACADM-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/ACADVL-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/ADM2-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/ADORA2A-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/ADORA2B-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/ADRB2-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/AHSP-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/ATP1A1-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/CALCB-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/CCR5-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/CHRFAM7A-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/COL6A3-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/COMT-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/CPT1A-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/CPT1B-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/CPT1C-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/CUBN-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/CYTH2-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/DENND1A-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/DMXL2-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/ELOVL4-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/ENO3-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/EPB42-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/ETFB-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/FKBP5-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/G6PD-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/GABRB3-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/GIPR-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/GLYCTK-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/GPNMB-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/GYPA-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/GYPB-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/GYPE-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/HADHA-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/HEMGN-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/HSPA1A-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/HTR6-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/IDO1-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/IFNG-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/IL10-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/IL6-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/KEL-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/KLHL7-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/LMBRD1-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/MADD-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/MAPK1-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/MCCC1-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/MCCC2-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/MINPP1-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/MLYCD-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/MMAA-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/MMACHC-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/MYH9-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/NLRP3-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/NR3C1-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/NUP42-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/OXTR-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/P2RX7-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/PCK2-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/PGM1-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/POLG-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/PTPN22-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/RHAG-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/SLC12A3-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/SLC25A20-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/SLC4A1-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/SLC7A9-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/SMCR8-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/SPTA1-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/SPTB-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/SPTBN5-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/SURF1-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/SYT6-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/TACO1-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/TNF-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/TOMM7-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/UCP2-subsetted-plot-counts.png
    Deleted:    output/publication-analysis/batch-correction-limma/plot-counts/additional-genes-of-interest/VIPR2-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/ACACB-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/ACADM-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/ACADVL-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/ADM2-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/ADORA2A-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/ADORA2B-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/ADRB2-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/ATP1A1-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/CALCB-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/CCR5-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/CHRFAM7A-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/COL6A3-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/COMT-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/CPT1A-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/CPT1B-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/CPT1C-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/CUBN-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/CYTH2-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/DENND1A-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/DMXL2-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/ELOVL4-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/ENO3-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/ETFB-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/FKBP5-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/G6PD-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/GABRB3-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/GIPR-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/GLYCTK-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/GPNMB-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/HADHA-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/HSPA1A-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/HTR6-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/IDO1-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/IFNG-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/IL10-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/IL6-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/KLHL7-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/LMBRD1-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/MADD-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/MAPK1-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/MCCC1-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/MCCC2-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/MINPP1-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/MLYCD-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/MMAA-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/MMACHC-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/MYH9-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/NLRP3-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/NR3C1-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/NUP42-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/OXTR-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/P2RX7-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/PCK2-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/PGM1-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/POLG-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/PTPN22-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/SLC12A3-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/SLC25A20-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/SLC7A9-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/SMCR8-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/SURF1-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/SYT6-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/TACO1-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/TNF-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/TOMM7-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/UCP2-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/VIPR2-subsetted-plot-counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/faceted_genes_of_interest_plot_counts.png
    Modified:   output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest/genes_of_interest_heatmap.png
    Deleted:    output/publication-analysis/res_aff_vs_unaff_df_sub_genename_padj05_lfc1.csv
    Modified:   output/publication-analysis/res_aff_vs_unaff_significant_subsetted_mygene.csv
    Modified:   output/publication-analysis/subsetted-analysis-volcano-plot.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/ADRB2-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/ATP1A1-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/CCR5-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/CHRFAM7A-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/COL6A3-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/COMT-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/FKBP5-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/GPNMB-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/HSPA1A-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/IDO1-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/IFNG-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/IL10-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/IL6-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/KLHL7-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/MAPK1-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/MYH9-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/NLRP3-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/NR3C1-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/NUP42-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/OXTR-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/P2RX7-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/POLG-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/PTPN22-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/SLC12A3-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/SLC25A20-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/SLC7A9-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/TNF-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/TOMM7-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/UCP2-subsetted-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/genes-of-interest/faceted_genes_of_interest_plot_counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/madd-genes-of-interest/ADM2-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/madd-genes-of-interest/ADORA2A-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/madd-genes-of-interest/ADORA2B-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/madd-genes-of-interest/CALCB-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/madd-genes-of-interest/CYTH2-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/madd-genes-of-interest/DENND1A-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/madd-genes-of-interest/DMXL2-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/madd-genes-of-interest/GIPR-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/madd-genes-of-interest/HTR6-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/madd-genes-of-interest/MADD-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/madd-genes-of-interest/SMCR8-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/madd-genes-of-interest/VIPR2-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/ACACB-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/ACADM-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/ACADVL-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/CPT1A-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/CPT1B-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/CPT1C-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/CUBN-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/ELOVL4-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/ENO3-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/ETFB-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/G6PD-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/GLYCTK-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/HADHA-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/LMBRD1-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/MCCC1-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/MCCC2-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/MINPP1-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/MLYCD-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/MMAA-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/MMACHC-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/PCK2-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/PGM1-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/SURF1-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/TACO1-plot-counts.png
    Modified:   output/spta1-analysis/batch-correction-limma/plot-counts/mito-genes-of-interest/faceted_madd_genes_of_interest_plot_counts.png
    Deleted:    output/spta1-analysis/batch-correction-limma/plot-counts/slc4a1-genes-of-interest/AHSP-plot-counts.png
    Deleted:    output/spta1-analysis/batch-correction-limma/plot-counts/slc4a1-genes-of-interest/CHI3L1-plot-counts.png
    Deleted:    output/spta1-analysis/batch-correction-limma/plot-counts/slc4a1-genes-of-interest/EPB42-plot-counts.png
    Deleted:    output/spta1-analysis/batch-correction-limma/plot-counts/slc4a1-genes-of-interest/GYPA-plot-counts.png
    Deleted:    output/spta1-analysis/batch-correction-limma/plot-counts/slc4a1-genes-of-interest/GYPB-plot-counts.png
    Deleted:    output/spta1-analysis/batch-correction-limma/plot-counts/slc4a1-genes-of-interest/GYPE-plot-counts.png
    Deleted:    output/spta1-analysis/batch-correction-limma/plot-counts/slc4a1-genes-of-interest/HEMGN-plot-counts.png
    Deleted:    output/spta1-analysis/batch-correction-limma/plot-counts/slc4a1-genes-of-interest/KEL-plot-counts.png
    Deleted:    output/spta1-analysis/batch-correction-limma/plot-counts/slc4a1-genes-of-interest/RHAG-plot-counts.png
    Deleted:    output/spta1-analysis/batch-correction-limma/plot-counts/slc4a1-genes-of-interest/SLC4A1-plot-counts.png
    Deleted:    output/spta1-analysis/batch-correction-limma/plot-counts/slc4a1-genes-of-interest/SPTA1-plot-counts.png
    Deleted:    output/spta1-analysis/batch-correction-limma/plot-counts/slc4a1-genes-of-interest/SPTB-plot-counts.png
    Deleted:    output/spta1-analysis/batch-correction-limma/plot-counts/slc4a1-genes-of-interest/SPTBN5-plot-counts.png
    Deleted:    output/spta1-analysis/batch-correction-limma/plot-counts/slc4a1-genes-of-interest/faceted_slc4a1_genes_of_interest_plot_counts.png
    Modified:   output/spta1-analysis/res_spta1_vs_unaff_siggenes.csv
    Deleted:    output/spta1-analysis/slc4a1_genes_of_interest_heatmap.png
    Deleted:    output/spta1-analysis/slc4a1_genes_of_interest_plot_counts_signals.csv
    Modified:   output/spta1-analysis/volcano-plot.png
    Modified:   renv.lock

Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.


These are the previous versions of the repository in which changes were made to the R Markdown (analysis/subsetted-condition-analysis.Rmd) and HTML (docs/subsetted-condition-analysis.html) files. If you’ve configured a remote Git repository (see ?wflow_git_remote), click on the hyperlinks in the table below to view the files as they were in that past version.

File Version Author Date Message
Rmd 53f923b sdhutchins 2024-12-04 Add publication analysis.
Rmd f9106e8 sdhutchins 2024-11-25 Remove archived analyses.
html 357273e sdhutchins 2024-07-15 Build site.
Rmd 586854e sdhutchins 2024-07-15 Add updated analyses.
html 593ff4e sdhutchins 2024-07-12 Build site.
Rmd bc6d45b sdhutchins 2024-07-12 Add EnhancedVolcano.
html a36a6f1 sdhutchins 2024-07-12 Build site.
Rmd c2d40d1 sdhutchins 2024-07-12 Add EnhancedVolcano.
html 95f05c4 sdhutchins 2024-07-12 Build site.
Rmd dcd14e9 sdhutchins 2024-07-12 Add EnhancedVolcano.
html 7cddce9 sdhutchins 2024-07-12 Build site.
Rmd 9d512ab sdhutchins 2024-07-12 Use ComplexHeatmap.
html 7fbf9ea sdhutchins 2024-06-13 Build site.
Rmd c44c0c1 sdhutchins 2024-06-13 Tweak heatmap.
html 750876f sdhutchins 2024-06-12 Build site.
Rmd a40ee82 sdhutchins 2024-06-12 Use zscore.
html bf99332 sdhutchins 2024-06-11 Build site.
Rmd 895934e sdhutchins 2024-06-11 Create signal csvs.
html 026c202 sdhutchins 2024-06-11 Build site.
Rmd a4d524c sdhutchins 2024-06-11 Add latest categories
html 2c35897 sdhutchins 2024-05-20 Build site.
html a298293 sdhutchins 2024-05-17 Build site.
Rmd 9267d29 sdhutchins 2024-05-17 Higher filter.
html 7b22b81 sdhutchins 2024-05-17 Build site.
Rmd 4af9cd2 sdhutchins 2024-05-17 Add back RNU genes.
html 1d7ef34 sdhutchins 2024-05-16 Build site.
Rmd fb97738 sdhutchins 2024-05-16 Remove RNU genes as check.
html be532a2 sdhutchins 2024-05-10 Build site.
Rmd afe9ab9 sdhutchins 2024-05-10 Update patient genes.
html 8a91bc0 sdhutchins 2024-04-29 Build site.
Rmd 8c2ce53 sdhutchins 2024-04-29 Update patient genes.
html ac28b95 sdhutchins 2024-04-22 Build site.
Rmd 878e700 sdhutchins 2024-04-22 workflowr::wflow_publish(files = "analysis/subsetted-condition-analysis.Rmd")
html bd1bae0 sdhutchins 2024-04-12 Build site.
Rmd 989f2c3 sdhutchins 2024-04-12 Update subsetted analysis.
html c835cb7 sdhutchins 2024-04-12 Build site.
Rmd 0f3dffd sdhutchins 2024-04-12 workflowr::wflow_publish("analysis/subsetted-condition-analysis.Rmd")
html 18ba804 sdhutchins 2024-04-12 Build site.
Rmd 87dacd3 sdhutchins 2024-04-12 workflowr::wflow_publish("analysis/subsetted-condition-analysis.Rmd")
html f2c768c sdhutchins 2024-04-11 Build site.
Rmd f24bf2c sdhutchins 2024-04-11 workflowr::wflow_publish(files = "analysis/subsetted-condition-analysis.Rmd")
html 1e45c53 sdhutchins 2024-04-09 Build site.
Rmd 684c0de sdhutchins 2024-04-09 Add subsetted analysis.
html 1804028 sdhutchins 2024-04-08 Update metadata.
Rmd 4d5d173 sdhutchins 2024-04-08 Create subsetted analysis.
html 0c1afe6 sdhutchins 2024-03-13 Build site.
Rmd 1fa52ee sdhutchins 2024-03-13 workflowr::wflow_publish(files = "analysis/subsetted-condition-analysis.Rmd")

Load libraries

Ensure you have followed instructions in the readme on activating the renv environment.

library(tidyverse) # Available via CRAN
library(DESeq2) # Available via Bioconductor
library(RColorBrewer) # Available via CRAN
library(pheatmap) # Available via CRAN
library(genefilter) # Available via Bioconductor
library(limma) # Available via Bioconductor
library(gprofiler2) # Available via CRAN
library(biomaRt) # Available via Bioconductor
library(plotly) # Available via CRAN
library(ggpubr) # Available via CRAN
library(rmarkdown) # Available via CRAN
library(clusterProfiler) # Available via Bioconductor
library(org.Hs.eg.db) # Available via Bioconductor
library(ggrepel) # Available via CRAN
library(ReactomePA) # Available via Bioconductor
library(mygene) # Available via Bioconductor
library(DOSE) # Available via Bioconductor
library(enrichR) # Available via Bioconductor
library(STRINGdb) # Available via Bioconductor
library(EnhancedVolcano)
library(ComplexHeatmap)

Data Import

We will be importing counts data from the star-salmon pipeline and our metadata for the project which is hosted on Box. This also ensures data is properly ordered by sample id.

counts <- read_tsv("data/star-salmon/salmon.merged.gene_counts_length_scaled.tsv")

# Import variants of interest
genes_of_interest <- read_csv("data/Prioritized_Genes_From_WGS_2024_11_19.csv")
genes_of_interest <- unique(genes_of_interest$Genes)
genes_of_interest <- genes_of_interest[!is.na(genes_of_interest)]

# Use first column (gene_id) for row names
counts <- data.frame(counts, row.names = 1)
counts$Ensembl_ID <- row.names(counts)
drop <- c("Ensembl_ID", "gene_name")
gene_info <- counts[, drop]
counts <- counts[, !(names(counts) %in% drop)] # remove both columns

# What gene (based on variants samples have) is this analysis based on
analysis_name <- "subsetted"
outpath_var <- paste0(analysis_name, "-analysis")


# Import metadata
sample_metadata <- read_csv("data/Metadata_2024_11_20.csv")
row.names(sample_metadata) <- sample_metadata$ID

# Assuming counts is your counts dataframe and sample_metadata is your metadata dataframe
# Call the function with the appropriate column names
counts <- rename_counts_columns(counts, sample_metadata, "ID", "RNA_Samples_id")

# Check that data is ordered properly
sample_metadata <- check_order(sample_metadata = sample_metadata, counts = counts)

genes_biomart <- retrieve_gene_info(values = gene_info$Ensembl_ID, filters = "ensembl_gene_id_version")

DESeq2 Analysis

sample_metadata$Family <- factor(sample_metadata$Family)
sample_metadata$Affected <- factor(sample_metadata$Affected)
sample_metadata$Batch <- factor(sample_metadata$Batch)
sample_metadata$Sex <- factor(sample_metadata$Sex)
sample_metadata$Ancestry <- factor(sample_metadata$Ancestry)
sample_metadata$Category <- factor(sample_metadata$Category)
sample_metadata$OverallCategory <- factor(sample_metadata$`Overall category assigned`)

# Account for Batch and Affected Status
dds <- DESeqDataSetFromMatrix(
  countData = round(counts), colData = sample_metadata,
  design = ~ Batch + Affected
)

# Pre-filtering: Keep only rows that have at least 10 reads total
keep <- rowSums(counts(dds)) >= 50
dds <- dds[keep, ]

# Remove samples from families with multiple samples
# View Excluded_Samples.csv to learn why these were excluded
remove_multiple_fam <- c("8", "12", "19", "21", "23", "27")

# Save excluded/removed samples
# Code is commented out since this is for 1 time usage
# excluded_samples_df <- filter(sample_metadata,
#                        ID %in% remove_multiple_fam)
# write.csv(excluded_samples_df, "data/Excluded_Samples.csv")

# Create a logical vector to index the columns you want to keep
kept_fam_members <- !(colnames(dds) %in% remove_multiple_fam)
dds <- dds[, kept_fam_members]

# Run DESeq function
dds <- DESeq(dds)

# Normalize gene counts for differences in seq. depth/global differences
counts_norm <- counts(dds, normalized = TRUE)

Data transformation and visualization

Perform count data transformation by variance stabilizing transformation (vst) on normalized counts.

vsd <- vst(dds, blind = FALSE)

Batch correction with limma

This code performs batch effect correction on variance-stabilized transformed (VST) counts using the Limma package. The corrected counts are then saved and incorporated into the VST object for downstream analysis.

# Extract VST counts from the DESeq2 object
counts_vst <- assay(vsd)

# Save the VST counts to a CSV file
write.csv(counts_vst, file = "output/publication-analysis/counts_vst_subsetted.csv")

# Create a model matrix with Batch and Affected as covariates
mm <- model.matrix(~ Batch + Affected, colData(vsd))

# Remove batch effects using the Limma package
counts_vst_limma <- limma::removeBatchEffect(counts_vst,
  batch = vsd$Batch,
  design = mm
)
Coefficients not estimable: batch1 batch2 
# Save the batch-effect corrected counts to a CSV file
write.csv(counts_vst_limma, file = "output/publication-analysis/counts_vst_limma_subsetted.csv")

# Replace the VST counts in the DESeq2 object with the batch-effect corrected counts
vsd_limma <- vsd
assay(vsd_limma) <- counts_vst_limma

Sample distances heatmap

This code calculates sample-to-sample distances from the batch-effect corrected VST data, organizes the distances into a matrix, and visualizes the results as a heatmap for quality control.

# Compute sample-to-sample distances using the corrected VST data
sample_dists_all <- dist(t(assay(vsd_limma)))

# Convert the distance object to a matrix for visualization
sample_dist_matrix_all <- as.matrix(sample_dists_all)

# Set row and column names for the distance matrix using metadata
rownames(sample_dist_matrix_all) <- paste(vsd_limma$Batch, vsd_limma$Affected, sep = " | ")
colnames(sample_dist_matrix_all) <- paste(vsd_limma$ID, vsd_limma$Affected, sep = " | ")

# Define a color palette for the heatmap
colors <- colorRampPalette(rev(brewer.pal(9, "Blues")))(255)

# Plot the heatmap of sample distances with hierarchical clustering
pheatmap(sample_dist_matrix_all,
  clustering_distance_rows = sample_dists_all,
  clustering_distance_cols = sample_dists_all,
  col = colors
)

Version Author Date
95f05c4 sdhutchins 2024-07-12
a298293 sdhutchins 2024-05-17
1e45c53 sdhutchins 2024-04-09
0c1afe6 sdhutchins 2024-03-13

Principal Components Analysis

This code prepares data for PCA analysis, computes principal components using batch-effect corrected VST data, and generates a PCA plot to visualize sample clustering based on specified metadata variables.

# Prepare PCA data from the corrected VST data
# intgroup specifies the metadata variables to include in the PCA
pca_results <- prepare_pca_data(vsd_data = vsd_limma, intgroup = c("Batch", "Affected", "Sex"))

# Generate a PCA plot with metadata-based coloring, filling, and shaping
pca_plot <- generate_pca_plot(
  pca_data = pca_results$pca_data,
  percent_var = pca_results$percent_var,
  colour = "Affected", # Color by affected status
  fill = "Sex", # Fill by sex
  shape = "Batch" # Shape by batch
)

# Display the PCA plot
print(pca_plot)

Version Author Date
1e45c53 sdhutchins 2024-04-09
0c1afe6 sdhutchins 2024-03-13

The below PCA plot highlights overall categories, affected status, and batch information for each sample.

# Prepare PCA data
pca_results <- prepare_pca_data(
  vsd_data = vsd_limma,
  intgroup = c("Batch", "Affected", "OverallCategory")
)

# Generate PCA plot
pca_plot <- generate_pca_plot(
  pca_data = pca_results$pca_data,
  percent_var = pca_results$percent_var,
  colour = "OverallCategory", fill = "Affected", shape = "Batch"
)

# Display the plot
print(pca_plot)

Heatmap of all genes, top 50 & top 100 genes

# Specify annotation colors by columns
# Use RColorBrewer::brewer.pal(n=10, name="Set1")
overall_category_colors <- c(
  "ENE" = "#BFDFBF", # Magenta
  "IMM" = "#EEBFEE", # Light green
  "SOL" = "#FFFF33", # Mustard yellow
  "STR" = "#BFBFFF", # Brown
  "N/A" = "darkgray" # Dark grey
)


ann_colors <- list(
  Batch = c(B1 = "purple", B2 = "firebrick", B3 = "yellow"),
  Affected = c(Affected = "green", Unaffected = "navy"),
  OverallCategory = overall_category_colors
)

This is a heatmap of the top 50 genes with the highest variance across samples

# Parameters for the function
annotation_columns <- c("Batch", "Affected", "OverallCategory")
annotation_colors <- ann_colors # Predefined annotation colors

# Generate the heatmap for the top 50 variable genes
generate_top_variable_genes_heatmap(
  vsd_data = vsd_limma,
  gene_info = gene_info,
  annotation_columns = annotation_columns,
  annotation_colors = annotation_colors,
  top_n = 50
)

Version Author Date
95f05c4 sdhutchins 2024-07-12
7fbf9ea sdhutchins 2024-06-13
026c202 sdhutchins 2024-06-11
1e45c53 sdhutchins 2024-04-09
0c1afe6 sdhutchins 2024-03-13

Comparison/Contrast of Affected_Affected_vs_Unaffected

This code performs differential expression analysis between affected and unaffected samples, processes and filters the results, and summarizes the findings based on adjusted p-value and log2 fold change thresholds.

# Perform differential expression analysis for affected vs. unaffected samples
res_aff_vs_unaff_sub <- results(dds, contrast = c("Affected", "Affected", "Unaffected"))

# Process and save the results to a CSV file
res_aff_vs_unaff_df_sub <- process_and_save_results(
  res_aff_vs_unaff_sub,
  "output/publication-analysis/res_aff_vs_unaff_sub.csv"
)

# Arrange the results by adjusted p-value
res_aff_vs_unaff_df_sub <- arrange(res_aff_vs_unaff_df_sub, padj)

# Filter results with adjusted p-value < 0.05
res_aff_vs_unaff_df_05_sub <- subset(res_aff_vs_unaff_df_sub, padj < 0.05)

# Filter results with adjusted p-value < 0.1
res_aff_vs_unaff_df_1_sub <- subset(res_aff_vs_unaff_df_sub, padj < 0.1)

# Further filter results with |log2 fold change| >= 1 and adjusted p-value < 0.1
res_aff_vs_unaff_df_padj1_lfc1_sub <- subset(res_aff_vs_unaff_df_1_sub, log2FoldChange >= 1 | log2FoldChange <= -1)

# Further filter results with |log2 fold change| >= 1 and adjusted p-value < 0.05
res_aff_vs_unaff_df_padj05_lfc1_sub <- subset(res_aff_vs_unaff_df_05_sub, log2FoldChange >= 1 | log2FoldChange <= -1)

# Summarize the differential expression results
summary(res_aff_vs_unaff_sub)

out of 24628 with nonzero total read count
adjusted p-value < 0.1
LFC > 0 (up)       : 22, 0.089%
LFC < 0 (down)     : 28, 0.11%
outliers [1]       : 164, 0.67%
low counts [2]     : 0, 0%
(mean count < 0)
[1] see 'cooksCutoff' argument of ?results
[2] see 'independentFiltering' argument of ?results

Heatmap of Significant Genes

This code generates a heatmap for significantly differentially expressed genes (DEGs) with an adjusted p-value < 0.1 and |log2 fold change| ≥ 1. It uses metadata annotations for grouping and color-coding.

# Parameters for the function
annotation_columns <- c("Affected", "OverallCategory")
annotation_colors <- ann_colors # Predefined annotation colors
output_file <- "output/publication-analysis/Supplemental Figure 4. DEGs (Padj < 0.1).png"

# Generate the heatmap for significant genes
generate_significant_genes_heatmap(
  vsd_data = vsd_limma,
  res_data = res_aff_vs_unaff_df_padj1_lfc1_sub, # Significant genes
  gene_info = gene_info,
  annotation_columns = annotation_columns,
  annotation_colors = annotation_colors,
  output_file = output_file
)
quartz_off_screen 
                2 

This code generates a heatmap for significantly differentially expressed genes (DEGs) with an adjusted p-value < 0.05 and |log2 fold change| ≥ 1. It uses metadata annotations for grouping and color-coding.

# Parameters for the function
annotation_columns <- c("Affected", "OverallCategory")
annotation_colors <- ann_colors # Predefined annotation colors
output_file <- "output/publication-analysis/Supplemental Figure 4. Significant DEGs.png"

# Generate the heatmap for significant genes
generate_significant_genes_heatmap(
  vsd_data = vsd_limma,
  res_data = res_aff_vs_unaff_df_padj05_lfc1_sub, # Significant genes
  gene_info = gene_info,
  annotation_columns = annotation_columns,
  annotation_colors = annotation_colors,
  output_file = output_file
)
quartz_off_screen 
                2 

This code integrates gene annotations into the differential expression results using Ensembl IDs and reorders the data by adjusted p-values for downstream analysis.

# Extract relevant columns from the gene information data
gb_df <- genes_biomart[, c(1, ncol(genes_biomart))]

# Add Ensembl IDs to the DEG results
res_aff_vs_unaff_df_sub_genename <- res_aff_vs_unaff_df_sub
res_aff_vs_unaff_df_sub_genename$Ensembl_ID <- row.names(res_aff_vs_unaff_df_sub)

# Merge DEG results with gene information based on Ensembl IDs
res_aff_vs_unaff_df_sub_genename <- merge(
  x = res_aff_vs_unaff_df_sub_genename,
  y = gene_info,
  by.x = "Ensembl_ID",
  by.y = "Ensembl_ID",
  all.x = TRUE
)

# Reorganize columns to place gene annotations first
res_aff_vs_unaff_df_sub_genename <- res_aff_vs_unaff_df_sub_genename[, c(
  dim(res_aff_vs_unaff_df_sub_genename)[2],
  1:(dim(res_aff_vs_unaff_df_sub_genename)[2] - 1)
)]

# Order the DEG results by adjusted p-value
res_aff_vs_unaff_df_sub_genename <- res_aff_vs_unaff_df_sub_genename[
  order(res_aff_vs_unaff_df_sub_genename[, "padj"]),
]

# Save the updated results with gene annotations to a CSV file
write.csv(
  res_aff_vs_unaff_df_sub_genename,
  file = "output/publication-analysis/res_aff_vs_unaff_df_sub_genename.csv"
)

Volcano Plot

This code generates a volcano plot to visualize the distribution of differentially expressed genes (DEGs) and highlights selected genes and applying thresholds for significance and fold change.

# Parameters for the function
res_data <- res_aff_vs_unaff_df_sub_genename
gene_labels <- "gene_name"
x_col <- "log2FoldChange"
y_col <- "padj"
select_genes <- c("SLC4A10", "SNTG2", "KCNQ5", "DEFA1", "CD248", "POLR3G", "ZNF683")
xlab_text <- bquote(~ Log[2] ~ "fold change")
ylab_text <- bquote(~ Log[10] ~ "padj")
xlim_range <- c(-25, 25)
ylim_range <- c(0, 7)
output_file <- "output/publication-analysis/subsetted-analysis-volcano-plot.png"

# Generate and save the volcano plot
generate_volcano_plot(
  res_data = res_data, gene_labels = gene_labels, x_col = x_col,
  y_col = y_col, select_genes = select_genes, xlab_text = xlab_text,
  ylab_text = ylab_text, p_cutoff = 0.05, fc_cutoff = 1.0,
  xlim_range = xlim_range, ylim_range = ylim_range,
  output_file = output_file
)

This code subsets differentially expressed genes (DEGs) by significance thresholds, orders them by adjusted p-values, and saves the results to separate CSV files for further analysis and reporting.

res_aff_vs_unaff_df_genename_05 <- subset(res_aff_vs_unaff_df_sub_genename, padj < 0.05)
res_aff_vs_unaff_df_genename_05 <- res_aff_vs_unaff_df_genename_05[order(res_aff_vs_unaff_df_genename_05$padj), ]
write.csv(res_aff_vs_unaff_df_genename_05, file = "output/publication-analysis/res_aff_vs_unaff_df_sub_genename_05.csv")

res_aff_vs_unaff_df_genename_padj05_lfc1 <- subset(res_aff_vs_unaff_df_genename_05, log2FoldChange >= 1 | log2FoldChange <= -1)
res_aff_vs_unaff_df_genename_padj05_lfc1 <- res_aff_vs_unaff_df_genename_padj05_lfc1[order(res_aff_vs_unaff_df_genename_padj05_lfc1$padj), ]
write.csv(res_aff_vs_unaff_df_genename_padj05_lfc1, file = "output/publication-analysis/Supplemental Table 5. Significant Differentially Expressed Genes.csv", row.names = FALSE)

res_aff_vs_unaff_df_genename_1 <- subset(res_aff_vs_unaff_df_sub_genename, padj < 0.1)
res_aff_vs_unaff_df_genename_1 <- res_aff_vs_unaff_df_genename_1[order(res_aff_vs_unaff_df_genename_1$padj), ]
write.csv(res_aff_vs_unaff_df_genename_1, file = "output/publication-analysis/res_aff_vs_unaff_df_sub_genename_padj1.csv")

res_aff_vs_unaff_df_genename_padj1_lfc1 <- subset(res_aff_vs_unaff_df_genename_1, log2FoldChange >= 1 | log2FoldChange <= -1)
res_aff_vs_unaff_df_genename_padj1_lfc1 <- res_aff_vs_unaff_df_genename_padj1_lfc1[order(res_aff_vs_unaff_df_genename_padj1_lfc1$padj), ]
write.csv(res_aff_vs_unaff_df_genename_padj1_lfc1, file = "output/publication-analysis/res_aff_vs_unaff_df_sub_genename_padj1_lfc1.csv")

This code queries gene symbols from significant DEGs (padj < 0.05) against the mygene.info database to retrieve detailed annotations, ensuring unique results for each gene.

# Extract gene symbols from significant DEGs (Padj < 0.05)
genes <- res_aff_vs_unaff_df_genename_05$gene_name

# Query gene information from mygene.info
# Retrieve gene symbol, name, and summary fields for human species
my_gene_data <- queryMany(
  genes,
  scopes = "symbol",
  fields = c("symbol", "name", "summary"),
  species = "human"
)
Finished
Pass returnall=TRUE to return lists of duplicate or missing query terms.
# Convert the results to a data frame and ensure unique entries for each query
my_gene_data_unique <- as.data.frame(my_gene_data) %>%
  dplyr::distinct(query, .keep_all = TRUE)

MA Plot and Significant Gene Analysis

This code generates an MA plot to visualize the differential expression results, identifies significant genes, combines these with detailed gene annotations, and saves the results to CSV files.

filtered_gene_names <- res_aff_vs_unaff_df_sub_genename$gene_name[!grepl("^ENS", res_aff_vs_unaff_df_sub_genename$gene_name)]
# Select specific genes to show
# set top = 0, then specify genes using label.select argument
# Generate the MA plot
maplot <- generate_ma_plot(
  data = res_aff_vs_unaff_df_sub,
  genenames = as.vector(res_aff_vs_unaff_df_sub_genename$gene_name),
  main_title = "Affected vs Unaffected MA Plot",
  top_genes = 30
)
maplot

Version Author Date
026c202 sdhutchins 2024-06-11
a298293 sdhutchins 2024-05-17
1e45c53 sdhutchins 2024-04-09
0c1afe6 sdhutchins 2024-03-13
significant_data <- maplot$data %>%
  filter(grepl("Up|Down", sig)) %>%
  mutate(direction = ifelse(grepl("Up", sig), "Up", "Down")) %>%
  dplyr::select(-sig) # This removes the 'sig' column

# Combine DataFrames based on matching 'query' in my_gene_data_unique to 'gene' in significant_data
combined_data <- inner_join(my_gene_data_unique, significant_data, by = c("query" = "name"))

combined_data <- combined_data %>%
  dplyr::select(-notfound, -X_id, -X_score) %>%
  rename(gene = query)

paged_table(as.data.frame(significant_data), options = list(rows.print = 30))
# Save significant genes
write.csv(significant_data, file = "output/publication-analysis/res_aff_vs_unaff_significant_subsetted_samples.csv", row.names = FALSE)

# Save significant genes
write.csv(combined_data, file = "output/publication-analysis/res_aff_vs_unaff_significant_subsetted_mygene.csv", row.names = FALSE)

Expression of Candidate Genes

Below is a table of expression of the genes identified during our WGS analysis.

# Subset gene_info using genes of interest
subset_gene_info <- gene_info[gene_info$gene_name %in% genes_of_interest, ]

filtered_by_interest <- filter(res_aff_vs_unaff_df_sub_genename, Ensembl_ID %in% subset_gene_info$Ensembl_ID)

# Filtering the dataframe by row names
filtered_counts <- counts[row.names(counts) %in% subset_gene_info$Ensembl_ID, ]

# Match and update row names
matching_indices <- match(rownames(filtered_counts), subset_gene_info$Ensembl_ID)

# Update row names based on matching_column values from metadata
rownames(filtered_counts) <- subset_gene_info$gene_name[matching_indices]

missing_genes <- setdiff(subset_gene_info$Ensembl_ID, filtered_by_interest$Ensembl_ID)

corresponding_gene_names <- subset_gene_info$gene_name[subset_gene_info$Ensembl_ID %in% missing_genes]

missing_gene_counts <- counts[row.names(counts) %in% missing_genes, ]

paged_table(filtered_by_interest, options = list(rows.print = 15))
paged_table(filtered_counts, options = list(rows.print = 15))

STRINGdb Network Visualization

This code visualizes a protein-protein interaction network for significant DEGs using STRINGdb. It includes mapping DEGs, adding differential expression color codes, and generating a network plot.

# Initialize STRINGdb for human (species code: 9606)
string_db <- STRINGdb$new(version = "11.5", species = 9606, score_threshold = 100, network_type = "full", input_directory = "")

# Map significant DEGs to STRINGdb using the 'name' column; remove unmatched entries
mapped_degs <- string_db$map(significant_data, "name", removeUnmappedRows = TRUE)
Warning:  we couldn't map to STRING 35% of your identifiers
# Extract the first 29 STRING IDs for network visualization
hits <- mapped_degs$STRING_id[1:29]

# Add log fold change as color-coded data for DEGs
mapped_degs_dec <- string_db$add_diff_exp_color(mapped_degs, logFcColStr = "lfc")

# Submit the DEG data with color annotations to STRINGdb and get the payload ID
payload_id <- string_db$post_payload(mapped_degs_dec$STRING_id, colors = mapped_degs_dec$color)

# Plot the protein-protein interaction network with the color-coded DEGs
string_db$plot_network(hits, payload_id = payload_id)

Version Author Date
026c202 sdhutchins 2024-06-11
1d7ef34 sdhutchins 2024-05-16
ac28b95 sdhutchins 2024-04-22

Genes of Interest Plot Counts

# List of gene names to remove or keep
spta1_genes <- c(
  "AHSP", "HEMGN", "SLC4A1", "KEL", "SPTA1", "RHAG",
  "GYPE", "GYPA", "GYPB", "EPB42", "SPTB", "SPTBN5"
)

# Define paths
output_path <- "output/publication-analysis/batch-correction-limma/plot-counts/genes-of-interest"

filename <- file.path(output_path, "genes-of-interest-heatmap.png")

# Filter genes
filtered_without_spta1_genes <- filter_genes(filtered_by_interest, spta1_genes, include = FALSE)

spta1_genes_only <- filter_genes(filtered_by_interest, filtered_without_spta1_genes, include = FALSE)

# Generate plots and results using the modularized functions
results <- process_genes_of_interest(
  filtered_data = filtered_by_interest,
  dds = dds,
  vsd = vsd_limma,
  genes_to_filter = spta1_genes,
  output_path = output_path
)

# Extract the faceted plot and gene results
faceted_plot <- results$faceted_plot
gene_results_df <- results$gene_results_df

# Save the gene results to a CSV
file_name <- file.path(output_path, "genes_of_interest_plot_counts_signals.csv")
write.csv(gene_results_df, file_name, row.names = FALSE)

# Prepare the heatmap data
mat3 <- assay(vsd_limma)[filtered_without_spta1_genes$Ensembl_ID, ]
rownames(mat3) <- gene_info$gene_name[match(filtered_without_spta1_genes$Ensembl_ID, gene_info$Ensembl_ID)]
df_sub <- as.data.frame(colData(vsd_limma)[, c("Affected", "OverallCategory")])

# Create the heatmap
create_heatmap(
  mat = mat3,
  gene_info = gene_info,
  vsd_coldata = colData(vsd_limma),
  output_path = filename,
  ann_colors = ann_colors
)
quartz_off_screen 
                2 

SPTA1 Genes of Interest

# Define the output path
output_path <- "output/publication-analysis/batch-correction-limma/plot-counts/spta1-genes-of-interest"

# Generate plots and results using the modularized function
results <- process_genes_of_interest(
  filtered_data = filtered_by_interest,
  dds = dds,
  vsd = vsd_limma,
  genes_to_filter = filtered_without_spta1_genes$gene_name,
  output_path = output_path
)

# Extract the faceted plot and gene results
faceted_plot <- results$faceted_plot
gene_results_df <- results$gene_results_df

# Save the gene results to a CSV
file_name <- file.path(output_path, "genes_of_interest_plot_counts_signals.csv")
write.csv(gene_results_df, file_name, row.names = FALSE)

# Prepare data for the heatmap
mat_spta1 <- assay(vsd_limma)[spta1_genes_only$Ensembl_ID, ]
rownames(mat_spta1) <- gene_info$gene_name[match(spta1_genes_only$Ensembl_ID, gene_info$Ensembl_ID)]
annotation_data <- as.data.frame(colData(vsd_limma)[, c("Affected", "OverallCategory")])

# Generate a heatmap for SPTA1 genes
create_heatmap(
  mat = mat_spta1,
  gene_info = gene_info,
  vsd_coldata = colData(vsd_limma),
  output_path = file.path(output_path, "spta1_genes_of_interest_heatmap.png"),
  ann_colors = ann_colors
)
quartz_off_screen 
                2 

Significant Genes Plot Counts

# Define the output path
output_path <- "output/publication-analysis/batch-correction-limma/plot-counts/padj-05"

# Generate plots and results using the modularized function
results <- process_genes_of_interest(
  dds = dds,
  vsd = vsd_limma,
  output_path = output_path,
  preprocessed_data = res_aff_vs_unaff_df_genename_padj05_lfc1
)

# Extract the faceted plot and gene results
faceted_plot <- results$faceted_plot
gene_results_df <- results$gene_results_df

# Save the gene results to a CSV
file_name <- file.path(output_path, "significant_genes_plot_counts_signals.csv")
write.csv(gene_results_df, file_name, row.names = FALSE)

# Prepare data for the heatmap
mat_significant <- assay(vsd_limma)[res_aff_vs_unaff_df_genename_padj05_lfc1$Ensembl_ID, ]
rownames(mat_significant) <- res_aff_vs_unaff_df_genename_padj05_lfc1$gene_name[match(
  res_aff_vs_unaff_df_genename_padj05_lfc1$Ensembl_ID,
  res_aff_vs_unaff_df_genename_padj05_lfc1$Ensembl_ID
)]
annotation_data <- as.data.frame(colData(vsd_limma)[, c("Affected", "OverallCategory")])

# Generate a heatmap for significant genes
create_heatmap(
  mat = mat_significant,
  gene_info = gene_info,
  vsd_coldata = colData(vsd_limma),
  output_path = file.path(output_path, "significant_genes_heatmap.png"),
  ann_colors = ann_colors
)
quartz_off_screen 
                2 

Save data

save.image(file = "output/publication-analysis/publication-analysis.RData")

sessionInfo()
R version 4.4.0 (2024-04-24)
Platform: x86_64-apple-darwin20
Running under: macOS Sonoma 14.6.1

Matrix products: default
BLAS:   /Library/Frameworks/R.framework/Versions/4.4-x86_64/Resources/lib/libRblas.0.dylib 
LAPACK: /Library/Frameworks/R.framework/Versions/4.4-x86_64/Resources/lib/libRlapack.dylib;  LAPACK version 3.12.0

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

time zone: America/Chicago
tzcode source: internal

attached base packages:
[1] grid      stats4    stats     graphics  grDevices datasets  utils    
[8] methods   base     

other attached packages:
 [1] ComplexHeatmap_2.20.0       EnhancedVolcano_1.22.0     
 [3] STRINGdb_2.16.4             enrichR_3.2                
 [5] DOSE_3.30.1                 mygene_1.40.0              
 [7] txdbmaker_1.0.1             GenomicFeatures_1.56.0     
 [9] ReactomePA_1.48.0           ggrepel_0.9.5              
[11] org.Hs.eg.db_3.19.1         AnnotationDbi_1.66.0       
[13] clusterProfiler_4.12.0      rmarkdown_2.27             
[15] ggpubr_0.6.0                plotly_4.10.4              
[17] biomaRt_2.60.1              gprofiler2_0.2.3           
[19] limma_3.60.3                genefilter_1.86.0          
[21] pheatmap_1.0.12             RColorBrewer_1.1-3         
[23] DESeq2_1.44.0               SummarizedExperiment_1.34.0
[25] Biobase_2.64.0              MatrixGenerics_1.16.0      
[27] matrixStats_1.3.0           GenomicRanges_1.56.1       
[29] GenomeInfoDb_1.40.1         IRanges_2.38.1             
[31] S4Vectors_0.42.1            BiocGenerics_0.50.0        
[33] lubridate_1.9.3             forcats_1.0.0              
[35] stringr_1.5.1               dplyr_1.1.4                
[37] purrr_1.0.2                 readr_2.1.5                
[39] tidyr_1.3.1                 tibble_3.2.1               
[41] ggplot2_3.5.1               tidyverse_2.0.0            
[43] workflowr_1.7.1            

loaded via a namespace (and not attached):
  [1] fs_1.6.4                 bitops_1.0-7             enrichplot_1.24.0       
  [4] doParallel_1.0.17        HDO.db_0.99.1            httr_1.4.7              
  [7] tools_4.4.0              backports_1.5.0          utf8_1.2.4              
 [10] R6_2.5.1                 lazyeval_0.2.2           GetoptLong_1.0.5        
 [13] withr_3.0.0              graphite_1.50.0          prettyunits_1.2.0       
 [16] gridExtra_2.3            textshaping_0.4.0        cli_3.6.3               
 [19] scatterpie_0.2.3         labeling_0.4.3           sass_0.4.9              
 [22] systemfonts_1.1.0        Rsamtools_2.20.0         yulab.utils_0.1.4       
 [25] gson_0.1.0               foreign_0.8-86           WriteXLS_6.6.0          
 [28] plotrix_3.8-4            rstudioapi_0.16.0        RSQLite_2.3.7           
 [31] shape_1.4.6.1            generics_0.1.3           gridGraphics_0.5-1      
 [34] BiocIO_1.14.0            vroom_1.6.5              gtools_3.9.5            
 [37] car_3.1-2                GO.db_3.19.1             Matrix_1.7-0            
 [40] fansi_1.0.6              abind_1.4-5              lifecycle_1.0.4         
 [43] whisker_0.4.1            yaml_2.3.9               carData_3.0-5           
 [46] gplots_3.1.3.1           qvalue_2.36.0            SparseArray_1.4.8       
 [49] BiocFileCache_2.12.0     blob_1.2.4               promises_1.3.0          
 [52] crayon_1.5.3             lattice_0.22-6           cowplot_1.1.3           
 [55] annotate_1.82.0          KEGGREST_1.44.1          pillar_1.9.0            
 [58] knitr_1.48               fgsea_1.30.0             rjson_0.2.21            
 [61] codetools_0.2-20         fastmatch_1.1-4          glue_1.7.0              
 [64] getPass_0.2-4            ggfun_0.1.5              data.table_1.15.4       
 [67] vctrs_0.6.5              png_0.1-8                treeio_1.28.0           
 [70] gtable_0.3.5             gsubfn_0.7               cachem_1.1.0            
 [73] xfun_0.45                S4Arrays_1.4.1           tidygraph_1.3.1         
 [76] survival_3.5-8           iterators_1.0.14         statmod_1.5.0           
 [79] nlme_3.1-164             ggtree_3.12.0            bit64_4.0.5             
 [82] progress_1.2.3           filelock_1.0.3           rprojroot_2.0.4         
 [85] bslib_0.7.0              KernSmooth_2.23-22       rpart_4.1.23            
 [88] colorspace_2.1-0         DBI_1.2.3                Hmisc_5.1-3             
 [91] nnet_7.3-19              tidyselect_1.2.1         processx_3.8.4          
 [94] chron_2.3-61             bit_4.0.5                compiler_4.4.0          
 [97] curl_5.2.1               git2r_0.33.0             httr2_1.0.1             
[100] graph_1.82.0             htmlTable_2.4.2          xml2_1.3.6              
[103] DelayedArray_0.30.1      shadowtext_0.1.3         rtracklayer_1.64.0      
[106] caTools_1.18.2           checkmate_2.3.1          scales_1.3.0            
[109] callr_3.7.6              rappdirs_0.3.3           digest_0.6.36           
[112] XVector_0.44.0           htmltools_0.5.8.1        pkgconfig_2.0.3         
[115] base64enc_0.1-3          highr_0.11               dbplyr_2.5.0            
[118] fastmap_1.2.0            GlobalOptions_0.1.2      rlang_1.1.4             
[121] htmlwidgets_1.6.4        UCSC.utils_1.0.0         farver_2.1.2            
[124] jquerylib_0.1.4          jsonlite_1.8.8           BiocParallel_1.38.0     
[127] GOSemSim_2.30.0          RCurl_1.98-1.16          magrittr_2.0.3          
[130] Formula_1.2-5            GenomeInfoDbData_1.2.12  ggplotify_0.1.2         
[133] patchwork_1.2.0          munsell_0.5.1            Rcpp_1.0.12             
[136] proto_1.0.0              ape_5.8                  viridis_0.6.5           
[139] sqldf_0.4-11             stringi_1.8.4            ggraph_2.2.1            
[142] zlibbioc_1.50.0          MASS_7.3-60.2            plyr_1.8.9              
[145] parallel_4.4.0           Biostrings_2.72.1        graphlayouts_1.1.1      
[148] splines_4.4.0            hash_2.2.6.3             circlize_0.4.16         
[151] hms_1.1.3                locfit_1.5-9.10          ps_1.7.7                
[154] igraph_2.0.3             ggsignif_0.6.4           reshape2_1.4.4          
[157] XML_3.99-0.17            evaluate_0.24.0          renv_1.0.7              
[160] BiocManager_1.30.23      foreach_1.5.2            tzdb_0.4.0              
[163] tweenr_2.0.3             httpuv_1.6.15            polyclip_1.10-6         
[166] clue_0.3-65              ggforce_0.4.2            broom_1.0.6             
[169] xtable_1.8-4             restfulr_0.0.15          reactome.db_1.88.0      
[172] tidytree_0.4.6           rstatix_0.7.2            later_1.3.2             
[175] ragg_1.3.2               viridisLite_0.4.2        aplot_0.2.3             
[178] memoise_2.0.1            GenomicAlignments_1.40.0 cluster_2.1.6           
[181] timechange_0.3.0