* @throws InterruptedException
*/
public ArrayList<String> getSortedPsmKeys(String peptideKey) throws SQLException, IOException, ClassNotFoundException, InterruptedException {
if (!peptideKey.equals(identificationFeaturesCache.getCurrentPeptideKey()) || identificationFeaturesCache.getPsmList() == null) {
PeptideMatch currentPeptideMatch = identification.getPeptideMatch(peptideKey);
HashMap<Integer, HashMap<Double, ArrayList<String>>> orderingMap = new HashMap<Integer, HashMap<Double, ArrayList<String>>>();
boolean hasRT = true;
double rt = -1;
PSParameter psParameter = new PSParameter();
int nValidatedPsms = 0;
identification.loadSpectrumMatchParameters(currentPeptideMatch.getSpectrumMatches(), psParameter, null);
identification.loadSpectrumMatches(currentPeptideMatch.getSpectrumMatches(), null);
for (String spectrumKey : currentPeptideMatch.getSpectrumMatches()) {
psParameter = (PSParameter) identification.getSpectrumMatchParameter(spectrumKey, psParameter);
if (!psParameter.isHidden()) {
if (psParameter.getMatchValidationLevel().isValidated()) {