美文网首页
STOmics-seq:Stereopy教程(二)

STOmics-seq:Stereopy教程(二)

作者: 土豆干锅 | 来源:发表于2023-07-09 23:08 被阅读0次

    本期内容展示Stereopy的Cell Bin的处理,即bin1的时候的教程

    一、代码教程

    1、读取数据生成 StereoExpData 对象

    import stereo as st
    import warnings
    warnings.filterwarnings('ignore')
    data_path = 'sample.cellbin.gef'
    st.io.read_gef_info(data_path)
    data = st.io.read_gef(file_path=data_path, bin_type='cell_bins')
    data
    StereoExpData object with n_cells X n_genes = 51601 X 30798
    bin_type: cell_bins
    offset_x = None
    offset_y = None
    cells: ['cell_name']
    genes: ['gene_name']
    
    

    2、质控

    #质控,对以下三个指标进行total_counts,n_genes_by_counts,pct_countss_mt
    #这个函数就完成了这三个指标的计算
    data.tl.cal_qc()
    data#发现比上次data中多了cells,和genes的label
    StereoExpData object with n_cells X n_genes = 51601 X 30798
    bin_type: cell_bins
    offset_x = None
    offset_y = None
    cells: ['cell_name', 'total_counts', 'n_genes_by_counts', 'pct_counts_mt']
    genes: ['gene_name', 'n_cells', 'n_counts', 'mean_umi']
    #可视化
    data.plt.violin()
    data.plt.spatial_scatter()
    data.plt.genes_count()
    
    image.png image.png image.png

    3、过滤,根据QC部分计算的质量控制指标,和散点图观察的细胞的分布去设置合适的参数过滤细胞。

    #去除线粒体基因表达过多、表达基因不足且超出计数范围的细胞。
    data.tl.filter_cells(
            min_gene=200,
            min_n_genes_by_counts=3,
            max_n_genes_by_counts=2500,
            pct_counts_mt=5,
            inplace=True
            )
    #去掉,在细胞中表达次数过低的基因,这里参考的是seurat的参数
    data.tl.filter_genes(min_cell=3) 
    

    4、标准化Normalization
    官方给出的方法:

    教程里的代码使用的是normalize_total和log1p,scale,这个过程和seurat的流程一样

    # inplace is set to True by default
    data.tl.normalize_total()
    data.tl.log1p()
    #计算高变基因
    data.tl.highly_variable_genes(
                min_mean=0.0125,
                max_mean=3,
                min_disp=0.5,
                n_top_genes=2000,
                res_key='highly_variable_genes'
                )
    #高变基因可视化
    data.plt.highly_variable_genes(res_key='highly_variable_genes')
    #scale
    data.tl.scale()
    
    image.png

    5、embedding,这个也和seurat类似

    data.tl.pca(
            use_highly_genes=True,
            n_pcs=30,
            res_key='pca'
            )
    data.tl.neighbors(pca_res_key='pca', res_key='neighbors')
    data.tl.umap(
            pca_res_key='pca',
            neighbors_res_key='neighbors',
            res_key='umap'
            )
    #umap可视化,查看两个基因的umap图
    data.plt.umap(gene_names=['Atpif1', 'Tmsb4x'], res_key='umap')
    
    image.png

    6、clustering,提供三种常见的聚类方法,包括Leiden,Louvain和Phenograph

    data.tl.leiden(neighbors_res_key='neighbors',res_key='leiden')
    #可视化
    data.plt.cluster_scatter(res_key='leiden')
    data.plt.umap(res_key='umap', cluster_key='leiden')
    
    image.png
    image.png

    7、查找标记基因

    data.tl.find_marker_genes(
            cluster_res_key='phenograph',
            method='t_test',
            use_highly_genes=False,
            use_raw=True
            )
    #可视化每组中前10个标记基因的排名和得分
    data.plt.marker_genes_text(
            res_key='marker_genes',
            markers_num=10,
            sort_key='scores'
            )
    #可视化每组中前5个标记基因的气泡图
    data.plt.marker_genes_scatter(res_key='marker_genes', markers_num=5)
    #通过logfc等过滤掉基因
    data.tl.filter_marker_genes(
        marker_genes_res_key='marker_genes',
        min_fold_change=1,
        min_in_group_fraction=0.25,
        max_out_group_fraction=0.5,
        res_key='marker_genes_filtered'
    )
    
    image.png
    image.png

    7、注释

    #注释的字典太长,没写完
    annotation_dict = {
        '1':'a',
        '2':'b',
        '3':'c',
        '4':'d',
        '5':'e',
        '6':'f',
        '7':'g'
    }
    data.tl.annotation(
            annotation_information=annotation_dict,
            cluster_res_key='leiden',
            res_key='anno_leiden'
            )
    #可视化
    data.plt.cluster_scatter(res_key='anno_leiden')
    
    image.png

    二、小结

    1、过滤参数的设置,不要过于严格,不然空间位点的图空点会过多。
    2、Normalization的方法较多,在选择方法时要思考,不要无脑按照教程搬。
    3、降维时pca等设置的参数由于不同的Normalization,设置的细节也有差别。
    4、clustering分群时用的方法有三种,也需要选择。我比较习惯用Louvain。
    总之,教程只是一个引导,抛砖引玉的过程,细节部分大家自行考量。
    如有错误之处,请留言指正。

    相关文章

      网友评论

          本文标题:STOmics-seq:Stereopy教程(二)

          本文链接:https://www.haomeiwen.com/subject/cynludtx.html