/** * Returns true if ligand specified by either 3-letter ligand id (i.e. HEM) or chain/residue * number (i.e. A156) matches the passed in residue. * * @param residue * @param initialLigand Specification of ligand to be highlighted in Ligand Explorer upon startup * @return */ private boolean isInitialLigandResidue(Residue residue, String initialLigand) { if (residue.getCompoundCode().equalsIgnoreCase(initialLigand)) { return true; } String chainId = initialLigand.substring(0, 1); int residueNumber; try { residueNumber = Integer.parseInt(initialLigand.substring(1)); } catch (NumberFormatException e) { return false; } if (residue.getAuthorChainId().equalsIgnoreCase(chainId) && residue.getAuthorResidueId() == residueNumber) { return true; } return false; }
/** * Returns true if the initialLigand matches a PRD ID (i.e., PRD_000223) * * @param residue * @param initialLigand Specification of PRD molecule to be highlighted in Ligand Explorer upon * startup * @return */ private boolean isInitialBirdChain(Chain chain, String initialLigand) { if (chain.getClassification() == Classification.BIRD) { Residue r = chain.getResidue(0); if (r != null) { Bird bird = r.getBird(); if (bird == null) { return false; } if (initialLigand.toUpperCase().startsWith("PRD_")) { return bird.getPrdId().equalsIgnoreCase(initialLigand); } else { String chainId = initialLigand.substring(0, 1); String prdId = initialLigand.substring(2, initialLigand.length()); return chain.getAuthorChainId().equalsIgnoreCase(chainId) && bird.getPrdId().equalsIgnoreCase(prdId); } } } return false; }