citup軟件 https://github.com/amcpherson/citup 安裝需要conda環境
首先要將citup的安裝包路徑放到conda的默認channel里
conda config --add channels http://conda.anaconda.org/dranew
然后安裝cplex依賴,直接安裝的話也比較麻煩,因為cplex也有很多依賴,所以我們也把ceplx的channel加進去
conda config --add channels https://conda.anaconda.org/IBMDecisionOptimization/linux-64
我們看一下現在的默認channel
$ conda config --show-source ==> /home/.condarc <== channels: - http://conda.anaconda.org/dranew - defaults - https://conda.anaconda.org/IBMDecisionOptimization/linux-64
然后我們就可以安裝citup了
conda install citup
如果我們沒有默認安裝路徑權限,也可以指定目錄安裝
conda install citup --prefix .
一般會提示我們要安裝很多依賴包,而且有些依賴特別容易斷,像這樣
$ conda install citup --prefix ./ Fetching package metadata ................. Solving package specifications: . Package plan for installation in environment /home/test: The following NEW packages will be INSTALLED: blas: 1.0-mkl blosc: 1.15.0-hd408876_0 boost_source: 1.60.0-0 dranew bzip2: 1.0.6-h14c3975_5 ca-certificates: 2019.1.23-0 certifi: 2019.3.9-py27_0 citup: 0.1.1-py27_1 dranew cplex: 12.8-py27_0 IBMDecisionOptimization decorator: 4.4.0-py27_1 hdf5: 1.10.4-hb1b8bf9_0 intel-openmp: 2019.3-199 libedit: 3.1.20181209-hc058e9b_0 libffi: 3.2.1-hd88cf55_4 libgcc-ng: 8.2.0-hdf63c60_1 libgfortran-ng: 7.3.0-hdf63c60_0 libstdcxx-ng: 8.2.0-hdf63c60_1 lzo: 2.10-h49e0be7_2 mkl: 2019.3-199 mkl_fft: 1.0.12-py27ha843d7b_0 mkl_random: 1.0.2-py27hd81dba3_0 ncurses: 6.1-he6710b0_1 networkx: 2.2-py27_1 numexpr: 2.6.9-py27h9e4a6bb_0 numpy: 1.16.3-py27h7e9f1db_0 numpy-base: 1.16.3-py27hde5b4d6_0 openssl: 1.1.1b-h7b6447c_1 pandas: 0.24.2-py27he6710b0_0 pip: 19.1.1-py27_0 pypeliner: 0.5.0-py27h1453be2_0 dranew pytables: 3.5.1-py27h71ec239_0 python: 2.7.16-h9bab390_0 python-dateutil: 2.8.0-py27_0 pytz: 2019.1-py_0 readline: 7.0-h7b6447c_5 scikit-learn: 0.20.3-py27hd81dba3_0 scipy: 1.2.1-py27h7c811a0_0 setuptools: 41.0.1-py27_0 six: 1.12.0-py27_0 snappy: 1.1.7-hbae5bb6_3 sqlite: 3.28.0-h7b6447c_0 tk: 8.6.8-hbc83047_0 wheel: 0.33.2-py27_0 zlib: 1.2.11-h7b6447c_3 Proceed ([y]/n)?
其實我們只需要幾個依賴就夠了,可以不安裝全部依賴,網快的話還是盡量完整安裝
conda install --no-deps cplex --prefix ./ conda install --no-deps pypeliner --prefix ./
conda install --no-deps hdf5 --prefix ./
然后將安裝后的各個路徑都加入到Python的環境變量里就可以安裝citup
安裝后就可以在lib/python2.7/site-packages路徑下找到相應安裝包了
這里citup-0.1.0-py2.7.egg需要解壓一下
unzip citup-0.1.0-py2.7.eg
這樣就基本完成了
這樣的話就安裝完成了
要注意的就是Python環境變量的問題了,確保Python可以找到這些安裝包
如果-h有上面的結果而真正運行報錯的話就是環境變量的問題
解決方案:
用citup安裝的2.7版本的Python輸出sys.path把這些路徑加到環境變量里
export sys.path輸出路徑:$PATH
citup分析運行比較簡單可以參考官方網頁:https://shahlab.ca/projects/citup/
需要注意的是加這個參數:--submit local
輸出結果是一個HDF格式的h5文件:results.h5
這是一個基於鍵引用的樹型結構,可以用Python的h5py包讀取處理數據還需要numpy和pandas
hf=h5py.File(results.h5,'r')
用hf.keys()命令我們可以看到有兩個鍵results和trees,這兩個鍵下面又包含很多鍵,具體結構:
我看從上述結果中取最佳擬合樹:
opnum=hf["results/optimal/index"][0]
獲取此樹的節點克隆頻率
cellfreq=hf["trees/" + str(opnum) + "/clone_freq/block0_values"][:]
獲取此樹的分支進化:
tree=hf["trees/" + str(opnum) + "/adjacency_list/block0_values"][:]
將這兩個文件整理成TimeScape的輸入文件:https://bioconductor.org/packages/release/bioc/vignettes/timescape/inst/doc/timescape_vignette.html
就可以得到這樣的圖了:
have fine!