乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      infercnvpy:Python版單細(xì)胞infercnv分析

       TS的美夢 2024-09-19
      我們之前介紹過R語言版本的infercnv分析(單細(xì)胞腫瘤inferCNV分析及可視化(詳細(xì)注釋版))。其實python也有相應(yīng)的包進(jìn)行cnv分析,優(yōu)點是相比于R來說過,速度是快了不少。這一期就簡單介紹下infercnvpy的使用,infercnvpy的算法參考了infercnv,但是可能還是有些區(qū)別,因為在最后的結(jié)果上不能和R版infercnv做到一模一樣,infercnvpy于scanpy有良好的結(jié)合和拓展,那么使用scanpy進(jìn)行單細(xì)胞分析的話,infercnvpy做拷貝數(shù)變異分析就是很好的選擇。請注意:infercnvpy教程很久之前就已經(jīng)在VIP發(fā)布,公眾號并未發(fā)布過,具體內(nèi)容詳見打包代碼單細(xì)胞---python版CNV分析!
      更多詳細(xì)內(nèi)容請參見:
      https://github.com/icbi-lab/infercnvpy
      https://infercnvpy./en/latest/

      首先安裝包:
      #安裝軟件pip install infercnvpy -i https://pypi.tuna./simple some-package

      因為我們單細(xì)胞不是scanpy分析的,是基于seurat的,所以為了演示infercnvpy,我們是將但洗腦seurat object轉(zhuǎn)化為adata。
      import scanpy as scimport infercnvpy as cnvimport matplotlib.pyplot as pltimport warnings
      warnings.simplefilter("ignore")
      sc.settings.set_figure_params(figsize=(5, 5))

      #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")


      額外需要的文件和R版是一樣的,就是那個Genomic positions文件,需要將其信息添加到adata到adata。
      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")

      #Clustering by CNV profiles and identifying tumor cellscnv.tl.pca(adata)cnv.pp.neighbors(adata)cnv.tl.leiden(adata)
      cnv.pl.chromosome_heatmap(adata, groupby="cnv_leiden", dendrogram=True)

      #我這里按照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ì)胞??傊?span style="font-family: "PingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;letter-spacing: 0.544px;text-wrap: wrap;background-color: rgb(255, 255, 255);">infercnvpy在分析和可視化上面表現(xiàn)都挺好,可以嘗試一下!

      覺得我們分享有些用的,點個贊再走唄!

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章