MCscanX 软件用来做植物基因的共线性分析, 也可以做复制基因的分类分析,查看基因家族成员是否由 segmental 复制产生。
准备MCscanX 输入文件
输入文件准备:蛋白质序列文件和 gff3 文件, 均保留最长转录本。
#blasp比对鉴定物种内部蛋白的同源性
##构建blast数据库
makeblastdb -in Ft.pep.fasta -dbtype prot
## blast比对
blastp -query Ft.pep.fasta \ #输入文件
-db Ft.pep.fasta \ #指定的数据库
-evalue 1e-10 \ #设置阈值
-max_target_seqs 5 \ #保留前五个比对结果
-outfmt 6 -out Ft.blast
## 过滤gff3文件
awk '$3=="mRNA"' Ft_final.gff3 | awk -F ";" '{print $1}'|awk '{print $1"\t"$9"\t"$4"\t"$5}'|sed 's/ID=//' > Ft.gff
过滤后的gff3文件
第一列是染色体名称,第二列是基因的id,第三列是基因的起始和结束位置
然后我们用MCScanX做基因复制模式分析
种内基因复制模式分析
/home/software/MCScanX/duplicate_gene_classifier \ #你的软件安装的位置
./Ft \ #输入文件的前缀
> Ft.log #输出文件
生成结果文件为 Ft.gene_type
输出结果为 2 列,第一列为基因 ID,第二列为分类数字,具体说明如下:
Ft.gene_type
数字代表不同的分类
Ft.log
种内共线性分析
准备文件:过滤后的gff文件和blast文件(Ft.gff,Ft.blast)
# 种内共线性分析
/home/software/MCScanX/MCScanX \ #软件安装位置
./Ft #输入文件的前缀
生成文件 Ft.collinearity,格式如下:
Ft.collinearitycircos 作图
将共线性分析结果做 circos 图,并标记基因家族成员位置和共线性情况。
数据准备
- 基因组 fasta 文件
- 共线性结果文件
- 共线性分析的 Ft.gff
- 基因家族成员 ID 列表文件
# 计算染色体长度
seqkit fx2tab -l -n -i Ft.genome.fasta |grep "^Ft" |awk '{print $1"\t"$2}' > genome.len
# 生成染色体文件 7列
awk '{print "chr\t-\t"$1"\t"$1"\t0\t"$2"\tchr"NR}' genome.len > Ft.karyotype.circos.txt
# 生成circos作图数据文件
perl ./mcscanx_circos.pl \ #脚本文件
Ft.gff \ #输入mcscanx的GFF文件
Ft.collinearity \ #输入mcscanx共线性结果
Ft.geneID \ #输入基因家族成员ID
Ft.circos #输出结果
生成的文件,circos使用
links文件:Ft.circos.geneBlocklinks.txt
基因ID文件:Ft.circos.geneText.txt
links文件:Ft.circos.links.txt
记录共线性基因家族成员:Ft.circos.genepair.txt
核型信息文件
Ft.karyotype.circos.txt 定义染色体长度和颜色等
Ft.karyotype.circos.txt
第一列:为 chr
第二列:- 占位
第三列:染色体 ID
第四列:显示在图中的名称
第五列:起始位点,0
第六列:终止位点,染色体长度
第七列:颜色
详 细 说 明 参 考:http://circos.ca/documentation/tutorials/ideograms/karyotypes/
文本信息文件
Ft.circos.geneText.txt 在图上需要标注的基因名称
第一列:染色体
第二列:起始位置
第三列:结束位置
第四列:基因id
Ft.circos.geneText.txt
染色体连接关系文件
一般做共线性图,可以画成线状或者带状
Ft.circos.geneBlocklinks.txt 和 Ft.circos.links.txt 二者格式一样
Ft.circos.links.txt
1-3 列和 4-6 列是需要连接的基因组位置信息
circos配置文件
ideogram.conf
染色体图形配置文件
<ideogram>
#设定染色体间的空隙大小
<spacing>
default = 0.01r #设置图中染色体之间的空隙大小
</spacing>
radius = 0.5r #设定ideograms的位置,以下设定ideograms在离圆心的90%处
thickness = 40p #设定 ideograms 的厚度为40p
fill = yes #设定ideograms是否填充颜色。
stroke_color = dgrey #设置轮廓颜色
stroke_thickness = 1p #设置轮廓厚度
show_label = yes #设定是否显示label, 对应着karyotype文件的第4列。
label_radius = 1r - 40p #设定 label 的位置
label_font = default #设置字体
label_size = 40p #设定label的字体大小
label_parallel = yes #设定label的文字方向,yes表示平行于染色体。
</ideogram>
ticks.conf
刻度配置信息
<ticks>
radius = 1r #设定 ticks 的位置
color = black # 设定 ticks 的颜色
thickness = 2p # 设定 ticks 的厚度
# 设定ticks label的值的计算。
# 得到圈图上的label 值。
multiplier = 1e-6
orientation = out # 设定ticks向外还是向内 可以设置值为 out 和 in
# label值的格式化方式。%d 表示结果为整数;%f 结果为浮点数;
# %.1f 结果为小数点后保留1位.
format = %d
<tick>
spacing = 10u # 设置每个刻度代表的长度。
size = 15p # 设置 tick 的长度
show_label = yes #设置展示 ticks label。
label_size = 10p #设置 ticks label 的字体大小
label_offset = 5p #设置 ticks label 离 ticks 的距离
format = %d
</tick>
</ticks>
circos.conf
主配置文件,绘制一圈基因 ID,内部 links 部分包括 2 组数据, 一组是全基因组水平共线性,一组是家族基因共线性。
karyotype = Ft.karyotype.circos.txt #指定染色体文件
chromosomes_units = 1000000 #设置长度单位,表示为1M长度的序列代表为1u
chromosomes_display_default = yes #默认是将所有的染色体都展示出来
##载入ideogram配置和刻度线配置
<<include ideogram.conf>>
show_ticks = yes # 显示刻度
show_tick_labels = yes # 显示刻度label
<<include ticks.conf>>
## plots block 绘制折线图、散点图、直方图、热图和文本显示
<plots>
##显示文本
<plot>
type = text #设置绘图类型为文本
file = Ft.circos.geneText.txt # 数据文件路径
color = red #文字颜色
# 显示在图形中的位置
r1 = 1.8r
r0 = 1r
label_font = default # 标签的字体
label_size = 20p # 标签大小
label_snuggle = yes # 避免文字重叠
# 设置是否需要在 label 前加一条线,用来指出 lable 的位置。
show_links = yes
link_dims = 5p,4p,40p,2p,2p
link_thickness = 2p
link_color = green
</plot>
</plots>
#links画连接线
file = Ft.circos.links.txt
# link文件,基因家族成员共线性连接
file = Ft.circos.geneBlocklinks.txt
#以下部分通常不做修改
#设置图片参数
<image>
<<include etc/image.conf>>
#覆盖原来的图片半径参数
#radius* = 500
</image>
#设置颜色,字体,填充模式的配置信息:
<<include etc/colors_fonts_patterns.conf>>
#系统与debug参数:
<<include etc/housekeeping.conf>>
画图
#circos作图
circos -conf circos.conf
#自动识别当前目录下的配置文件
网友评论