給定perl腳本將輸入序列剪切爲「E」並跳過@nobreak中提到的「E」的特定位置,並生成一個片段數組作爲輸出。但是我想要一個腳本,它會在輸出中爲每個已經跳過@nobreak所有位置的位置生成一組這樣的數組。假設組1包含在「E」37處跳過,在「E」45處跳過後的組2,等等。下面提到的我寫的腳本無法正常工作。我想在輸出中一次生成4個不同的數組,每次取@nobreak的一個位置。請幫忙!在perl中生成數組集合
my $s = 'MALWMRLLPLLALLALWGPDPAAAFVNQHLCGSHLVEALYLVCGERGFFYTPKTRREAEDLQVGQVELGGGPGAGSLQPLALEGSLQKRGIVEQCCTSICSLYQLENYCN';
print "Results of 1-Missed Cleavage:\n\n";
my @nobreak = (37, 45, 57, 59);
{
@nobreak = map { $_ - 1 } @nobreak;
foreach (@nobreak) {
substr($s, $_, 1) = "\0";
}
my @a = split /E(?!P)/, $s;
$_ =~ s/\0/E/g foreach (@a);
$result = join "E,", @a;
@final = split /,/, $result;
print "@final\n";
}
添加您預計會在破譯你的要求幫助輸出。 @ysth可能會對,但我不確定... – pmakholm