共線性分析可以很好地解釋進(jìn)化關(guān)系和多倍化事件砾肺。今天主要測(cè)試的是Python版McScan(jcvi工具包)淋纲,這個(gè)包很強(qiáng)大匈挖,是從MCScanx升級(jí)而來(lái)的基因組共線性分析軟件稠氮。
一、安裝
conda create -y -c bioconda -c conda-forge -n jcvi jcvi //為了怕依賴包沖突茉盏,新建了一個(gè)jcvi的環(huán)境
source activate jcvi
pip install git+git://github.com/tanghaibao/jcvi.git
或者
pip install jcvi
然后鉴未,安裝額外的依賴環(huán)境:Kent tools,BEDTOOLS鸠姨,EMBOSS铜秆,LAST,LaTex讶迁。
Two external command-line tools are needed:
-
LASTAL. Compile and then move
lastal
andlastdb
on yourPATH
.
其中连茧,BEDTOOLS, EMBOSS 和 LAST 可以用 conda 來(lái)安裝。
conda install -y -n jcvi -c bioconda bedtools emboss last
pip install latex
Kent自己編譯一下:
wget http://hgdownload.cse.ucsc.edu/admin/jksrc.zip
unzip jksrc.zip
cd kent/src/lib
make
二巍糯、實(shí)例
Let's assume that you want to perform synteny comparison between grape
and peach
. This workflow is also available as an online Jupyter notebook (credits: Wayne Decatur @fomightez).
Download data
For MCscan to work, we'll need sequences (FASTA
format) and coordinates (BED
format). For this example, let's get these data from Phytozome.
The first time you try to run the fetch command, the script will ask for your Phytozome login (jcvi
will not store or send your Phytozome login anywhere).
$ python -m jcvi.apps.fetch phytozome
Phytozome Login: xxxxxxxx
Phytozome Password:
If you don't have a login, register one here. Then you'll be able to see the current list of genomes.
$ python -m jcvi.apps.fetch phytozome
...
ZmaysPH207 Zmays
Zmarina Vvinifera
Vcarteri Tpratense
Tcacao Sviridis
Stuberosum Spurpurea
Spolyrhiza Smoellendorffii
Slycopersicum Sitalica
Sfallax Sbicolor
Rcommunis Pvulgaris
Pvirgatum Ptrichocarpa
Ppersica Ppatens
Phallii Othomaeum
OsativaKitaake Osativa
Olucimarinus Mtruncatula
MspRCC299 MpusillaCCMP1545
Mpolymorpha Mguttatus
Mesculenta Mdomestica
...
$ python -m jcvi.apps.fetch phytozome Vvinifera,Ppersica
...
$ ls
Ppersica_298_v2.1.cds.fa.gz Vvinifera_145_Genoscope.12X.cds.fa.gz
Ppersica_298_v2.1.gene.gff3.gz Vvinifera_145_Genoscope.12X.gene.gff3.gz
1. gff文件轉(zhuǎn)bed格式
$ python -m jcvi.formats.gff bed --type=mRNA --key=Name Vvinifera_145_Genoscope.12X.gene.gff3.gz -o grape.bed
$ python -m jcvi.formats.gff bed --type=mRNA --key=Name Ppersica_298_v2.1.gene.gff3.gz -o peach.bed
--type:gff文件中第三列
--key:第九列信息前綴
I also like to reformat the Phytozome FASTA files as well.
$ python -m jcvi.formats.fasta format Vvinifera_145_Genoscope.12X.cds.fa.gz grape.cds
$ python -m jcvi.formats.fasta format Ppersica_298_v2.1.cds.fa.gz peach.cds
注意:偶爾會(huì)有某些基因組注釋包含大量的isoforms啸驯。MCscan不知道這些其實(shí)是相同的基因,而是把它們當(dāng)作不同的基因祟峦,看起來(lái)像是tandem gene duplicates罚斗。通常情況下,這不會(huì)是一個(gè)問(wèn)題宅楞,因?yàn)閟ynsyny管道會(huì)移除串聯(lián)基因復(fù)制體中除了一個(gè)基因外的所有基因针姿,并且默認(rèn)在20個(gè)基因的大窗口中尋找synteny袱吆,但這種假設(shè)會(huì)隨著太多的isoforms而失效。因此距淫,如果isoforms過(guò)多绞绒,我們建議在上面的BED生成命令中增加一個(gè)選項(xiàng)——--primary_only
,每個(gè)基因只保留一個(gè)isoform榕暇。例如:
$ python -m jcvi.formats.gff bed --type=mRNA --key=Name --primary_only Vvinifera_145_Genoscope.12X.gene.gff3.gz -o grape.bed
deduplication
如果沒(méi)有事先準(zhǔn)備全長(zhǎng)轉(zhuǎn)錄本的數(shù)據(jù)处铛,也可以通過(guò)如下方式:
python -m jcvi.formats.bed uniq ath.bed
python -m jcvi.formats.bed uniq osa.bed
seqkit grep -f <(cut -f 4 ath.uniq.bed )Arabidopsis_thaliana.TAIR10.cdna.all.fa.gz | seqkit seq -i > ath.cds
seqkit grep -f <(cut -f 4 ath.uniq.bed )Arabidopsis_thaliana.TAIR10.pep.all.fa.gz | seqkit seq -i > ath.pep
seqkit grep -f <(cut -f 4 osa.uniq.bed) Oryza_sativa.IRGSP-1.0.cdna.all.fa.gz| seqkit seq -i > osa.cds
seqkit grep -f <(cut -f 4 osa.uniq.bed )Oryza_sativa.IRGSP-1.0.pep.all.fa.gz | seqkit seq -i > osa.pep
mkdir -p cds && cd cds
ln -s ../ath.cds ath.cds
ln -s ../ath.uniq.bed ath.bed
ln -s ../osa.cds osa.cds
ln -s ../osa.uniq.bed osa.bed
2. Pairwise synteny search jcvi.compara.catalog
[ 共線性分析 ]
$ ll *.???
grape.bed
grape.cds
peach.bed
peach.cds
$ python -m jcvi.compara.catalog ortholog grape peach --no_strip_names
23:34:43 [synteny] Assuming --qbed=grape.bed --sbed=peach.bed
23:34:43 [base] Load file `grape.bed`
23:34:43 [base] Load file `peach.bed`
23:34:44 [blastfilter] Load BLAST file `grape.peach.last` (total 515965 lines)
23:34:44 [base] Load file `grape.peach.last`
23:34:46 [blastfilter] running the cscore filter (cscore>=0.70) ..
23:34:46 [blastfilter] after filter (379462->50584) ..
23:34:46 [blastfilter] running the local dups filter (tandem_Nmax=10) ..
23:34:47 [blastfilter] after filter (50584->21696) ..
...
Stats: Min=4 Max=1002 N=687 Mean=67.1863173216885 SD=110.64978224380248 Median=27.0 Sum=46157
NR stats: Min=4 Max=356 N=687 Mean=26.595342066957787 SD=43.0459201862291 Median=11.0 Sum=18271
它調(diào)用 LAST
進(jìn)行比較,過(guò)濾 LAST
輸出以刪除串聯(lián)重復(fù)(tandem duplications)和弱命中(weak hits)拐揭。在LAST輸出上執(zhí)行single linkage clustering,將 cluster anchors into synteny blocks奕塑。在運(yùn)行結(jié)束時(shí)堂污,您將看到synteny塊的匯總統(tǒng)計(jì)信息。
$ ll grape.peach.*
grape.peach.anchors
grape.peach.lifted.anchors
grape.peach.last
grape.peach.last.filtered
grape.peach.pdf
-
.last
基于LAST的比對(duì)結(jié)果(原始的last輸出)龄砰; -
.last.filtered
LAST的比對(duì)結(jié)果過(guò)濾串聯(lián)重復(fù)和低分比對(duì)盟猖; -
.anchors
is the seed synteny blocks (high quality), 高質(zhì)量的共線性區(qū)塊 -
.lifted.anchors
recruits additional anchors to form the final synteny blocks. 增加了額外的錨點(diǎn),形成最終的共線性區(qū)塊 -
.pdf
點(diǎn)圖
前兩列是LAST鑒定的homologs换棚,第三列是LAST的分?jǐn)?shù)式镐,它們?cè)?anchor之前的步驟中使用,比如基于C-score的篩選固蚤,或者在串聯(lián)重復(fù)序列中的一系列匹配中對(duì)匹配進(jìn)行優(yōu)先排序娘汞。
有時(shí),當(dāng).anchors
文件是“l(fā)iftover”的輸出夕玩,它豐富了synteny signal你弦,如lift .anchors
。例如燎孟,Certain pairs的第三列以L結(jié)尾禽作,第一列為一個(gè) 基因組基因ID,第二列為另一個(gè)基因組的基因ID文件揩页,即是兩個(gè)基因組共線性區(qū)域內(nèi)基因?qū)?yīng)關(guān)系旷偿。不同的共線性區(qū)塊用“###” 隔開(kāi)。
GSVIVT01012008001 ppa002064m 1180L
L只是強(qiáng)調(diào)了一個(gè)事實(shí)爆侣,這些低質(zhì)量的anchors接近高質(zhì)量的anchors萍程。
Pairwise synteny visualization [ 可視化 ]
如果沒(méi)有得到grape.peach.pdf
點(diǎn)圖,可以通過(guò)如下命令得到:
$ python -m jcvi.graphics.dotplot grape.peach.anchors
得到grape.peach.pdf
點(diǎn)圖.
要理解點(diǎn)圖的含義累提,可以水平或垂直地觀察尘喝,并統(tǒng)計(jì)blocks數(shù)量。
- 水平方向上斋陪,每個(gè) peach 區(qū)朽褪,最多有3個(gè) grape 共線性區(qū)置吓。
- 在垂直方向上,每個(gè)grape 區(qū)缔赠,最多有3個(gè)peach 共線性區(qū)衍锚。
它有助于 理解葡萄和桃共享一個(gè)genome triplication event 基因組三重增殖事件(“gamma”)事件,從而產(chǎn)生這種3:3模式 嗤堰。
如果你仔細(xì)觀察戴质,這三個(gè)區(qū)域中的一個(gè)通常更強(qiáng),它對(duì)應(yīng)著兩個(gè)基因組之間的同源區(qū)域( orthologous regions)踢匣。如果我們只想得到1:1的同源區(qū)域呢?我們只是重復(fù)之前的操作告匠,添加一個(gè)選項(xiàng) --cscore=.99
。
C-score is defined by the ratio of LAST hit to the best BLAST hits to either the query and hit.
A C-score cutoff of .99 effectively filters the LAST hit to contain reciprocal best hit (RBH).
$ rm grape.peach.last.filtered
$ python -m jcvi.compara.catalog ortholog grape peach --cscore=.99 --no_strip_names
$ python -m jcvi.graphics.dotplot grape.peach.anchors
我們也可以通過(guò)運(yùn)行下面的命令.快速測(cè)試synteny模式是否確實(shí)是1:1离唬,:
$ python -m jcvi.compara.synteny depth --histogram grape.peach.anchors
3. Macrosynteny visualization 宏觀的可視化
看下別人paper中的效果(2011年的Nature Genetics上A.lyrata):
用JCVI的畫(huà)圖模塊實(shí)現(xiàn)這種效果后专,只不過(guò)還需要一些其它文件,創(chuàng)建如下三個(gè)文件
-
seqids
: 需要展現(xiàn)哪些序列输莺; -
layout
: 不同物種的在圖上的位置戚哎; -
.simple
: 從.anchors文件創(chuàng)建的更簡(jiǎn)化格式;
現(xiàn)在嫂用,讓我們使用相同的synteny輸出文件grape.peach.anchors
進(jìn)行另一種可視化型凳。除了我們已經(jīng)擁有的BED文件和synteny文件之外,我們還需要準(zhǔn)備兩個(gè)額外的文件嘱函。
(1)seqids
文件
它告訴 plotter
選擇對(duì)哪些染色體進(jìn)行畫(huà)圖甘畅。這里,我們移除了unplaced and small scaffolds实夹。第一行包含19條葡萄染色體橄浓,第二行包含8條桃染色體。
chr1,chr2,chr3,chr4,chr5,chr6,chr7,chr8,chr9,chr10,chr11,chr12,chr13,chr14,chr15,chr16,chr17,chr18,chr19
Pp01,Pp02,Pp03,Pp04,Pp05,Pp06,Pp07,Pp08
(2)layout
文件
它告訴plotter在哪里繪制什么亮航。
- First, three columns specify the position of the track.
- Then rotation, color, label, vertical alignment (
va
), and then the genome BED file. Track 0 is now grape, track 1 is now peach.- The next stanza specifies what edges to draw between the tracks.
e, 0, 1
asks to draw edges between track 0 and 1, using information from the.simple
file.軌道0現(xiàn)在是葡萄荸实,軌道1現(xiàn)在是桃子。下一節(jié)指定在軌道之間畫(huà)什么邊缴淋。' e, 0,1 '使用.simple
文件的信息繪制軌道0和1之間的邊准给。
# y, xstart, xend, rotation, color, label, va, bed
.6, .1, .8, 0, , Grape, top, grape.bed
.4, .1, .8, 0, , Peach, top, peach.bed
# edges
e, 0, 1, grape.peach.anchors.simple
其中:
- 前三列分別指定了物種 1 和物種 2 染色體在圖上 Y 軸的位置,X 軸的起始和終止位置重抖,即我們共線性圖在畫(huà)布上的位置露氮,整個(gè)畫(huà)布的x軸是0-1 y軸是0-1。钟沛;
- 第四列顏色可以默認(rèn)畔规,不填寫(xiě);
- 第五列是旋轉(zhuǎn)角度恨统,默認(rèn)零度則是畫(huà)兩條平行的叁扫;
- 第六列是標(biāo)記物種名三妈;
- 第七列是染色體 ID 標(biāo)記位置;
- 第八列是 bed文件莫绣。
- 最后一行是畫(huà)共線性的數(shù)據(jù)文件畴蒲,其中 0 和 1 代表前述第一個(gè)物種和第二個(gè)物種,進(jìn)行共線性的繪制对室。后面跟上的是相關(guān)的數(shù)據(jù)模燥。
前兩行展示了兩個(gè)物種的基礎(chǔ)繪圖信息,如果畫(huà)三個(gè)物種掩宜,那么可以寫(xiě)三行蔫骂,以此類推。
(3)simple
文件
這個(gè)命令生成一個(gè).simple
文件牺汤,它的形式比.anchors
文件更簡(jiǎn)潔纠吴。
$ python -m jcvi.compara.synteny screen --minspan=30 --simple grape.peach.anchors grape.peach.anchors.new
基因組共線性簡(jiǎn)化結(jié)果文件中,一行為一個(gè)共線性區(qū)塊慧瘤,前兩列表示一個(gè)基因組中兩個(gè)基因組之間的區(qū)域,與后兩列(3,4列)另一個(gè)基因組中的兩個(gè)基因之間的區(qū)域存在共線性關(guān)系固该。第5列物區(qū)域跨度锅减,最后一列為: +為正向,-為反向
準(zhǔn)備好所有輸入文件后伐坏,我們繪圖怔匣。
$ python -m jcvi.graphics.karyotype seqids layout
這就產(chǎn)生了我們的 karyotype 圖。
美化
Further customization is possible桦沉。例如每瞒,改變seqids
中染色體的順序可以使其在視覺(jué)上更吸引人。同時(shí)纯露,調(diào)整layout
文件中的位置剿骨、顏色、標(biāo)簽等埠褪。
其中還有一些參數(shù)浓利,例如--shadestyle=line(共線性區(qū)域是用曲線還是線),font是字體钞速,--diverge是track色系的調(diào)整贷掖,等等】视铮總之苹威,一個(gè)好看的圖要不斷的進(jìn)行調(diào)整。
突出顯示一個(gè)特定的block
我們應(yīng)該去.simple
件中驾凶,找到相關(guān)的block牙甫。請(qǐng)注意掷酗,.simple文件中的每一行都是一個(gè)synteny塊,有葡萄基因的start 和 stop腹暖,然后桃子基因的start 和 stop汇在,最后兩列是分?jǐn)?shù)和方向。
$ vi grape.peach.anchors.simple
GSVIVT01012228001 GSVIVT01012173001 Prupe.1G281700.1 Prupe.1G288300.1 72 -
g*GSVIVT01012028001 GSVIVT01000604001 Prupe.1G299800.1 Prupe.1G340600.1 518 +
GSVIVT01000603001 GSVIVT01000557001 Prupe.1G239100.1 Prupe.1G242900.2 51 +
...
(save the file)
$ python -m jcvi.graphics.karyotype seqids layout
顏色值為也可以為16進(jìn)制脏答,*
隔開(kāi)糕殉; 沒(méi)有添加顏色值的行默認(rèn)灰色。然后殖告,我們高亮顯示了圖中特定的synteny塊(顏色為“g”綠色)阿蝶。
選擇 shade 的樣式
$ python -m jcvi.graphics.karyotype seqids layout --shadestyle=line
注意,陰影現(xiàn)在變成直線黄绩,而不是以前的Bezier曲線羡洁。
添加第三個(gè)物種
我們可以在 karyotype 圖上進(jìn)行有創(chuàng)意的畫(huà)圖!首先,我們可以添加任意多的基因組爽丹。讓我們添加可可筑煮。我們只需要重復(fù)下載和格式化可可基因組 (提取cacao.cds
和cacao.bed
)。
$ python -m jcvi.apps.fetch phytozome Tcacao
$ python -m jcvi.formats.gff bed --type=mRNA --key=Name Tcacao_233_v1.1.gene.gff3.gz -o cacao.bed
$ python -m jcvi.formats.fasta format Tcacao_233_v1.1.cds.fa.gz cacao.cds
假設(shè)我們對(duì)桃子和可可比較感興趣粤蝎。
$ python -m jcvi.compara.catalog ortholog peach cacao --cscore=.99 --no_strip_names
$ python -m jcvi.compara.synteny screen --minspan=30 --simple peach.cacao.anchors peach.cacao.anchors.new
現(xiàn)在我們有cacao.bed
和peach.cacao.anchors.simple
真仲。很簡(jiǎn)單,我們需要將它們添加到 layout
中初澎。請(qǐng)注意這兩行——第4行和第7行秸应。Section# edges
表示我們應(yīng)該將軌道0 (grape)與1 (peach)連接起來(lái),軌道1 (peach)與2 (cocoa)連接起來(lái)碑宴。
# y, xstart, xend, rotation, color, label, va, bed
.7, .1, .8, 15, , Grape, top, grape.bed
.5, .1, .8, 0, , Peach, top, peach.bed
.3, .1, .8, -15, , Cacao, bottom, cacao.bed
# edges
e, 0, 1, grape.peach.anchors.simple
e, 1, 2, peach.cacao.anchors.simple
記得在 seqids
中添加可可染色體(第3行)软啼。記住,基因組在seqids
中的順序需要與layout
中的順序匹配延柠。
chr1,chr2,chr3,chr4,chr5,chr6,chr7,chr8,chr9,chr10,chr11,chr12,chr13,chr14,chr15,chr16,chr17,chr18,chr19
scaffold_1,scaffold_2,scaffold_3,scaffold_4,scaffold_5,scaffold_6,scaffold_7,scaffold_8
scaffold_1,scaffold_2,scaffold_3,scaffold_4,scaffold_5,scaffold_6,scaffold_7,scaffold_8,scaffold_9,scaffold_10r
我們還可以自定義旋轉(zhuǎn)祸挪,所以我們不再局限于枯燥的染色體水平排列。
$ python -m jcvi.graphics.karyotype seqids layout
修改配置贞间,是可以控制每個(gè)track的位置的匕积。
這樣就可以三角性狀顯示。
4. Microsynteny visualization
如果我們想看看 local synteny 呢?局部共線性主要集中在基因水平上榜跌,顯示匹配的區(qū)域和對(duì)齊的基因模型闪唆。為此,我們需要計(jì)算基因水平上匹配的布局:
What if we want to look at local synteny? Local synteny mostly focuses on gene-level, showing matching regions along with aligned gene models. For this, we'll need to compute the layout for the gene-level matchings:
$ python -m jcvi.compara.synteny mcscan grape.bed grape.peach.lifted.anchors --iter=1 -o grape.peach.i1.blocks
請(qǐng)注意钓葫,選項(xiàng)—— --iter=1
表示我們正在提取與每個(gè)葡萄區(qū)最佳匹配區(qū)悄蕾。如果你看一下結(jié)果文件 grape.peach.i1.blocks
,它葡萄作為第一列,桃子作為第二列帆调。如果選項(xiàng)——iter被設(shè)置為2奠骄,那么將有2個(gè)peach區(qū)域,以此類推番刊。具體來(lái)說(shuō)含鳞,這將有助于繪制由基因組重復(fù)產(chǎn)生的區(qū)域。
OK. The file grape.peach.i1.blocks
包含大量的局部區(qū)域!我們可以選擇任意的區(qū)域來(lái)進(jìn)行可視化芹务。
$ head -50 grape.peach.i1.blocks > blocks
最后蝉绷,我們需要一個(gè)布局文件,就像macro-synteny圖一樣枣抱。blocks.layout
:
# x, y, rotation, ha, va, color, ratio, label
0.5, 0.6, 0, left, center, m, 1, grape Chr1
0.5, 0.4, 0, left, center, #fc8d62, 1, peach scaffold_1
# edges
e, 0, 1
通過(guò)下面的命令熔吗,我們可以生成一個(gè)local synteny 圖:
$ cat grape.bed peach.bed > grape_peach.bed
$ python -m jcvi.graphics.synteny blocks grape_peach.bed blocks.layout
同樣,我們也可以選擇不同的陰影風(fēng)格:
$ python -m jcvi.graphics.synteny blocks grape_peach.bed blocks.layout --shadestyle=line
可選的“arrow”字形樣式:
$ python -m jcvi.graphics.synteny blocks grape_peach.bed blocks.layout --glyphstyle=arrow
有時(shí)我們想要根據(jù) blocks
文件中顯示的同源性來(lái)匹配基因的顏色佳晶。match the colors of the genes with respect to their homology as indicated in the blocks
file.
$ python -m jcvi.graphics.synteny blocks grape_peach.bed blocks.layout --glyphcolor=orthogroup
最后桅狠,出于調(diào)試目的,我們還可以顯示基因名稱轿秧。對(duì)于密集區(qū)來(lái)說(shuō)不是很漂亮中跌,但有時(shí)也很方便。注意——genelabelsize 6設(shè)置標(biāo)簽字體大小為6菇篡。
$ python -m jcvi.graphics.synteny blocks grape_peach.bed blocks.layout --genelabelsize 6
Microsynteny getting fancy
也可以做兩個(gè)以上的匹配區(qū)域! 類似于macro-synteny圖晒他,首先使用python -m jcvi.compara.synteny mcscan
構(gòu)造 multi-synteny塊,然后修改blocks.layout
文件逸贾,以指示更多區(qū)域以及區(qū)域之間的邊緣。
讓我們繼續(xù)以葡萄津滞、桃子和可可為例÷燎郑現(xiàn)在讓我們假設(shè)我們想要構(gòu)建一個(gè)包含三個(gè)基因組的blocks
文件。如果有一個(gè)單一的“ 'reference'就好了触徐,例如咪鲜,讓我們挑選葡萄,并將桃子和可可分別與葡萄對(duì)齊撞鹉。我們已經(jīng)做了桃子疟丙,現(xiàn)在可可也做了類似的。
$ python -m jcvi.compara.catalog ortholog grape cacao --cscore=.99
$ python -m jcvi.compara.synteny mcscan grape.bed grape.cacao.lifted.anchors --iter=1 -o grape.cacao.i1.blocks
組合 blocks
文件鸟雏。
$ python -m jcvi.formats.base join grape.peach.i1.blocks grape.cacao.i1.blocks --noheader | cut -f1,2,4,6 > grape.blocks
$ head -50 grape.blocks > blocks2
最終的blocks
文件
GSVIVT01012261001 . .
GSVIVT01012259001 . .
GSVIVT01012258001 . .
GSVIVT01012257001 . .
GSVIVT01012255001 Prupe.1G290900.1 Thecc1EG011472t1
GSVIVT01012253001 Prupe.1G290800.2 Thecc1EG011473t1
GSVIVT01012252001 Prupe.1G290700.1 Thecc1EG011474t1
GSVIVT01012250001 Prupe.1G290600.1 Thecc1EG011475t1
GSVIVT01012249001 Prupe.1G290500.1 Thecc1EG011478t1
GSVIVT01012248001 Prupe.1G290400.1 Thecc1EG011482t1
現(xiàn)在我們差不多準(zhǔn)備好了享郊。我們的新布局文件 blocks2.layout
:
# x, y, rotation, ha, va, color, ratio, label
0.5, 0.6, 0, center, top, , 1, grape Chr1
0.3, 0.4, 0, center, bottom, , .5, peach scaffold_1
0.7, 0.4, 0, center, bottom, , .5, cacao scaffold_2
# edges
e, 0, 1
e, 0, 2
注意,我們已經(jīng)將桃子和可可的ratio
改為0.5孝鹊,讓它們適合畫(huà)布炊琉。對(duì)于高質(zhì)量圖片,您很可能需要調(diào)整這個(gè)布局文件。就像macro synteny部分中的布局文件一樣苔咪,edges stanza將grape(列0)與peach(列1)以及grape(列0)與cocoa(列2)連接起來(lái)∶痰浚現(xiàn)在我們運(yùn)行:
$ cat grape.bed peach.bed cacao.bed > grape_peach_cacao.bed
$ python -m jcvi.graphics.synteny blocks2 grape_peach_cacao.bed blocks2.layout
https://github.com/tanghaibao/jcvi/
https://github.com/tanghaibao/jcvi/wiki/MCscan-(Python-version)
http://www.reibang.com/p/7b6699153ecf