Code from: Metabolic control of smooth muscle cell phenotype switching in atherosclerosis
Data files
Jul 29, 2026 version files 20.83 KB
-
Chordplot_code.R
1.79 KB
-
dotplot_code.R
3.18 KB
-
Heatmap_code.R
2.85 KB
-
README.md
7.22 KB
-
UMAP_code.R
2.27 KB
-
Violinplot_code.R
3.53 KB
Abstract
The loss of smooth muscle cell (SMC) contractile phenotype contributes to various diseases, including atherosclerosis. However, its metabolic basis is not entirely elucidated. Since transforming growth factor beta (TGFβ) signaling is among the principal regulators of SMC contractility, we studied the metabolic regulation of TGFβ signaling in SMCs in vitro and atherosclerotic mouse models and human lesions. We found that TGFβ induced Ac-CoA synthetase 2 (ACSS2)-dependent Ac-CoA production by suppressing pyruvate dehydrogenase kinase 4 (PDK4). This stabilized R-SMADs and TGFβ receptor 1, preserving SMC contractile phenotype. SMC-specific PDK4 knockout mimicked the effect of TGFβ signaling both metabolically and phenotypically, increasing glucose-derived synthesis of Ac-CoA and SMC contractile phenotype. SMC-specific Pdk4 knockout in ApoE knockout mice reduced atherosclerosis. Furthermore, human specimens demonstrated a strong correlation between PDK4 level and atherosclerosis severity. These findings indicate that continuous TGFβ signaling, critical to the maintenance of the normal SMC contractile state, is regulated by PDK4 and carbohydrate metabolism.
Dataset DOI: 10.5061/dryad.m0cfxppjn
Description of the data and file structure
README for Single cell RNAseq generated by the Chromium Single Cell Platform (10× Genomics). The gz files should include barcodes, features, and matrix.
This README provides a guide to the contents of the R command files for violinplot, dotplot, heatmap, UMAP, and Chordplot. RStudio 2026.04.0+526 or later versions could be used for analyses. They could be run independent from each other, as each one contains the full procedure starting from package installations and file inputs.
Package functions and purpose of use in each command are described below:
- Violinplot_code.R
1. Seurat
This is the core package used for almost the entire workflow. It is a specialized toolkit for single-cell genomics. Functions used: Read10X(), CreateSeuratObject(), NormalizeData(), FindVariableFeatures(), ScaleData(), RunPCA(), FindIntegrationAnchors(), IntegrateData(), DefaultAssay(), RunUMAP(), FindNeighbors(), FindClusters(), DimPlot(), NoLegend(), FindAllMarkers(), FeaturePlot(), and VlnPlot().
Purpose: Loading data, QC, normalization, dataset integration, clustering, dimensional reduction (PCA/UMAP), and genomic plotting.
2. dplyr
This package is part of the tidyverse ecosystem and is used for data manipulation. Functions used: The pipe operator %>%, group_by(), top_n(), summarise(), mutate(), and n().Purpose: Filtering the top 10 marker genes for each cluster and calculating cell count proportions from the data matrix.
3. ggplot2
This is a popular data visualization package, also part of the tidyverse. Functions used: ggplot(), aes(), geom_bar(), and labs().
Purpose: Generating the custom bar chart at the bottom of your script to compare cell cluster proportions between your samples.
4. BiocManager (Installation Only)
While it is explicitly mentioned at the top of your script, it is not used to run any data processing commands. It is only included as a package manager utility tool to download and install the Bioconductor-dependent version of Seurat.
- dotplot_code.R
1. Seurat
This remains the core package powering the data structures, manipulation, and genomics-specific plotting for the script.Functions used: Read10X(), CreateSeuratObject(), merge(), NormalizeData(), FindVariableFeatures(), ScaleData(), subset(), and DotPlot().
Purpose: Loading 10X data matrices, creating and combining sample-specific data objects, executing basic normalization and scaling, filtering for Myh11-positive cells, and constructing the comparative dot plot.
2. ggplot2: This visualization package is explicitly used to modify and refine the appearance of the generated genomic plots.
Functions used: scale_color_gradient(), theme_minimal(), labs(), theme(), element_text(), and ggtitle().Purpose: Customizing the plot aesthetics by mapping expression scales (from light blue to red), adjusting title/axis labels, and rotating X-axis gene text labels for clean readability.
- Heatmap_code.R
1. Seurat
This is the core toolkit used to manage the single-cell expression matrices and perform initial data transformations.Functions used: Read10X(), CreateSeuratObject(), NormalizeData(), FindVariableFeatures(), ScaleData(), and FetchData().
Purpose: Loading 10X sparse matrix directories, creating separate project data structures, standardizing gene expression scales, and cleanly pulling out numerical matrix values for your 52 specific genes of interest.
2. pheatmap
This package specializes in creating highly customizable, publication-quality aesthetic cluster heatmaps. Functions used: pheatmap().
Purpose: Rendering the individual expression profiles for both projects with custom clustering behaviors (clustering the cell columns while locking the gene rows in their specified order) and suppressing immediate drawing to save them as programmatic objects.
3. gridExtra
This package provides extensions to the grid graphics system to handle the positioning of arbitrary graphical objects on a canvas. Functions used: grid.arrange().
Purpose: Capturing the raw graphical elements from your two standalone heatmaps (using the [[4]] grob extraction subset) and drawing them side by side in a clean, two-column layout.
- UMAP_code.R
1. Seurat
This is the core package used for almost the entire data processing workflow, spatial/dimensional modeling, and genomic visualization.
Functions used: Read10X(), CreateSeuratObject(), NormalizeData(), FindVariableFeatures(), ScaleData(), RunPCA(), FindIntegrationAnchors(), IntegrateData(), DefaultAssay(), RunUMAP(), FindNeighbors(), FindClusters(), DimPlot(), NoLegend(), FindAllMarkers(), and FeaturePlot().
Purpose: Ingesting raw expression data, normalizing and scaling individual datasets, identifying anchors to correct for batch effects between conditions, executing PCA and UMAP, partitioning cells into clusters, and rendering cell distribution maps.
2. dplyr
This package is part of the tidyverse ecosystem and is used for fast, declarative data frame manipulation. Functions used: The pipe operator %>%, group_by(), and top_n().Purpose: Slicing the large table generated by FindAllMarkers() to group the data by cell cluster and extract only the top 10 most statistically significant marker genes per cluster based on log fold-change.
- Chordplot_code.R
1. Seurat
This is the core toolkit used to ingest, normalize, and extract highly variable biological signals from the dataset.Functions used: Read10X(), CreateSeuratObject(), NormalizeData(), FindVariableFeatures(), ScaleData(), and VariableFeatures().
Purpose: Loading the 10X sparse matrix files, creating the structured dataset object, standardizing expression levels, and extracting the names of the top 50 most variable genes to use for downstream interaction simulation.
2. dplyr
This package is part of the tidyverse ecosystem and handles data frame subsetting and sequencing layout operations. Functions used: The pipe operator %>%, arrange(), and desc().
Purpose: Sorting the generated table of simulated gene pairings in descending order based on their connection scores and slicing the top 75 strongest interactions for the visualization matrix.
3. circlize
This package provides a comprehensive layout engine for rendering multi-dimensional data structures into circular tracks and connection links . Functions used: circos.clear() and chordDiagram().
Purpose: Resetting the graphics device canvas to prevent layout overlap and mapping the tabular gene-to-gene cross-references into an interconnected chord plot.
Code/software
README for Single cell RNAseq generated by Chromium Single Cell Platform (10× Genomics). The gz files should include barcodes, features, and matrix.
This README provides a guide to the contents of the R command files for violinplot, dotplot, heatmap, UMAP, and Chordplot. RStudio 2026.04.0+526 was used for analyses. They could be run independently from each other, as each one contains the full procedure starting from package installations and file inputs.
