本期內(nèi)容展示Stereopy的Cell Bin的處理久橙,即bin1的時候的教程
一俄占、代碼教程
1、讀取數(shù)據(jù)生成 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淆衷、質(zhì)控
#質(zhì)控,對以下三個指標(biāo)進(jìn)行total_counts,n_genes_by_counts,pct_countss_mt
#這個函數(shù)就完成了這三個指標(biāo)的計算
data.tl.cal_qc()
data#發(fā)現(xiàn)比上次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()
3、過濾吭敢,根據(jù)QC部分計算的質(zhì)量控制指標(biāo)碰凶,和散點圖觀察的細(xì)胞的分布去設(shè)置合適的參數(shù)過濾細(xì)胞。
#去除線粒體基因表達(dá)過多鹿驼、表達(dá)基因不足且超出計數(shù)范圍的細(xì)胞欲低。
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
)
#去掉,在細(xì)胞中表達(dá)次數(shù)過低的基因畜晰,這里參考的是seurat的參數(shù)
data.tl.filter_genes(min_cell=3)
4砾莱、標(biāo)準(zhǔn)化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()
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')
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')
7、查找標(biāo)記基因
data.tl.find_marker_genes(
cluster_res_key='phenograph',
method='t_test',
use_highly_genes=False,
use_raw=True
)
#可視化每組中前10個標(biāo)記基因的排名和得分
data.plt.marker_genes_text(
res_key='marker_genes',
markers_num=10,
sort_key='scores'
)
#可視化每組中前5個標(biāo)記基因的氣泡圖
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'
)
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')
二、小結(jié)
1甜害、過濾參數(shù)的設(shè)置舶掖,不要過于嚴(yán)格,不然空間位點的圖空點會過多尔店。
2眨攘、Normalization的方法較多,在選擇方法時要思考闹获,不要無腦按照教程搬期犬。
3、降維時pca等設(shè)置的參數(shù)由于不同的Normalization避诽,設(shè)置的細(xì)節(jié)也有差別龟虎。
4、clustering分群時用的方法有三種沙庐,也需要選擇鲤妥。我比較習(xí)慣用Louvain佳吞。
總之,教程只是一個引導(dǎo)棉安,拋磚引玉的過程底扳,細(xì)節(jié)部分大家自行考量。
如有錯誤之處贡耽,請留言指正衷模。