Заранее спасибо за помощь.
У меня есть массив с именем %pepHash
с 174 «счетчиками» и несколькими «пептидами» в каждом $count
.
Вот фрагмент хеша:
Count: 39 Peptide: 0 Score: 55.03 MR: 1792.3206
Count: 39 Peptide: 1 Score: 75.22 MR: 1792.6158
Count: 39 Peptide: 2 Score: 62.63 MR: 1972.7156
Count: 39 Peptide: 3 Score: 49.95 MR: 2365.2174
Count: 40 Peptide: 0 Score: 46.38 MR: 1256.4437
Count: 40 Peptide: 1 Score: 71.07 MR: 1950.1644
Count: 40 Peptide: 2 Score: 71.77 MR: 2492.9394
Count: 40 Peptide: 3 Score: 67.28 MR: 2493.0154
Во-первых, я не очень хорошо разбираюсь в структурах данных, так что лучше бы посоветоваться с несколькими хешами.
Count: 40 Peptide: 1 Score: 71.07 MR: 1950.1644
доступен $pepHash[$count][$pepCount]{$PEP_SCORE}
или {$PEP_MR}
, и в этом случае это, очевидно, $pepHash[40][1]{$PEP_SCORE}
.
Я хочу отсортировать все %pepHash
по его оценкам в порядке убывания или создать новый отсортированный хэш, чтобы список стал:
Count: 39 Peptide: 0 Score: 75.22 MR: 1792.6158
Count: 39 Peptide: 1 Score: 62.63 MR: 1972.7156
Count: 39 Peptide: 2 Score: 55.03 MR: 1792.3206
Count: 39 Peptide: 3 Score: 49.95 MR: 2365.2174
Count: 40 Peptide: 0 Score: 71.77 MR: 2492.9394
Count: 40 Peptide: 1 Score: 71.07 MR: 1950.1644
Count: 40 Peptide: 2 Score: 67.28 MR: 2493.0154
Count: 40 Peptide: 3 Score: 46.38 MR: 1256.4437
Обратите внимание на обновленные значения $pepCount
. У меня есть этот цикл, который может быть полезен:
for ($count = 0; $count < $total; $count++) {
for ($pepCount = 0; $pepCount < $pepTotal[$count]; $pepCount++) {
}
}
Я тоже бездельничал, потому что я нуб:
foreach $key (sort {$pepHash{$b} <=> $pepHash{$a}} keys(%pepHash)) {
#CONFUSED
}
РЕДАКТИРОВАТЬ: Это мне очень помогло: http://www.stathis.co.uk/computers/perl-sort-tutorial