SNP データと遺伝子リスト データがあります。gen list と比較するとき、gen list データの中で SNP cotain の位置を探しています。例えば:
SNP データ :
Pos_start pos_end 14185 14185 .... .....
遺伝子リストデータ:
5"side(pos_start) 3"sile(pos_end) 1 1527 1920 1777 .... .....
結果: SNP の 14185 の位置に、gen リストの 16185 の位置に含まれています。
以下は私のコードですが、番号の並べ替えに問題があります。
#!/usr/bin/perl -w
open(POS1,"<posi1.txt"); (I collect two data and save with posi1.txt)
@posi1=<POS1>;
open(list,">list.txt");
@list1=@posi1;
@list2= sort num_last (@list1);
$list2 = join( '', @list2);
print $list2;
print list $list2."\n\n";
close(list);
sub num_last {
my ($num_a, $num_b);
$num_a=$a=~ /^[0-9]/;
$num_b=$b=~ /^[0-9]/;
if ($num_a && $num_b){
return $a<=>$b;
} elsif ($num_a){
return 1;
} elsif ($num_b){
return -1;
} else {
return $a cmp $b;
}
}
何点かご教示いただければ幸いです。