/** * Utility method that employs some heuristics to find the {@link EntityInfo}s * for the polymeric chains given in constructor. * To be used in case the information is missing in PDB/mmCIF file * @return */ public static List<EntityInfo> findPolyEntities(List<List<Chain>> polyModels) { TreeMap<String,EntityInfo> chainIds2entities = findEntitiesFromAlignment(polyModels); List<EntityInfo> entities = findUniqueEntities(chainIds2entities); return entities; }
if (isProteinSequence(str1) && isProteinSequence(str2)) { ProteinSequence s1 = getProteinSequence(str1); ProteinSequence s2 = getProteinSequence(str2); seq1Length = s1.getLength(); seq2Length = s2.getLength(); pair = alignProtein(s1,s2); } else if (isDNASequence(str1) && isDNASequence(str2)) { DNASequence s1 = getDNASequence(str1); DNASequence s2 = getDNASequence(str2); seq1Length = s1.getLength(); seq2Length = s2.getLength(); pair = alignDNA(s1,s2); } else if (isRNASequence(str1) && isRNASequence(str2)) { RNASequence s1 = getRNASequence(str1); RNASequence s2 = getRNASequence(str2); seq1Length = s1.getLength(); seq2Length = s2.getLength(); pair = alignRNA(s1,s2); int numGaps = getNumGaps(pair); int numGaps1 = getNumGapsQuery(pair); int numGaps2 = getNumGapsTarget(pair); if (!areResNumbersAligned(c1, c2)) {
entities = EntityFinder.findPolyEntities(polyModels); EntityFinder.createPurelyNonPolyEntities(splitNonPolyModels, waterModels, entities);
EntityInfo nonPolyEntity = findNonPolyEntityWithDescription(molecPdbName, nonPolyEntities); if (nonPolyEntity == null) { nonPolyEntity = new EntityInfo();
entityInfos = EntityFinder.findPolyEntities(polyModels); EntityFinder.createPurelyNonPolyEntities(nonPolyModels, waterModels, entityInfos);