X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fstructures%2Fmodels%2FAAStructureBindingModel.java;fp=src%2Fjalview%2Fstructures%2Fmodels%2FAAStructureBindingModel.java;h=252828601a738b6ebe153b142f60d438cf2b3e7c;hb=b7b29fb6c0b015ac4798ec4718ab0cfbdd79b20a;hp=9f4cea03736531ce3371e702969eaaea58ae5d8f;hpb=7750a4b02d54025e18a216183957fa70a91e3682;p=jalview.git diff --git a/src/jalview/structures/models/AAStructureBindingModel.java b/src/jalview/structures/models/AAStructureBindingModel.java index 9f4cea0..2528286 100644 --- a/src/jalview/structures/models/AAStructureBindingModel.java +++ b/src/jalview/structures/models/AAStructureBindingModel.java @@ -142,7 +142,6 @@ public abstract class AAStructureBindingModel * @param ssm * @param pdbentry * @param sequenceIs - * @param chains * @param protocol */ public AAStructureBindingModel(StructureSelectionManager ssm, @@ -154,8 +153,60 @@ public abstract class AAStructureBindingModel this.nucleotide = Comparison.isNucleotide(sequenceIs); this.pdbEntry = pdbentry; this.protocol = protocol; + resolveChains(); } + private boolean resolveChains() + { + /** + * final count of chain mappings discovered + */ + int chainmaps = 0; + // JBPNote: JAL-2693 - this should be a list of chain mappings per + // [pdbentry][sequence] + String[][] newchains = new String[pdbEntry.length][]; + int pe = 0; + for (PDBEntry pdb : pdbEntry) + { + SequenceI[] seqsForPdb = sequence[pe]; + if (seqsForPdb != null) + { + newchains[pe] = new String[seqsForPdb.length]; + int se = 0; + for (SequenceI asq : seqsForPdb) + { + String chain = (chains != null && chains[pe] != null) + ? chains[pe][se] + : null; + SequenceI sq = (asq.getDatasetSequence() == null) ? asq + : asq.getDatasetSequence(); + if (sq.getAllPDBEntries() != null) + { + for (PDBEntry pdbentry : sq.getAllPDBEntries()) + { + if (pdb.getFile() != null && pdbentry.getFile() != null + && pdb.getFile().equals(pdbentry.getFile())) + { + String chaincode = pdbentry.getChainCode(); + if (chaincode != null && chaincode.length() > 0) + { + chain = chaincode; + chainmaps++; + break; + } + } + } + } + newchains[pe][se] = chain; + se++; + } + pe++; + } + } + + chains = newchains; + return chainmaps > 0; + } public StructureSelectionManager getSsm() { return ssm;