介绍
系统发育树文件通常带有支长和节点信息,如遗传距离、位点数、支持率、分化时间等等,生成这样的信息一般是通过软件基于序列信息计算得到的。而在某些情况,我们需要删除这些信息,将其还原成一个不带有支长和节点信息的纯粹拓扑结构树文件。当分支过多无法手动删除时,可以使用以下脚本完成:
原树文件:
cat TREE.tre
(AB3039501:0.1407725357,((((((((AY4585951:0.1852444343,((KT8787191:0.0766471312,NC_0394111:0.0629126169)71.8/76:0.0212697120,NC_0200441:0.0738918614)100/100:0.0885191625)100/100:0.0828170616,NC_0323171:0.3396258972)99.8/100:0.0417881180,((JX5648861:0.3478457331,(MG0207721:0.2975091274,MG0207811:0.1848243312)100/100:0.0550933889)97.8/62:0.0237904467,((MG0207651:0.5194304916,MZ7510421:0.7398126943)98.5/56:0.0542524672,(NC_0187711:0.7497611531,NC_0323481:0.3138779842)94.4/60:0.0488882269)50/40:0.0237393404)100/100:0.0456730453)100/100:0.0522125255,NC_0323471:0.2425934555)100/100:0.0725292382,KT2858021:0.2341185025)99.9/100:0.0401796690,(KF7981951:0.2419142919,MF4962411:0.2327977799)61.7/62:0.0262765906)100/100:0.0487023558,AY4585961:0.1934500376)100/100:0.0465872157,SL454:0.1630815831)100/100:0.0443615170,MF5387871:0.0939151778);c
cat TREE.tre |
sed 's/,/[,/g' |
sed 's/:/[:/g' |
sed 's/)/[)/g'|
awk -F, 'BEGIN{RS="["}{print }' |
grep -v ":" |
sed 's/)/)[/g' |
awk -F, 'BEGIN{FS="["}{print $1}' |
awk -F, 'BEGIN{ORS=" "}{print}' |
sed 's/ //g'
去除支长和节点信息后的树文件:
(AB3039501,((((((((AY4585951,((KT8787191,NC_0394111),NC_0200441)),NC_0323171),((JX5648861,(MG0207721,MG0207811)),((MG0207651,MZ7510421),(NC_0187711,NC_0323481)))),NC_0323471),KT2858021),(KF7981951,MF4962411)),AY4585961),SL454),MF5387871)
注意:一般树文件后会有分号(英文符号“;”)结尾,跑完这个代码后,分号会丢失。分号在很多时候并非必要的,比如这个新的树文件仍然可以用FigTree打开。不过如果用以后续分析时,要注意格式中是否需要开头或结尾的符号,可以手动添加。
最终的树形态:
clean_TREE.tre.jpg
无根树
该树形特点即所有树的支长是相同的。这种树属于无根树,该树仅反应系统发育树中各个支系的拓扑关系,但不表征相对遗传距离,分歧时间以及共同祖先。作为系统发育关系的示意图展示就可以使用不带有支长信息的无根树,另外,一些软件分析时也会要求提供只含有拓扑结构的先验树。