美文网首页
基因家族分析(9)物种间的共线性分析及jcvi绘图

基因家族分析(9)物种间的共线性分析及jcvi绘图

作者: Bioinfor生信云 | 来源:发表于2022-08-19 21:42 被阅读0次

    物种间的共线性

    数据准备

    种间共线性分析仍然使用 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 绘图程序进行绘制。

    需要准备的文件如下:

    1. 苦荞和拟南芥共线性分析结果 Ft-Ath.collinearity
    2. 苦荞和拟南芥 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在安装的过程中可能会遇到问题,大部分都能在网络上找到解决方案。


    欢迎关注Bioinfor 生信云微信公众号!

    相关文章

      网友评论

          本文标题:基因家族分析(9)物种间的共线性分析及jcvi绘图

          本文链接:https://www.haomeiwen.com/subject/bspugrtx.html