1package denoptim.fragmenter;
3import java.util.Iterator;
5import javax.vecmath.Point3d;
7import org.biojava.nbio.structure.geometry.SuperPositionSVD;
8import org.jgrapht.GraphMapping;
10import denoptim.exception.DENOPTIMException;
11import denoptim.graph.FragIsomorphEdge;
12import denoptim.graph.FragIsomorphNode;
13import denoptim.graph.Fragment;
14import denoptim.graph.FragmentIsomorphismInspector;
26 private double minRMSD = Double.MAX_VALUE;
31 private GraphMapping<FragIsomorphNode, FragIsomorphEdge>
bestMapping =
null;
53 int nPoints = fragA.getJGraphFragIsomorphism().vertexSet().size();
56 Iterator<GraphMapping<FragIsomorphNode, FragIsomorphEdge>>
58 if (mapingIterator ==
null)
63 while (mapingIterator.hasNext())
65 GraphMapping<FragIsomorphNode, FragIsomorphEdge> mapping =
66 mapingIterator.next();
69 Point3d[] ptsA =
new Point3d[nPoints];
70 Point3d[] ptsB =
new Point3d[nPoints];
82 SuperPositionSVD svd =
new SuperPositionSVD(
false);
83 double rmsd = svd.getRmsd(ptsA,ptsB);
Class performing the alignment of Fragments.
FragmentAlignement(Fragment fragA, Fragment fragB)
Constructor for an alignment of two fragments.
GraphMapping< FragIsomorphNode, FragIsomorphEdge > getLowestRMSDMapping()
Returns the mapping leading to the lowest RMSD that could be found among all isomorphic mappings.
double minRMSD
Lowest RMSD upon alignment.
double getMinimumRMSD()
Returns the lowest RMSD that could be found among all isomorphic mappings.
GraphMapping< FragIsomorphNode, FragIsomorphEdge > bestMapping
Mapping of nodes leading to lowest RMSD upon alignment.
Class representing a continuously connected portion of chemical object holding attachment points.
boolean isomorphismExists()
Checks if an isomorphism exists between the two fragments.
Iterator< GraphMapping< FragIsomorphNode, FragIsomorphEdge > > getMappings()