一、Circos安裝
conda 安裝
conda create --name circos
conda install circos
二、circos輸入文件準(zhǔn)備
前提必須文件:參考基因組文件,基因組注釋文件(gff3), CDS文件
1、染色體信息文件
染色體信息文件格式:
前2列:固定為`chr -`,表明我們要畫染色體輪廓
第3列:染色體ID,像身份證號,`注意:如果ID中除了“_”有其他符號一律會報錯`
第4列:染色體Label,像人名,會顯示在圖上而ID不會
第5列:染色體起始位置第6列:染色體終止位置
第7列:染色體的顏色,chr1-4,chry代表的都是circos內(nèi)置顏色的名稱
chr-Chr1 C1030427671chr1
chr-Chr2 C2019698289chr2
chr-Chr3 C3023459830chr3
2、間隔區(qū)間基因密度文件
2.1 統(tǒng)計分隔區(qū)間,格式如下:
第1列:染色體ID第2列:起始分隔點(diǎn)第3列:終止分割點(diǎn)


-w: windowSize:要根據(jù)你基因組的大小,動態(tài)調(diào)整
bedtools sort:由于后面要使用bedtools做一些統(tǒng)計,因此需要排序,不過默認(rèn)也是排好的,以防萬一。
2.2 統(tǒng)計基因密度,格式如下:
第1列:染色體ID
第2列:在染色體上的起始位置
第3列:在染色體上的終止位置
第4列:區(qū)間內(nèi)基因的數(shù)目
Chr1? ? 0? 100000? 29
Chr1? ? 100000? 200000? 36
Chr1? ? 200000? 300000? 31

2.3 統(tǒng)計GC含量,格式如下:

2.4 統(tǒng)計重復(fù)序列密度,格式如下:
grep '[[:blank:]]similarity[[:blank:]]' zhujieshu.repeat.gff3 | awk '{print $1"\t"$4"\t"$5}'| bedtools coverage -a zhujieshu.chr.fasta.100kb -b - | cut -f 1-4 > zhujieshu.repeat.density.txt
2.5 共線性文件,格式如下:
第1列:染色體ID,指連線起始的染色體
第2列:連線起始的染色體的起始位置
第3列:連線起始的染色體的終止位置
第4列:染色體ID,指連線的終止染色體
第5列:連線終止的染色體的起始位置
第6列:連線終止的染色體的終止位置
Chr1? ? 6265416 6266937 Chr1? ? 27686992? ? 27688127
Chr1? ? 6331398 6333743 Chr1? ? 27759973? ? 27761588
三、物種間共線性分析
共線性分析可以很好地解釋進(jìn)化關(guān)系和多倍化事件。主要用的是Python版McScan(jcvi工具包),這個包很強(qiáng)大,是從MCScanx升級而來的基因組共線性分析軟件。
安裝流程(踩坑記錄):
使用conda安裝
conda create -y -c bioconda -n jcvi jcvi
pip install?jcvi
之后 運(yùn)行過程中會報錯,原因是缺少LAST
通過conda安裝LAST
conda install LAST
然后運(yùn)行之仍然會報錯,原因是缺少LaTex
通過conda安裝LaTex
conda install?texlive-core
恭喜你!安裝的問題就解決啦,感謝conda!
后面就是共線性流程:
python -m jcvi.formats.gff bed --type=mRNA --key=ID genome_file/zhujieshu.gene.gff3 -o zhujieshu.bed
如果沒有CDS文件,就自己提取
gffread in.gff3 -g ref.fa -x cds.fa
python -m jcvi.compara.catalog ortholog qiuqie zhujiashu?
python -m jcvi.compara.synteny screen --minspan=30 --simple qiuqie.zhujieshu.anchors qiuqie.zhujieshu.anchors.new
python simple2links.py qiuqie.zhujieshu.anchors.simple? ? ?生成qiuqie.zhujieshu.anchors.simple_link.txt文件就可因用來畫圈圖了
四、circos配置文件畫圖
有了前面的準(zhǔn)備文件以后,我們就可以配置文件,進(jìn)行畫圖了
#指定染色體文件(絕對/相對路徑+文件名)
karyotype = chr.info.txt
#↓↓↓###########################################################
chromosomes_units = 1000000? #定義最小單位,即100萬bp為一個units,即1u = 100w,后面刻度線都是基于此的操作,如果染色體長度都在5kw以上,推薦用100w,否則推薦用10w
<colors>? #原來的顏色太丑了,重新定義顏色,注意重新定義顏色都需要加上*號
chr1* = red
chr2* = orange
chr3* = green
chr4* = blue
</colors>
#↑↑↑###########################################################
<links>
<link>
file? ? ? ? ? = zhujieshu_qiuqie/qiuqie.zhujieshu.anchors.simple_link.txt? #指定存放內(nèi)部連線數(shù)據(jù)的文件
radius? ? ? ? = 0.7r? ? ? ? ? ? ? ? #radius定義內(nèi)部連線區(qū)域的大小,表示從0-0.7r均為連線區(qū)域,預(yù)留出位置為了給其他圖形留出空間
bezier_radius = 0r? ? ? ? ? ? #控制連線的彎曲程度,數(shù)值越大越彎曲,范圍為0r-1.5r
crest = 1? #簡單理解為彎曲點(diǎn)的位置,越大彎曲點(diǎn)越向中中靠攏。由外到內(nèi)數(shù)值依次減小,范圍為0-1.25
thickness? ? = 2? #連線的粗細(xì)
#以下為開啟絲帶模式,其寬度與坐標(biāo)差值相同,當(dāng)然為了繪制出明顯的絲帶效果,你要人為的去夸大坐標(biāo)差值才能明顯顯示出來
ribbon = yes
flat = yes
##stroke_thickness = 2
<rules>? #用來做條件判斷的標(biāo)簽,圈圖各式各樣就在于rule的不同使用
<rule>
condition? ? = var(intrachr)? ? ? ? #condition表示條件,=后面為具體的動作。此為獲取在同一條染色體間的連線
show? ? ? ? ? = no? ? ? ? ? ? ? ? ? #規(guī)定在同一條染色體間的連線不展示
</rule>
<rule>
condition? ? = 1? ? ? ? ? ? ? ? ? #condition = 1表示永遠(yuǎn)成立
color? ? ? ? = eval(var(chr1))? ? #連線的顏色與對應(yīng)的染色體的顏色相同
flow? ? ? ? ? = continue? ? ? ? ? #當(dāng)上面的rule執(zhí)行完之后繼續(xù)執(zhí)行下面的rule,可以改為stop
</rule>
<rule>
condition? = max(var(size1),var(size2)) < 50kb? # 如果連線端點(diǎn)的值小于50kb則不顯示,這個我不是特別確定。
show? ? ? = no
</rule>
</rules>
</link>
</links>
<plots>
#GC content
<plot>
type = line
stroke_thickness = 1
file = genome_file/qiuqie_zhujieshu.GC.density.txt
fill_color = green
stroke_color = black
glyph = circle
glyph_size = 5
#max = 100
min = 30000
r1 = 0.82r
r0 = 0.72r
</plot>
#gene density
<plot>
type = histogram
#stroke_thickness = 1
file = genome_file/qiuqie_zhujieshu.gene.density.txt
fill_color = blue
#stroke_color = black
glyph = circle
glyph_size = 5
#max = 100
#min = 0
r1 = 0.92r
r0 = 0.82r
</plot>
<plot>
type = heatmap
#stroke_thickness = 1
file = genome_file/qiuqie_zhujieshu.repeat.density.txt
fill_color = blue
#stroke_color = black
glyph = circle
glyph_size = 5
#max = 100
#min = 0
r1 = 0.97r
r0 = 0.92r
</plot>
</plots>
#-----------------------------------------------------------------------------------
<ideogram>? ? ? ? ? ? ? ? #這是定義染色體相關(guān)參數(shù)的標(biāo)簽,以</ideogram>結(jié)尾,其中包括要設(shè)置的參數(shù)
<spacing>? ? ? ? ? ? ? ? #定義染色體間隙寬度的標(biāo)簽,以</spacing>,其中包括要設(shè)置的參數(shù)
default = 0.005r? ? ? ? ? #r指的是圓的周長,設(shè)置0.5%圓的周長為間隙
#<pairwise hsY;hs1>? ? ? #可以用<pairwise>標(biāo)簽特別指定某些染色體的間隙(用的是ID),因?yàn)樵诖蠖鄶?shù)文章中,都會留一個大間隙,來放label
#spacing = 20r? ? ? ? ? ? #這里20r表示是相對default = 0.005r的20倍,也就是10%的圓的周長
#</pairwise>? ? ? ? ? ? ? #標(biāo)簽都要以</>結(jié)尾,
</spacing>? ? ? ? ? ? ? ? #間隙定義結(jié)束,下面是對染色體樣式的調(diào)整
radius? ? ? ? ? = 0.90r? #輪廓的位置,這里的r指的是半徑,由圓心到圓周上范圍依次是0-1r,,超出部分將不再顯示。
thickness? ? ? ? = 20p? ? #染色體整體的寬度,這里p指的是像素大小,也可以用r表示,1r=1500p
fill? ? ? ? ? ? = yes? ? #是否為染色體填充顏色,如果為yes,自動用第七列定義的顏色著色
stroke_color? ? = dgrey? #染色體邊框的顏色,支持多種格式的輸入,如:red或255,182,106
stroke_thickness = 2p? ? #染色體邊框的粗細(xì)
#↓↓↓##########################染色體標(biāo)簽###############################
show_label? ? ? = yes? ? ? ? #選擇yes表示要顯示label
label_font? ? ? = default? ? # 字體可以再 etc/fonts.conf 查看所有,默認(rèn)為CMUBright-Roman
label_radius? ? = dims(image,radius)-60p? #使用dims()獲取圖像半徑的大小,從而定位染色體標(biāo)簽的位置,也可以直接定義1.075r
label_size? ? ? = 30? ? ? ? #字體的大小
label_parallel? = yes? ? ? ? #將Label的方向設(shè)置為與染色體平行
#↑↑↑###########################################################
</ideogram>? ? ? ? ? ? ? #定義染色體屬性的標(biāo)簽結(jié)束
#↓↓↓#########################刻度線###############################
show_ticks? ? ? ? ? = yes? #選擇yes表示要顯示刻度線
show_tick_labels? ? = yes? #選擇yes表示要顯示刻度線的數(shù)值
#定義刻度線的整體位置與形狀
<ticks>? ? ? ? ? ? ? ? ? ? #刻度線的轉(zhuǎn)用標(biāo)簽,但凡是復(fù)數(shù)出現(xiàn)的,其下面的參數(shù)都表示全局參數(shù),像下面的<tick>單數(shù)形式,都表示局部參數(shù)
radius? ? ? ? ? = 1r? ? ? #刻度線的位置,1r為最遠(yuǎn)距離,超過1r不再顯示
color? ? ? ? ? ? = black
thickness? ? ? ? = 2p
multiplier? ? ? = 1e-6? ? #把刻度線標(biāo)簽(bp)縮小10萬倍顯示
format? ? ? ? ? = %d? ? ? #然后以整數(shù)的形式標(biāo)記在刻度線上
#定義小的刻度線,且不顯示數(shù)值
<tick>
spacing? ? ? ? = 5u? ? ? ? #最開始我們定義1u = 1000000,表示每500w bp顯示一個小刻度線
size? ? ? ? ? = 10p
show_label? ? = no? ? ? ? #由于小的刻度線展示出來太密集,因此我們no不展示,默認(rèn)不展示
</tick>
#定義大的刻度線,顯示數(shù)值
<tick>
spacing? ? ? ? = 25u
size? ? ? ? ? = 15p
show_label? ? = yes
label_size? ? = 20p
label_offset? = 10p? ? ? #設(shè)置數(shù)值和刻度線之間的間隔
format? ? ? ? = %d
</tick>
</ticks>
#↑↑↑###########################################################
#-----------------------------------------------------------------------------------
#下面是每次都要復(fù)制粘貼上去的,他們屬于circos自帶的配置文件,用于調(diào)用顏色,距離,報錯等信息
<image>? ? ? ? ? ? ? ? ? ? #注意路徑
<<include etc/image.conf>> #注意引用外部配置文件需要使用<<#>>
</image>
<<include etc/colors_fonts_patterns.conf>>
#官方?jīng)]有提到下面的文件,但是沒有這個文件會報錯,所以還是加上去
五、畫圖
配置文件準(zhǔn)備好以后,運(yùn)行:
circos -conf circos.conf
生成circos.png、circos.svg兩個文件