搜索
查看: 182|回复: 0

[新人求教]统计两个VCF文件在捕获区域中的一致性与SNP、IND...

[复制链接]

3

主题

4

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2020-4-28 09:48:44 | 显示全部楼层 |阅读模式
为了能够得到INPUT1、2文件在捕获区间RANGE中的一致性,并统计其中的SNP与INDEL数,于是写出了以下的一段程序...效率实在太低了,请各位前辈给出一点宝贵的意见优化下程序 感激不尽

[Perl] 纯文本查看 复制代码
while(<RANGE>){
    chomp;
    my @s=split;
    while(<INPUT1>){
        chomp;
        next if(/#/);
        next if(/^(?!.*PASS)/);
        my @t=split;
        next if($s[0]ne$t[0]or$s[1]gt$t[1]or$t[1]ge$s[2]);
        my $id=join "-",$t[0],$t[1],$t[3],$t[4];
        if(/Dels=0.00/){
            $hash_s{$id}=0;
            $A_snp++;}
        elsif(/^(?!.*Dels)/){
            $hash_i{$id}=0;
            $A_indel++;}
}
seek INPUT1,0,0;
}
seek RANGE,0,0;
while(<RANGE>){
    chomp;
    my @s=split;
    while(<INPUT2>){
        chomp;
        next if(/#/);
        next if(/^(?!.*PASS)/);
        my @t=split;
        next if($s[0]ne$t[0]or$s[1]gt$t[1]or$t[1]ge$s[2]);
        my $id=join "-",$t[0],$t[1],$t[3],$t[4];
        if(/Dels=0.00/){                                                             
            $B_snp++;}                                                             
        if(/^(?!.*Dels)/){                                                          
            $B_indel++;}                                                     
        if(exists $hash_s{$id}){                                                  
                $S_share++;
        }
        elsif(exists $hash_i{$id}){
                $I_share++;
        }
}
seek INPUT2,0,0;
}



上一篇:ChEMBL数据库如何用IC50筛选以及其他一些问题
下一篇:Illumina Biochip manufacturing method
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2020-6-6 09:08 , Processed in 0.026374 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.