搜索
查看: 1571|回复: 0

用一系列坐标文件来过滤指定的坐标文件

[复制链接]

634

主题

1182

帖子

4030

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4030
发表于 2017-2-13 10:31:54 | 显示全部楼层 |阅读模式
坐标文件可以是bed或者vcf等一系列格式,我这里拿vcf举例子咯。
大家都知道vcf的第一列是染色体,第二列是染色体位置信息。
那么就把一系列的vcf文件循环读取,把坐标全部存起来,最后处理待过滤的vcf的时候,判断一下在不在即可。


[Perl] 纯文本查看 复制代码
$lastFile=pop @ARGV;
foreach(@ARGV){
        open FH1,$_;
        while(<FH1>){
                chomp;
                next if /^#/;
                @F=split/\t/;
                $h{"$F[0]\t$F[1]"}=1;
        }
        close FH1;

}
#print "$_\t$h{$_}\n" foreach keys %h;
open FH2,$lastFile;
while(<FH2>){
        chomp;
        next if /^#/;
        @F=split/\t/;
        print "$_\n" unless exists $h{"$F[0]\t$F[1]"};
}
close FH2;


假设这个程序叫做filter.sh
那么用法就是 perl filter.sh vcf1 vcf2 vcf3  your.filter.vcf  即可!


简单举个例子:
vcf1文件内容是;
1        123
2        234

vcf2文件内容是;
1        456       
2        934


vcf3文件内容是;
1        1593
2        254


your.filter.vcf  文件内容是;
1        1593
2        254


1        456       
2        934

2        234
2        234333

那么过滤后的结果就应该是:
2        234333

当然,肉眼也可以过滤,但是真实的生物信息学里面vcf文件里面都是几万行以上的坐标,我想你应该不会傻到用肉眼吧!








上一篇:测序数据fq文件质控及fastqc/fastx-toolkit相关问题
下一篇:在线做domain and lollipop mutation diagrams
你这个问题很复杂,需要打赏,请点击 http://www.bio-info-trainee.com/donate 进行打赏,谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2019-9-22 08:28 , Processed in 0.028976 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.