By Gengxin, 30 June, 2026
Forums

  1. 准备文件

运行路径:/data3/public/gengxin/DNA.methyltransferases

环境:blast_env

所有物种的蛋白质文件放在同一个文件中

seqkit grep -f Twallichiana.final_meth.txt Twallichiana.pep > Twallichiana.final.meth.pep #提取部分基因ID提取蛋白质文件 Cjaponica
seqkit grep -f Twallichiana.final_demeth.txt Twallichiana.pep > Twallichiana.final.demeth.pep

以下是批量运行的脚本

cat 02.extra.pep.sh
#!/bin/bash
# 批量为每个物种文件夹提取 甲基化酶 + 去甲基化酶 蛋白序列
for dir in */; do
    dir=${dir%/}
    echo "===== 处理文件夹:$dir ====="
    cd "$dir" || continue
    # 自动寻找蛋白文件(*.pep 结尾)
    pep=$(ls *.pep 2>/dev/null | head -1)
    if [ -z "$pep" ]; then
        echo "未找到蛋白文件,跳过"
        cd ..
        echo
        continue
    fi
    prefix=${pep%.pep}
    # 提取甲基化酶
    if [ -f "${prefix}.final_meth.txt" ]; then
        seqkit grep -f "${prefix}.final_meth.txt" "$pep" -o "${prefix}.final_meth.pep"
        echo "已生成:${prefix}.final_meth.pep"
    fi
    # 提取去甲基化酶
    if [ -f "${prefix}.final_demeth.txt" ]; then
        seqkit grep -f "${prefix}.final_demeth.txt" "$pep" -o "${prefix}.final_demeth.pep"
        echo "已生成:${prefix}.final_demeth.pep"
    fi
    cd ..
    echo
done

将所有物种的甲基化转移酶和去甲基化酶分别合并成一个文件,为建树做准备

cat */*final_meth.pep > all.final_meth.pep
cat */*final_demeth.pep > all.final_demeth.pep
  1. 多序列比对和建树
mafft --auto all.final_meth.pep > align_meth.fasta
trimal -in align_meth.fasta -out align_meth_trim.fasta -automated1 #修剪比对(去掉低质量区域)
FastTree -lg align_meth_trim.fasta > meth_tree.nwk
iqtree -s align_meth_trim.fasta -m MFP -bb 1000 -nt 10
  1. iTOL建树绘图

iTOL网址:iTOL: Interactive Tree Of Life

更改ID的颜色和树枝的颜色,label是字的颜色,clade是树枝的颜色

TREE_COLORS
SEPARATOR TAB
DATA
A    clade    #c04115    normal    1
B    clade    #d95a26    normal    1
C    clade    #e87038    normal    1
D    clade    #a1320f    dashed    1
E    clade    #c95a22    normal    1
F    clade    #d4702b    dashed    1
G    clade    #e08833    normal    1
H    clade    #b34d1a    dashed    1
I    clade    #157cc0    normal    1
J    clade    #1599c0    dashed    1
K    clade    #25a0d0    normal    1
L    clade    #0f6aa8    dashed    1
M    clade    #6d554f    normal    1
N    clade    #8c746b    dashed    1
O    clade    #ab9a8f    normal    1
A    label    #c04115    bold    1.5
B    label    #d95a26    bold    1.5
C    label    #e87038    bold    1.5
D    label    #a1320f    italic    1.5
E    label    #c95a22    bold    1.5
F    label    #d4702b    italic    1.5
G    label    #e08833    bold    1.5
H    label    #b34d1a    italic    1.5
I    label    #157cc0    bold    1.5
J    label    #1599c0    italic    1.5
K    label    #25a0d0    bold    1.5
L    label    #0f6aa8    italic    1.5
M    label    #6d554f    bold    1.5
N    label    #8c746b    italic    1.5
O    label    #ab9a8f    bold    1.5

 

DATASET_SYMBOL
SEPARATOR TAB
DATASET_LABEL    dots
DATA
A    2    8    #c04115    1    -1
B    2    8    #0c4e99    1    -1
C    2    8    #8c6d63    1    -1
D    2    8    #e41ea4    1    -1
E    2    8    #c23551    1    -1
F    2    8    #a16088    1    -1
G    2    8    #02165d    1    -1
H    2    8    #8a3861    1    -1
I    2    8    #cabd33    1    -1
J    2    8    #c4f71f    1    -1
K    2    8    #d3ddfc    1    -1
L    2    8    #f4980b    1    -1
M    2    8    #15daa6    1    -1
N    2    8    #d89de9    1    -1
O    2    8    #bdb6fb    1    -1
G
进化树里的节点 / 基因 / 物种 ID
必须和你树文件(nwk)里的名字完全一样。
2
符号形状编码
1 = 正方形
2 = 圆形(就是你要的小圆点)
3 = 五角星
4 = 右三角
5 = 左三角
8
符号大小
数字越大,圆点越大。
#02165d
圆点颜色(十六进制色值)
这里是深蓝色 / 近黑色。
1
是否填充(实心 / 空心)
1 = 实心圆点(你图里那种)
0 = 空心圆圈
-1
符号位置

参考文档:B站:【基因家族速通】11.iTOL美化进化树超详细教程#三连赠代码_哔哩哔哩_bilibili

如何绘制漂亮的进化树? - 知乎