@Override public boolean equals(Object obj) { if (obj == this) return true; if (!(obj instanceof StructureGroup)) return false; StructureGroup aGroup = (StructureGroup) obj; if (!resNum.equals(aGroup.resNum)) return false; return true; }
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; ResidueRange other = (ResidueRange) obj; if (chainName == null) { if (other.chainName != null) return false; } else if (!chainName.equals(other.chainName)) return false; if (end == null) { if (other.end != null) return false; } else if (!end.equals(other.end)) return false; if (start == null) { if (other.start != null) return false; } else if (!start.equals(other.start)) return false; return true; }
if (rn.equals(chainGroup.getResidueNumber())) continue groupLoop;
/** * * @return */ private Group getGroupWithSameResNumButDiffPDBName() { // If this chain already has this group number for (Group g : chain.getAtomGroups() ) { if (g.getResidueNumber().equals(group.getResidueNumber())) { if( ! g.getPDBName().equals(group.getPDBName() )){ return g; } } } return null; }
public static Set<Group> getGroupsWithinShell(Structure structure, Atom atom, Set<ResidueNumber> excludeResidues, double distance, boolean includeWater) { // square the distance to use as a comparison against getDistanceFast // which returns the square of a distance. distance = distance * distance; Set<Group> returnSet = new LinkedHashSet<Group>(); for (Chain chain : structure.getChains()) { groupLoop: for (Group chainGroup : chain.getAtomGroups()) { if (!includeWater && chainGroup.isWater()) continue; for (ResidueNumber rn : excludeResidues) { if (rn.equals(chainGroup.getResidueNumber())) continue groupLoop; } for (Atom atomB : chainGroup.getAtoms()) { // use getDistanceFast as we are doing a lot of comparisons double dist = Calc.getDistanceFast(atom, atomB); if (dist <= distance) { returnSet.add(chainGroup); break; } } } } return returnSet; }
/** get the position of PDB residue nr X in the ato marray * * @param pdbresnum pdbresidue number * @param authId chain name * @param atoms atom array * @return */ private static int getPositionForPDBresunm(String pdbresnum, String authId , Atom[] atoms){ ResidueNumber residueNumber = ResidueNumber.fromString(pdbresnum); residueNumber.setChainName(authId); boolean blankChain = authId == null || authId.equalsIgnoreCase("null") || authId.equals("_"); for ( int i =0; i< atoms.length ;i++){ Group g = atoms[i].getGroup(); // match _ to any chain if( blankChain ) { residueNumber.setChainName(g.getChain().getName()); } //System.out.println(g.getResidueNumber() + "< ? >" + residueNumber +"<"); if ( g.getResidueNumber().equals(residueNumber)){ //System.out.println(g + " == " + residueNumber ); Chain c = g.getChain(); if ( blankChain || c.getName().equals(authId)){ return i; } } } return -1; }
if ( ! residueNumber.equals(currentGroup.getResidueNumber())) {
/** * The method will return a new reference to a Chain with any consecutive groups * having same residue numbers removed. * This is necessary to solve the microheterogeneity issue in entries like 3u7t (see github issue #160) * @param c * @return */ private static Chain removeSeqResHeterogeneity(Chain c) { Chain trimmedChain = new ChainImpl(); ResidueNumber lastResNum = null; for (Group g:c.getAtomGroups()) { // note we have to deep copy this, otherwise they stay linked and would get altered in addGroup(g) ResidueNumber currentResNum = new ResidueNumber( g.getResidueNumber().getChainName(), g.getResidueNumber().getSeqNum(), g.getResidueNumber().getInsCode()); if (lastResNum == null || !lastResNum.equals(currentResNum) ) { trimmedChain.addGroup(g); } else { logger.debug("Removing seqres group because it seems to be repeated in entity_poly_seq, most likely has hetero='y': "+g); } lastResNum = currentResNum; } return trimmedChain; }
if ( ! residueNumber.equals(currentGroup.getResidueNumber())) {
ca1.length!=ca2.length || (ca1.length>0 && ca1[0].getGroup()!=null && ca2[0].getGroup()!=null && !ca1[0].getGroup().getResidueNumber().equals(ca2[0].getGroup().getResidueNumber()) ) ) { rn = ca2[0].getGroup().getResidueNumber(); last = name2+rn.getChainName()+rn.toString();