pySCENIC: 结果加载和其他计算

2025-07-22  本文已影响0人  LET149

NOTE: 使用 docker 进行计算时,作为结果的 .loom 文件中只有 AUC matrixRegulon 信息,没有 binarized AUC matrixRSS 信息,需要自己计算。


1. 载入 AUC matrixRegulon 信息

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 matrixRSS 信息

# 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.csv

from pyscenic.utils import load_motifs

df_motifs = load_motifs('/SCENIC-outputs/y___2_reg.csv')
上一篇 下一篇

猜你喜欢

热点阅读