rcsb / symmetry

:ferris_wheel: Detect, analyze, and visualize protein symmetry
GNU Lesser General Public License v2.1
26 stars 16 forks source link

Move Internal Symmetry Code to BioJava #59

Closed lafita closed 8 years ago

lafita commented 9 years ago

Now that we have a stable version of CeSymm (including refinement and optimization) and that we use some parts of the quaternary symmetry detection, we should consider moving the code to biojava.

Before doing so, is there any issue or request that still needs to be considered?

Where would be the best place to move the code inside biojava? Maybe into a new package named:

 org.biojava.nbio.structure.symmetry.internal 

The SymmetryGUI could be moved to the structure-gui module inside:

 org.biojava.nbio.structure.symmetry.gui 
andreasprlic commented 9 years ago

I think moving it to BioJava would be great at this point. I agree re. symmetry.gui.

lafita commented 8 years ago

This is already done! Before closing, my question is: _what should we do with this symmetry repository?_

It contains all the Census code, which works with the old version of CeSymm. One option would be to keep a legacy branch with the old version of CeSymm where the Census code still works, and delete all the ported classes and tests from the master branch.

I would like to do a major change in the main CeSymm class: unimplementing the StructureAlignment interface, which breaks all the Census and tests (that I think is necessary with the new version).

andreasprlic commented 8 years ago

It would be great to be able to reproduce the original symmetry results. So I'd vote for keeping the legacy branch.. I suspect with your recent changes that there might be slightly different results ...

lafita commented 8 years ago

The results change because of the refinement and optimization, but you can always turn them OFF and get the same results of the old version. The change will affect the way to run the CeSymm algorithm, which will no longer implement StructureAlignment and the return type will be a MultipleAlignment and the Symmetry Axes. The census code will have to be adapted to deal with the MultipleAlignment, and it would be a good opportunity to adapt it to analyze the new information that the algorithm provides.