ardcore / fit_transform

Calculate and apply the optimal transformation matrix that minimizes the RMSD (root mean squared deviation) between two paired sets of points.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

fit_transform

Problem

Given two corresponding sets of 2D points A and B, find and apply an optimal transformation matrix to bring set A as close as possible to set B.

Solution

  • fit_transform implements full Kabsch algorithm for datasets where N >= 3
  • closeness of sets is understood as RMSD
  • this implementation focuses on 2D points only, but can be easily generalised to support more dimensions

API

  • fitTransform(A, B) -> A' -- returns a transformed dataset
  • kabsch(A, B) -> C -- returns an optimal rotation matrix

Installation

npm install fit_transform

Building and Testing

yarn
yarn build
yarn test
cd examples/
python -m SimpleHTTPServer

Examples

Image showing fit_transform applied to a 2-point dataset

Image showing fit_transform applied to a 3-point dataset

Image showing fit_transform applied to a 3-point dataset

See also examples

About

Calculate and apply the optimal transformation matrix that minimizes the RMSD (root mean squared deviation) between two paired sets of points.

License:Mozilla Public License 2.0


Languages

Language:JavaScript 100.0%