pySCENIC: 结果加载和其他计算
2025-07-22 本文已影响0人
LET149
NOTE: 使用
docker进行计算时,作为结果的.loom文件中只有AUC matrix和Regulon信息,没有binarized AUC matrix和RSS信息,需要自己计算。
1. 载入
AUC matrix和Regulon信息import scanpy as sc import pandas as pd import loompy as lp import numpy as np import os import json import zlib import base64 import pyscenic from pyscenic.binarization import binarize from pyscenic.rss import regulon_specificity_scores file_loom = lp.connect("/y___SCENIC-results_of_Female_1-day.loom", mode='r+', validate=False) file_loom.close() # AUC-Regulon matrix AUC_matrix = pd.DataFrame( file_loom.ca.RegulonsAUC, index=file_loom.ca.CellID) # Gene of every regulon regulons = {} for i,r in pd.DataFrame(file_loom.ra.Regulons,index=file_loom.ra.Gene).iteritems(): regulons[i] = list(r[r==1].index.values)
2. 计算
binarized AUC matrix和RSS信息# binarize the AUC matrix # generate binarized AUC matrix and thresholds used AUC_bin_matrix, Threshold_df = binarize(AUC_matrix) Threshold_df = Threshold_df.to_frame().rename(columns={0:'threshold'}).copy() # calculate RSS (regulon-specificity-score) rss = regulon_specificity_scores(AUC_matrix, object_used.obs.Cluster) rss.head()
3.加载
TF-enriched-motif信息
reg.csvfrom pyscenic.utils import load_motifs df_motifs = load_motifs('/SCENIC-outputs/y___2_reg.csv')