001/* 002 * BioJava development code 003 * 004 * This code may be freely distributed and modified under the 005 * terms of the GNU Lesser General Public Licence. This should 006 * be distributed with the code. If you do not have a copy, 007 * see: 008 * 009 * http://www.gnu.org/copyleft/lesser.html 010 * 011 * Copyright for this code is held jointly by the individual 012 * authors. These should be listed in @author doc comments. 013 * 014 * For more information on the BioJava project and its aims, 015 * or to join the biojava-l mailing list, visit the home page 016 * at: 017 * 018 * http://www.biojava.org/ 019 * 020 */ 021package org.biojava.nbio.structure.align; 022 023import org.biojava.nbio.structure.Atom; 024import org.biojava.nbio.structure.StructureException; 025import org.biojava.nbio.structure.align.ce.ConfigStrucAligParams; 026import org.biojava.nbio.structure.align.model.AFPChain; 027 028 029public interface StructureAlignment { 030 031 /** Run an alignment while specifying the atoms to be aligned. Will used default parameters for the algorithm. 032 * 033 * @param ca1 034 * @param ca2 035 * @return the afpChain object that contains the alignment. 036 * @throws StructureException 037 */ 038 public AFPChain align(Atom[] ca1, Atom[] ca2) throws StructureException; 039 040 /** run an alignment and also send a bean containing the parameters. 041 * 042 * @param ca1 043 * @param ca2 044 * @param params 045 * @return the afpChain object that contains the alignment. 046 * @throws StructureException 047 */ 048 public AFPChain align(Atom[] ca1, Atom[] ca2, Object params) throws StructureException; 049 050 /** Return the paramers for this algorithm. 051 * 052 * @return The returned object will be a Java bean. 053 */ 054 public ConfigStrucAligParams getParameters(); 055 056 /** Set the default parameters for this algorithm to use 057 * 058 * @param parameters 059 */ 060 public void setParameters(ConfigStrucAligParams parameters); 061 062 /** Get the name of the Algorithm 063 * 064 * @return the name of the algorithm 065 */ 066 public String getAlgorithmName(); 067 068 /** Get the Version information for this Algorithm. 069 * 070 * @return the version of the algorithm 071 */ 072 public String getVersion(); 073}