首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

perl施用:SNP的提取(3):18个样品SNP的合并,+忽略-多的行

2012-11-26 
perl应用:SNP的提取(3):18个样品SNP的合并,+忽略-多的行在(2)中我们只是取出了一个sample的snp位点,我们的

perl应用:SNP的提取(3):18个样品SNP的合并,+忽略-多的行

在(2)中我们只是取出了一个sample的snp位点,我们的想法是把所有的SNP位点统计到一个文本里面,这样,我们就可以看出哪些SNP位点的出现的频率更大。也就是哪些是真正的SNP位点,只出现在一个样品中的SNP位点,有可能是因为测序不准,导致的假阳性。

思路如下:

1.先打开第一个样品的snp位点,然后将snp在ref的位置和碱基作为hash的key,然后把样品的碱基作为value。

2.先打开第二个样品的snp位点,然后与我们得到的hash进行查找,如果有这个位点,那么就加上第二个样品的碱基。如果不存在,就把这个新的位点加入到hash中

3.打开第三个样品的snp位点,然后我们得到。。。。。。。。。。。。。。

4打开第四个样品的。。。。。。。。。。。

5打开第五个。。。。。。

6打开。。

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

一直把18个样品都处理完,然后把得到的结果进行输出就ok了。

程序如下:

#!/usr/bin/perluse strict;use warnings;my @datas;my $data;my $numb=0;my $output;open (SNP,"Chr1_join.txt")||die("can not open !");open (MORE,">3_more_snp.txt")||die("can not open!");while(<SNP>){$output=$_;@datas=split;foreach $data(@datas) {if ($data=~"-"){$numb++;}else{next;}}if ($numb<15){$numb=0;print MORE "$output\n";}else{$numb=0;}}




热点排行