按行内容回分类:按照一行中元素个数的不同写入不同的文件夹
按行内容来分类:按照一行中元素个数的不同写入不同的文件夹
我们手里有这样的文件:
1000033 A A A A A A A A A A A A A A C A A A A 1000114 G G C G G G G G G G G G G G G G G G G 100013 C C T C T T T C C C C C C T C C C C C 1000238 C C G C C C C C C C C C C C C C C C C 100027 T T A T A A A T T T T T T A T T T T T 1000383 G G G G G A G G A G A A G G A G G G G我们以第一个碱基为参考标准:
第一行:A有18个:其他1个
第二行:G有18个:其他1个
第三行:C有14个:T有5个
第四行:C有18个:G有1个
第五行:T有14个:A有5个
我们的想法是通过程序,把1,2,4行这样的分到一个文件中,3,5行的内容放到一个文件夹中。
程序如下:
#!/usr/bin/perl #class different line to differet file use strict; use warnings; open (CLASS,"OnlyATGC.txt")||die("can not open!"); open (NUM1,">1-18.txt")||die("can not open!"); open (NUM2,">2-17.txt")||die("can not open!"); open (NUM3,">3-16.txt")||die("can not open!"); open (NUM4,">4-15.txt")||die("can not open!"); open (NUM5,">5-14.txt")||die("can not open!"); open (NUM6,">6-13.txt")||die("can not open!"); open (NUM7,">7-12.txt")||die("can not open!"); open (NUM8,">8-11.txt")||die("can not open!"); open (NUM9,">9-10.txt")||die("can not open!"); open (NUM10,">10-9.txt")||die("can not open!"); open (NUM11,">11-8.txt")||die("can not open!"); open (NUM12,">12-7.txt")||die("can not open!"); open (NUM13,">13-6.txt")||die("can not open!"); open (NUM14,">14-5.txt")||die("can not open!"); open (NUM15,">15-4.txt")||die("can not open!"); open (NUM16,">16-3.txt")||die("can not open!"); open (NUM17,">17-2.txt")||die("can not open!"); open (NUM18,">18-1.txt")||die("can not open!"); my @informations; my $information; my $cout=1; my $firstpase; while(<CLASS>) { chomp; @informations = split; $firstpase = $informations[1]; foreach $information(@informations) { if($information=~$firstpase) { $cout++; } else { next; } } if($cout==1) { print NUM1 "$_\n"; $cout=0; } elsif($cout==2) { print NUM2 "$_\n"; $cout=0; } elsif($cout==3) { print NUM3 "$_\n"; $cout=0; } elsif($cout==4) { print NUM4 "$_\n"; $cout=0; } elsif($cout==5) { print NUM5 "$_\n"; $cout=0; } elsif($cout==6) { print NUM6 "$_\n"; $cout=0; } elsif($cout==7) { print NUM7 "$_\n"; $cout=0; } elsif($cout==8) { print NUM8 "$_\n"; $cout=0; } elsif($cout==9) { print NUM9 "$_\n"; $cout=0; } elsif($cout==10) { print NUM10 "$_\n"; $cout=0; } elsif($cout==11) { print NUM11 "$_\n"; $cout=0; } elsif($cout==12) { print NUM12 "$_\n"; $cout=0; } elsif($cout==13) { print NUM13 "$_\n"; $cout=0; } elsif($cout==14) { print NUM14 "$_\n"; $cout=0; } elsif($cout==15) { print NUM15 "$_\n"; $cout=0; } elsif($cout==16) { print NUM16 "$_\n"; $cout=0; } elsif($cout==17) { print NUM17 "$_\n"; $cout=0; } elsif($cout==18) { print NUM18 "$_\n"; $cout=0; } else { $cout=0; next; } }