我有 SNP 数据和基因列表数据。当我与 gen 列表进行比较时,我正在寻找 SNP cotain 在 gen 列表数据中的位置。例如:
SNP数据:
Pos_start pos_end 14185 14185 .... .....
gen列表数据:
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;
}
}
如果您能提供一些指示,我将不胜感激。