Skip to content

Commit e152348

Browse files
committed
Superimpose freely at the end in case more than one symmetry level
1 parent b7f2ea9 commit e152348

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

biojava-structure-gui/src/main/java/org/biojava/nbio/structure/align/gui/MenuCreator.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,12 @@ public static JMenuBar initJmolMenu(JFrame frame,
180180
dotplot.addActionListener(new DotPlotListener(afpChain));
181181
view.add(dotplot);
182182
}
183+
//Phylogenetics - only if it is a MultipleAlignment
184+
if (afpChain == null){
185+
JMenuItem tree = new JMenuItem(PHYLOGENETIC_TREE);
186+
tree.setMnemonic(KeyEvent.VK_T);
187+
view.add(tree);
188+
}
183189
}
184190
menu.add(view);
185191

biojava-structure/src/main/java/org/biojava/nbio/structure/symmetry/internal/CeSymm.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -408,12 +408,17 @@ public static CeSymmResult analyze(Atom[] atoms, CESymmParameters params)
408408
CeSymmResult result = iter.execute(atoms);
409409

410410
if (result.isSignificant()) {
411-
// Optimize the global alignment once more (final step)
411+
// Optimize the global alignment freely once more (final step)
412412
if (params.getOptimization() && result.getSymmLevels() > 1) {
413413
try {
414+
//Remove the axes to do free superposition optimization
415+
SymmetryAxes axes = result.getAxes();
416+
result.setAxes(null);
414417
SymmOptimizer optimizer = new SymmOptimizer(result);
415418
MultipleAlignment optimized = optimizer.optimize();
419+
// Set the optimized MultipleAlignment and the axes
416420
result.setMultipleAlignment(optimized);
421+
result.setAxes(axes);
417422
} catch (RefinerFailedException e) {
418423
logger.info("Final optimization failed:" + e.getMessage());
419424
// Return the un-optimized result instead

biojava-structure/src/main/java/org/biojava/nbio/structure/symmetry/internal/SymmOptimizer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ public MultipleAlignment optimize() throws StructureException,
196196

197197
int conv = 0; // Number of steps without an alignment improvement
198198
int i = 1;
199-
int stepsToConverge = Math.max(maxIter / 20, 1000);
199+
int stepsToConverge = Math.max(maxIter / 50, 1000);
200200

201201
while (i < maxIter && conv < stepsToConverge) {
202202

0 commit comments

Comments
 (0)