基于MCScanX串联重复分析结果中的tandem文件,提取属于特定基因家族内的串联重复基因对。
脚本文件名
perl get_tandem_gene.pl -id hqs.id -tandem ganlan.tandem -name hqs -od ./
命令解释:
-id 输入基因家族基因id,文件格式如下:
Bol014029
Bol014986
Bol021982
Bol023208
Bol005493
Bol008082
Bol021317
Bol021325
Bol033054
Bol033162
-tandem 输入MCScan的串联重复结果文件tandem( , 分隔),文件格式如下:
Bol004372,Bol004373
Bol004375,Bol004376
Bol004405,Bol004406
Bol004463,Bol004462
Bol004492,Bol004491
Bol004611,Bol004612
Bol004624,Bol004625
Bol004632,Bol004633
Bol004672,Bol004673
Bol004680,Bol004681
-name 输出文件名前缀
-od 输出路径
输出文件格式如下(\t 分隔):
Bol026623 Bol026622
Bol038386 Bol038387
Bol044343 Bol044344
全部perl 脚本内容如下:
use Data::Dumper;
use Getopt::Long;
use strict;
use Cwd qw(abs_path getcwd);
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;}
####get target gene id
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);
#######select tandem
my $Agene;
my $Bgene;
open(OUT,">$od/$opts{name}.tandem")||die "open $od/$opts{name}.tandem failed\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}){
print OUT $Agene."\t".$Bgene."\n";
}
}
close(IN);
close(OUT);
1. 文章越来越难发?是你没发现新思路,基因家族分析发2-4分文章简单快速,学习链接:基因家族分析实操课程、基因家族文献思路解读
2. 转录组数据理解不深入?图表看不懂?点击链接学习深入解读数据结果文件,学习链接:转录组(有参)结果解读;转录组(无参)结果解读
3. 转录组数据深入挖掘技能-WGCNA,提升你的文章档次,学习链接:WGCNA-加权基因共表达网络分析
4. 转录组数据怎么挖掘?学习链接:转录组标准分析后的数据挖掘、转录组文献解读
5. 微生物16S/ITS/18S分析原理及结果解读、OTU网络图绘制、cytoscape与网络图绘制课程
6. 生物信息入门到精通必修基础课:linux系统使用、perl入门到精通、perl语言高级、R语言入门、R语言画图
7. 医学相关数据挖掘课程,不用做实验也能发文章:TCGA-差异基因分析、GEO芯片数据挖掘、GEO芯片数据标准化、GSEA富集分析课程、TCGA临床数据生存分析、TCGA-转录因子分析、TCGA-ceRNA调控网络分析
8.其他,二代测序转录组数据自主分析、NCBI数据上传、二代测序数据解读
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!