選擇清除分析軟件XP-CLR的安裝折騰之路

1. 原版

安裝比較簡(jiǎn)單耐朴。

wget https://reich.hms.harvard.edu/sites/reich.hms.harvard.edu/files/inline-files/XPCLR.tar

tar xvf XPCLR.tar

直接運(yùn)行bin下的XPCLR即可衡楞,若不能運(yùn)行吱雏,則編譯下:

cd src
make 
make install

原版分析時(shí)準(zhǔn)備文件過(guò)程較為繁瑣,因此更建議使用Python版。

$ /project/biosoft/XPCLR/bin/XPCLR -h
Usage:
 XPCLR -xpclr hapmapInput1 hapmapInput2 mapInput outFile -w gWin(Morgan) snpWin gridSize(bp) chrN -p corrLevel
-w1: gWin sets the size of a sliding window(units: 100cM),sWin sets # of SNPs in a window. otherwise, no sliding window
-p1:the input genotpe is already phased. -p0: the input genotype is not phased
corrLevel: the value is on (0,1], set corrLevel equal to 0 if no correction is needed

2. Python版本

安裝

conda create -n xpclr  -c bioconda xpclr
conda activate xpclr

報(bào)錯(cuò):

$ xpclr -h
Traceback (most recent call last):
  File "/home/miniconda3/envs/xpclr/bin/xpclr", line 5, in <module>
    import xpclr
  File "/home/miniconda3/envs/xpclr/lib/python2.7/site-packages/xpclr/__init__.py", line 3, in <module>
    from xpclr import methods
  File "/home/miniconda3/envs/xpclr/lib/python2.7/site-packages/xpclr/methods.py", line 11, in <module>
    from functools import lru_cache
ImportError: cannot import name lru_cache

重新安裝pip install lru_cache仍然報(bào)錯(cuò)歧杏。
由于python版本引起镰惦,直接修改methods.pyfrom functools import lru_cache的為:

try:
    from functools import lru_cache
except ImportError:
    from backports.functools_lru_cache import lru_cache

運(yùn)行

xpclr --format  vcf --input /project/04.sweep/sample750_miss0.6_impute/meanDP3.miss0.6.maf0.01.impute.rename.vcf \
    --samplesA /project/04.sweep/sample750_miss0.6_impute/List/w-l-c/Cultivar.list \
    --samplesB /project/04.sweep/sample750_miss0.6_impute/List/w-l-c/Wild.list \
    --chr 1 --maxsnps 600 --size 1000 --step 1000 --out test_out

報(bào)錯(cuò):

Traceback (most recent call last):
  File "/home/miniconda3/envs/xpclr/bin/xpclr", line 195, in <module>
    main()
  File "/home/miniconda3/envs/xpclr/bin/xpclr", line 88, in main
    "No permission to write in the specified directory: {0}".format(outdir)
AssertionError: No permission to write in the specified directory:

xpclr第84行fn = args.out修改為:

fn = os.path.abspath(args.out)

運(yùn)行繼續(xù)報(bào)錯(cuò):

2023-03-17 19:05:48 : INFO : running xpclr v1.1.0
2023-03-17 19:05:48 : INFO : Loading VCF
Traceback (most recent call last):
  File "/home/miniconda3/envs/xpclr/bin/xpclr", line 196, in <module>
    main()
  File "/home/miniconda3/envs/xpclr/bin/xpclr", line 103, in main
    gdistkey=args.gdistkey)
  File "/home/miniconda3/envs/xpclr/lib/python2.7/site-packages/xpclr/util.py", line 112, inload_vcf_format_data
    pos1, geno1 = load_vcf_wrapper(vcf_fn, chrom, samples1)
  File "/home/miniconda3/envs/xpclr/lib/python2.7/site-packages/xpclr/util.py", line 94, in load_vcf_wrapper
    callset = allel.read_vcf(
AttributeError: 'module' object has no attribute 'read_vcf'

網(wǎng)上沒(méi)有我的同類(lèi)安裝相關(guān)錯(cuò)誤報(bào)道,查看了下allel模塊得滤,確實(shí)沒(méi)有read_vcf函數(shù):

Python 2.7.18 |Anaconda, Inc.| (default, Nov 25 2022, 06:27:37)
[GCC 11.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import allel
>>> allel
<module 'allel' from '/home/miniconda3/envs/xpclr/lib/python2.7/site-packages/scikit_allel-0.20.3-py2.7-linux-x86_64.egg/allel/__init__.py'>
>>> dir(allel)
['AlleleCountsArray', 'AlleleCountsCArray', 'AlleleCountsCTable', 'AlleleCountsChunkedArray', 'AlleleCountsChunkedTable', 'AlleleCountsDaskArray', 'FeatureCTable', 'FeatureChunkedTable', 'FeatureTable', 'GenotypeArray', 'GenotypeCArray', 'GenotypeChunkedArray', 'GenotypeDaskArray', 'HaplotypeArray', 'HaplotypeCArray', 'HaplotypeChunkedArray', 'HaplotypeDaskArray', 'SortedIndex', 'SortedMultiIndex', 'UniqueIndex', 'VariantCTable', 'VariantChunkedTable', 'VariantTable', '__builtins__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__version__', '_bcolz', '_da', 'chunked', 'compat', 'constants', 'io', 'model', 'plot', 'stats', 'util']

但實(shí)際上官網(wǎng)上是有這個(gè)函數(shù)的:


image.png

難道是版本問(wèn)題嗎陨献?裝了下python3版本,發(fā)現(xiàn)確實(shí)是有的:


image.png

試圖重新安裝懂更,舊版本刪除不了:

$ pip uninstall scikit-allel
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will dropsupport for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
ERROR: Cannot remove entries from nonexistent file /home/pengjx/miniconda3/envs/xpclr/lib/python2.7/site-packages/easy-install.pth

升級(jí)也升級(jí)不了:

>pip install --upgrade --ignore-installed scikit-allel -i https://pypi.tuna.tsinghua.edu.cn/simple
.......
  ERROR: Command errored out with exit status 1:

沒(méi)辦法放棄conda安裝眨业,直接從GitHub安裝:https://github.com/hardingnj/xpclr

git clone https://github.com/hardingnj/xpclr.git
cd xpclr
python setup.py install

進(jìn)入bin后沮协,可直接運(yùn)行xpclr:

$ xpclr -h
usage: xpclr [-h] --out OUT [--format FORMAT] [--input INPUT] [--gdistkey GDISTKEY] [--samplesA SAMPLESA] [--samplesB SAMPLESB] [--rrate RRATE] [--map MAP] [--popA POPA] [--popB POPB]
             --chr CHROM [--ld LDCUTOFF] [--phased] [--verbose VERBOSE] [--maxsnps MAXSNPS] [--minsnps MINSNPS] [--size SIZE] [--start START] [--stop STOP] [--step STEP]

Tool to calculate XP-CLR as per Chen, Patterson, Reich 2010

需要注意的是龄捡,你如果使用xpclr的全路徑是運(yùn)行不了的:

$ /project/xpclr/bin/xpclr
Traceback (most recent call last):
  File "/project/xpclr/bin/xpclr", line 4, in <module>
    import numpy as np
ImportError: No module named numpy

安裝依賴(lài)包:pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
這時(shí)慷暂,也可以用python(實(shí)際上我當(dāng)前的版本已經(jīng)是Python 3.9.1聘殖,所以xpclr也是支持的。)來(lái)調(diào)用全路徑:

python /project/xpclr/bin/xpclr --format  vcf --input /project/04.sweep/sample750_miss0.6_impute/meanDP3.miss0.6.maf0.01.impute.rename.vcf --samplesA /project/04.sweep/sample750_miss0.6_impute/List/w-l-c/Cultivar.list --samplesB /project/04.sweep/sample750_miss0.6_impute/List/w-l-c/Wild.list --chr 1 --maxsnps 600 --size 1000 --step 1000 --out test_out

建議還是將安裝路徑/project/xpclr/bin加入環(huán)境變量(測(cè)試了下行瑞,貌似不用加入環(huán)境變量也可直接調(diào)用奸腺,可能是軟件安裝環(huán)節(jié)已經(jīng)加入),直接用xpclr血久。

原因分析

conda安裝雖然便捷突照,但作者沒(méi)有及時(shí)更新,最早的版本也是在3年前(Python2)氧吐,導(dǎo)致一些包不兼容讹蘑。


image.png

而GitHub版本作者還是在維護(hù)的,所以對(duì)于后來(lái)者推薦之筑舅。


image.png

后續(xù)分析推薦

原版XP-CLR用法參考:https://zhuanlan.zhihu.com/p/145387269
Python版XP-CLR用法參考:http://www.reibang.com/p/9c827a0be66d

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末座慰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子翠拣,更是在濱河造成了極大的恐慌版仔,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件误墓,死亡現(xiàn)場(chǎng)離奇詭異邦尊,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)优烧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)链峭,“玉大人畦娄,你說(shuō)我怎么就攤上這事。” “怎么了熙卡?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵杖刷,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我驳癌,道長(zhǎng)滑燃,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任颓鲜,我火速辦了婚禮表窘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘甜滨。我一直安慰自己乐严,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布衣摩。 她就那樣靜靜地躺著昂验,像睡著了一般。 火紅的嫁衣襯著肌膚如雪艾扮。 梳的紋絲不亂的頭發(fā)上既琴,一...
    開(kāi)封第一講書(shū)人閱讀 51,698評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音泡嘴,去河邊找鬼甫恩。 笑死,一個(gè)胖子當(dāng)著我的面吹牛磕诊,可吹牛的內(nèi)容都是我干的填物。 我是一名探鬼主播,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼霎终,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼滞磺!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起莱褒,我...
    開(kāi)封第一講書(shū)人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤击困,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后广凸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體阅茶,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年谅海,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了脸哀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡扭吁,死狀恐怖撞蜂,靈堂內(nèi)的尸體忽然破棺而出盲镶,到底是詐尸還是另有隱情,我是刑警寧澤蝌诡,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布溉贿,位于F島的核電站,受9級(jí)特大地震影響浦旱,放射性物質(zhì)發(fā)生泄漏宇色。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一颁湖、第九天 我趴在偏房一處隱蔽的房頂上張望宣蠕。 院中可真熱鬧,春花似錦爷狈、人聲如沸植影。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)思币。三九已至,卻和暖如春羡微,著一層夾襖步出監(jiān)牢的瞬間谷饿,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工妈倔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留博投,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓盯蝴,卻偏偏與公主長(zhǎng)得像毅哗,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子捧挺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

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