如何使用perl找到位置和b位置的Mod值

时间:2011-08-22 06:56:49

标签: perl bioinformatics

现在我有了数据(txt文件)。如何找到a位置和b位置的Mod值。 例如:

 my data:
  posi 
    13628   16195   GTG GAA BL4_0018
    14185   14185   T   C
    20000   16543   ATG GAC BL4_0019
Hope The result : 
  posi
  Mod value 16195   GTG GAA BL4_0018
  Mod value 14185   T   C
  Mod value 16543   ATG GAC BL4_0019
Mod value=(present-current)%3+1

我希望结果印有所有的colums。如果你能给出一些指示,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

怎么样:

#!/usr/bin/perl
use strict;
use warnings;
use Data::Dump qw(dump);

my ($current, $previous, $rest, $prest);
while(<DATA>) {
    chomp;
    if (/^\s*(\d+)(.*)$/) {
        $current = $1;
        $rest = $2;
    }
    if (defined $previous) {
        my $mod = ($current - $previous) % 3 + 1;
        print  "$mod $rest\n";
    }
    $previous = $current;
}

__DATA__
 posi 
    13628   16195   GTG GAA BL4_0018
    14185   14185   T   C
    20000   16543   ATG GAC BL4_0019

<强>输出:

3    14185   T   C
2    16543   ATG GAC BL4_0019