有时候我们要对进化树当中的基因ID或者物种ID进行批量的修改,这里可以利用perl或者python 再结合正则表达式批量搜索替换,给出示例代码:
python实现替换:
import re,os tree="(chicken,((mouse,rat),(chimp,human)));" names=re.findall(r"[a-zA-Z0-9_]+",tree) f=open("newtree.nwk","w") for i in names: if not re.match(r'\d+$',i): tree=tree.replace(i,i+"#1") f.write(tree+"\n") f.close()
perl实现替换:
$tree="(chicken,((mouse,rat),(chimp,human)));"; @names=($tree=~/([a-zA-Z0-9_]+)/g); open OUT ,">newtree.nwk" or die "can't open $name.nwk\n"; for my $name(@names){ if ( $name!~/^\d+$/){ $tree=~s/$name/$name#1/; } } print OUT "$tree\n"; close(OUT);
生物信息入门到精通必修基础课:linux系统使用、biolinux搭建生物信息分析环境、linux命令处理生物大数据、perl入门到精通、perl语言高级、R语言画图、R语言快速入门与提高、python语言入门到精通
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!