内皮细胞中由H3K9乳酸化和HDAC2驱动的反馈回路调节vegf诱导的血管生成

内皮细胞中由H3K9乳酸化和HDAC2驱动的反馈回路调节vegf诱导的血管生成

对该文章中的Fig.3进行尝试复现。


image.png

文章简要讲解

研究背景
血管内皮生长因子(VEGF)是调控血管生成的重要因子,其机制涉及代谢重编程,尤其是糖酵解的增强。糖酵解增加导致乳酸积累,而乳酸作为新型表观遗传修饰——组蛋白乳酸化(如H3K9la)的底物,可能在血管生成中发挥关键作用。然而,乳酸如何通过组蛋白乳酸化影响内皮细胞行为,以及该修饰在血管生成中的具体机制尚不清楚。

研究方法与结果
在体外实验中,VEGF刺激显著提高了人视网膜微血管内皮细胞(HRMECs)中的H3K9la水平,并增强其增殖、迁移和成管能力。体内实验采用氧诱导视网膜病变(OIR)小鼠模型,结果显示H3K9la水平随病程进展上升,并在新生血管高峰期达到最高。使用糖酵解抑制剂可显著降低H3K9la水平并抑制血管生成。

CUT&Tag分析发现H3K9la富集于多个血管生成相关基因(如NECTIN1、TGFBR2、ABL1等)的启动子区域,ChIP-qPCR和qPCR进一步验证其对基因表达的促进作用。此外,研究发现VEGF下调HDAC2表达,而HDAC2过表达可抑制H3K9la水平和血管生成,提示H3K9la与HDAC2之间存在反馈调控机制。

简要介绍一下CUT&Tag、Chipseq、ATAC-seq的区别和联系

CUT&Tag

是一种靶向蛋白质-DNA相互作用的研究技术,与ChIP-seq类似,但不需要交联和免疫沉淀,而是通过抗体引导的切割实现DNA片段化,具有更高的分辨率和更低的背景信号。
[图片上传失败...(image-933f9c-1751184905263)]

ChIP-seq

染色质免疫共沉淀测序,用于研究特定蛋白(如组蛋白修饰、转录因子)在全基因组范围内的结合位点,需交联、沉淀和大规模测序。
[图片上传失败...(image-55daaa-1751184905263)]

ATAC-seq

转座酶可及性染色质测序,用于检测开放染色质区域,反映基因调控元件的可接近性,不依赖特异性抗体。
[图片上传失败...(image-8945aa-1751184905263)]

  • 研究蛋白质-DNA相互作用

    • 推荐使用 CUT&Tag:适用于微量样本,具有高信噪比,适合对样本量有限的实验。
    • 或选择 ChIP-seq:具有广泛的适用性,适合多种实验条件和样本类型。
  • 研究染色质开放性

    • 推荐使用 ATAC-seq:可高效检测全基因组范围内的染色质开放区域,操作简便且灵敏度高。
  • 探索未知调控因子

    • 首先通过 ATAC-seq 筛查潜在的开放染色质区域,识别可能的功能性调控区域。
    • 随后结合 CUT&TagChIP-seq 对目标蛋白进行验证,明确其在开放区域的结合情况。

尝试复现

image.png

数据下载

创建项目目录并进入该目录:

mkdir -p Project/GSE248643 && cd Project/GSE248643

下载数据:

wget https://ftp.ncbi.nlm.nih.gov/geo/series/GSE248nnn/GSE248643/suppl/GSE248643_RAW.tar -O GSE248643_RAW.tar

解压数据:

tar -xvf GSE248643_RAW.tar

bigWig(文件扩展名为 .bw.bigWig)是一种用于存储基因组连续数值数据的二进制格式。

下载参考文件并生成 gene.bed

wget ftp://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_43/gencode.v43.annotation.gtf.gz
gunzip gencode.v43.annotation.gtf.gz
awk '$3 == "gene"' gencode.v43.annotation.gtf | \
awk 'BEGIN{FS="\t| |;";OFS="\t"} {
    # 提取基因名和链信息
    gene_name = "";
    strand = $7;
    for (i=9; i<=NF; i++) {
        if ($i ~ /gene_name/) gene_name = $(i+1);
        gsub(/"/, "", gene_name);  # 去除引号
    }
    # 输出BED格式:chr, start, end, gene_name, score(0), strand
    print $1, $4-1, $5, gene_name, "0", strand;
}' > genes.bed
head -n 3 genes.bed

输出示例:

chr1    11868   14409   DDX11L2 0       +
chr1    12009   13670   DDX11L1 0       +
chr1    14403   29570   WASH7P  0       -

或生成上下游3000bp的启动子区。

awk '$3 == "gene"' gencode.v43.annotation.gtf | \
awk 'BEGIN{FS="\t"; OFS="\t"} {
    split($9, attrs, "; ");
    gene_name = "";
    for (i in attrs) {
        if (attrs[i] ~ /gene_name/) {
            split(attrs[i], tmp, "\"");
            gene_name = tmp[2];
        }
    }
    tss = ($7 == "+" ? $4 : $5);
    print $1, tss-3000, tss+3000, gene_name, "0", $7;
}' > gene_promoters.bed
head  -n 3 gene_promoters.bed

输出示例:

chr1    8869    14869   DDX11L2 0       +
chr1    9010    15010   DDX11L1 0       +
chr1    26570   32570   WASH7P  0       -

分析环境构建

创建 Conda 环境并指定 Python 版本:

conda create -n cuttag python=3.8

激活环境:

conda activate cuttag

安装 deeptools

conda install -y -c bioconda deeptools

验证安装:

deeptools --version

输出示例:

deeptools 3.5.5

当前目录结构(示例):

./
├── [1.5G]  gencode.v43.annotation.gtf
├── [2.3M]  gene_promoters.bed
├── [2.3M]  genes.bed
├── [224M]  GSE248643_RAW.tar
├── [113M]  GSM7918343_Control.bw
├── [111M]  GSM7918344_VEGF.bw

computeMatrix:基因组信号分布分析核心工具

computeMatrix 是 deepTools 工具包的核心模块,用于计算基因组信号在特定区域的分布,并生成标准化矩阵文件,为后续可视化(如热图、趋势图)提供数据支持。它支持两种主要计算模式:

模式 核心功能 适用场景
reference-point 以特定参考点(如 TSS、TES、peak 中心)对齐,计算上下游固定范围内的信号分布。 用于研究功能位点附近的信号富集,例如:
- 转录起始位点(TSS)的染色质开放性
- ChIP-seq 中抗体富集效果评估
- Peak 中心的蛋白结合强度
scale-regions 将不同长度的区域(如基因体)缩放到相同长度,计算信号在缩放区域内的分布。 用于分析基因整体结构的信号趋势,例如:
- 从 TSS 到 TES 的染色质状态变化
- 基因体区域的全局开放性或修饰模式
- 跨样本的基因结构信号比较

示例命令

1. reference-point 模式计算与绘图

computeMatrix reference-point \
  --referencePoint TSS \
  -b 3000 -a 3000 \
  -S GSM7918343_Control.bw GSM7918344_VEGF.bw \
  -p 35 \
  -R genes.bed -o matrix.gz

plotHeatmap -m matrix.gz \
  -out ExampleHeatmap1.png \
  --whatToShow "plot, heatmap and colorbar" \
  --colorMap Blues \
  --zMin 0 --zMax 0.8 \
  --heatmapHeight 15 \
  --heatmapWidth 8 \
  --dpi 300 \
  --refPointLabel "summit"

2. scale-regions 模式计算与绘图

computeMatrix scale-regions \
  -S GSM7918343_Control.bw GSM7918344_VEGF.bw \
  -R genes.bed \
  --regionBodyLength 6000 \
  --startLabel "TSS" \
  --endLabel "TES" \
  --beforeRegionStartLength 3000 \
  --afterRegionStartLength 3000 \
  --binSize 50 \
  -p 35 \
  -o matrix_scale.gz

plotHeatmap -m matrix_scale.gz \
  -out ExampleHeatmap2.png \
  --whatToShow "plot, heatmap and colorbar" \
  # 去除上方则线图
  #--whatToShow "heatmap and colorbar" \
  --colorMap Blues \
  --zMin 0 --zMax 0.8 \
  --heatmapHeight 15 \
  --heatmapWidth 8 \
  --averageType median \
  --dpi 300 \
  --refPointLabel "summit"

image.png

3. 折线图绘制

plotProfile -m matrix.gz \
  -out ProfilePlot.png \
  --perGroup \
  --colors "#1f77b4" "#2ca02c" \
  --yMin 0 --yMax 0.25 \
  --refPointLabel "TSS" \
  --startLabel "-3.0" --endLabel "3.0Kb" \
  --plotHeight 10 --plotWidth 12 \
  --dpi 300
image.png

数据预处理与峰注释分析

将 bigWig 文件转换为 BEDGraph 并提取峰

conda install -c bioconda ucsc-bigwigtobedgraph
bigWigToBedGraph GSM7918343_Control.bw Control.bedGraph
awk '$4 > 5 {print $1"\t"$2"\t"$3}' Control.bedGraph > Control_peaks.bed

bigWigToBedGraph GSM7918344_VEGF.bw VEGF.bedGraph
awk '$4 > 5 {print $1"\t"$2"\t"$3}' VEGF.bedGraph > VEGF_peaks.bed

R语言中进行峰注释与可视化

library(ChIPseeker)
library(dplyr)
library(ggplot2)
library(RColorBrewer)
library(TxDb.Hsapiens.UCSC.hg38.knownGene)

control_peaks <- readPeakFile("Control_peaks.bed")
vegf_peaks <- readPeakFile("VEGF_peaks.bed")

seqlevelsStyle(control_peaks) <- "UCSC"
seqlevelsStyle(vegf_peaks) <- "UCSC"

peakAnno_control <- annotatePeak(control_peaks, tssRegion = c(-3000, 3000),
                                 TxDb = TxDb.Hsapiens.UCSC.hg38.knownGene)
peakAnno_vegf <- annotatePeak(vegf_peaks, tssRegion = c(-3000, 3000),
                              TxDb = TxDb.Hsapiens.UCSC.hg38.knownGene)

绘制韦恩图与峰注释饼图

library(VennDiagram)
venn.diagram(x = list(Control = control_ids, VEGF = test_ids),
             filename = "H3K9la_venn.png",
             fill = c("#5399bd", "#d7aa91"), cat.col = c("#5399bd", "#d7aa91"),
             main = "H3K9la Binding Peaks Overlap")

# 绘制饼图
ppie = ggplot(combined_dist, aes(x = "", y = Frequency, fill = Feature)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  facet_wrap(~Group, ncol = 2) +
  theme_void() +
  scale_fill_brewer(palette = "Paired") +
  geom_text(aes(label = paste0(round(Frequency, 1), "%")),
            position = position_stack(vjust = 0.5), size = 3, color = "white")
ggsave("test.pie.png", plot = ppie, height = 4, width = 9, bg = "white")
image.png

差异峰富集

MACS2 bdgdiff:直接比较两组样本的peak信号强度,输出差异peak。

DiffBind(R包):适用于有生物学重复的数据,通过统计检验(如DESeq2或edgeR)识别差异结合位点。

ChIPComp:整合多个样本的peak信息,计算差异结合显著性。
作者提供的文件有些少,提供的SRA文件是可以下载的,建议还是下载原始文件从上游开始处理

结果展示

  • 热图与折线图成功复现文章趋势,与原文结论一致。
  • 韦恩图展示了 Control 与 VEGF 组之间峰的重叠情况。
  • 饼图展示了不同组中峰在基因组区域(如启动子、基因体、远端区域)的分布比例。
  • 差异结合峰,还是从原始文件开始处理可能会更好
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容