From 9a00b2b8ea44b66453ced7b961fea8003670e5a3 Mon Sep 17 00:00:00 2001 From: tcofoegbu Date: Fri, 29 Jan 2016 16:24:29 +0000 Subject: [PATCH] JAL-1979 refactor out duplicated similar block of code in StructureSelectionManger to a single method --- .../structure/StructureSelectionManager.java | 91 ++++++++++---------- 1 file changed, 47 insertions(+), 44 deletions(-) diff --git a/src/jalview/structure/StructureSelectionManager.java b/src/jalview/structure/StructureSelectionManager.java index b3b5708..6bc8f84 100644 --- a/src/jalview/structure/StructureSelectionManager.java +++ b/src/jalview/structure/StructureSelectionManager.java @@ -73,6 +73,8 @@ public class StructureSelectionManager private IProgressIndicator progressIndicator; + private SiftsClient siftsClient = null; + private long progressSessionId; /* @@ -380,7 +382,6 @@ public class StructureSelectionManager } PDBfile pdb = null; boolean isMapUsingSIFTs = SiftsSettings.isMapWithSifts(); - SiftsClient siftsClient = null; try { pdb = new PDBfile(addTempFacAnnot, parseSecStr, secStructServices, @@ -487,69 +488,73 @@ public class StructureSelectionManager pdbFile = "INLINE" + pdb.id; } - ArrayList seqToStrucMapping = null; + ArrayList seqToStrucMapping = new ArrayList(); if (isMapUsingSIFTs) { setProgressBar(null); setProgressBar("Obtaining mapping with SIFTS"); - try + jalview.datamodel.Mapping sqmpping = maxAlignseq + .getMappingFromS1(false); + if (targetChainId != null && !targetChainId.trim().isEmpty()) { - jalview.datamodel.Mapping sqmpping = maxAlignseq - .getMappingFromS1(false); - seqToStrucMapping = new ArrayList(); - if (targetChainId != null && !targetChainId.trim().isEmpty()) - { - StructureMapping curChainMapping = siftsClient - .getSiftsStructureMapping(seq, pdbFile, targetChainId); - seqToStrucMapping.add(curChainMapping); - maxChainId = targetChainId; - PDBChain chain = pdb.findChain(targetChainId); - if (chain != null) - { - chain.transferResidueAnnotation(curChainMapping, sqmpping); - } - } - else + StructureMapping mapping = getStructureMapping(seq, pdbFile, + targetChainId, pdb, maxChain, sqmpping, maxAlignseq); + seqToStrucMapping.add(mapping); + } + else + { + for (PDBChain chain : pdb.chains) { - for (PDBChain chain : pdb.chains) - { - StructureMapping curChainMapping = siftsClient - .getSiftsStructureMapping(seq, pdbFile, chain.id); - seqToStrucMapping.add(curChainMapping); - maxChainId = chain.id; - chain.transferResidueAnnotation(curChainMapping, sqmpping); - } + StructureMapping mapping = getStructureMapping(seq, pdbFile, + chain.id, pdb, chain, sqmpping, maxAlignseq); + seqToStrucMapping.add(mapping); } - } catch (SiftsException e) - { - System.err.println(e.getMessage()); - System.err - .println(">>> Now switching mapping with NW alignment..."); - setProgressBar(null); - setProgressBar(">>> Now switching mapping with NW alignment..."); - seqToStrucMapping = getNWMappings(seq, pdbFile, maxChainId, - maxChain, pdb, maxAlignseq); } } else { setProgressBar(null); setProgressBar("Obtaining mapping with NW alignment"); - seqToStrucMapping = getNWMappings(seq, pdbFile, - maxChainId, maxChain, pdb, - maxAlignseq); + seqToStrucMapping.add(getNWMappings(seq, pdbFile, maxChainId, + maxChain, pdb, maxAlignseq)); } if (forStructureView) { - // mappings.add(seqToStrucMapping); mappings.addAll(seqToStrucMapping); } } return pdb; } - private ArrayList getNWMappings(SequenceI seq, + private StructureMapping getStructureMapping(SequenceI seq, + String pdbFile, String targetChainId, PDBfile pdb, + PDBChain maxChain, jalview.datamodel.Mapping sqmpping, + AlignSeq maxAlignseq) + { + String maxChainId = targetChainId; + try + { + StructureMapping curChainMapping = siftsClient + .getSiftsStructureMapping(seq, pdbFile, targetChainId); + PDBChain chain = pdb.findChain(targetChainId); + if (chain != null) + { + chain.transferResidueAnnotation(curChainMapping, sqmpping); + } + return curChainMapping; + } catch (SiftsException e) + { + System.err.println(e.getMessage()); + System.err.println(">>> Now switching mapping with NW alignment..."); + setProgressBar(null); + setProgressBar(">>> Now switching mapping with NW alignment..."); + return getNWMappings(seq, pdbFile, maxChainId, maxChain, pdb, + maxAlignseq); + } + } + + private StructureMapping getNWMappings(SequenceI seq, String pdbFile, String maxChainId, PDBChain maxChain, PDBfile pdb, AlignSeq maxAlignseq) @@ -624,9 +629,7 @@ public class StructureSelectionManager StructureMapping nwMapping = new StructureMapping(seq, pdbFile, pdb.id, maxChainId, mapping, mappingDetails.toString()); maxChain.transferResidueAnnotation(nwMapping, sqmpping); - ArrayList mappings = new ArrayList(); - mappings.add(nwMapping); - return mappings; + return nwMapping; } public void removeStructureViewerListener(Object svl, String[] pdbfiles) -- 1.7.10.2