|
26 | 26 | import org.biojava.nbio.structure.align.multiple.MultipleAlignmentEnsemble; |
27 | 27 | import org.biojava.nbio.structure.align.multiple.MultipleAlignmentEnsembleImpl; |
28 | 28 | import org.biojava.nbio.structure.align.multiple.util.MultipleAlignmentScorer; |
29 | | -import org.biojava.nbio.structure.symmetry.internal.CESymmParameters.RefineMethod; |
30 | | -import org.biojava.nbio.structure.symmetry.internal.CESymmParameters.SymmetryType; |
31 | | -import org.biojava.nbio.structure.symmetry.internal.SymmetryAxes; |
32 | | -import org.biojava.nbio.structure.symmetry.internal.OrderDetectionFailedException; |
33 | | -import org.biojava.nbio.structure.symmetry.internal.OrderDetector; |
34 | | -import org.biojava.nbio.structure.symmetry.internal.SequenceFunctionOrderDetector; |
35 | | -import org.biojava.nbio.structure.symmetry.internal.OpenRefiner; |
36 | | -import org.biojava.nbio.structure.symmetry.internal.Refiner; |
37 | | -import org.biojava.nbio.structure.symmetry.internal.RefinerFailedException; |
38 | | -import org.biojava.nbio.structure.symmetry.internal.SingleRefiner; |
39 | | -import org.biojava.nbio.structure.symmetry.internal.SymmOptimizer; |
40 | 29 | import org.biojava.nbio.structure.align.util.AFPChainScorer; |
41 | 30 | import org.biojava.nbio.structure.align.util.AtomCache; |
42 | 31 | import org.biojava.nbio.structure.align.util.RotationAxis; |
43 | 32 | import org.biojava.nbio.structure.jama.Matrix; |
| 33 | +import org.biojava.nbio.structure.symmetry.internal.CESymmParameters.RefineMethod; |
| 34 | +import org.biojava.nbio.structure.symmetry.internal.CESymmParameters.SymmetryType; |
44 | 35 | import org.biojava.nbio.structure.symmetry.utils.SymmetryTools; |
45 | 36 | import org.slf4j.Logger; |
46 | 37 | import org.slf4j.LoggerFactory; |
@@ -278,7 +269,6 @@ public AFPChain align(Atom[] ca10, Atom[] ca2O, Object param) |
278 | 269 | cols = ca2.length; |
279 | 270 |
|
280 | 271 | if( rows == 0 || cols == 0) { |
281 | | - logger.warn("Aligning empty structure"); |
282 | 272 | throw new StructureException("Aligning empty structure"); |
283 | 273 | } |
284 | 274 |
|
@@ -376,16 +366,17 @@ public AFPChain align(Atom[] ca10, Atom[] ca2O, Object param) |
376 | 366 | try { |
377 | 367 | switch (type){ |
378 | 368 | case CLOSE: |
379 | | - refiner = new SingleRefiner(); |
380 | 369 | if (order == 1) return afpChain; |
| 370 | + refiner = new SingleRefiner(); |
381 | 371 | break; |
382 | 372 | default: //case OPEN |
383 | 373 | refiner = new OpenRefiner(); |
384 | 374 | break; |
385 | 375 | } |
| 376 | + |
386 | 377 | afpChain = refiner.refine(afpAlignments, ca1, order); |
387 | 378 | refined = true; |
388 | | - |
| 379 | + |
389 | 380 | } catch (RefinerFailedException e) { |
390 | 381 | logger.warn("Could not refine structure!"); |
391 | 382 | return afpChain; |
@@ -523,7 +514,8 @@ public MultipleAlignment align(List<Atom[]> atomArrays, Object param) |
523 | 514 | this.params = (CESymmParameters) param; |
524 | 515 |
|
525 | 516 | //If the multiple axes is called, run iterative version |
526 | | - if (params.isMultipleAxes()){ |
| 517 | + if (params.isMultipleAxes() && |
| 518 | + params.getRefineMethod() != RefineMethod.NOT_REFINED){ |
527 | 519 | CeSymmIterative iterative = new CeSymmIterative(params); |
528 | 520 | MultipleAlignment result = iterative.execute(atomArrays.get(0)); |
529 | 521 | axes = iterative.getSymmetryAxes(); |
@@ -567,9 +559,9 @@ public MultipleAlignment align(List<Atom[]> atomArrays, Object param) |
567 | 559 | executor.shutdown(); |
568 | 560 |
|
569 | 561 | } catch (InterruptedException e) { |
570 | | - e.printStackTrace(); |
| 562 | + logger.warn("Optimization failed!"); |
571 | 563 | } catch (ExecutionException e) { |
572 | | - e.printStackTrace(); |
| 564 | + logger.warn("Optimization failed!"); |
573 | 565 | } |
574 | 566 | } |
575 | 567 | } else { |
|
0 commit comments