物种间的共线性
数据准备
种间共线性分析仍然使用 mcscanx 软件,这里用拟南芥和苦荞之间的共线性分析举例。
需要准备的是两物种的蛋白质序列和 gff3 文件。
Ath.pep.fasta
Ath_final.gff3
Ft.pep.fasta
Ft_final.gff3
注:这里用到的蛋白和gff3文件都是在第一步经过处理的,只保留最长转录本的文件。
#构建blast 数据库
makeblastdb -in Ft.pep.fasta -dbtype prot
makeblastdb -in Ath.pep.fasta -dbtype prot
#blast比对
blastp -query Ath.pep.blast \
-db Ft.pep.fasta \
-evalue 1e-10 \
-max_target_seqs 5 \
-outfmt 6 \
-out tmp.Ath_Ft.blast
blastp -query Ft.pep.blast \
-db Ath.pep.fasta \
-evalue 1e-10 \
-max_target_seqs 5 \
-outfmt 6 \
-out tmp.Ft_Ath.blast
#合并blast结果
cat tmp.*.blast > Ft-Ath.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
awk '$3=="mRNA"' Ath_final.gff3 | awk -F ";" '{print $1}'| \
awk '{print $1"\t"$9"\t"$4"\t"$5}'|sed 's/ID=//' > Ath.gff
#合并gff文件
cat Ft.gff Ath.gff > Ft-Ath.gff
# 共线性分析
/home/software/MCScanX/MCScanX ./Ft-Ath
结果文件
Ft-Ath.collinearity
Ft-Ath.collinearity
jcvi展示共线性分析结果
对于物种间共线性分析结果,我们使用 python 版本的 mcscanx 绘图程序进行绘制。
需要准备的文件如下:
- 苦荞和拟南芥共线性分析结果 Ft-Ath.collinearity
- 苦荞和拟南芥 mcscanx gff 文件
# 修改Ft-Ath.collinearity文件成jcvi anchors格式
cat Ft-Ath.collinearity | \
awk -F "\t" '{if($1~/^## Alig/){print "###"}
else if($1 !~/#/){print $2"\t"$3 }}' | \
awk '{if($1~/#/){print $0} else if($1~/^A/) {
print $2"\t"$1"\t1000"}else{print $0"\t"1000}}' > Ft.Ath.anchors
# 修改mcscanx 的gff文件,成bed格式
awk '{print $1"\t"$3"\t"$4"\t"$2}' Ft.gff > Ft.bed
awk '{print $1"\t"$3"\t"$4"\t"$2}' Ath.gff > Ath.bed
# 生成 .simple 文件用于jcvi绘图
python -m jcvi.compara.synteny screen \
--minspan=10 --simple Ft.Ath.anchors Ft.Ath.anchors.new
# 修改Ft.Ath.anchors.simple,高亮显示家族基因所在block
perl ./gene_highlight_jcvi.pl \ 这里用到一个perl脚本
./Ft.gene_name \ # 输入,家族基因和物种名对应表格
Ft.Ath.anchors.new \ # 输入,前面生成的anchors文件
Ft.Ath.anchors.simple \ # 输入,前面生成的simple文件
> Ft.Ath.anchors.simple.mark # 标记共线性基因对的simple文件
# 生成绘图的id文件,里面记录需要绘制的染色体名称
cut -f 1 Ft.bed |sort -u | awk '{printf $0","}' | \
sed 's/,$/\n/' > Ft.ids
cut -f 1 Ath.bed |sort -u | awk '{printf $0","}' | \
sed 's/,$/\n/' > Ath.ids
cat Ft.ids Ath.ids > seqids
# 手写绘图配置文件layout_mark,格式如下
## y, xstart, xend, rotation, color, label, va, bed
.6, .1, .8, 0, , Ft, top, Ft.bed
.4, .1, .8, 0, , Ath, bottom, Ath.bed
# edges
e, 0, 1, Ft.Ath.anchors.simple.mark
# 绘制高亮的共线性图
python -m jcvi.graphics.karyotype seqids layout_mark
注:jcvi在安装的过程中可能会遇到问题,大部分都能在网络上找到解决方案。
网友评论