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; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |