作者,Evil Genius
关于我们外显子的分析课程,我们来一次预报名吧,课表如下
第一节:外显子分析基础知识与框架(包括基础文件的格式等)
第二节:fastq数据处理到call SNV 基础认知(简单判断谱系突变和体系突变、以及GT:AD:AF:DP等基础信息)
第三节(可能需要拆分成2节课):各大数据库如何注释突变信息(clinvar、cosmic、gnomad、HGMD、hotspot 、oncoKB、md_aderson、civic 、candl、my cancer genome、PMKB、intervar、fathmm 数据库的认知与运用)
第四节:TMB MSI Fusion CNV
第五节:获取生信文件如何进行用药解读(靶向 化疗 免疫治疗推荐用药) 报告解读
第六节:HRD MRD
6~7节吧,费用1500,预报名100,在下方付费后可以加上我的微信,后续开始上课补1400,可以报账,报账因为有税的原因会多一点点,看看人数,如果可以的话我们9月14号开始上第一节课,还是那句话,报了名如果是我本人的原因没有上课,比如人数少,或者时间来不及等原因,我会把钱退给大家,如果是大家自己的原因报了名不来上课,100浪费了啊,微信退费都是有税的,只要瞎折腾,就要花钱,我希望大家认真看完上面的话,别交了100,课也正式上开了,然后非不上了,不退费就把我举报了,如果没有想好,千万不要报名,我会拉个上课的群,国庆前就上完了,大家国庆期间就可以好好玩了。
今天我们的话题,空间转录组的转录因子分析
大家还记得这个图吗?
知识背景
- 转录因子(TFs)驱动显著的细胞变化响应环境线索和细胞间信号。邻近细胞影响TF活性,从而影响细胞的命运和功能。空间转录组学(ST)捕获组织样本中的mRNA表达模式,从而能够表征局部微环境。
- 通过整合整理的TF靶基因先验、mRNA表达、空间坐标和来自相应成像数据的形态学特征,预测特定位点的、具有空间信息的TF活性。
- 生物学特定的转录程序区分专门的细胞类型/状态并定义它们的功能。转录因子(TFs)的组合通过与顺式调控元件(如启动子和增强子)的相互作用来驱动这些程序,以控制细胞身份和功能状态。附近的细胞对于确定背景特异性TF活性至关重要。TF通常在低水平表达,并在转录后和/或翻译后受到调节。此外,细胞过程依赖于蛋白质的表达水平(和活性),特别是TF,这与mRNA水平的表达水平不同。
- TF的活性通常是从它们的靶基因表达推断出来的。基于bulk和单细胞组学数据集,研究TF活性的各种方法已经开发出来。早期使用单细胞组学的方法依赖于单细胞RNA-seq (scRNA-seq)数据和/或在带注释的启动子区域鉴定TF基序。这些方法主要依赖于TF及其潜在靶基因的共表达。鉴于单细胞表观基因组数据集的可用性,例如由转座酶可达染色质的单细胞测序测定产生的数据集,各种TF推断方法都集中在染色质的背景特异性可达区域,这些区域可能被靶基因的上游或下游的TF结合。最近,SPaRTAN(单细胞蛋白质组学和基于RNA的转录因子活性网络)被开发出来,它利用单细胞蛋白质组学和相应的scRNAseq数据集,通过测序获得转录组和表位的细胞检索,将表面蛋白与TF连接起来。然而,这些方法忽略了单个细胞内其他信号蛋白和TF之间的关系,以及周围细胞对这些相互作用的影响,以及细胞身份如何受到局部环境的影响。
- 全基因组空间转录组学(ST)平台,如10x Genomics的Visium ST、DBiTseq和Slide-seq,可以在细胞的原生环境中进行转录组分析,并提供有关细胞身份如何受到位置影响的信息。例如,Visium可测量多达5,000个spot,每个spot最多包含10个细胞。ST已被用于研究癌症、阿尔茨海默病、牙周炎和健康组织。ST数据的一个优点是共配图像的附加生成信息,其中包含形态和功能模式。多种计算方法已被引入来分析ST数据,包括空间基因表达模式的表征,空间分布的差异表达基因和空间细胞通信模式。尽管取得了这些进展,但目前还没有将空间和组织学数据与基因表达和顺式调控信息相结合的方法来系统地估计点特异性TF的活性。
图像形态学信息 TF靶基因先验 spot特异性基因表达 空间坐标推断空间TF活性。其中将TF靶基因的表达视为TF活性的代表。从相应的成像数据中提取空间坐标和形态特征来估计TF的空间活动。
结果1、根据细胞类型、物理位置和配体/受体关联推断TF活性
分析基于spot的ST数据集,以估计spot特异性TF活性,并识别与特定细胞类型、空间结构域、病理区域和配体/受体相关的TF。大多数基于spot的ST分析方法的一个关键限制是缺乏单细胞分辨率,因为空间RNA-seq测量结合了多个细胞。因此,推断TFs的点特异性活性来自多个细胞。为了克服这一限制,使用反卷积方法,通过计算整合空间RNA-seq与从scRNA-seq谱中获得的细胞类型的参考转录组特征来估计每个spot的细胞类型比例,通过线性回归进行TF和细胞类型之间的关联分析,通过反卷积方法从细胞类型比例单独预测每个TF的活性,以确定其活性在病理区域和空间域中不同的TF,并确定其基因表达与邻近位置的TF相关的配体/受体。
结果2、分析示例,淋巴结
结果3、分析示例:乳腺癌不同病理区域的TF活性模式
结果4、分析示例:胶质母细胞瘤中与TF连接的配体和受体(探索配体、受体和TF之间的分子相互作用)
细胞行为受到来自周围微环境的信号的复杂影响,这些信号通常以配体的形式出现,配体是由邻近细胞产生的细胞外蛋白质信号。这些配体与受体细胞上表达的受体相互作用,引发一系列分子事件,这些事件可以深刻地影响基因表达程序并调节TF的活性。
代码示例(注意说过很多次了,代码示例就像我们书本学的例题,真正做项目可不能随便照搬例题的方法做)。
代码语言:javascript复制from anndata import AnnData
from scipy.stats import pearsonr, spearmanr, wilcoxon
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import scanpy as sc
import seaborn as sns
import squidpy as sq
import warnings
warnings.filterwarnings('ignore')
import sys
sys.path.append("../")
import auxiliary_lymphnode as auxln
import auxiliary_plot as auxpl
figsize = auxpl.figsize
fontsize = auxpl.fontsize
####Loading ST dataset
# input of decoupleR
adata_raw = sc.read_h5ad("results_lymphnode/lymphnode.h5ad")
# output of decoupleR
adata_coup = sc.read_h5ad("results_lymphnode/lymphnode_decoupler.h5ad")
adata_tfa = AnnData(
X = adata_coup.obsm['ulm_estimate'],
obs = adata_coup.obs,
obsm = {name: obj for (name, obj) in adata_coup.obsm.items() if "tf" not in name},
layers = {name: obj for (name, obj) in adata_coup.obsm.items() if "tf" in name})
adata_tfa.uns = adata_coup.uns
sc.pp.normalize_total(adata_raw)
adata_raw.layers['scaled'] = np.sqrt(adata_raw.to_df())
sc.pp.normalize_total(adata_coup)
adata_coup.layers['scaled'] = np.sqrt(adata_coup.to_df())
Visualizing TFa in spatial coordinates
代码语言:javascript复制####We rank TFs and genes for germinal centers and nongerminal centers.
adata_tfa.obs['germinal_center'] = adata_tfa.obs['germinal_center'].astype('category')
sc.tl.rank_genes_groups(adata_tfa, groupby='germinal_center', method="wilcoxon")
sc.pl.rank_genes_groups(adata_tfa, fontsize=fontsize, n_genes=10)
Celltype Proportion and TF Activity
代码语言:javascript复制df_celltype = auxln.merge_celltypes(adata_raw)
adata_raw.obsm['celltype_major'] = df_celltype
adata_coup.obsm['celltype_major'] = df_celltype
adata_tfa.obsm['celltype_major'] = df_celltype
def plot_spatial_ct_tf(ct, tf):
fig, axs = plt.subplots(1,3, figsize=(figsize*3,figsize), dpi=100)
sc.pl.spatial(sq.pl.extract(adata_tfa, "celltype_major"),
color=ct, alpha_img=0, ax=axs[0], show=False, cmap="rocket", size=1.8,
legend_fontsize=fontsize)
sc.pl.spatial(adata_tfa, color=tf, alpha_img=0, ax=axs[1],show=False, cmap="plasma",
legend_fontsize=fontsize, size=1.8)
sc.pl.spatial(adata_raw, color=tf, alpha_img=0, ax=axs[2],show=False, cmap="viridis",
legend_fontsize=fontsize, size=1.8)
axs[0].set_title(ct 'n', fontsize=fontsize)
axs[1].set_title(tf ' activitynpearson=%.4f'% mat_cor_tfa.loc[tf, ct], fontsize=fontsize)
axs[2].set_title(tf " mRNA exprnpearson=%.4f"% mat_cor_rna.loc[tf, ct], fontsize=fontsize)
for i in range(3):
axs[i].set_xlabel("")
axs[i].set_ylabel("")
plt.tight_layout(pad=0.6)
mat_cor_tfa, mat_cor_rna = auxpl.make_cor_dataframe(adata_raw, adata_tfa, celltype_label='celltype_major')
df_ct_tf = auxpl.make_ct_tf_dataframe(adata_tfa, celltype_label='celltype_major')
plot_spatial_ct_tf(ct = "T_Treg", tf = "FOXP3")
代码语言:javascript复制plot_spatial_ct_tf(ct = "B_IFN", tf = "STAT2")
代码语言:javascript复制df_ct_tf = auxpl.make_ct_tf_dataframe(adata_tfa, celltype_label='celltype_major')
tf_list = ['BACH2', 'BCL11A', 'CDX2', 'CREB1', 'E2F1', 'E2F7', 'EBF1', 'ETS1', 'ETV6',
'FOXM1', 'FOXP2', 'FOXP3', 'GTF2B', 'IRF1', 'IRF2', 'KLF1', 'KMT2A', 'MAX', 'MYB',
'NR5A2', 'PAX5', 'PBX1', 'PGR', 'POU2F2', 'PPARG', 'RFX3', 'SPIB', 'STAT1',
'STAT2', 'STAT3', 'STAT4', 'STAT5B', 'TBX21', 'TCF21']
ct_list = ['B_Cycling', 'B_GC', 'T_TIM3 ', 'B_preGC', 'B_activated', 'NK', 'T_CD8 ', 'NKT',
'VSMC', 'FDC', 'T_TfR', 'T_Treg', 'B_mem', 'B_plasma', 'Monocytes', 'B_IFN', 'DC',
'ILC', 'Macrophages', 'T_CD4 ']
auxpl.plot_heatmap(df_ct_tf, tf_list, ct_list)