@@ -250,20 +250,20 @@ protected static CeSymmResult align(Atom[] atoms, CESymmParameters params)
250250 result .setStructureId (id );
251251
252252 // Determine the symmetry Type or get the one in params
253- if (params .getSymmType () == SymmetryType .AUTO ) {
253+ SymmetryType type = params .getSymmType ();
254+ if (type == SymmetryType .AUTO ) {
254255 if (result .getSelfAlignment ().getBlockNum () == 1 ) {
255- result . setType ( SymmetryType .OPEN ) ;
256+ type = SymmetryType .OPEN ;
256257 logger .info ("Open Symmetry detected" );
257258 } else {
258- result . setType ( SymmetryType .CLOSED ) ;
259+ type = SymmetryType .CLOSED ;
259260 logger .info ("Close Symmetry detected" );
260261 }
261- } else
262- result .setType (params .getSymmType ());
262+ }
263263
264264 // Do not try the refinement if the self-alignment is not significant
265265 if (optimalAFP .getTMScore () < params .getUnrefinedScoreThreshold ()){
266- result .setSymmOrder (1 );
266+ result .setNumRepeats (1 );
267267 return result ;
268268 }
269269
@@ -278,7 +278,7 @@ protected static CeSymmResult align(Atom[] atoms, CESymmParameters params)
278278 break ;
279279 case SEQUENCE_FUNCTION :
280280 // Does not work for OPEN alignments
281- if (result . getType () == SymmetryType .CLOSED ) {
281+ if (type == SymmetryType .CLOSED ) {
282282 orderDetector = new SequenceFunctionOrderDetector (
283283 params .getMaxSymmOrder (), 0.4f );
284284 order = orderDetector .calculateOrder (
@@ -287,7 +287,7 @@ protected static CeSymmResult align(Atom[] atoms, CESymmParameters params)
287287 }
288288 case ANGLE :
289289 // Does not work for OPEN alignments
290- if (result . getType () == SymmetryType .CLOSED ) {
290+ if (type == SymmetryType .CLOSED ) {
291291 orderDetector = new AngleOrderDetectorPlus (
292292 params .getMaxSymmOrder ());
293293 order = orderDetector .calculateOrder (
@@ -300,7 +300,7 @@ protected static CeSymmResult align(Atom[] atoms, CESymmParameters params)
300300 atoms );
301301 break ;
302302 }
303- result .setSymmOrder (order );
303+ result .setNumRepeats (order );
304304
305305 // REFINEMENT
306306 SymmetryRefiner refiner = null ;
@@ -309,7 +309,7 @@ protected static CeSymmResult align(Atom[] atoms, CESymmParameters params)
309309 return result ;
310310 case SEQUENCE_FUNCTION :
311311 // Does not work for OPEN alignments
312- if (result . getType () == SymmetryType .CLOSED ) {
312+ if (type == SymmetryType .CLOSED ) {
313313 refiner = new SequenceFunctionRefiner ();
314314 break ;
315315 }
@@ -323,49 +323,21 @@ protected static CeSymmResult align(Atom[] atoms, CESymmParameters params)
323323
324324 // Refinement succeeded, store results
325325 result .setMultipleAlignment (msa );
326- result .setSymmOrder (msa .size ());
326+ result .setNumRepeats (msa .size ());
327327 result .setRefined (true );
328328
329329 } catch (RefinerFailedException e ) {
330330 logger .info ("Refinement failed: " + e .getMessage ());
331331 return result ;
332332 }
333333
334- // STEP 4: determine the symmetry axis and its repeat dependencies
334+ // STEP 4: symmetry axes
335335 SymmetryAxes axes = new SymmetryAxes ();
336336 int order = result .getMultipleAlignment ().size ();
337337 Matrix4d axis = result .getMultipleAlignment ().getBlockSet (0 )
338338 .getTransformations ().get (1 );
339-
340- List <List <Integer >> superposition = new ArrayList <List <Integer >>();
341- List <Integer > chain1 = new ArrayList <Integer >();
342- List <Integer > chain2 = new ArrayList <Integer >();
343- superposition .add (chain1 );
344- superposition .add (chain2 );
345- List <Integer > repeatTrans = new ArrayList <Integer >();
346-
347- switch (result .getType ()) {
348- case CLOSED :
349-
350- for (int bk = 0 ; bk < order ; bk ++) {
351- chain1 .add (bk );
352- chain2 .add ((bk + 1 ) % order );
353- repeatTrans .add (bk );
354- }
355- axes .addAxis (axis , superposition , repeatTrans , order );
356- break ;
357-
358- default : // case OPEN:
359-
360- repeatTrans .add (0 );
361- for (int bk = 0 ; bk < order - 1 ; bk ++) {
362- chain1 .add (bk );
363- chain2 .add (bk + 1 );
364- repeatTrans .add (bk + 1 );
365- }
366- axes .addAxis (axis , superposition , repeatTrans , order );
367- break ;
368- }
339+ axes .addAxis (axis , order , type );
340+
369341 result .setAxes (axes );
370342 return result ;
371343 }
0 commit comments