【單細(xì)胞轉(zhuǎn)錄組】利用深度學(xué)習(xí)DESC庫(kù)進(jìn)行單細(xì)胞轉(zhuǎn)錄組多樣本數(shù)據(jù)合并(安裝部署篇)

特別感謝作者的答疑

一浆熔、簡(jiǎn)介

??DESC是用于對(duì)scRNA-seq數(shù)據(jù)進(jìn)行聚類的無(wú)監(jiān)督深度學(xué)習(xí)算法。該算法通過(guò)基于深度神經(jīng)網(wǎng)絡(luò)的迭代學(xué)習(xí)cluster特定基因表達(dá)表示和cluster分配潮针,構(gòu)造了從原始scRNA-seq數(shù)據(jù)空間到低維特征空間的非線性映射函數(shù)暖哨。此迭代過(guò)程將每個(gè)細(xì)胞移至最接近的cluster畏吓,平衡cluster之間的生物學(xué)和技術(shù)差異,并減少分批效應(yīng)的影響图筹。DESC還可以通過(guò)為每個(gè)細(xì)胞分配特定于cluster的概率來(lái)實(shí)現(xiàn)軟聚類帅刀,這有助于以較高的置信度識(shí)別聚類的細(xì)胞并解釋結(jié)果。

使用desc的作用

  • 預(yù)處理各種格式的單細(xì)胞基因表達(dá)數(shù)據(jù)远剩。
  • 建立單細(xì)胞基因表達(dá)數(shù)據(jù)的低維表示扣溺。
  • 獲取細(xì)胞的軟cluster分配。
  • 可視化細(xì)胞聚類結(jié)果和基因表達(dá)模式民宿。

二娇妓、文獻(xiàn):

為了防止影響到正常生產(chǎn)用的服務(wù)器環(huán)境,所有操作都在Docker容器中進(jìn)行

docker run -it -p 8785:8787 -v /share/nas1/Data/Users/luohb/Docker:/root/luohb 17077ba23c0d /bin/bash
adduser --home /home/luohb1 luohb1
rstudio-server start  #開(kāi)啟Rstudio的服務(wù)器版本
su - luohb1 #切換用戶
sh Miniconda3-latest-Linux-x86_64.sh # 安裝miniconda

添加清華conda鏡像源:

luohb1@dff49a57f49a:~$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
luohb1@dff49a57f49a:~$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
luohb1@dff49a57f49a:~$ conda config --set show_channel_urls yes

創(chuàng)建Python3.6 conda環(huán)境

conda create -n DESC python=3.5.3
# activate your environment 
luohb1@dff49a57f49a:~$ conda  activate DESC 
(DESC) luohb1@dff49a57f49a:~$ which python
/home/luohb1/miniconda3/envs/DESC/bin/python
(DESC) luohb1@dff49a57f49a:~$ python --version
Python 3.5.3 :: Continuum Analytics, Inc.

三活鹰、安裝desc的Python庫(kù)

(DESC) luohb1@dff49a57f49a:~$ which python
/home/luohb1/miniconda3/envs/DESC/bin/python
(DESC) luohb1@dff49a57f49a:~$ which pip
/home/luohb1/miniconda3/envs/DESC/bin/pip
(DESC) luohb1@dff49a57f49a:~$ pip --version
(DESC) luohb1@dff49a57f49a:~$ pip 9.0.1 from /home/luohb1/miniconda3/envs/DESC/lib/python3.5/site-packages (python 3.5)
(DESC) luohb1@dff49a57f49a:~$ vim ~/.pip/pip.conf
(DESC) luohb1@dff49a57f49a:~$  sudo apt-get install llvm

安裝desc的Python庫(kù)

(DESC) luohb1@dff49a57f49a:~$ pip install --upgrade pip
(DESC) luohb1@dff49a57f49a:~$ pip install desc

默認(rèn)的國(guó)外鏡像會(huì)很慢,而且很容易失敗

遇到的報(bào)錯(cuò)
Collecting tables
  Downloading http://pypi.doubanio.com/packages/2b/32/847ee3f521aae6a0be380d923a736162d698586f444df1ac24b98c65025c/tables-3.6.1.tar.gz (4.6 MB)
     |████████████████████████████████| 4.6 MB 4.7 MB/s 
    ERROR: Command errored out with exit status 1:
    collect2: error: ld returned 1 exit status
    * Using Python 3.5.3 |Continuum Analytics, Inc.| (default, Mar  6 2017, 11:58:13)
    * USE_PKGCONFIG: False
    * Found conda env: ``/home/luohb1/miniconda3/envs/DESC``
    .. ERROR:: Could not find a local HDF5 installation.
       You may need to explicitly state where your local HDF5 headers and
       library can be found by setting the ``HDF5_DIR`` environment
       variable or by using the ``--hdf5`` command-line option.
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
解決:
#重新安裝這個(gè)HDF5這個(gè)庫(kù)
conda install HDF5
檢查
(DESC) luohb1@dff49a57f49a:~$ python
Python 3.5.3 |Continuum Analytics, Inc.| (default, Mar  6 2017, 11:58:13) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform
>>> platform.python_version()
'3.5.3'
>>> import tensorflow as tf
>>> tf.__version__
'1.15.2'
載入desc這個(gè)包發(fā)生的報(bào)錯(cuò):
>>> import desc
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/luohb1/miniconda3/envs/DESC/lib/python3.5/site-packages/desc/__init__.py", line 2, in <module>
    from . import tools
  File "/home/luohb1/miniconda3/envs/DESC/lib/python3.5/site-packages/desc/tools/__init__.py", line 2, in <module>
    from scanpy.api.pp import normalize_per_cell, highly_variable_genes, log1p, scale
  File "/home/luohb1/miniconda3/envs/DESC/lib/python3.5/site-packages/scanpy/__init__.py", line 3, in <module>
    from .utils import check_versions, annotate_doc_types
  File "/home/luohb1/miniconda3/envs/DESC/lib/python3.5/site-packages/scanpy/utils.py", line 18, in <module>
    from ._settings import settings
  File "/home/luohb1/miniconda3/envs/DESC/lib/python3.5/site-packages/scanpy/_settings.py", line 351
    f'{k} = {v!r}'
解決:

由于desc依賴scanpy志群,而scanpy又依賴anndata着绷,需要scanpy和anndata的版本相匹配,為此找到另外一篇簡(jiǎn)書文章:【簡(jiǎn)書】scanpy分析單細(xì)胞數(shù)據(jù) 查看包的版本

(DESC) luohb1@dff49a57f49a:~$ pip install scanpy==1.4 #讓它自己自動(dòng)尋找匹配的anndata庫(kù)
保存鏡像锌云,以作遷移
docker commit -m "desc_integrated_analysis" -a "luohb" dff49a57f49a desc_rstudio
重新啟動(dòng)進(jìn)入Docker的方法
$docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS                    NAMES
fb9848f16fa0        c5d48e81b986        "/bin/bash"         2 days ago          Exited (0) 2 days ago                              elegant_wilbur
8f92805510be        c5d48e81b986        "/bin/bash"         2 days ago          Up 2 days                                          hardcore_lovelace
dc65d1fa43cc        c5d48e81b986        "/bin/bash"         2 days ago          Up 2 days                                          friendly_johnson
dff49a57f49a        17077ba23c0d        "/bin/bash"         5 days ago          Up 3 days                 0.0.0.0:8785->8787/tcp   silly_gagarin
c2cef88ff61b        17077ba23c0d        "/bin/bash"         9 days ago          Exited (0) 6 days ago                              condescending_booth
565ff6a9f91d        093105f858b4        "/bin/bash"         10 days ago         Up 10 days                                         kind_curie
e506a9842fbc        17077ba23c0d        "/bin/bash"         11 days ago         Exited (130) 9 days ago                            sweet_einstein
$docker images
REPOSITORY                       TAG                 IMAGE ID            CREATED             SIZE
cellassign_rstudio_debian        latest              17077ba23c0d        11 days ago         6.71GB
centos/cellassign-rvm-rstudio    latest              cf5394785a34        2 weeks ago         6.55GB
centos_sshd                      latest              d1923b501fa4        2 weeks ago         365MB
matlab_robustclone_v1            latest              093105f858b4        3 weeks ago         84.2GB
rocker/rstudio                   latest              ff5a9f0a1d1b        3 weeks ago         1.46GB
centos                           latest              470671670cac        3 months ago        237MB
gregoryschwartz/too-many-cells   0.2.2.0             997aeeb90727        6 months ago        1.28GB
centos                           7.3.1611            c5d48e81b986        13 months ago       192MB
$docker run -i -t -v /share/nas1/Data/Users/luohb/Personalization/result2/DESC:/home/luohb1/desc -p 8785:8787 08e3683cab26 /bin/bash

$docker attach dff49a57f49a
(base) luohb1@dff49a57f49a:~/.local/lib/python3.5/Python-3.5.6$
  • 根據(jù)教程測(cè)試:
>>> import desc
>>> desc.run_desc_test()

遇到缺失的依賴包的話荠医,conda安裝回去就好


運(yùn)行成功
最開(kāi)始遇到的報(bào)錯(cuò):
(base) luohb1@dff49a57f49a:~/.local/lib/python3.5/Python-3.5.6/bin$ which python
/home/luohb1/miniconda3/bin/python
(base) luohb1@dff49a57f49a:~/.local/lib/python3.5/Python-3.5.6/bin$ which pip
/home/luohb1/miniconda3/bin/pip
(base) luohb1@dff49a57f49a:~/.local/lib/python3.5/Python-3.5.6/bin$ python
Python 3.6.10 |Anaconda, Inc.| (default, Jan  7 2020, 21:14:29) 
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> importdesc
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'importdesc' is not defined
>>> import desc
/home/luohb1/miniconda3/lib/python3.6/site-packages/anndata/_core/anndata.py:21: FutureWarning: pandas.core.index is deprecated and will be removed in a future version.  The public classes are available in the top-level namespace.
  from pandas.core.index import RangeIndex
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/luohb1/miniconda3/lib/python3.6/site-packages/desc/__init__.py", line 2, in <module>
    from . import tools
  File "/home/luohb1/miniconda3/lib/python3.6/site-packages/desc/tools/__init__.py", line 2, in <module>
    from scanpy.api.pp import normalize_per_cell, highly_variable_genes, log1p, scale
  File "/home/luohb1/miniconda3/lib/python3.6/site-packages/scanpy/__init__.py", line 27, in <module>
    check_versions()
  File "/home/luohb1/miniconda3/lib/python3.6/site-packages/scanpy/utils.py", line 37, in check_versions
    if anndata.__version__ < LooseVersion('0.6.10'):
  File "/home/luohb1/miniconda3/lib/python3.6/distutils/version.py", line 64, in __gt__
    c = self._cmp(other)
  File "/home/luohb1/miniconda3/lib/python3.6/distutils/version.py", line 335, in _cmp
    if self.version == other.version:
AttributeError: 'Version' object has no attribute 'version'
解決方案

四、安裝啟動(dòng)Jupyter Notebook

安裝與啟動(dòng)

(DESC) luohb1@dff49a57f49a:~$ conda install jupyter
  • 后面發(fā)現(xiàn)因?yàn)閐ocker的映射端口被占用了彬向,沒(méi)辦法分給Jupyter Notebook 8888端口,于是只能改用Rstudio-server運(yùn)行Python腳本

  • 其實(shí)為什么我不想直接寫Python腳本的原因是因?yàn)槲蚁M芸吹矫恳徊降淖兓头奖鉪ebug

解決:

jupyter notebook --ip 0.0.0.0 --no-browser --allow-root &

五兼贡、啟動(dòng)Rstudio-server,運(yùn)行Python

當(dāng)然其實(shí)也可以用VScode的服務(wù)器版本里烦,但是今天不想折騰了凿蒜。

$rstudio-server start &
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市胁黑,隨后出現(xiàn)的幾起案子废封,更是在濱河造成了極大的恐慌,老刑警劉巖丧蘸,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件漂洋,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡触趴,警方通過(guò)查閱死者的電腦和手機(jī)氮发,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)冗懦,“玉大人,你說(shuō)我怎么就攤上這事仇祭∨叮” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵乌奇,是天一觀的道長(zhǎng)没讲。 經(jīng)常有香客問(wèn)我,道長(zhǎng)礁苗,這世上最難降的妖魔是什么爬凑? 我笑而不...
    開(kāi)封第一講書人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮试伙,結(jié)果婚禮上嘁信,老公的妹妹穿的比我還像新娘。我一直安慰自己疏叨,他們只是感情好潘靖,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著蚤蔓,像睡著了一般卦溢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 52,337評(píng)論 1 310
  • 那天单寂,我揣著相機(jī)與錄音贬芥,去河邊找鬼。 笑死宣决,一個(gè)胖子當(dāng)著我的面吹牛蘸劈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播疲扎,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼昵时,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了椒丧?” 一聲冷哼從身側(cè)響起壹甥,我...
    開(kāi)封第一講書人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎壶熏,沒(méi)想到半個(gè)月后句柠,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡棒假,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年溯职,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片帽哑。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡谜酒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出妻枕,到底是詐尸還是另有隱情僻族,我是刑警寧澤,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布屡谐,位于F島的核電站述么,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏愕掏。R本人自食惡果不足惜度秘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望饵撑。 院中可真熱鬧剑梳,春花似錦、人聲如沸肄梨。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)众羡。三九已至侨赡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背羊壹。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工蓖宦, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人油猫。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓稠茂,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親情妖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子睬关,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359