MCAS2安装及遇到问题解决
MACS2(Model-based Analysis for ChIP-Seq)介绍:由Tao Liu实验室开发的一款在ubuntu上运行的专门处理CHIP-Seq数据的下游软件,是bowtie2处理数据得到sam文件后,或者samtools处理数据后的下游工具。官网
网上下载安装方式很多,推荐使用python从源代码安装,首先在python的软件包网站pypi使用wget命令下载它的最新版本MACS2-2.1.1.20160309,下载是一个tar打包压缩文件,使用正常的tar解压缩命令(tar -xzf )之后打开解压缩后文件夹
root@DESKTOP-5KGGLM7:~/MACS2/MACS2-2.1.1.20160309# ls
bin COPYING MACS2 MANIFEST.in README.rst setup.py
ChangeLog INSTALL.rst MACS2.egg-info PKG-INFO setup.cfg setup_w_cython.py
文件夹中的setup.py是python写的安装程序,需要python运行,注意python在在linux Ubuntu预装了,注意2.7和3.5两个版本都有,但是注意它们很多对应的软件不一样,再用aptget时需要加上对应的版本号比较恶心,比如python-setuptools直接下载的是2.7版本python能用的,3.5版本就识别不了,需要装python3。5-setuptools! MACS2只能用python2.7环境.
安装问题1:python安装需要很多依赖软件
root@DESKTOP-5KGGLM7:~/MACS2/MACS2-2.1.1.20160309# python2.7 setup.py install
Traceback (most recent call last):
File "setup.py", line 22, in <module>
from setuptools import setup, Extension
ImportError: No module named 'setuptools'
首先提示没有setuptools,安装
apt-get install python-setuptools
root@DESKTOP-5KGGLM7:~/MACS2/MACS2-2.1.1.20160309# python2.7 setup.py install
CRITICAL:Numpy must be installed!
然后提示没有安装numpy,再安装
apt-get install python-numpy
再次运行安装程序结果:
root@DESKTOP-5KGGLM7:~/MACS2/MACS2-2.1.1.20160309# python2.7 setup.py install //开始安装//
running install
running bdist_egg
running egg_info
writing requirements to MACS2.egg-info/requires.txt
writing MACS2.egg-info/PKG-INFO
writing top-level names to MACS2.egg-info/top_level.txt
writing dependency_links to MACS2.egg-info/dependency_links.txt
reading manifest file 'MACS2.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'MANIFEST'
no previously-included directories found matching 'test'
writing manifest file 'MACS2.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
creating build
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/MACS2
copying MACS2/Constants.py -> build/lib.linux-x86_64-2.7/MACS2
copying MACS2/OptValidator.py -> build/lib.linux-x86_64-2.7/MACS2
copying MACS2/OutputWriter.py -> build/lib.linux-x86_64-2.7/MACS2
copying MACS2/__init__.py -> build/lib.linux-x86_64-2.7/MACS2
copying MACS2/bdgbroadcall_cmd.py -> build/lib.linux-x86_64-2.7/MACS2
copying MACS2/bdgcmp_cmd.py -> build/lib.linux-x86_64-2.7/MACS2
copying MACS2/bdgdiff_cmd.py -> build/lib.linux-x86_64-2.7/MACS2
copying MACS2/bdgopt_cmd.py -> build/lib.linux-x86_64-2.7/MACS2
copying MACS2/bdgpeakcall_cmd.py -> build/lib.linux-x86_64-2.7/MACS2
copying MACS2/callpeak_cmd.py -> build/lib.linux-x86_64-2.7/MACS2
copying MACS2/cmbreps_cmd.py -> build/lib.linux-x86_64-2.7/MACS2
copying MACS2/diffpeak_cmd.py -> build/lib.linux-x86_64-2.7/MACS2
copying MACS2/filterdup_cmd.py -> build/lib.linux-x86_64-2.7/MACS2
copying MACS2/pileup_cmd.py -> build/lib.linux-x86_64-2.7/MACS2
copying MACS2/predictd_cmd.py -> build/lib.linux-x86_64-2.7/MACS2
copying MACS2/randsample_cmd.py -> build/lib.linux-x86_64-2.7/MACS2
copying MACS2/refinepeak_cmd.py -> build/lib.linux-x86_64-2.7/MACS2
creating build/lib.linux-x86_64-2.7/MACS2/IO
copying MACS2/IO/BinKeeper.py -> build/lib.linux-x86_64-2.7/MACS2/IO
copying MACS2/IO/__init__.py -> build/lib.linux-x86_64-2.7/MACS2/IO
copying MACS2/IO/test_processing.py -> build/lib.linux-x86_64-2.7/MACS2/IO
copying MACS2/IO/test_threading.py -> build/lib.linux-x86_64-2.7/MACS2/IO
running build_ext
building 'MACS2.Prob' extension
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/MACS2
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/lib/python2.7/dist-packages/numpy/core/include -I/usr/include/python2.7 -c MACS2/Prob.c -o build/temp.linux-x86_64-2.7/MACS2/Prob.o -w -O3 -ffast-math
unable to execute 'x86_64-linux-gnu-gcc': No such file or directory
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
安装完成后使用list命令可以发现多了build文件夹
root@DESKTOP-5KGGLM7:~/MACS2/MACS2-2.1.1.20160309# ls
bin ChangeLog INSTALL.rst MACS2.egg-info PKG-INFO setup.cfg setup_w_cython.py
build COPYING MACS2 MANIFEST.in README.rst setup.py
但实际上并没有安装成功,安装代码最后几行可以看到有报错的
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/lib/python2.7/dist-packages/numpy/core/include -I/usr/include/python2.7 -c MACS2/Prob.c -o build/temp.linux-x86_64-2.7/MACS2/Prob.o -w -O3 -ffast-math
unable to execute 'x86_64-linux-gnu-gcc': No such file or directory
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
实际上还是相关依赖包没有装全原因,阅读软件包带的INSTALL.rst,可以看到如下信息:
Python version must be equal to *2.7* to run MACS. I recommend using the version *2.7.2*.
Numpy_ (>=1.6) are required to run MACS v2.
GCC is required to compile ``.c`` codes in MACS v2 package, and python
header files are needed. If you are using Mac OSX, I recommend you
install Xcode; if you are using Linux, you need to make sure
``python-dev`` is installed.
Cython_ (>=0.18) is required *only if* you want to regenerate ``.c``
files from ``.pyx`` files using ``setup_w_cython.py`` script.
.. _Numpy: http://www.scipy.org/Download
.. _Cython: http://cython.org/
numpy已经装过,看来是python-dev和cython没有安装,于是使用apt-get install 命令安装了这两个软件(注意,如果自己将apt换过源,比如换成了国内的aliyun mirror网站,那么极有可能python-dev无法正常安装,此时将源再换回官网的源即可)
zephyr@DESKTOP-OIB6POQ:~$ sudo apt-get install python-dev
zephyr@DESKTOP-OIB6POQ:~$ sudo apt-get install cython
运行安装命令
zephyr@DESKTOP-OIB6POQ:~/Bioinformatics/MACS2/MACS2-2.1.1.20160309$ sudo python2.7 setup.py install
会出现很长的安装行,当最后一行出现以下代码时即为安装完成
Finished processing dependencies for MACS2==2.1.1.20160309
安装问题2:出现的文件不是可执行程序?
此时进入bin文件夹,可以发现多了一个文件macs2
zephyr@DESKTOP-OIB6POQ:~/Bioinformatics/MACS2/MACS2-2.1.1.20160309$ cd bin
zephyr@DESKTOP-OIB6POQ:~/Bioinformatics/MACS2/MACS2-2.1.1.20160309/bin$ ls
macs2
但是注意,这个macs2文件并不是可执行文件,试图运行它会出现以下结果
zephyr@DESKTOP-OIB6POQ:~/Bioinformatics/MACS2/MACS2-2.1.1.20160309/bin$ ./macs2 callpeak
-bash: ./macs2: Permission denied
查看它的权限详情会发现是因为它没有给与可执行权限的缘故
zephyr@DESKTOP-OIB6POQ:~/Bioinformatics/MACS2/MACS2-2.1.1.20160309/bin$ ls -l
total 60
-rw-r--r-- 1 zephyr zephyr 59864 Aug 19 00:33 macs2
使用chmod命令给与权限后即可发现可以正常运行了
zephyr@DESKTOP-OIB6POQ:~/Bioinformatics/MACS2/MACS2-2.1.1.20160309/bin$ sudo chmod 777 macs2
zephyr@DESKTOP-OIB6POQ:~/Bioinformatics/MACS2/MACS2-2.1.1.20160309/bin$ ls -l
total 60
-rwxrwxrwx 1 zephyr zephyr 59864 Aug 19 00:33 macs2
zephyr@DESKTOP-OIB6POQ:~/Bioinformatics/MACS2/MACS2-2.1.1.20160309/bin$ ./macs2 callpeak
usage: macs2 callpeak [-h] -t TFILE [TFILE ...] [-c [CFILE [CFILE ...]]]
[-f {AUTO,BAM,SAM,BED,ELAND,ELANDMULTI,ELANDEXPORT,BOWTIE,BAMPE,BEDPE}]
[-g GSIZE] [--keep-dup KEEPDUPLICATES]
[--buffer-size BUFFER_SIZE] [--outdir OUTDIR] [-n NAME]
[-B] [--verbose VERBOSE] [--trackline] [--SPMR]
[-s TSIZE] [--bw BW] [-m MFOLD MFOLD] [--fix-bimodal]
[--nomodel] [--shift SHIFT] [--extsize EXTSIZE]
[-q QVALUE | -p PVALUE] [--to-large] [--ratio RATIO]
[--down-sample] [--seed SEED] [--tempdir TEMPDIR]
[--nolambda] [--slocal SMALLLOCAL] [--llocal LARGELOCAL]
[--broad] [--broad-cutoff BROADCUTOFF]
[--cutoff-analysis] [--call-summits]
[--fe-cutoff FECUTOFF]
macs2 callpeak: error: argument -t/--treatment is required
经过测试看来是安装完毕了,接下来将其其所在文件夹添入PATH的环境变量中以方便随时调用macs2程序
zephyr@DESKTOP-OIB6POQ:~/Bioinformatics/MACS2/MACS2-2.1.1.20160309/bin$ export PATH=/home/zephyr/Bioinformatics/MACS2/MACS2-2.1.1.20160309/bin:$PATH
搞定!!!