最近在幫忙做一個(gè)大文章,用到這個(gè)神奇的軟件,做個(gè)踩坑記錄。
軟件是由大拿唐海寶老師寫的。
ps: 見過唐老師本人,高高帥帥的,說話又好聽,要被迷倒了(/ω\)
咳咳,言歸正傳。
參考教程:
https://github.com/tanghaibao/jcvi/wiki/MCscan-(Python-version)
以上兩個(gè)鏈接,一個(gè)是官網(wǎng)wiki一個(gè)是我華華鐘師姐的使用筆記,大家可以參考一下。
安裝:
講真,論有管理員權(quán)限的好處!
sudo apt install last-align
pip install jcvi
沒有權(quán)限的旁友請(qǐng)自行通過wiki中的鏈接進(jìn)行安裝。記得把lastal和lastdb還有scip加入你的環(huán)境變量啊~
還有就是jcvi是用python2寫的,記得用python2.7去運(yùn)行,包括pip也調(diào)用python2的pip。記得用which查看一下python和pip的路徑。
因?yàn)槲业沫h(huán)境默認(rèn)是用python3,此時(shí)我就想到要不用conda來創(chuàng)建一個(gè)python2的環(huán)境好了,這樣比較方便管理。回頭一想,萬一jcvi可以用conda一鍵安裝呢。
于是就用https://bioconda.github.io/recipes搜了一下conda的倉庫,發(fā)現(xiàn)居然conda倉庫里真的有jcvi!conda牛批!haibaotang牛批!
conda create -n jcvi jcvi
上面這條是說創(chuàng)建一個(gè)叫jcvi的軟件并安裝jcvi。
安裝好軟件并激活進(jìn)入jcvi的環(huán)境之后就可以按照wiki的指示用示例物種文件試個(gè)水。
python -m jcvi.apps.fetch phytozome
jcvi可以直接從phytozome上下載物種的cds和gff3文件,可以說是很方便了。不過是用的v9.0版本的phytozome了。。有點(diǎn)古老。

示例里是下載的葡萄和梨,我下面就貼一下文件準(zhǔn)備的每一步的流程,就不詳細(xì)寫了。
#下載葡萄和梨的cds&gff3
python -m jcvi.apps.fetch phytozome Vvinifera,Ppersica
#將gff壓縮文件直接轉(zhuǎn)換成bed格式(解不解壓結(jié)果都一樣。根據(jù)物種的不同,有的時(shí)候type可以選擇gene)
python -m jcvi.formats.gff bed --type=mRNA --key=Name Vvinifera_145_gene.gff3.gz -o grape.bed
python -m jcvi.formats.gff bed --type=mRNA --key=Name Ppersica_139_gene.gff3.gz -o peach.bed
#將id行的描述信息刪除。也可手動(dòng)用vim進(jìn)行替換。
python -m jcvi.formats.fasta format --sep="|" Vvinifera_145_cds.fa.gz grape.cds
python -m jcvi.formats.fasta format --sep="|" Ppersica_139_cds.fa.gz peach.cds
結(jié)果查看:
$ ls *.???
grape.cds peach.cds grape.bed peach.bed
ps: *是代表匹配任意個(gè)數(shù)的任意字符,?是代表匹配一個(gè)任意字符。
好了,經(jīng)過這幾步的準(zhǔn)備,可以開始做Pairwise synteny search了。
$ python -m jcvi.compara.catalog ortholog grape peach
這一步,如果是用的pip安裝很有可能會(huì)報(bào)錯(cuò),雖然好像conda安裝也會(huì)有點(diǎn)問題。
- 報(bào)錯(cuò)一:缺少numpy模塊
一開始也很懵,咋就缺模塊了呢。行叭,你說缺就缺,安裝就完事兒了。
pip install numpy
- 報(bào)錯(cuò)二:缺少scipy模塊
報(bào)錯(cuò)信息如下:
ImportError: No module named scipy.spatial
行叭,如法炮制。
- 報(bào)錯(cuò)三: 找不到叫kpsewhich的文件或者目錄
[dviread] find_tex_file(phvr7t.vf): ['kpsewhich', u'phvr7t.vf']
No such file or directory called 'kpsewhich'
大概是這么一句話,已經(jīng)找不到原來的報(bào)錯(cuò)信息了。我特意去查了這個(gè)找不到的kpsewhich是個(gè)啥。用apt,不行,找不到這個(gè)包;用conda搜,不行,沒有這個(gè)東西,用pip安裝,也沒有。。沒辦法走投無路只能去看mcsan的issue了。翻到issue39找到了想要的東西:這玩意。。好像是因?yàn)樽煮w找不到才報(bào)錯(cuò)的。。?這什么鬼啊。。才注意到剛才那句報(bào)錯(cuò)信息的上面是:
12:15:02 [texmanager] serif font is not compatible with usetex.
12:15:02 [texmanager] serif font is not compatible with usetex.
12:15:02 [texmanager] family: serif, font: Computer Modern Roman, info: ('cmr', '')
12:15:02 [texmanager] family: sans-serif, font: Helvetica, info: ('phv', '\\usepackage{helvet}')
12:15:02 [texmanager] cursive font is not compatible with usetex.
12:15:02 [texmanager] cursive font is not compatible with usetex.
12:15:02 [texmanager] family: cursive, font: Zapf Chancery, info: ('pzc', '\\usepackage{chancery}')
12:15:02 [texmanager] monospace font is not compatible with usetex.
12:15:02 [texmanager] monospace font is not compatible with usetex.
12:15:02 [texmanager] family: monospace, font: Computer Modern Typewriter, info: ('cmtt', '')
大意是草書字體與usetex不兼容云云。。還有這種操作??
解決這個(gè)問題的辦法是:
sudo apt-get install -y texlive texlive-latex-extra texlive-latex-recommended
沒有管理員權(quán)限的參考下面的命令:
$ docker pull tanghaibao/jcvi
$ docker run -it --rm -v `pwd`:/w -w /w tanghaibao/jcvi python -m jcvi.graphics.dotplot Ath.Aly.anchors
至此所有的報(bào)錯(cuò)都解決了,后面就按照wiki操作就可以了。偷個(gè)懶就不寫了。
這是我用的layout
# y, xstart, xend, rotation, color, label, va, bed
.4, .2, .9, 0, , waterlily, top, nym.bed
.2, .2, .9, 0, , shuilian, botton, nym.bed
# edges
e, 0, 1, nym.nym.anchors.simple
我發(fā)現(xiàn)haibaotang給的layout有點(diǎn)bug。如果xstart設(shè)置為.1的話你設(shè)置的label只能顯示半個(gè)。所以調(diào)成了.2;這里的y值我的理解是縱向的位置,如果你把上下兩個(gè)值填一樣的(比如都是.4)上下兩條會(huì)重疊在一起;xend不能調(diào)比.9大的值,否則會(huì)變得特別特別小,變成面條;
下面的edges不能瞎改,0和1的意思是把第一個(gè)和第二個(gè)連線,如果有三個(gè)物種一起做共線性的話,下面這行可以寫成
# edges
e, 0, 1, file1.file2.anchors.simple
e, 1, 2, file2.file3.anchors.simple
原文:
Section # edges says that we should connect track 0 (grape) with 1 (peach), track 1 (peach) with 2 (cacao).
如果要強(qiáng)調(diào)顏色的話,編輯xx.xx.anchors.simple這個(gè)文件,在需要強(qiáng)調(diào)的block前面添加上g*或者r*
g=green r=red b=blue
……
我也不知道一共有多少種顏色可以用,反正可以搞得花花綠綠的特別高級(jí)
放一張半成品圖

大概就是這樣啦有問題的歡迎留言討論