房地产网站建设,国外用什么做网站,wordpress move 下载,惠安县规划建设局网站作者#xff0c;Evil Genius
在昨天的文章细节分享--关于高精度#xff08;Xenium、CosMx#xff09;细胞分割外基因表达的分析讨论中表明uRNA可能携带有生物学意义的信号#xff0c;值得进一步探讨。
而我们今天分享的troutpy#xff0c;是一个用于空间转录组学数据中定…作者Evil Genius在昨天的文章细节分享--关于高精度Xenium、CosMx细胞分割外基因表达的分析讨论中表明uRNA可能携带有生物学意义的信号值得进一步探讨。而我们今天分享的troutpy是一个用于空间转录组学数据中定量探索uRNA的Python包。示例代码分享一下现在空间分析的代码几乎全是python也是对大家的要求。import spatialdata as sd import troutpy as tp import scanpy as sc import numpy as np ###Xenium数据 sdatasd.read_zarr(./data.zarr) #please modify the path to your conveniece ###Processing cellular information cell type definition adata sdata[table] adata.raw adata.copy() all_cells adata.shape[0] sc.pp.filter_cells(adata, min_genes10) sc.pp.filter_cells(adata, min_counts30) sc.pp.filter_genes(adata, min_cells3) print(fProportion of cells retained after filtering: {adata.shape[0] / all_cells:.2%}) adata.layers[raw] adata.X.copy() sc.pp.normalize_total(adata) sc.pp.log1p(adata) sc.tl.pca(adata) sc.pp.neighbors(adata, n_neighbors10) sc.tl.umap(adata) sc.tl.leiden(adata, key_addedleiden, resolution0.6) sc.tl.rank_genes_groups(adata, groupbyleiden) sc.tl.dendrogram(adata,groupbyleiden) sc.pl.rank_genes_groups_dotplot(adata, groupbyleiden,n_genes4,cmapBlues)dict_anno{0:DG,1:Oligodendrocytes,2:CA1-2,3:Astrocytes,4:Endothelial,5:EXC neurons Thal.,6:SMC/Pericytes,7:CA3,8:EXC. neurons CTX, 9:Ependymal cells,10:Microglia,11:INH neurons,12:OPC,13:Astrocytes,14:SGZ Neuroblasts,15:Cajal-Retzius,16:Choroid plexus,17:INH neurons CP, 18:Oligodendrocytes} adata.obs[cell type]adata.obs[leiden].astype(int).map(dict_anno) sc.pl.umap(adata,colorcell type,palettetab20) sc.pl.spatial(adata,spot_size30,colorcell type,palettetab20)Segmentation-free analysis首先将组织中的每个转录本按指定微米级像素尺寸binsize进行空间分箱。同时根据background_filter参数对背景信号进行过滤。由于空间数据集通常在特定分辨率下较为稀疏还会通过gaussian_kernel_key参数调整高斯模糊对信号进行平滑处理。在完成分箱、过滤和平滑处理后计算每个像素的基因表达特征与预定义细胞类型特征之间的余弦相似度。细胞类型特征通过sdata[table].obs中指定列由celltype_key参数定义的细胞类型平均表达值来确定。针对每个像素将获得其与所有细胞类型的余弦相似度值。为简化分析仅保留每个像素与任意细胞类型的最大余弦相似度值及其对应的细胞类型信息。最终这些计算结果将以新列的形式添加到sdata[transcripts]的每个转录本信息中。tp.pp.segmentation_free_sainsc(sdata,binsize5,celltype_keyleiden,background_filter0.2,gaussian_kernel_key2.0)由于分析包含了所有转录本因此可以对比已分割至细胞的转录本与未分配转录本的余弦相似度。这将使我们能够将未分配的RNA分为两类第一类在局部特征上与已分割细胞相似的RNA类细胞RNA第二类具有与已分割细胞不同局部组成的RNA其他未分配RNA# 3) Histogram of scores tp.pl.histogram(sdata, xcosine_similarity, hueoverlaps_cell, palettetroutpy)结合分割分析和免分割分析的结果对非类细胞型转录本进行处理。细胞外转录本将通过以下两个条件来定义位于已分割细胞区域之外与细胞类型特征图谱的余弦相似度低于设定的百分位数阈值percentile_threshold该阈值仅基于细胞像素计算得出。# 4) Define extracellular tp.pp.define_urna(sdata, layertranscripts, methodsainsc, percentile_threshold5) # 5) Crosstab / pie / heatmap tp.pl.crosstab(sdata,yvarextracellular,xvaroverlaps_cell,normalizeFalse,cmaptroutpy,kindbarh,stackedTrue,figsize(5, 2))Gene-centric exploration of uRNA compopsition探索未分配RNA的丰度与比例首先将量化各类uRNA即各基因在未分配RNA库中的丰度并将其与背景噪音水平进行比较。为此实现了troutpy.tl.quantify_overexpression方法用于识别相对于噪音阈值过表达的基因。该方法的核心原理是基于指定对照特征的计数计算阈值并将各基因计数与该阈值比较以判定过表达情况。该函数会计算每个基因的对数倍数变化将结果标注于元数据中最终返回更新后的空间数据以及各基因的得分与计算阈值。control_codewords [negative_control_probe, unassigned_codeword, deprecated_codeword, genomic_control_probe, negative_control_codeword] tp.tl.quantify_overexpression(sdata,layertranscripts,codeword_keycodeword_category,control_codewordscontrol_codewords,gene_keygene, percentile_threshold99.5) tp.pl.logfoldratio_over_noise(sdata, test_methodauto)探究哪些基因相较于噪音水平具有最高的富集程度。为此我们通过散点图进行可视化展示图中每个点代表一个基因横轴为未分配RNAuRNA计数纵轴为相较于噪音水平的对数比值logFoldRatio。通过该可视化分析我们识别出特定基因在未分配RNA库中呈现高丰度特征。tp.pl.metric_scatter( sdata, xcount, ylogfoldratio_over_noise, label_top_n_x7, label_top_n_y5, label_bottom_n_x0, label_bottom_n_y0, size20 )tp.tl.extracellular_enrichment(sdata)可以并排可视化两个指标——uRNA丰度与uRNA占比并观察不同基因呈现的差异模式低uRNA/细胞外占比的基因如Aldoa这类基因仅表现为高丰度基因高uRNA占比但低uRNA丰度的基因提示存在未通过细胞分割充分捕获的uRNA表达模式同时具有高uRNA丰度与高占比的基因代表在已分割细胞外显著富集的高表达基因呈现清晰的特征模式tp.pl.metric_scatter( sdata, xextracellular_proportion, ylogfoldratio_over_noise, label_top_n_x7, label_top_n_y5, label_bottom_n_x0, label_bottom_n_y0, size5,linewidth0.1 )探索空间变异性与未分配RNA分布模式tp.pp.aggregate_urna(sdata, gene_keygene, square_size50) tp.tl.spatial_variability(sdata,gene_keygene,n_neighbors10) tp.pl.spatial_transcripts(sdata,gene_list[Adcy1],scatter_size2, boundary_linewidth0.1)sdata[transcripts][gene]sdata[transcripts][gene].astype(category) tp.pp.aggregate_urna(sdata, gene_keygene, square_size50) tp.tl.in_out_correlation(sdata, n_neighbors20) tp.pl.metric_scatter( sdata, xmoran_I, yin_out_spearmanR, label_top_n_x0, label_top_n_y3, label_bottom_n_x0, label_bottom_n_y3, size5,linewidth0.1 )tp.pl.spatial_transcripts(sdata,gene_list[Ptk2b],scatter_size2, boundary_linewidth0.1)未分配RNA基因筛选仅保留明确高于噪音水平且非对照探针的基因。tp.pp.filter_urna(sdata, min_logfoldratio_over_noise7, gene_keygene) # filter out genes with a logfoldratio over noise below 7. tp.pp.filter_urna(sdata,gene_keygene,control_probeTrue) # filter control probes #### Identifying uRNAs source tp.tl.compute_source_score(sdata,layertranscripts,gene_keygene, lambda_decay0.1,celltype_keycell type,n_jobs1)Assesing diffusiontp.tl.assess_diffusion(sdata, gene_keygene, distance_keydistance) tp.pl.diffusion_results(sdata,label_top_n_y10,y_logscaleTrue)tp.pl.gene_distribution_from_source(sdata,[Camk2b])tp.pl.source_score_by_celltype(sdata,figsize(6,6),cmapterrain)Cell-specific uRNAs source scoresc.pl.umap(sdata[table],color[urna_source_score,cell type],cmapterrain,titleuRNA source score,vmaxp99.995)最后保存数据sdata.write(./data_filt.zarr)生活很好有你更好