Skip to content

Commit 2aa40ea

Browse files
committed
Fix display bugs
1 parent f83e28a commit 2aa40ea

File tree

5 files changed

+22
-37
lines changed

5 files changed

+22
-37
lines changed

biojava-structure-gui/src/main/java/org/biojava/nbio/structure/symmetry/gui/SymmetryCalc.java

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,12 @@
2020
*/
2121
package org.biojava.nbio.structure.symmetry.gui;
2222

23-
import java.util.ArrayList;
24-
import java.util.List;
25-
2623
import org.biojava.nbio.structure.Atom;
2724
import org.biojava.nbio.structure.Structure;
2825
import org.biojava.nbio.structure.StructureException;
29-
import org.biojava.nbio.structure.StructureIdentifier;
3026
import org.biojava.nbio.structure.StructureTools;
3127
import org.biojava.nbio.structure.align.gui.AlignmentCalculationRunnable;
32-
import org.biojava.nbio.structure.align.gui.jmol.MultipleAlignmentJmol;
28+
import org.biojava.nbio.structure.align.gui.jmol.AbstractAlignmentJmol;
3329
import org.biojava.nbio.structure.symmetry.internal.CESymmParameters;
3430
import org.biojava.nbio.structure.symmetry.internal.CeSymm;
3531
import org.biojava.nbio.structure.symmetry.internal.CeSymmResult;
@@ -41,7 +37,7 @@
4137
* Linked to the SymmetryGUI.
4238
* Does not generalize, uses CeSymm class directly to allow
4339
* for the symmetry axis recovery.
44-
*
40+
*
4541
* @author Aleix Lafita
4642
* @since 4.2.0
4743
*
@@ -53,16 +49,14 @@ public class SymmetryCalc implements AlignmentCalculationRunnable {
5349

5450
boolean interrupted = false;
5551

56-
private StructureIdentifier name;
5752
private Structure structure;
5853
private SymmetryGui parent;
5954

6055
/** Requests for a structure to analyze.
6156
*/
62-
public SymmetryCalc(SymmetryGui p, Structure s, StructureIdentifier n) {
57+
public SymmetryCalc(SymmetryGui p, Structure s) {
6358
parent = p;
6459
structure = s;
65-
name = n;
6660
}
6761

6862
@Override
@@ -74,17 +68,9 @@ public void run() {
7468
try {
7569

7670
Atom[] atoms = StructureTools.getRepresentativeAtomArray(structure);
77-
7871
CeSymmResult result = CeSymm.analyze(atoms, params);
7972

80-
List<StructureIdentifier> names = new ArrayList<StructureIdentifier>();
81-
for (int su=0; su<result.getSymmOrder(); su++){
82-
names.add(name);
83-
}
84-
result.getMultipleAlignment().getEnsemble().setStructureIdentifiers(names);
85-
86-
MultipleAlignmentJmol jmol =
87-
SymmetryDisplay.display(result);
73+
AbstractAlignmentJmol jmol = SymmetryDisplay.display(result);
8874
String title = jmol.getTitle();
8975

9076
if (params != null)

biojava-structure-gui/src/main/java/org/biojava/nbio/structure/symmetry/gui/SymmetryDisplay.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.biojava.nbio.structure.*;
3232
import org.biojava.nbio.structure.align.gui.MultipleAlignmentDisplay;
3333
import org.biojava.nbio.structure.align.gui.StructureAlignmentDisplay;
34+
import org.biojava.nbio.structure.align.gui.jmol.AbstractAlignmentJmol;
3435
import org.biojava.nbio.structure.align.gui.jmol.MultipleAlignmentJmol;
3536
import org.biojava.nbio.structure.align.multiple.MultipleAlignment;
3637
import org.biojava.nbio.structure.align.util.RotationAxis;
@@ -93,27 +94,25 @@ public static MultipleAlignmentJmol displayFull(MultipleAlignment msa)
9394
* the symmetry result obtained from CeSymm
9495
* @throws StructureException
9596
*/
96-
public static MultipleAlignmentJmol display(CeSymmResult symmResult)
97+
public static AbstractAlignmentJmol display(CeSymmResult symmResult)
9798
throws StructureException {
9899

99-
MultipleAlignmentJmol jmol = null;
100-
MultipleAlignment msa = symmResult.getMultipleAlignment();
101-
102100
if (symmResult.isRefined()) {
101+
MultipleAlignment msa = symmResult.getMultipleAlignment();
103102
List<Atom[]> atoms = msa.getAtomArrays();
104-
jmol = new MultipleAlignmentJmol(msa, atoms);
103+
MultipleAlignmentJmol jmol = new MultipleAlignmentJmol(msa, atoms);
105104
jmol.setTitle(jmol.getStructure().getPDBHeader().getTitle());
106105
addSymmetryMenu(jmol, symmResult);
107106
jmol.evalString(printPointGroupAxes(symmResult));
108107
jmol.evalString(printSymmetryAxes(symmResult, false));
108+
return jmol;
109109
} else {
110110
// Show the optimal alignment only if it was not refined
111111
Logger.info("Showing optimal self-alignment");
112-
StructureAlignmentDisplay.display(symmResult.getSelfAlignment(),
113-
symmResult.getAtoms(), symmResult.getAtoms());
112+
return StructureAlignmentDisplay.display(
113+
symmResult.getSelfAlignment(), symmResult.getAtoms(),
114+
symmResult.getAtoms());
114115
}
115-
116-
return jmol;
117116
}
118117

119118
/**

biojava-structure-gui/src/main/java/org/biojava/nbio/structure/symmetry/gui/SymmetryGui.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ private void calcAlignment() {
293293
System.out.println("Analyzing: " + name);
294294

295295

296-
alicalc = new SymmetryCalc(this,s,name);
296+
alicalc = new SymmetryCalc(this, s);
297297

298298

299299
thread = new Thread(alicalc);

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -434,10 +434,6 @@ public static CeSymmResult analyzeLevel(Atom[] atoms,
434434

435435
if (result.isRefined()) {
436436
MultipleAlignment msa = result.getMultipleAlignment();
437-
CoreSuperimposer imposer = new CoreSuperimposer();
438-
imposer.superimpose(msa);
439-
MultipleAlignmentScorer.calculateScores(msa);
440-
result.setMultipleAlignment(msa);
441437

442438
// STEP 5: symmetry alignment optimization
443439
if (result.getParams().getOptimization()) {

biojava-structure/src/main/java/org/biojava/nbio/structure/symmetry/utils/SymmetryTools.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
import org.biojava.nbio.structure.align.multiple.MultipleAlignmentEnsemble;
5050
import org.biojava.nbio.structure.align.multiple.MultipleAlignmentEnsembleImpl;
5151
import org.biojava.nbio.structure.align.multiple.MultipleAlignmentImpl;
52+
import org.biojava.nbio.structure.align.multiple.util.CoreSuperimposer;
5253
import org.biojava.nbio.structure.align.multiple.util.MultipleAlignmentScorer;
5354
import org.biojava.nbio.structure.align.multiple.util.MultipleAlignmentTools;
5455
import org.biojava.nbio.structure.jama.Matrix;
@@ -471,8 +472,8 @@ public static List<List<Integer>> buildSymmetryGraph(List<AFPChain> afps,
471472
public static UndirectedGraph<Integer, DefaultEdge> buildSymmetryGraph(
472473
AFPChain selfAlignment) {
473474

474-
UndirectedGraph<Integer, DefaultEdge> graph =
475-
new SimpleGraph<Integer, DefaultEdge>(DefaultEdge.class);
475+
UndirectedGraph<Integer, DefaultEdge> graph = new SimpleGraph<Integer, DefaultEdge>(
476+
DefaultEdge.class);
476477

477478
for (int i = 0; i < selfAlignment.getOptAln().length; i++) {
478479
for (int j = 0; j < selfAlignment.getOptAln()[i][0].length; j++) {
@@ -647,8 +648,10 @@ public static MultipleAlignment toSubunitAlignment(MultipleAlignment symm) {
647648
* @param atoms
648649
* Atom array of the entire structure
649650
* @return MultipleAlignment format of the symmetry
651+
* @throws StructureException
650652
*/
651-
public static MultipleAlignment fromAFP(AFPChain symm, Atom[] atoms) {
653+
public static MultipleAlignment fromAFP(AFPChain symm, Atom[] atoms)
654+
throws StructureException {
652655

653656
if (!symm.getAlgorithmName().contains("symm")) {
654657
throw new IllegalArgumentException(
@@ -684,8 +687,9 @@ public static MultipleAlignment fromAFP(AFPChain symm, Atom[] atoms) {
684687
e.getMultipleAlignments().set(0, result);
685688
result.setEnsemble(e);
686689

687-
double tmScore = symm.getTMScore();
688-
result.putScore(MultipleAlignmentScorer.AVGTM_SCORE, tmScore);
690+
CoreSuperimposer imposer = new CoreSuperimposer();
691+
imposer.superimpose(result);
692+
MultipleAlignmentScorer.calculateScores(result);
689693

690694
return result;
691695
}

0 commit comments

Comments
 (0)