CellPhoneDB作为出镜率很高的细胞互作分析工具,也是大家公认的。网上有很多教程,按理说在自己单细胞系列也应该出一个教程,但是由于CellPhoneDB是基于python,且需要涉及到Linux的操作,考虑到初学者小伙伴没有基础,一直搁浅。但是还是有小伙伴需要这个,也向我要了,所以我觉得还是有必要写一下,当然和以往一样,是详细注释版,一个一个的汉字,看完应该会清晰!
既然网上有教程,为什么还要写,我想解决以下几个问题:
1、很多人死在第一步:cellphonedb的安装,这个问题不得不解决,因为写教程的都是大佬了,但是我这里必要考虑初学者,所以要从源头解决问题。
2、cellphonedb只能做人的,做鼠的则需要对基因转化,别傻傻的半天没有结果。
3、因为cellphonedb分析操作很简单,数据整理好只需一行代码解决。后期的可视化都是可以在R中进行的。那么,这里我们需要为初学者解决的一个问题是没学过Linux,或者我就想运行一下得到结果,怎么办?所以用很笨的办法,跟着我的代码步骤即可,如果在你的过程中出现错误,学会百度,别人怎么解决你就怎么弄即可。不要问为什么这样,后期会出生物学人小白的Linux从一穷二白的入门!
一、从你的电脑上找到Linux
很多小白不晓得的问题是如何在windows下安装一个Linux,linux其实是一个操作系统,和windows一样,就是操作处理文件等等,现在windows10及以上可以安装Linux子系统(Linux也有桌面版,后续再说),打开Microsoft store, 检索ubuntu(linux的一个发行版,我想这么解释你就懂了,国产手机基本都用安卓系统,但是牌子有很多,你就把Ubuntu理解为牌子吧,背后的操作系统是Linux即可。只是我用的ubuntu,还有Redhat等等,自己选择)。点击安装,选择20或者18的版本都行。苹果操作系统请选择Centos等。
image.png
安装好之后,如何开启使用ubuntu(Linux系统),鼠标桌面右键---选择在终端中打开,我们就进入终端了,选择Ubuntu,进入Linux系统。
image.png
二、安装conda
Conda百度百科的介绍是:Conda 是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。
安装Conda的目的是为了方便我们后续软件安装。
#安装下载及环境设置
# 安装一个conda,为什么安装他可以理解为Rstuido之于R,后期在环境设置、软件安装上很方便。
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# bash安装,按照指引,都选yes,这样一些依赖的python包都安装了。
bash Miniconda3-latest-Linux-x86_64.sh
# 激活conda环境
source ~/.bashrc
#设置镜像
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
三、Linux下安装R
cellphonedb带了作图功能,但是是依赖于R,所以需要我们提前安装一个R语言。安装过程出现各种错误,我遇到的都在下面,如果遇到新的,解决不了,请记得百度。最后百般折腾下,安装成功了,我只想说一句国粹,QTMD。我是选择本地安装。
#下载R
wget https://cran.r-project.org/src/base/R-4/R-4.2.1.tar.gz
tar -zxvf R-4.2.1.tar.gz#解压
cd R-4.2.1/
./configure #这一步肯定出错
make这一步肯定出错
make install
##########接下来就是各种解决问题,然后继续./configure,直到没有问题
#apt安装出问题
sudo apt-get update
#error:configure: error: in `/home/tq/R-4.0.3':
#configure: error: no acceptable C compiler found in $PATH
Solution:sudo apt-get install gcc
./configure --prefix=/home/tq/R-4.0.3
#error:checking whether accepts -g... no
#configure: error: No Fortran compiler found
Solution:sudo apt-get install gfortran
./configure --prefix=/home/tq/R-4.0.3
#error:configure: error: in `/home/tq/R-4.0.3':
#configure: error: C++ preprocessor "/lib/cpp" fails sanity check
Solution:sudo apt-get install gcc-c++
./configure --prefix=/home/tq/R-4.0.3
#error:configure: error: --with-readline=yes (default) and headers/libs are not available
Solution:./configure --with-readline=no --with-x=no
./configure --with-readline=no --with-x=no
#error:checking whether zlib support suffices... configure: error: zlib library and headers are required
Solution:sudo apt-get install zlib1g-dev
./configure --with-readline=no --with-x=no
#error:checking whether bzip2 support suffices... configure: error: bzip2 library and headers are required
Solution:sudo apt-get install libbz2-dev
./configure --with-readline=no --with-x=no
#error:
configure: error: "liblzma library and headers are required"
Solution:sudo apt-get install libreadline-dev
./configure --with-readline=no --with-x=no
#error:configure: error: PCRE2 library and headers are required, or use --with-pcre1 and PCRE >= 8.32 with UTF-8 support
Solution:sudo apt-get install libpcre2-dev
./configure --with-readline=no --with-x=no
#error:configure: error: libcurl >= 7.28.0 library and headers are required with support for https
Solution:sudo apt-get install libcurl4-openssl-dev
./configure --with-readline=no --with-x=no
R is now configured for x86_64-pc-linux-gnu
Source directory: .
Installation directory: /usr/local
C compiler: gcc -g -O2
Fortran fixed-form compiler: gfortran -fno-optimize-sibling-calls -g -O2
Default C++ compiler: g++ -std=gnu++11 -g -O2
C++14 compiler: g++ -std=gnu++14 -g -O2
C++17 compiler: g++ -std=gnu++17 -g -O2
C++20 compiler:
Fortran free-form compiler: gfortran -fno-optimize-sibling-calls -g -O2
Obj-C compiler:
Interfaces supported:
External libraries: pcre2, curl
Additional capabilities: NLS
Options enabled: shared BLAS, R profiling
Capabilities skipped: PNG, JPEG, TIFF, cairo, ICU
Options not enabled: memory profiling
Recommended packages: yes
configure: WARNING: you cannot build info or HTML versions of the R manuals
configure: WARNING: you cannot build PDF versions of the R manuals
configure: WARNING: you cannot build PDF versions of vignettes and help pages
#安装几个包
sudo apt-get install libpng-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libtiff-dev
sudo apt-get install libcairo-dev
sudo apt-get install libicu-dev
make######又是错误
#error:*** Cannot find any Java interpreter
#*** Please make sure 'java' is on your PATH or set JAVA_HOME correspondingly
#Makefile:87: recipe for target 'stamp-java' failed
#make[1]: [stamp-java] Error 1 (ignored)
#make[1]: Leaving directory '/home/tq/R-4.0.3'
Solution:sudo apt install openjdk-11-jdk
./configure --with-readline=no --with-x=no
make
make install
然后就可以了,我只想说一句国粹:TMD
R --version
R version 4.2.1 (2022-06-23) -- "Funny-Looking Kid"
Copyright (C) 2022 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
https://www.gnu.org/licenses/.
#说明成功
四、安装cellphonedb
前面的问题解决了,就可以安装cellphonedb了。
conda create -n cellphonedb python=3.9 #这里选择python版本,用最新的吧,没毛病。创建cellphonedb环境
conda activate cellphonedb #激活环境
pip install cellphonedb #安装,指定会出错
#解决办法
#可以不使用pip install cellphonedb,直接用下面这句代码安装
pip install cellphonedb -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
#判断是否安装成功
#运行
cellphonedb --help
#出现下面页面
Usage: cellphonedb [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
database
method
plot
query
#这样就没问题了
这样分析环境就搭建好了,软件也没有问题了,数据分析就很简单了,代码就一句话的事情。我们下节继续。有说的不到位的地方,还请批评指正!
更多精彩内容请至我的公众号《KS科研分享与服务》