PySCENIC(一):python版單細(xì)胞轉(zhuǎn)錄組轉(zhuǎn)錄因子分析

關(guān)于單細(xì)胞轉(zhuǎn)錄組轉(zhuǎn)錄因子的分析我們之前在單細(xì)胞系列講過R語言版本的妓盲,參考:跟著Cell學(xué)單細(xì)胞轉(zhuǎn)錄組分析(十二):轉(zhuǎn)錄組因子分析矩肩,但是R語言分析起來速度非常慢椅邓,如果你動(dòng)輒上萬的單細(xì)胞可能要運(yùn)行好幾周,這顯然不現(xiàn)實(shí)访娶。pySCENIC則很好的解決了這個(gè)問題,分析速度很快。官方教程參考:

https://pyscenic.readthedocs.io/en/latest/

一蛇券、軟件安裝

老樣子,還是先說一下安裝和分析文件的準(zhǔn)備樊拓,前面環(huán)境的配置和之前cellphonedb一樣纠亚,如果已經(jīng)操作過的,可以跳過:

#安裝下載及環(huán)境設(shè)置
# 安裝一個(gè)conda筋夏,為什么安裝他可以理解為Rstuido之于R,后期在環(huán)境設(shè)置蒂胞、軟件安裝上很方便。
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# bash安裝叁丧,按照指引啤誊,都選yes,這樣一些依賴的python包都安裝了拥娄。
bash Miniconda3-latest-Linux-x86_64.sh 
#  激活conda環(huán)境
source ~/.bashrc

#設(shè)置鏡像
conda config --add channels r 
conda config --add channels conda-forge 
conda config --add channels bioconda
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

然后就是安裝pySCENIC及環(huán)境設(shè)置:

#安裝pyscenic蚊锹,并創(chuàng)建分析環(huán)境
conda create -n pyscenic python=3.9#創(chuàng)建一個(gè)pyscenic 的python環(huán)境,pyscenic要求python版本3.6及以上稚瘾,目前python出到3.9了牡昆,我用3.9
conda activate pyscenic #激活pyscenic 環(huán)境
#安裝依賴包
conda install -y numpy
conda install -y -c anaconda cytoolz
conda install -y scanpy
#安裝pyscenic
pip install pyscenic

pip安裝即可,如果安裝失敗或者覺得下載速度太慢摊欠,可以使用下面代碼丢烘,使用與其他軟件的pip安裝。

pip install cellphonedb -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

二些椒、數(shù)據(jù)文件準(zhǔn)備

一些分析用的依賴數(shù)據(jù)庫及文件:


#TF注釋
#鼠的
wget https://resources.aertslab.org/cistarget/motif2tf/motifs-v9-nr.mgi-m0.001-o0.0.tbl
#人的
wget https://resources.aertslab.org/cistarget/motif2tf/motifs-v9-nr.hgnc-m0.001-o0.0.tbl

#轉(zhuǎn)錄組因子列表
下載地址
https://github.com/aertslab/pySCENIC/tree/master/resources
#人的文件名:hs_hgnc_tfs.txt播瞳,復(fù)制為txt文件即可
#鼠的文件名:mm_mgi_tfs.txt,復(fù)制為txt文件即可

#reference數(shù)據(jù)庫免糕,之前一些網(wǎng)上教程的鏈接文件已經(jīng)不行了赢乓,因?yàn)樽隽烁掠遣啵艿臅r(shí)候會出錯(cuò),我是根據(jù)報(bào)錯(cuò)選擇了下面的文件
#鼠的
wget https://resources.aertslab.org/cistarget/databases/mus_musculus/mm10/refseq_r80/mc_v10_clust/gene_based/mm10_10kbp_up_10kbp_down_full_tx_clustered.genes_vs_motifs.rankings.feather
#人的
wget https://resources.aertslab.org/cistarget/databases/homo_sapiens/hg38/refseq_r80/mc_v10_clust/gene_based/hg38_10kbp_up_10kbp_down_full_tx_v10_clust.genes_vs_motifs.rankings.feather

三牌芋、分析文件準(zhǔn)備

這一步是從我們的R種seurat對象提取表達(dá)矩陣蚓炬,并轉(zhuǎn)化為loom文件。這里使用一個(gè)python腳本躺屁,轉(zhuǎn)化一下即可肯夏。


#文件準(zhǔn)備
#pyscenic的輸入文件是行為基因名,列為細(xì)胞ID的矩陣犀暑,所以在seurat對象中導(dǎo)出矩陣的時(shí)候需要轉(zhuǎn)置一下驯击,可以用標(biāo)準(zhǔn)化矩陣,也可以用counts矩陣母怜,影響不大余耽!
#表達(dá)矩陣、meta----R中進(jìn)行
write.csv(t(as.matrix(sce@assays$RNA@counts)),file = "sce_exp.csv")
#cellInfo <- sce@meta.data[,c("celltype","nCount_RNA","nFeature_RNA")]
#colnames(cellInfo) <- c('CellType', 'nGene' ,'nUMI')
#head(cellInfo)
#write.csv(cellInfo, file = "cellInfo.csv")

#轉(zhuǎn)化為loom文件苹熏,Linux下的python腳本
#編輯腳本
vim trans.py
#輸入以下內(nèi)容
import os, sys
os.getcwd()
os.listdir(os.getcwd())
import loompy as lp;
import numpy as np;
import scanpy as sc;
x=sc.read_csv("sce_exp.csv");#R中導(dǎo)出的表達(dá)矩陣
row_attrs = {"Gene": np.array(x.var_names),};
col_attrs = {"CellID": np.array(x.obs_names)};
lp.create("sce.loom",x.X.transpose(),row_attrs,col_attrs)

#保存并退出
#運(yùn)行trans.py
python trans.py
ls
#這樣在文件夾中會出現(xiàn)sce.loom文件碟贾,就是接下來輸入pyscenic的文件。

這樣整個(gè)準(zhǔn)備工作就完成了轨域,后續(xù)的分析很簡潔袱耽,只需要三步。然后就是可視化了干发,這個(gè)下回分解朱巨,覺得分享有用對你有幫助的,點(diǎn)個(gè)贊枉长、分享下再走唄冀续!記得關(guān)注下,之后不迷路必峰!更多精彩請?jiān)L問我的公眾號《KS科研分享與服務(wù)》

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末洪唐,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子吼蚁,更是在濱河造成了極大的恐慌凭需,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肝匆,死亡現(xiàn)場離奇詭異粒蜈,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)旗国,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門枯怖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人能曾,你說我怎么就攤上這事嫁怀∩杈瑁” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵塘淑,是天一觀的道長。 經(jīng)常有香客問我蚂斤,道長存捺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任曙蒸,我火速辦了婚禮捌治,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘纽窟。我一直安慰自己肖油,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布臂港。 她就那樣靜靜地躺著森枪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪审孽。 梳的紋絲不亂的頭發(fā)上县袱,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機(jī)與錄音佑力,去河邊找鬼式散。 笑死,一個(gè)胖子當(dāng)著我的面吹牛打颤,可吹牛的內(nèi)容都是我干的暴拄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼编饺,長吁一口氣:“原來是場噩夢啊……” “哼乖篷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起反肋,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤那伐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后石蔗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體罕邀,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年养距,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了诉探。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡棍厌,死狀恐怖肾胯,靈堂內(nèi)的尸體忽然破棺而出竖席,到底是詐尸還是另有隱情,我是刑警寧澤敬肚,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布毕荐,位于F島的核電站,受9級特大地震影響艳馒,放射性物質(zhì)發(fā)生泄漏憎亚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一弄慰、第九天 我趴在偏房一處隱蔽的房頂上張望第美。 院中可真熱鬧,春花似錦陆爽、人聲如沸什往。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽别威。三九已至,卻和暖如春贡必,著一層夾襖步出監(jiān)牢的瞬間兔港,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工仔拟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留衫樊,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓利花,卻偏偏與公主長得像科侈,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子炒事,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容