private String getHeader(Group thisGroup) { // Make the header info for the start of the block StringBuilder sb = new StringBuilder(); sb.append(thisGroup.getPDBName()).append("\n"); sb.append("Made by BioJava"); sb.append("\n"); return sb.toString(); } }
private static char getOneLetter(Group g){ if (g==null) return StructureTools.UNKNOWN_GROUP_LABEL; return StructureTools.get1LetterCode(g.getPDBName()); }
private static char getOneLetter(Group g){ if (g==null) return StructureTools.UNKNOWN_GROUP_LABEL; return StructureTools.get1LetterCode(g.getPDBName()); }
private static char getOneLetter(Group g){ if (g==null) return StructureTools.UNKNOWN_GROUP_LABEL; return StructureTools.get1LetterCode(g.getPDBName()); }
private static char getOneLetter(Group g){ if (g==null) return StructureTools.UNKNOWN_GROUP_LABEL; return StructureTools.get1LetterCode(g.getPDBName()); }
private static char getOneLetter(Group g){ if (g==null) return StructureTools.UNKNOWN_GROUP_LABEL; return StructureTools.get1LetterCode(g.getPDBName()); }
private static char getOneLetter(Group g){ return StructureTools.get1LetterCode(g.getPDBName()); }
@Override public String toString() { StringBuilder stringBuilder = new StringBuilder("SITE "); stringBuilder.append(siteID).append(" ").append(groups.size()).append(" "); for (Group group : groups) { // 012345678910 //'ARG H 221A ' String groupString = String.format("%s %s", group.getPDBName(), group.getResidueNumber().toPDB()); stringBuilder.append(groupString); } stringBuilder.append(lineEnd); return stringBuilder.toString(); }
/** calculates scores for this alignment ( %id ) * @param ca1 set of Atoms for molecule 1 * @param ca2 set of Atoms for molecule 2 */ public void calcScores(Atom[] ca1, Atom[] ca2){ eqr0 = idx1.length; gaps0 = count_gaps(idx1,idx2); percId = 0; // calc the % id for (int i=0 ; i< idx1.length; i++){ Atom a1 = ca1[idx1[i]]; Atom a2 = ca2[idx2[i]]; Group g1 = a1.getGroup(); Group g2 = a2.getGroup(); if ( g1.getPDBName().equals(g2.getPDBName())){ percId++; } } }
/** * * @param group a {@link Group} in structure. * @param isAminoAcid true if it is an amino acid. * @return the {@link StructureGroup} of the group. */ public static StructureGroup getStructureGroup(Group group, boolean isAminoAcid) { ResidueNumber resNum = group.getResidueNumber(); return new StructureGroup(resNum, group.getPDBName(), isAminoAcid); }
public static final String convertAtomsToSeq(Atom[] atoms) { StringBuilder buf = new StringBuilder(); Group prevGroup = null; for (Atom a : atoms) { Group g = a.getGroup(); if (prevGroup != null) { if (prevGroup.equals(g)) { // we add each group only once. continue; } } String code3 = g.getPDBName(); Character code1 = get1LetterCodeAmino(code3); if (code1 == null) code1 = UNKNOWN_GROUP_LABEL; buf.append(code1); prevGroup = g; } return buf.toString(); }
/** * Get the protein sequence of the Subunit as String. * * @return protein sequence String */ public String getProteinSequenceString() { if (sequence != null) return sequence.toString(); StringBuilder builder = new StringBuilder(); for (Atom a : reprAtoms) // This method preferred over getChemComp.getOneLetterCode because // it returns always X for Unknown residues builder.append(StructureTools.get1LetterCode(a.getGroup() .getPDBName())); return builder.toString(); }
/** * * @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; }
for (Group altLoc : g.getAltLocs()) { if(! altLoc.getPDBName().equals(g.getPDBName())) {
/** * Returns true if the given group is part of the main chain, i.e. if it is * a peptide-linked group or a nucleotide * @param g * @return */ private static boolean isInChain(Group g) { ChemComp chemComp = g.getChemComp(); if (chemComp==null) { logger.warn("Warning: can't determine PolymerType for group "+g.getResidueNumber()+" ("+g.getPDBName()+"). Will consider it as non-nucleotide/non-protein type."); return false; } PolymerType polyType = chemComp.getPolymerType(); for (PolymerType protOnlyType: PolymerType.PROTEIN_ONLY) { if (polyType==protOnlyType) return true; } for (PolymerType protOnlyType: PolymerType.POLYNUCLEOTIDE_ONLY) { if (polyType==protOnlyType) return true; } return false; }
/** * Cleans up the structure's alternate location (altloc) groups. All alternate location groups should have all atoms (except * in the case of microheterogenity) or when a deuterium exists. * Ensure that all the alt loc groups have all the atoms in the main group. * @param structure The Structure to be cleaned up */ public static void cleanUpAltLocs(Structure structure) { for (int i =0; i< structure.nrModels() ; i++){ for (Chain chain : structure.getModel(i)) { for (Group group : chain.getAtomGroups()) { for (Group altLocGroup : group.getAltLocs()) { for ( Atom groupAtom : group.getAtoms()) { // If this alt loc doesn't have this atom if (! altLocGroup.hasAtom(groupAtom.getName())) { // Fix for microheterogenity if (altLocGroup.getPDBName().equals(group.getPDBName())) { // If it's a Hydrogen then we check for it's Deuterated brother if(!hasDeuteratedEquiv(groupAtom, altLocGroup)){ altLocGroup.addAtom(groupAtom); } } } } } } } } }
ChemComp aminoChemComp = ChemCompGroupFactory.getChemComp(group.getPDBName()); logger.debug("chemcomp for residue {}-{} has {} atoms and {} bonds", group.getPDBName(), group.getResidueNumber(), aminoChemComp.getAtoms().size(), aminoChemComp.getBonds().size());
if (!bond.getAtomA().getGroup().getPDBName().equals("CYS") || !bond.getAtomB().getGroup().getPDBName().equals("CYS") ) {
sg.setResidueNumber(g.getResidueNumber()); sg.setPDBFlag(true); sg.setPDBName(g.getPDBName()); sg.setChain(g.getChain());
n.setPDBName(g.getPDBName()); n.setResidueNumber(g.getResidueNumber()); n.addAtom(a);