加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 21:01:40 所属栏目:大数据 来源:网络整理
导读:原来的数据结构如下: 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

原来的数据结构如下:

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 "$outputn";
	}
	else
	{
		$numb=0;
	}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读