private String siiToString(SpectrumIdentificationItem sii) { String siiString = ""; siiString = "\"" + sii.getId() + "\"" + sep + sii.getRank() + sep + sii.isPassThreshold() + sep + sii.getCalculatedMassToCharge() + sep + sii.getExperimentalMassToCharge() + sep + sii.getChargeState(); Peptide pep = peptideIdHashMap.get(sii.getPeptideRef()); // get Peptide via the hash for this object siiString += sep + "\"" + pep.getPeptideSequence() + "\""; // Handle Mods siiString += sep; String modString = ""; if (pep.getModification() != null) { int i = 0; for (Modification mod : pep.getModification()) { if (i > 0) { modString += ";"; // Add an extra separator between mods } modString += modToString(mod); i++; } } if (pep.getSubstitutionModification() != null) { int i = 0; for (SubstitutionModification subMod : pep.getSubstitutionModification()) { if (i > 0 || !modString.equals("")) { modString += ";"; // Add an extra separator between mods } modString += subModToString(subMod); i++; } } siiString += modString; Map<String, String> mapNameToValue = new HashMap<>(); for (AbstractParam param : sii.getParamGroup()) { mapNameToValue.put(param.getName(), param.getValue()); // System.out.println("test1" + param.getName() + "-> " + param.getValue()); } // Handle scores for (int i = 0; i < columnToScoreMap.size(); i++) { String score = columnToScoreMap.get(i); // System.out.println("test2" + score); if (mapNameToValue.containsKey(score)) { String scoreValue = mapNameToValue.get(score); // System.out.println("test3" + scoreValue); siiString += sep + scoreValue; } else { siiString += sep; } } // Handle all protein maps siiString += sep + "\""; List<PeptideEvidenceRef> peptideEvidenceRefList = sii.getPeptideEvidenceRef(); Boolean isDecoy = false; for (int i = 0; i < peptideEvidenceRefList.size(); i++) { PeptideEvidenceRef peptideEvidenceRef = peptideEvidenceRefList.get(i); PeptideEvidence peptideEvidence = peptideEvidenceIdHashMap.get(peptideEvidenceRef.getPeptideEvidenceRef()); DBSequence dbSeq = dbSequenceIdHashMap.get(peptideEvidence.getDBSequenceRef()); if (i > 0) { siiString += ";"; // Add an extra separator between mods } siiString += dbSeq.getAccession() + "_" + peptideEvidence.getStart() + "_" + peptideEvidence.getEnd() + "_" + peptideEvidence.getPre() + "_" + peptideEvidence.getPost(); if (peptideEvidence.isIsDecoy()) { isDecoy = true; } } siiString += "\""; siiString += sep + isDecoy; return siiString; }