/** * Get a group represented by a ResidueNumber. * * @param struc * a {@link Structure} * @param pdbResNum * a {@link ResidueNumber} * @return a group in the structure that is represented by the pdbResNum. * @throws StructureException * if the group cannot be found. */ public static final Group getGroupByPDBResidueNumber(Structure struc, ResidueNumber pdbResNum) throws StructureException { if (struc == null || pdbResNum == null) { throw new IllegalArgumentException("Null argument(s)."); } Chain chain = struc.getPolyChainByPDB(pdbResNum.getChainName()); return chain.getGroupByPDB(pdbResNum); }
private Map<Integer,Atom> getAtomFromRecord(String name, String altLoc, String resName, String chainID, String resSeq, String iCode) throws StructureException { if (iCode==null || iCode.isEmpty()) { iCode = " "; // an insertion code of ' ' is ignored } Map<Integer, Atom> outMap = new HashMap<>(); ResidueNumber resNum = new ResidueNumber(chainID, Integer.parseInt(resSeq), iCode.charAt(0)); for (int i=0; i<structure.nrModels(); i++){ Chain chain = structure.getChain(chainID,i); Group group = chain.getGroupByPDB(resNum); Group g = group; // there is an alternate location if (!altLoc.isEmpty()) { g = group.getAltLocGroup(altLoc.charAt(0)); if (g==null) throw new StructureException("Could not find altLoc code "+altLoc+" in group "+resSeq+iCode+" of chain "+ chainID); } Atom a = g.getAtom(name); if (a!=null){ outMap.put(i,a); } } return outMap; } }
ResidueNumber r = new ResidueNumber(chainId, resNum, insCode); Group parent = structure.getPolyChainByPDB(chainId) .getGroupByPDB(r); SecStrucType ssType = SecStrucType.fromCharacter(line.charAt(16));
private Group getGroup(StructureGroup num, List<Chain> chains) throws StructureException { for (Chain c : chains){ if ( c.getId().equals(num.getChainId())){ ResidueNumber resNum = new ResidueNumber(); resNum.setSeqNum(num.getResidueNumber()); resNum.setInsCode(num.getInsCode()); return c.getGroupByPDB(resNum); } } throw new StructureException("Could not find residue " + num); }
Character insChar = null; if (null != insCode && insCode.length() > 0) insChar = insCode.charAt(0); g = chain.getGroupByPDB(new ResidueNumber(null, Integer.parseInt(auth_seq_id), insChar)); } catch (NumberFormatException e) { logger.warn("Could not lookup residue : " + authId + auth_seq_id);
Group g2 = c2.getGroupByPDB(g1.getResidueNumber()); if (!g2.getPDBName().equals(g1.getPDBName())) { logger.debug("Mismatch of residues between chains {},{} for residue number {}: {} {}",
try { newChain.getGroupByPDB(parentN.getResidueNumber()); } catch (StructureException e) {