#安裝軟件pip install infercnvpy -i https://pypi.tuna./simple some-package
#library(sceasy)#library(reticulate)#use_condaenv('sceasy')#loompy <- reticulate::import('loompy')# sceasy::convertFormat(uterus, from="seurat", to="anndata", outFile='sce_uterus.h5ad') import anndataadata = anndata.read_h5ad('sce_uterus.h5ad')adata# AnnData object with n_obs × n_vars = 27914 × 27001# obs: 'orig.ident', 'nCount_RNA', 'nFeature_RNA', 'S.Score', 'G2M.Score', 'Phase', 'percent.mt', 'percent.rb', 'percent.hb', 'integrated_snn_res.0.1', 'integrated_snn_res.0.2', 'integrated_snn_res.0.3', 'integrated_snn_res.0.4', 'integrated_snn_res.0.5', 'integrated_snn_res.0.6', 'integrated_snn_res.0.7', 'integrated_snn_res.0.8', 'integrated_snn_res.0.9', 'integrated_snn_res.1', 'integrated_snn_res.1.1', 'integrated_snn_res.1.2', 'seurat_clusters', 'celltype', 'cell_type', 'group_cell'# var: 'name'# obsm: 'X_pca', 'X_tsne' sc.pl.tsne(adata, color="cell_type") gene_annotations = pd.read_csv('geneannotation.csv') # 將染色體位置信息添加到 adata.varadata.var['chromosome'] = '' # 初始化染色體列adata.var['start'] = 0 # 初始化起始位置列adata.var['end'] = 0 # 初始化結(jié)束位置列 # 匹配基因ID并添加染色體位置信息for gene_id in adata.var_names: if gene_id in gene_annotations['gene_symbol'].values: # 找到匹配的基因并獲取其染色體位置信息 chromosome, start, end = gene_annotations.loc[gene_annotations['gene_symbol'] == gene_id, ['chromosome', 'start', 'end']].values[0] adata.var.loc[gene_id, 'chromosome'] = chromosome adata.var.loc[gene_id, 'start'] = start adata.var.loc[gene_id, 'end'] = end #去掉NAadata = adata[: , adata.var.chromosome.notna()] run infercnvpy:速度很快! #run infercnvpycnv.tl.infercnv( adata, reference_key="group_cell", reference_cat=[ "HC_Ly", "HC_Endo", "HC_Uepi", "HC_Cepi", "HC_Mac", "HC_SMC", "HC_Sfib", ], window_size=250,) cnv.pl.chromosome_heatmap(adata, groupby="group_cell")
#我這里按照cnv_score進(jìn)行區(qū)分adata.obs["cnv_status"] = "normal"adata.obs.loc[adata.obs["cnv_score"]>0.008, "cnv_status"] = ( "tumor") sc.pl.tsne(adata, color="cnv_status") cnv.pl.chromosome_heatmap(adata[adata.obs["cnv_status"] == "normal", :]) 最后,我們可以將cell信息提取,然后再R里面區(qū)分提取惡性細(xì)胞。總之,infercnvpy在分析和可視化上面表現(xiàn)都挺好,可以嘗試一下! 覺得我們分享有些用的,點個贊再走唄! |
|