perl应用:提取snp后续处理:删除带有“—”的行remove-.pl

原来的数据结构如下:

10000470 A A A A A A - A A A A - C A A - A - A  
10000552 C C C C C C - C C C C - T C C - C - C  
10000565 G G T G G G - G - T G - T G G - G - G  
10000566 T T C T T T - T - C T - C T T - T - T  
10000567 T T G T T T - T - G T - G T T - T - T  
10000685 G G - G G G - A - - G - - G A - A - G  
10000690 T T - C T T - T - - T - - T T - T - T  
10000917 G G - G G R G A - - G - - G A G A G G  
10000955 G G - G G G G G - - G - A G G G G G G  
10000974 A A - A A A A A - - A - G A A A A A A  
10000993 C T - C C C C C - - C - C C C C C C C  
10001005 A A - A A A A A - - A - G A A A A A A  
1000114 G G C G G G G G G G G G G G G G G G G  
10001291 T T - T T A T T - - T - T T T T T T T  

只要有‘—’的行都去掉,剩下所有的行。

程序的基本思路就是,把一行变成数组,如果遇到‘—’那么$cout就+1;最后判断的条件就是,如果$cout==0;也就是一个-都没有,那么这一行留下。然后把$cout重新赋值为0,然后进行下一个循环。

程序如下:

#!/usr/bin/perl

use strict;
use warnings;

my @datas;
my $data;
my $numb=0;
my $output;


open (SNP,"without_repeat_information.txt")||die("can not open !");
open (MORE,">without-without_repeat_information.txt")||die("can not open!");

while(<SNP>)
{
	chomp($_);
	$output=$_;
	@datas=split;
	foreach $data(@datas) 
	{
		if ($data=~"-")
		{
			$numb++;
		}
		else
		{
			next;
		}
	}
	if ($numb==0)
	{
		$numb=0;
		print MORE "$output\n";
	}
	else
	{
		$numb=0;
	}
}


你可能感兴趣的:(perl应用:提取snp后续处理:删除带有“—”的行remove-.pl)