基于perl怎么提取基因家族内的串联重复基因对
本篇内容介绍了“基于perl怎么提取基因家族内的串联重复基因对”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
基于MCScanX串联重复分析结果中的tandem文件,提取属于特定基因家族内的串联重复基因对。
脚本文件名
get_tandem_gene.pl ,运行命令为:
perlget_tandem_gene.pl-idhqs.id-tandemganlan.tandem-namehqs-od./
命令解释:
get_tandem_gene.pl脚本文件名,最后写明全路径
-id 输入基因家族基因id,文件格式如下:
Bol014029Bol014986Bol021982Bol023208Bol005493Bol008082Bol021317Bol021325Bol033054Bol033162
-tandem 输入MCScan的串联重复结果文件tandem( , 分隔),文件格式如下:
Bol004372,Bol004373Bol004375,Bol004376Bol004405,Bol004406Bol004463,Bol004462Bol004492,Bol004491Bol004611,Bol004612Bol004624,Bol004625Bol004632,Bol004633Bol004672,Bol004673Bol004680,Bol004681
-name 输出文件名前缀
-od 输出路径
输出文件格式如下(\t 分隔):
Bol026623Bol026622Bol038386Bol038387Bol044343Bol044344
全部perl 脚本内容如下:
useData::Dumper;useGetopt::Long;usestrict;useCwdqw(abs_pathgetcwd);my%opts;GetOptions(\%opts,"id=s","tandem=s","od=s","name=s");my$od=$opts{od};$od||=getcwd;$od=abs_path($od);unless(-d$od){mkdir$od;}my$gene;my@info;my%hashG;open(IN,"$opts{id}")||die"open$opts{id}failed\n";while(<IN>){chomp;@info=split(/\s+/,$_);$gene=$info[0];$hashG{$gene}=$gene;}close(IN);my$Agene;my$Bgene;open(OUT,">$od/$opts{name}.tandem")||die"open$od/$opts{name}.tandemfailed\n";open(IN,"$opts{tandem}")||die"open$opts{tandem}failed\n";while(<IN>){chomp;@info=split(/,/,$_);$Agene=$info[0];$Bgene=$info[1];if(exists$hashG{$Agene}&&exists$hashG{$Bgene}){printOUT$Agene."\t".$Bgene."\n";}}close(IN);close(OUT);
“基于perl怎么提取基因家族内的串联重复基因对”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注恰卡编程网网站,小编将为大家输出更多高质量的实用文章!